Coder Social home page Coder Social logo

squeakissueintegration's Introduction

Squeak Issue Integration Build Status Coverage Status

This is an Issue Integration for the programming environment Squeak. It allows groups of developers to create, manage and edit issues directly inside of the image. All issues are held and managed by an Issue Management System like GitHub.

Features

Currently only GitHub is supported as an Issue Management System. GitHub Issues support title, body, assignee, labels. Closed Issues are ignored by the system.

  • Create Issues for methods and classes
  • Create Issues right from the Debugger
  • View all Issues by repository
  • Indication of Issues related to a certain class or method directly inside the system browser by exclamation icons (the icon is red for issues assigned to you, orange otherwise)
  • Edit and close Issues
  • Fix me button to open a system browser with the class or method the Issue is related to in focus

How to use

Migration

In case you use an older version of the Issue Integration, namely v0.1, we recommend to execute the following code to remove deprecated links from the menu bar:

TheWorldMenu registry copy do: [ :each | (each first = 'Issue Package Browser ') ifTrue: [TheWorldMenu registry remove: each.]].

Installation

Run the following code in a Workspace:

{
Metacello new
    baseline: 'IssueIntegration';
    githubUser: 'hpi-swa-teaching'
    project: 'SqueakIssueIntegration'
    commitish: 'v1.0'
    path: 'packages'
}
do: [ :baseline | baseline get ];
do: [ :baseline | baseline
    onConflict: [ :ex | ex allow ];
    load: 'default' ].

Set Up

Open the Issue Integration (Apps -> Issue Integration) and click on Settings. The Settings window opens. Then find the package you are working on. Enter the following information:

  • The name of your github project e.g. hpi-swa-teaching/SqueakIssueIntegration (or a direct link: https://github.com/user/repo)
  • Your GitHub username. This is necessary to highlight issues assigned to you.
  • An OAuth-Token. To authenticate you at the Issue Management System you need an OAuth-Token. You can click the Create new OAuth-Token button to directly open your webbrowser at GitHub's token creation page. If your repository is public, leave everything as it is (public_repo scope checked), scroll down and hit the Generate token button. If your repository is private, make sure to also check the repo scope. Copy the generated token and hit the Save (and quit) button inside the Settings window.

Create an Issue

To create an Issue you can right-click on a method or class in the System Browser or the Debugger and select create Issue in the context menu (the option only appears in packages with a set up issue management). You can give it a title and optional description. If you want to assign the issue directly to one of your team members you can enter their username in the Issue Creator. Please note that you and the assignee both need push access to the repository for the assignment to work. You also need push access to assign labels to the Issue.

See existing Issues in the System Browser

All existing Issues for a method or class are indicated with a little exclamation icon next to the name (if an issue is assigned to you the exclamation icon indicates this by changing it's color to red). To show, edit or close them you can access all Issues of this method or class in its context-menu.

See and edit Issues by repository inside the Issue Browser

Open the Issue Integration (Apps -> Issue Integration). Select the repository and click through the list of issues. All changes you make to issues are directly sent to GitHub and saved.

Development

Pull Requests are welcome. Please make sure to run the tests locally before pushing to the master branch. To run the tests, make sure your port 8080 is not in use. It is used during tests to start a GitHub mock server to be independent from your internet connection and GitHub's availability.

squeakissueintegration's People

Contributors

arneboockmeyer avatar cmfcmf avatar davidimmhahn avatar fniephaus avatar j3skin avatar klaraseitz avatar leage avatar maikz avatar nef10 avatar xasetl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

squeakissueintegration's Issues

Token direkt erstellen

Als User möchte ich einen Link zur direkten Erstellung meines Login Keys im Issue Package Browser haben, damit ich nicht selber zu GitHub navigieren muss.

Es sollte einen Link geben, über den man das Token direkt erstellen kann, sowie erklärenden Text zum Token (welche Scopes werden benötigt, was ist ein Token, wofür braucht man das, etc.). Hier ist ein solcher Beispiellink: https://github.com/settings/tokens/new?description=Squeak%20Issue%20Management&scopes=public_repo

Blubb :D

Inwiefern können wir Code refactorn, wenn das nicht auf einer Karte steht.

GitHub OAuth Application erörten / anschauen

  • Der User soll auf einen Button klicken und dann soll GitHub ihn fragen, was diese Anwendung alles darf → Äquivalent zur Token Erstellung → Wir kriegen dann automatisch ein Token zu geschickt. :)
  • Ist ein allgemeines Webprotokoll (OAuth 2)
  • FUNFACT: Es ist in unserer Anwendung so nicht umsetzbar, da wir keine Website haben
  • Der "Non Web Flow" erlaubt nur die automatische Erstellung eines Tokens, sofern, man den User nach Benutzername und Passwort fragt. 👎 👎 👎

Das geht so also nicht.

Icons austauschen

Als User möchte ich durch die Icons sofort sehen, dass es sich um Issues handelt, weshalb die bestehenden Icons für Method und Class Issues durch dieses Icon in orange bzw. rot ersetzt werden sollten, damit die Icons besser zur Squeak Umgebung passen und sich farblich deutlicher hervorheben.

Issue Browser - Issue Ansicht abdocken

Als User möchte ich die Übersicht über ein Issue per Klick auf einen dedizierten Button abdocken können, um mehrere Issues gleichzeitig einzusehen.

gerne auch runtersetzen.

Issue Browser - Details anzeigen

Als User möchte ich in der Issue Übersicht auf Klick, rechts das Issue mit Titel, Assignee und Body anzeigen lassen, um mir nähere Informationen zu beschaffen.

GitHub API anschauen

Als Entwickler möchte ich die GitHub API kennen, um zu verstehen, wie man Anfragen an die API stellen kann und wie diese damit umgeht.
Als Deliverable sollen 5 neue Ideen rauskommen. 🌵

  • Authentication
  • Rate Limits
  • Struktur des Requests
  • Struktur des Responses
  • (HTTP) Caching
  • Welche Informationen zu Issues abrufbar?
  • Unterschied Issue, Pull Request
  • Scopes des Tokens prüfen
  • benötigte Zugriffsrechte für Issues / Assignments
  • (Emoji-API)

Als Project einen kompletten GitHub Projektlink erlauben

Als User möchte ich im Issue Package Browser auch die komplette URL zum Repository eingeben können, die dann auf den Slug reduziert wird, da ich so schneller neue Squeak Packages in das Issue Management integrieren kann.

http unterstützen!
Eingabe ungültig anzeigen
(nach "github" suchen, nach ".git" suchen)

Issue Browser - Assignee filtern

Als User möchte ich in der Issue Übersicht die Liste der Issues nach Assignee (me/other/no assignee) filtern können, um mich einfacher in der Liste zurechtzufinden und self-assignments leichter möglich zu machen.

Assignee Auswahl

Als User möchte ich im Issue Creation Fenster nur Assignees aus einer Liste auswählen können, die auch Contributors des Repos sind, statt sie komplett selbst einzugeben, damit ich keine Fehler erhalte.

Issue Browser - Issue Liste anzeigen

Als User möchte ich eine UI haben, die mir die Liste der Titel aller Issues anzeigt und die durch Aufruf im Workspace (Issue Browser open) zugänglich wird, um den Zugriff auf diese Liste zu ermöglichen.

Klassenseitige Issues erstellen

Als User möchte ich klassenseitige Issues genauso wie für Methoden erstellen können, um allgemeine Aufgaben an der Klasse zu definieren.

Morphic Testing Framework angucken

Als Entwickler möchte ich mir die Möglichkeiten des Morphic Testing Frameworks angucken, um zu verstehen, wie ich die UI testen kann.

Issue Browser - Open/Closed filtern

Als User möchte ich in der Issue Übersicht die Liste der Issues nach open/closed filtern können, um mich einfacher in der Liste zurechtzufinden.

Issue Browser - hübsche UI

Als User möchte ich die UI, die zum restlichen Design der IssueIntegration passt und den Titel oben und eine Liste der Issues mit Scrollbar links hat, um die UI übersichtlicher zu haben.

photo

GitHub Fehler anzeigen

Als User möchte ich den von GitHub zurückgegebenen Fehler angezeigt bekommen, wenn die GitHub API eine "falsche" Antwort gibt, egal um welche Request / Response es sich handelt, damit ich Fehler besser bemerke.

Entscheiden, wie man die API Calls der GitHub API mock'en kann

Als Entwickler möchte ich wissen, wie ich API Calls mocken kann, um unabhängig von GitHub zu werden.

  • Idee 1: Einen MockWebClient von WebClient erben lassen und die http* Methoden mocken
  • Idee 2: Einen WebServer einschalten, den man dem WebClient als ProxyServer übergibt (RatPack?)

Klassen-Issue-Icon

Als User möchte ich genauso wie bei den Methoden Icons angezeigt bekommen, um Issues bezüglich der Klasse sofort zu erkennen.

Issue Labels unterstützen

Als User möchte ich auch im Image eine Unterstützung für Labels haben, wobei diese ausgewählt (Issue Creation) und angezeigt (Issue Browser) werden können.
Auswählen: Multi-Select-Liste
Anzeigen: Textfeld mit Namen (# davor, evtl färben)

Bei fehlerhaftem Token Warnung ausgeben

Als User möchte ich eine Warnung über self error angezeigt bekommen, wenn ich einen fehlerhaften oder leeren Token im Issue Package Browser eingebe, um meinen Fehler frühzeitig zu erkennen.
GitHub API Call und prüfen, ob 200 zurückgegeben

projectURL umbenennen

Als Entwickler möchte ich den Projekt-Identifier von projectURL in projectID umbenennen, um einen deskriptiveren Namen zu verwenden, der nicht suggeriert, dass es sich um eine ganze URL handelt, sondern eben bloß um z.B. "cmfcmf/sap-hana".

GitHub API mittels WebServer mocken

Als Entwickler möchte ich, dass die Integration Tests gegen eine gemockte Version der GitHub API laufen, sodass ich unabhängig von GitHub bin und somit weder eine Internetverbindung, noch ein Test-Repo zum zuspammen mit Issues brauche.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.