gitlab_mr_release (0.1.0): Release MergeRequest generator for GitLab https://t.co/rRcImQNmkB
— RubyGems (@rubygems) 2015, 11月 15
gitlab_mr_releaseについて
git flowで開発してる時にマージ済のMergeRequestからいい感じにリリース用のMergeRequestを作るためのgemです
GitHubだと git-pr-release があるのですが、GitLabだとそういうのがなかったので作りました
git-pr-release については下記を参照
使い方
設定ファイル作成
まず gitlab_mr_release init
で設定ファイルを作成します
$ gitlab_mr_release init create .env.gitlab create gitlab_mr_release.md.erb
リリースMergeRequestを作成
gitlab_mr_release create
で --source
と --target
の間にあるアクセプトされたMergeRequestを元にリリース用のMergeRequestを作成します
$ gitlab_mr_release create --source=develop --target=master
設定ファイルについて
.env.gitlab
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
この設定ファイルはカレントディレクトリ(.env.gitlab
)とhomeディレクトリ(~/.env.gitlab
)の2ヶ所から読みこむことができるので、GITLAB_API_PRIVATE_TOKEN
のようにリポジトリにコミットしたくないものは ~/.env.gitlab
に設定しておくとよいです
~/.bash_profile
あたりで
export GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX
していてもたぶん大丈夫
gitlab_mr_release.md.erb
# MergeRequests <% merge_requests.each do |mr| %> * [ ] !<%= mr.iid %> <%= mr.title %> @<%= mr.author.username %> <% end %>
MergeRequestを作成する時のdescriptionのテンプレートです。erbなのでeachでループを回したりできます。
merge_requests
は create
実行時の --source
と --target
の間にあるアクセプトされたMergeRequestの配列です。
mr
で参照できる要素は下記参照。
https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/merge_requests.md#get-single-mr