Problème de push

push avec pygit

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

J' essaye de faire un push avec la bibliothèque libgit. J'utilise le binding pygit.

J'ai essayé de nombreux codes mais rien ne fonctionne.

Les erreurs sont 401 pas enregistré, rien => mais pas de modification en ligne.

J'ai vérifié mon dépôt local et les modifications ont été faites.

Je n'ai plus d’idées …

Voici mon code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
## ajoute un fichier
def addFile(request, pk=None):

    repository = get_object_or_404(Repository, pk=pk)

    if request.method == 'POST':
        form = AddFileForm(request.POST, request.FILES)
        if form.is_valid():
            message = form.cleaned_data['comment']
            file = request.FILES['file']
            branch = form.cleaned_data['branch']
            reference = 'refs/heads/master'

            temporary_folder = tempfile.mkdtemp()
            print(temporary_folder)
            cred = pygit2.UserPass('login', 'password')
            repo = pygit2.clone_repository('https://gitlab.com/login/rrrr.git', temporary_folder, bare=False, credentials=cred)

            with open(temporary_folder+'/'+file.name, 'wb+') as file_media:
                file_media.write(file.read())


            index = repo.index
            index.add_all()
            index.write()
            author = pygit2.Signature('admin', 'admin@admin.fr')
            commiter = pygit2.Signature('admin', 'admin@admin.fr')
            tree = index.write_tree()
            oid = repo.create_commit(reference, author, commiter, message,tree,[repo.head.get_object().hex])


            all_refs = repo.listall_references()

            remote = repo.remotes[0]
            remote.credentials = cred
            remote.add_push('refs/heads/master')

            remote.push_url = 'https://login:password@gitlab.com/login/rrrr.git'
            signature = pygit2.Signature('login', 'password')

            #remote.push(all_refs[1], signature, message)
            remote.push_refspecs


    else:
        form = AddFileForm(initial={})

    return render(request, 'repository/addFile.html', {'form': form, 'repository': repository,})
+0 -0
Auteur du sujet

J'ai vérifié l'id et le mot de passe.

J'ai fait un commit manuellement pas de problème de ce coté.

Mon dépôt est prêt à être envoyé sur gitlab mais rien ne se passe.

La fonction push existe ici ou bien encore add_push mais je n'arrive pas à l'utiliser (avec ou sans l'authentification)

+0 -0
Auteur du sujet

J'ai trouvé le problème.

Libgit n'est pas installé correctement. Je suis à la recherche de la dernière version (0.23) pour windows.

Le bug est connu et est résolu dans la dernière version.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte