此分支链接到问题(我认为是因为分支名称开头的问题编号),因此当您在该分支上执行合并请求时,它会自动关闭问题。
所以我的问题是-如何通过API做到这一点?我可以创建issue,但在issue API中没有创建相关分支的控件(据我所知)。
这有可能吗?
发布于 2019-04-08 13:38:39
好吧-这可能不是最好的答案,但这是我想出的临时解决方案(在linux bash中):
在cmd_resp
echo $cmd_resp | grep -o -P '(?<=iid":).*(?=,"project_id)'
。通过查找以下内容找到问题ID:iid":<ISSUE-ID>,"project_id
<ISSUE-ID>-some-branch-name
-将问题ID放在分支名称的开头,gitlab会自动建立与该问题的关系。所以-这是一个相当简单的方法,但它感觉不是很完整。我仍然倾向于从这个问题的角度来做这件事。
发布于 2019-04-09 08:01:34
无法通过issues API创建与问题相关的分支。
但是,这与RESTful API的设计方式是一致的。如果要创建分支,则需要向分支API发出POST请求。
POST /projects/:id/repository/branches
正如您已经发现的,GitLab非常擅长自动将问题、MRs和分支链接在一起。对于要链接到问题的分支,只需使用问题ID启动该分支。但是,通常情况下,如果合并请求链接到问题就足够了。在我看来,您不应该真正关心分支。您可以稍后通过issue->MR->branch访问分支
只要MR的描述文本链接到问题(例如#1),合并请求就会链接到问题。如果您将问题ID添加到Closes语句,则问题也将在MR解决后关闭。
因此,您可以简单地通过API创建一个分支,任意命名它。然后,根据该问题创建MR,并在MR描述中包括Closes #1
,其中1是您的问题ID。
此外,我建议使用更复杂的REST客户端。您不应该自己解析问题ID。它被正确地设置为JSON响应中的一个字段。
https://stackoverflow.com/questions/55572984
复制