2017-08-01 1 views
2

J'essaie d'utiliser python pour mon travail jenkins, ce travail télécharge et actualise une ligne dans le projet puis valide et crée une demande de traction, j'essaie de lire la documentation pour GitPython comme dur comme je peux mais mon cerveau inférieur n'est pas capable de faire aucun sens hors de lui.Comment créer une requête Pull Git dans GitPython

import git 
import os 
import os.path as osp 


path = "banana-post/infrastructure/" 
repo = git.Repo.clone_from('https://github.myproject.git', 
          osp.join('/Users/monkeyman/PycharmProjects/projectfolder/', 'monkey-post'), branch='banana-refresh') 
os.chdir(path) 

latest_banana = '123456' 
input_file_name = "banana.yml" 
output_file_name = "banana.yml" 
with open(input_file_name, 'r') as f_in, open(output_file_name, 'w') as f_out: 
    for line in f_in: 
     if line.startswith("banana_version:"): 
      f_out.write("banana_version: {}".format(latest_banana)) 
      f_out.write("\n") 
     else: 
      f_out.write(line) 
os.remove("deploy.yml") 
os.rename("deploy1.yml", "banana.yml") 
files = repo.git.diff(None, name_only=True) 
for f in files.split('\n'): 
    repo.git.add(f) 
repo.git.commit('-m', 'This an Auto banana Refresh, contact [email protected]', 
       author='[email protected]') 

Après avoir commis ce changement, je suis en train de push ce changement et créer un pull requestbranch='banana-refresh'-branch='banana-integration'.

+0

Je ne sais pas GitPython, mais vous * peut * le faire à partir de la ligne de commande: https://git-scm.com/docs/git-request-pull. J'imagine que GitPython est simplement un emballage autour de ça. – SwiftsNamesake

Répondre

1

Il semble que les demandes d'extraction n'ont pas été encapsulées par cette bibliothèque.

Vous pouvez appeler le git command line directement selon the documentation.

repo.git.pull_request(...)

+0

Je ne trouve pas cette commande dans la documentation, pouvez-vous être un peu plus précis sur les arguments tels que l'emplacement de feature_branch et de target_branch? – Shek

+0

La commande n'est pas supportée dans GitPython. Vous devez comprendre comment exécuter la commande en utilisant le Git CLI (premier lien) avec vos paramètres. Et puis convertir cela en un appel direct GitPython (deuxième lien) – Milk