Die Angaben stammten aus der Zeit, als Nebula nur gelesen hat. Seit v1.7.0 legt es Issues an und schliesst sie - wer sich an README oder den Hinweis im Verbindungsdialog hielt, bekam dabei einen 403. Erhoben wurde es nicht aus dem Gedaechtnis, sondern aus dem Code: jeder ausgehende Aufruf in lib/git/gitea.ts, github.ts und gitlab.ts, abgebildet auf das noetige Recht. Aufgeschluesselt nach Funktion statt nach System, damit erkennbar ist, was sich weglassen laesst: der Abgleich allein kommt rein lesend aus, nur die Issue-Anbindung schreibt. **GitLab ist der unangenehme Fall.** Es kennt keinen schmalen Schreib-Scope fuer Issues - dort geht nur "api", also alles, was das Konto darf. Das steht jetzt ausdruecklich da, samt der Alternative: bei read_api bleiben und auf die Issue-Anbindung verzichten. Der Abgleich laeuft dann vollstaendig, und geschlossene Issues werden weiterhin erkannt, nur nicht zurueckgeschrieben. Ebenfalls festgehalten, was Nebula *nicht* braucht: Schreibrechte auf Code, Adminrechte, Rechte zum Anlegen von Webhooks. Letzteres ist der Grund, warum der Haken von Hand eingetragen wird - so bleibt der Token davon frei. Der Hinweis in lib/git/meta.ts steht direkt am Eingabefeld und ist die Stelle, die tatsaechlich gelesen wird; er ist deshalb mitgezogen. Dazu ein Waechter in meta.test.ts: jeder Provider muss in GitClient createIssue und setIssueState koennen, folglich muss auch jeder Hinweis sagen, was das an Rechten kostet. Genau diese Kopplung war hier gerissen. Geprueft: 267 Unit-Tests (6 neue), 36 E2E-Tests, Hinweistext je System gegen die laufende Anwendung gelesen, axe-core auf 375px und 1280px ohne Beanstandung. Refs #10
This commit is contained in:
+24
@@ -485,6 +485,30 @@ Firmen-Gitea nebeneinander.
|
||||
Kurzbeschreibung.
|
||||
- **Löschen** trennt nur die Verknüpfung; die Projekte selbst bleiben erhalten.
|
||||
|
||||
#### Nötige Token-Rechte
|
||||
|
||||
Nebula liest fast alles nur. Geschrieben wird ausschließlich beim Anlegen und Schließen
|
||||
von Issues (4.6) — wer darauf verzichtet, kommt mit einem rein lesenden Token aus.
|
||||
|
||||
| System | Nur Abgleich | Zusätzlich für die Issue-Anbindung |
|
||||
| --- | --- | --- |
|
||||
| GitHub | *Metadata*, *Contents*, *Issues*, *Pull requests*, *Actions* — je lesend | *Issues: Read and write* |
|
||||
| GitLab | `read_api` | `api` |
|
||||
| Gitea / Forgejo | `read:repository`, `read:issue`, `read:user` | `write:issue` |
|
||||
|
||||
**GitLab kennt keinen schmalen Schreib-Scope.** `api` erlaubt alles, was das Konto darf,
|
||||
Code eingeschlossen. Wem das zu weit geht, bleibt bei `read_api`: der Abgleich läuft
|
||||
vollständig, geschlossene Issues werden weiterhin erkannt — nur schreibt Nebula dann
|
||||
nicht zurück.
|
||||
|
||||
**Nicht verlangt** werden Schreibrechte auf Code, Adminrechte und Rechte zum Anlegen von
|
||||
Webhooks. Der Haken wird von Hand im Git-System eingetragen (4.7); das erspart dem Token
|
||||
genau die Administrationsrechte, die er sonst bräuchte.
|
||||
|
||||
Ein fehlendes Recht endet in einem `403` mit „Token hat nicht die noetigen Scopes",
|
||||
sichtbar am Repository auf der Projektseite. Klein anfangen und gezielt nachlegen ist
|
||||
deshalb ohne Risiko.
|
||||
|
||||
### 4.3 Was beim Sync geholt wird
|
||||
|
||||
| Bereich | Details |
|
||||
|
||||
Reference in New Issue
Block a user