Python 은 Gitlab API 를 사용 하여 일괄 병합 지점 을 만 드 는 방법

이 글 은 Python 이 Gitlab API 를 어떻게 사용 하여 대량의 합병 지점 을 실현 하 는 지 를 소개 하 였 으 며,예시 코드 를 통 해 매우 상세 하 게 소개 하 였 으 며,여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 므 로 필요 한 분 들 은 참고 하 시기 바 랍 니 다.
1.수요:대량의 온라인 이 완 료 될 때마다 hotfix 를 Master 에 합병 하고 test/uat 에 합병 하 는 등 반복 작업 을 합 니 다(온라인 발표 후 자동 으로 master 가 완료 되 었 습 니 다).
2.현실:발표 후 master 를 자동 으로 합병 한 후 다른 지점 으로 합병 하 는 것 을 잊 은 프로젝트 인원 이 있 을 수 있 습 니 다.so

#!/usr/bin/python3
#coding=utf-8
#       dev       ,       merge  
import sys
import datetime
import urllib.request
import gitlab


#      ID 
project_name = "python-jmmei"
project_list=[265]

#   gitlab  
gitlab_url = 'http://gitlab.baidu.com'
token = 'xxxxxxxxxxxx'
old_branch="hotfix"
new_branches=["test","uat","uat_match"]
#    
gl = gitlab.Gitlab(gitlab_url, token)


for project_id in project_list:
  project = gl.projects.get(project_id)
  print(project.id)
  for proj in new_branches:
    print("      :%s %s   %s  "%(project_name,old_branch,proj))
    # mr       
    mr = None
    try:
      #   mr
      mr = project.mergerequests.create({'source_branch': old_branch,
                      'target_branch': proj,
                      'title': "%s to %s ---"%(old_branch,proj) + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                     })
    
      #       
      url = "%s/api/v3/projects/%s/merge_request/%s/merge"%(gitlab_url,project.id, mr.id)
      headers = {
        "PRIVATE-TOKEN":token
      }
      req = urllib.request.Request(url=url,headers=headers,method="PUT")
      resp = urllib.request.urlopen(req)
      # print(resp)
      print("     %s  ,  ...\r
"%(proj)) except Exception as e: print(" , %s , :\r
"%(old_branch)) print(e) # mr #v4 project.mergerequests.delete(mr.id) mr.delete()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기