” Gitlab_mr_release”以使用GitLab创建版本MR


gitlab_mr_release

这是一个用于在使用git flow开发时从合并的MergeRequest发布MergeRequest的瑰宝

  • https://github.com/sue445/gitlab_mr_release
  • https://rubygems.org/gems/gitlab_mr_release

GitHub有git-pr-release,但是GitLab没有,所以我做到了

参见下面的git-pr-release

  • 推荐git-pr-release --ninjinkun的日记
  • Hatena博客团队和GitHub的开发流程(第二部分)。 GitHub Kaigi 2014-公共密钥

如何使用

创建配置文件

首先,使用gitlab_mr_release init

创建配置文件

1
2
3
$ gitlab_mr_release init
      create  .env.gitlab
      create  gitlab_mr_release.md.erb

创建发布合并请求

gitlab_mr_release create基于--source--target

之间接受的MergeRequest创建要发布的MergeRequest

1
$ gitlab_mr_release create --source=develop --target=master

20151115222734.png

关于配置文件

.env.gitlab

以下设置可用于

.env.gitlab

.env.gitlab

1
2
3
4
5
6
7
8
GITLAB_API_ENDPOINT=http://example.com/api/v3
GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX
GITLAB_PROJECT_NAME=group/name
TEMPLATE_FILE=gitlab_mr_release.md.erb
DEFAULT_TITLE=Release <%= Time.now %> <%= source_branch %> -> <%= target_branch %>
DEFAULT_SOURCE_BRANCH=develop
DEFAULT_TARGET_BRANCH=master
DEFAULT_LABELS=release

可以从两个位置读取此配置文件,当前目录(.env.gitlab)和主目录(~/.env.gitlab),因此,如果您不想像GITLAB_API_PRIVATE_TOKEN最好将其设置为

周围的

1
export GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX

也许可以

gitlab_mr_release.md.erb

gitlab_mr_release.md.erb

1
2
3
4
# MergeRequests
<% merge_requests.each do |mr| %>
* [ ] !<%= mr.iid %> <%= mr.title %> @<%= mr.author.username %>
<% end %>

这是创建合并请求时的描述模板。由于它是erb,因此可以使用each循环。

merge_requests是在gitlab_mr_release create运行时在--source--target之间接受的MergeRequest的数组。

请参见下面的

mr中可以引用的元素。 https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/merge_requests.md#get-single-mr

参数说明

如果没有参数传递给

gitlab_mr_release create,将从.env.gitlab~/.env.gitlab中读取。

优先级如下。 (优先级越高,优先级越高)

  • gitlab_mr_release create的参数

  • 当前目录中的.env.gitlab

  • ~/.env.gitlab
    • --sourceDEFAULT_SOURCE_BRANCH(其中之一是必需的)

      • 释放MR合并源分支(例如develop)
    • --targetDEFAULT_TARGET_BRANCH(两个都必须)

      • 释放MR合并目标分支(例如master)
    • --titleDEFAULT_TITLE

      • 合并请求标题
      • DEFAULT_TITLE可以用erb编写。

      • 如果两者都不存在,则默认值为"发布:时间戳:源-