Pygit2 cannot parse URLs with OAuth tokens.
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 408
- Merge medio
- 2 d 57 min
- PR fusionados (30 d)
- 7
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza con la llamada a clone_repository mostrada en pygit2/init.py e inspecciona cómo llega la URL a la comprobación de errores en errors.py. Reproduce el caso de la URL con token OAuth, compáralo con el comportamiento de la línea de comandos descrito en el issue y determina qué manejo existente de URL o autenticación se aplica. Se considera terminado cuando clone_repository acepta la URL de token de GitHub documentada sin generar Unsupported URL protocol.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- git, python
- Área
- authentication, backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100