2017-08-01 114 views
2

我想为我的jenkins工作使用python,此工作下载并刷新项目中的一行然后提交并创建一个拉请求,我正在阅读GitPython的文档,作为尽我所能,但我的下级大脑无法从中发现任何意义。如何在GitPython中创建Git合并请求

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]') 

犯这种变化我想push这一变化,并创建一个branch='banana-refresh'pull requestbranch='banana-integration'

+0

我不知道GitPython,但你可以* *在命令行中做到这一点:https://git-scm.com/docs/git-request-pull。我想GitPython只是一个包装。 – SwiftsNamesake

回答

1

看起来好像拉请求尚未被此库包装。您可以按照the documentation直接拨打git command line

repo.git.pull_request(...)

+0

我无法在文档中找到此命令,您能否更具体地讨论一些参数,例如feature_branch和target_branch会在何处去? – Shek

+0

该命令在GitPython中不受支持。您需要弄清楚如何使用Git CLI(第一个链接)和您的参数运行命令。然后将其转换为GitPython直接调用(第二个链接) – Milk