2017-08-01 111 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