Add first party support for Github App
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 30/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- github, go
- Bereich
- api, authentication
Rechercherichtung
Beginnen Sie mit der Überprüfung von github.Client, AppServiceCreateInstallationToken und ChecksService sowie der drei im Issue verlinkten Authentifizierungsabläufe von GitHub. Definieren Sie die erforderliche First-Party-Unterstützung für App-, Installations- und Benutzeranmeldedaten, einschließlich der sicheren Wiederverwendung und Aktualisierung kurzlebiger Tokens über mehrere API-Aufrufe hinweg.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Many of the apis requires to be invoked as Github App, eg. https://docs.github.com/en/rest/checks/runs?apiVersion=2022-11-28. And currently we need to use third-party packages like ghinstallation to do so.
However, this is not the full story. When creating a Github App, it involves many different kinds of creds:
And we need to use different cred to call different APIs. For now, the only way to do so is to create many different github.Clients, each holding a different credential.
And we need to do this with extra care, as all these token are short-lived, and need to be cached/refreshed periodically. Which means, blindly creating those clients will cause lots of rate limiting issues.
For instance, to use github.ChecksService, we need:
- Auth as Github App itself by creating a JWT with app's private key, to call
github.AppServiceCreateInstallationToken - Once we have the token, we can auth as app installation, then calling
github.ChecksService
Which requires 2 github.Clients in total.
- Vorherrschende Sprache
- Go
- Sterne
- 11.3k
- Forks
- 2.6k
- Ø Merge
- 2 T. 2 Std.
- Gemergte PRs (30 T.)
- 34
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus google/go-github
-
Rate-limit retry replays a consumed request body for POST/PUT/PATCHEvtl. vergeben @AdamMagued hat das vor 4 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
google/go-github#4656 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
otel: redact sensitive query parameters before recording http.urlEvtl. vergeben @sai5880 hat das vor 4 Tagen übernommen. Offen
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 55/100
Maintainer antworten meist innerhalb von 1 Tag
-
Error() methods modify the request URL of the response they wrapEvtl. vergeben @AdamMagued hat das vor 5 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 30/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 5/100
google/go-github#4636 · 11 Kommentare · 3 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
http.Client.Timeout is ignored by redirect-aware requestsEvtl. vergeben @sb123sb123 hat das vor 34 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in google/go-github
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
blinklabs-io/dingo#5636 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
JetBrains/youtrack-cli#130 ·
Maintainer antworten meist innerhalb von 1 Tag
-
kind/bug needs-triage sig/release
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
kubernetes/kubernetes#143392 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 61/100
Maintainer antworten meist innerhalb von 1 Tag
-
stage-fail
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
siyuan-note/bazaar#2405 ·
Maintainer antworten meist innerhalb von 1 Tag