Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

pygit2 does not respect a global setting of safe.directory='*'

Aperta
#1,156 7 commenti 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
git, python
Ambito
security, tooling

Direzione di ricerca

Inizia con la riproduzione pura di pygit2 usando pygit2.Repository e confrontala con l’output globale di Config mostrato per safe.directory=*. Esamina il controllo della proprietà del repository in pygit2 1.10.0 e verifica il comportamento rispetto a Git 2.36.1. Il lavoro è completato quando un’impostazione globale con carattere jolly per safe.directory consente di aprire il repository riprodotto senza l’errore di proprietà.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

We are currently working with dvc for multiple projects and the dvc exp run leads to a pygit2 exception on a azure machine learning instance. This leads to problems since folders on mounted drives in azure belong to user root whilst the working user is azureuser The exception looks like following:

_pygit2.GitError: /mnt/batch/tasks/shared/LS_root/mounts/clusters/<XXX>/.git/: repository path '/mnt/batch/tasks/shared/LS_root/mounts/clusters/<XXX>' is not owned by current user

A workaround for this problem should be setting the git safe.directory to ='*'.
But unfortunately this does not work with dvc resp. pygit2.

I narrowed the problem down and was able to reproduce it with pure pygit2.
Since it seems to be a pygit2 problem, I am opening the issue directly here.
FYI @efiop, @skshetry, @dmpetrov

My git config looks as follows:

user.email=<XXX>
user.name=<XXX>
safe.directory=*

With my normal git (git version 2.36.1) everything works great with the wildcard *. But pygit2 seems to ignore this config.

import pygit2
repo = pygit2.Repository(pygit2.discover_repository('.'))
GitError: /mnt/batch/tasks/shared/LS_root/mounts/clusters/<XXX>/.git: repository path '/mnt/batch/tasks/shared/LS_root/mounts/clusters/<XXX>/' is not owned by current user

But the config seems to be loaded:

import pygit2
config = pygit2.Config()
for x in config.get_global_config():
    print(x.name + ":" + x.value)
user.email:<XXX>
user.name:<XXX>
safe.directory:*

Used Versions: pygit2 1.10.0

Any help would be really appreciated, since we can't run experiments anymore.

Lingua principale
Python
Stelle
1.7k
Fork
408
Merge medio
2g 57m
PR unite (30g)
7

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di libgit2/pygit2

Tutte le issue di libgit2/pygit2

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.