How to specify that headers must be regenerated.
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- github, python
- Bereich
- api, authentication
Rechercherichtung
Beginnen Sie damit nachzuverfolgen, wie GhApi-Anfragen den untergeordneten Aufruf statt GhApi.call erreichen, und verwenden Sie dabei die gezeigte Subklasse und IatManager.headers() als Einstiegspunkte. Ermitteln Sie, wo die Request-Header zusammengestellt werden und ob sie für jede Anfrage aktualisiert werden können; als erledigt gilt dies, wenn eine langlebige GitHub-App neu generierte Installation-Access-Token-Header ohne manuelle Neuerstellung von GhApi verwenden kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I've have a GitHub app which uses a jwt that can expire. Ultimately, I generate an installation access token that can also expire and I am trying to use ghapi with that installation access token.
I was hoping that I could subclass GhApi.__call__ to dynamically generate my access token, but this does not seem to work.
jwtm = JwtManager(app_id, private_key)
iatm = IatManager(jwtm)
token = iatm.token(installation_id)
gh_host = baseurl()
class GhApi(ghapi_all.GhApi):
def __call__(self, path, verb=None, headers=None, route=None, query=None, data=None):
headers = headers or {}
headers.update(iatm.headers(installation_id))
super().__call__(path, verb, headers, route, query, data)
api = GhApi(
owner=owner,
repo=repo,
token=token,
debug=debug,
limit_cb=limit_cb,
gh_host=gh_host,
)
IatManager.headers() will generate a new jwt token whenever it is expired and then will use this to generate an access token for the specified installation id. The headers it generates look like this:
In [5]: iatm.headers(2)
Out[5]:
{'Authorization': 'token ghs_randomstuffhere',
'Accept': 'application/vnd.github.v3+json'}
The reason that this did not work is that ultimately GhApi.__call__ is not what was called. Rather it was some lower level thing. Any suggestion on how I can use ghapi for a long-running GitHub app where the headers need to be dynamically updated in time?
- Vorherrschende Sprache
- Python
- Sterne
- 687
- Forks
- 69
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
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 AnswerDotAI/ghapi
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
AnswerDotAI/ghapi#158 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
AnswerDotAI/ghapi#120 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 58/100
AnswerDotAI/ghapi#208 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
AnswerDotAI/ghapi#201 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
AnswerDotAI/ghapi#186 ·
Alle Issues in AnswerDotAI/ghapi
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
pytest-dev/pyfakefs#1367 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
IFEvalG exclude_word_harder misses the keyword next to punctuation, at the start or end of the text, and in other letter caseEvtl. vergeben @damienen hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
allenai/open-instruct#2151 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feat(plan): support convertorLabels and convertorAffinity in Plan resourceEvtl. vergeben @AmenB hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
RedHatQE/openshift-python-wrapper#2849 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 25 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
libnativeapi/nativeapi#21 ·