J'ai le code suivant où je veux pousser les changements dans ma branche à gerrit en utilisant GitpYthon.Poussez refs/for/master et change-id en utilisant Gitpython
repo_path_new = repo_path+repo_name
repo_obj = Repo(repo_path_new)
os.chdir(repo_path_new)
repo_obj.git.add(A=True)
if commit_command_line(commit_message, repo_obj, repo_name):
repo_obj.git.push("origin", "HEAD:refs/for/master")
Il ajoute et engage le fichier (s), mais quand je veux pousser refs/pour/maître je reçois un problème:
remote: Processing changes: refs: 1, done
remote: ERROR: [0f7c907] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P port
[email protected]:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://url:port/repo-name
! [remote rejected] HEAD -> refs/for/master ([0f7c907] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://url:port/repo-name''
Prenez note que je suis dans le clonée repo. Bien sûr, je peux installer le git hook change-id manuellement dans git bash. Mais comme cela est supposé être fait automatiquement, je veux savoir s'il existe un moyen de le faire via gitpython.
J'ai manuellement cloné le référentiel. Quand j'installe comme vous l'avez dit, cela fonctionne, mais comme ce script sera exécuté dans Go cd (tout comme Jenkins), il n'y a aucun moyen de dire que le hook commit-msg existe. Dans mon code j'appelle là la première option que vous m'avez donnée et elle échoue sur gitdir (ne peut pas le trouver). – user535081
Pouvez-vous configurer go-cd pour qu'il exécute un script bash (avec les commandes d'installation du commit-msg) juste après le clonage du dépôt et avant l'exécution du script gitpython? –