Pygit2 cannot parse URLs with OAuth tokens.
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 408
- Merge moyen
- 2 j 57 min
- PR mergées (30 j)
- 7
Description
I'm trying to use pygit2 to clone a GitHub repo using OAuth tokens.
This actually works well from the command line, as explained on GitHub's blog here.
So, I do:
from pygit2 import clone_repository
oauth_token = 'somesuperlongtokengivenbygithub'
repo = clone_repository(
'https://'+oauth_token+'@github.com/openwrt/luci',
'/tmp/repos',
bare=True
)
and I get back:
00:04:42 _pygit2.GitError: Unsupported URL protocol
Traceback (most recent call last):
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/rq/worker.py", line 558, in perform_job
rv = job.perform()
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/rq/job.py", line 495, in perform
self._result = self.func(*self.args, **self.kwargs)
File "/home/ubuntu/repo/etincelle/routes.py", line 41, in clone_all_repos
clone(repo, _app, token)
File "/home/ubuntu/repo/etincelle/routes.py", line 25, in clone
clone_repository(oauth_url, git_id_repo, bare=True)
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/pygit2/__init__.py", line 293, in clone_repository
check_error(err)
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/pygit2/errors.py", line 64, in check_error
raise GitError(message)
_pygit2.GitError: Unsupported URL protocol
Traceback (most recent call last):
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/rq/worker.py", line 558, in perform_job
rv = job.perform()
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/rq/job.py", line 495, in perform
self._result = self.func(*self.args, **self.kwargs)
File "/home/ubuntu/repo/etincelle/routes.py", line 41, in clone_all_repos
clone(repo, _app, token)
File "/home/ubuntu/repo/etincelle/routes.py", line 25, in clone
clone_repository(oauth_url, git_id_repo, bare=True)
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/pygit2/__init__.py", line 293, in clone_repository
check_error(err)
File "/home/ubuntu/.venv/etincelle/lib/python3.4/site-packages/pygit2/errors.py", line 64, in check_error
raise GitError(message)
_pygit2.GitError: Unsupported URL protocol
Guide de contribution
Ouvrir 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.
Piste de recherche
Commencez par l’appel à clone_repository présenté dans pygit2/init.py et examinez comment l’URL atteint la vérification des erreurs dans errors.py. Reproduisez le cas de l’URL avec un jeton OAuth, comparez-le au comportement en ligne de commande décrit dans l’issue et déterminez quel traitement existant des URL ou de l’authentification s’applique. Le travail est terminé lorsque clone_repository accepte l’URL de jeton GitHub documentée sans lever Unsupported URL protocol.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- git, python
- Domaine
- authentication, backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100