How to specify that headers must be regenerated.
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- github, python
- Domaine
- api, authentication
Piste de recherche
Commencez par retracer comment les requêtes GhApi atteignent l'appel de niveau inférieur plutôt que GhApi.call, en utilisant la sous-classe présentée et IatManager.headers() comme points d'entrée. Déterminez où les en-têtes de requête sont assemblés et s'ils peuvent être actualisés pour chaque requête ; le travail est terminé lorsqu'une application GitHub exécutée sur une longue durée peut utiliser des en-têtes de jeton d'accès d'installation nouvellement générés sans recréer manuellement GhApi.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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?
- Langage dominant
- Python
- Étoiles
- 687
- Forks
- 69
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de AnswerDotAI/ghapi
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
AnswerDotAI/ghapi#158 ·
-
Small fix needed to enable GHESOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
AnswerDotAI/ghapi#120 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 58/100
AnswerDotAI/ghapi#208 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
AnswerDotAI/ghapi#201 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
AnswerDotAI/ghapi#186 ·
Toutes les issues de AnswerDotAI/ghapi
Issues similaires
-
intake mcp-intake needs-ac needs-human-review priority:medium
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Ikalus1988/MisakaNet#3848 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
521xueweihan/HelloGitHub#4105 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
igormcsouza/bookloud#54 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
aws-samples/sample-per-model-bedrock#526 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
ok-oldking/ok-wuthering-waves#1802 ·
Les mainteneurs répondent en général sous 2 jours