Git Token - welche Rechte #10
Notifications
Total Time Spent: 21 minutes
florian.wilde
21 minutes
No due date set.
Dependencies
No dependencies set.
Reference: florian.wilde/nebula#10
Reference in New Issue
Block a user
Welche Rechte braucht eine Git Verbindung um alle Funktionen hier in Nebula zu verwenden aber nicht zu viel damit es sicher bleibt.
Angelegt aus Nebula in Nebula.
🤖 Claude Code hat mit der Umsetzung begonnen.
feat/10-token-rechtelib/git/*.tserheben und auf das nötige Recht abbilden — aus dem Code, nicht aus dem GedächtnistokenHelpinlib/git/meta.tsnachziehen — der Hinweis steht direkt am Eingabefeld und ist die Stelle, die tatsächlich gelesen wirdWas ich schon sagen kann und was vermutlich unangenehm ist: bei GitLab gibt es keinen schmalen Schreib-Scope für Issues. Wer die Issue-Anbindung dort nutzen will, braucht
api— also alles. Wer beim reinen Abgleich bleibt, kommt mitread_apiaus. Das werde ich als bewusste Entscheidung darstellen, nicht als Empfehlung, einfachapizu setzen.Bei GitHub und Gitea lässt sich das dagegen sauber trennen.
Zeiterfassung läuft.
✅ Umsetzung abgeschlossen — bereit zum Testen.
Die Antwort auf die Frage — jeder ausgehende Aufruf aus
lib/git/*.tserhoben und auf das nötige Recht abgebildet:read_apiapiread:repository,read:issue,read:userwrite:issueGitLab ist der unangenehme Fall: kein schmaler Schreib-Scope für Issues. Entweder
api(alles, was das Konto darf) oder auf die Issue-Anbindung verzichten. Beiread_apiläuft der Abgleich vollständig, und geschlossene Issues werden weiterhin erkannt — nur nicht zurückgeschrieben.Nicht verlangt: Schreibrechte auf Code, Adminrechte, Rechte zum Anlegen von Webhooks.
Was geändert wurde
lib/git/meta.ts: der Hinweis direkt unter dem Token-Feld war ebenfalls rein lesend formuliert — mitgezogenmeta.test.tsals Wächter: jeder Provider musscreateIssue/setIssueStatekönnen, also muss auch jeder Hinweis die Rechte dafür nennenGeänderte Dateien
README.md·FEATURES.mdsrc/lib/git/meta.tssrc/lib/git/meta.test.ts(neu)So testest du es
git switch feat/10-token-rechtenpm run docker:dbundnpm run devAufgewendete Zeit: 00:14
Pull Request: #11
Nach Freigabe:
/issue-freigabe 10📎 Nachgelegt: jeder Aufruf einzeln belegt.
Rückfrage war, wie Issues und Kommentare entstehen, wenn der Token nur liest. Die Antwort steckte zwar in der Fall-A/Fall-B-Aufteilung, war aber nicht nachprüfbar — deshalb steht sie jetzt Aufruf für Aufruf da.
Was dazugekommen ist
/tagsund/stats/commit_activityunter Metadata fallen und nicht unter Contents, ist nicht zu erraten. Für GitLab ist mit Quellenangabe belegt, dass es unterhalb vonapikeinen Schreibzugriff auf Issues gibt.POST …/issuesundPATCH/PUT …/issues/{nr}.schreibzugriffe.test.ts: klopft die drei Clients ab, dass es bei zwei Schreibaufrufen bleibt und beide auf/issueszeigen. Käme ein dritter dazu, wäre die Empfehlung „nimm ein lesendes Token" still falsch — ohne dass irgendwer einen Fehler sähe. Gegengeprobt: ein künstlicher dritter Aufruf lässt den Test fallen.Geänderte Dateien
README.md— Abschnitt „Welche Rechte der Token braucht" neu gefasstFEATURES.md— 4.2 mit Verweis auf die Aufruftabellensrc/lib/git/meta.ts— Actions im GitHub-Hinweissrc/lib/git/schreibzugriffe.test.ts(neu)So testest du es
git switch feat/10-token-rechteundgit pullgrep -n "getJson\|getJsonSafe\|sendJson" src/lib/git/gitea.ts— jede Zeile muss sich in der Tabelle wiederfindennpm run dev→ Git-Verbindungen → Verbindung hinzufügen, GitHub wählen: der Hinweis unter Access Token nennt jetzt auch ActionsGeprüft:
tscsauber · 269 Unit-Tests grün (vorher 267) ·npm run builddurch.Aufgewendete Zeit: 00:21 (gesamt, beide Abschnitte)
Pull Request: #11
Nach Freigabe:
/issue-freigabe 10🚀 Freigegeben und nach
mainübernommen.77567c0Issue wird geschlossen.