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