shiimaxx's blog

最も愛を大切に

GitLabのMergeRequestからChangelogを生成するglchとGitLab Releaseを作成するglr

GitHubにホストしているプロジェクトでは、Changelog生成にghchを、Releaseの作成にはghrを利用しているのですが、同じようなことをGitLabにホストしているプロジェクトでもやりたかったので作りました。どちらもGo実装です。

glch

https://github.com/shiimaxx/glch

GitのタグとGitLabのMerge RequestからChangelogを生成します。ghchがGItのタグとGitHubのPull RequestからChangelogを生成するのでその挙動を参考にしました。

$ glch
## v0.2.0 - 2020-05-09

- Feature 2 shiimaxx/glch-demo!2 from [@shiimaxx](https://gitlab.com/shiimaxx)
- Feature 1 shiimaxx/glch-demo!1 from [@shiimaxx](https://gitlab.com/shiimaxx)


## v0.1.0 - 2020-05-09

- Initial release

最新のタグ以降に更新がある場合は、デフォルトだとUnreleasedセクションに出力します。

$ glch
## Unreleased - 2020-05-09

- Feature 3 shiimaxx/glch-demo!3 from [@shiimaxx](https://gitlab.com/shiimaxx)


## v0.2.0 - 2020-05-09

- Feature 2 shiimaxx/glch-demo!2 from [@shiimaxx](https://gitlab.com/shiimaxx)
- Feature 1 shiimaxx/glch-demo!1 from [@shiimaxx](https://gitlab.com/shiimaxx)


## v0.1.0 - 2020-05-09

- Initial release

-next-versionオプションを使うとUnreleasedの代わりにバージョンを指定できます。

$ glch -next-version v0.3.0
## v0.3.0 - 2020-05-09

- Feature 3 shiimaxx/glch-demo!3 from [@shiimaxx](https://gitlab.com/shiimaxx)


## v0.2.0 - 2020-05-09

- Feature 2 shiimaxx/glch-demo!2 from [@shiimaxx](https://gitlab.com/shiimaxx)
- Feature 1 shiimaxx/glch-demo!1 from [@shiimaxx](https://gitlab.com/shiimaxx)


## v0.1.0 - 2020-05-09

- Initial release

出力するChangelogのフォーマットは、keep a changelogを参考にしたものにしています。

glr

https://github.com/shiimaxx/glr

GitLabのReleaseを作成するCLIツールです。

-uploadオプションでファイルもしくはディレクトリを指定するとReleaseの作成とともにファイルをアップロードできます。

$ glr -upload ./dist v0.1.0
[Created release]
Title: v0.1.0
Release assets:
--> glr_v0.1.0_darwin_amd64.zip: https://gitlab.com/shiimaxx/glr-demo/uploads/.../glr_v0.1.0_darwin_amd64.zip
--> glr_v0.1.0_linux_amd64.tar.gz: https://gitlab.com/shiimaxx/glr-demo/uploads/.../glr_v0.1.0_linux_amd64.tar.gz

アップロードしたファイルはRelease assetsになります。

f:id:shiimaxx:20200509170645p:plain

ローカルのファイルをアップロードする方法とは別に、-asset-nameオプションと-asset-urlオプションを利用して任意の名前とURLでRelease assetsを作成する方法も用意しています。 これによりGitLab CI/CDのBuild artifactsやS3などに置いたファイルをRelease assetsにできます。

参考