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()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.