🕶️
Semantic Versioning に従って git の tag を作成し、 push してくれるツール gittag を作った
バージョンの管理が面倒な理由
- github などの remote の最新バージョンが何なのか毎回調べるのが大変
-
git ls-remote --tags
で remote の最新のタグを確認出来るが、 Semantic Versioning でソートして最新のバージョンを探すのが大変
-
- ローカルで作成して、 push するときに計2回バージョンタグを間違えないように入力しないといけない
gittag
- Go で簡単なツールを作って解決してみた
gittag は何をやってくれるか
-
git ls-remote --tags
でタグ一覧を取得 - Semantic Versioning に適合するタグをソートして最新のタグを検索
- 次のバージョンをユーザーに提案し、選択してもらう
- ユーザーが選んだバージョンでタグを作成し、リモートに push する
gittag は簡単に使える
go install github.com/kazz187/gittag@latest
- 実行したいレポジトリで
gittag
と打つだけ - 他にも便利なオプションがあるので詳しくは README を参照してみてほしい
今回使って便利だったパッケージを簡単に紹介
- github.com/Masterminds/semver/v3
- Semantic Versioning ライブラリ
- github.com/go-git/go-git/v5
- Go 上で git を操作できるライブラリ (ファイルもメモリも)
- github.com/rivo/tview
- Interactive な Terminal UI ライブラリ
- gopkg.in/alecthomas/kingpin.v2
- cli 作成ライブラリ
Next action
- Windows のディレクトリサポート (
c:\
とか) - ssh key ではなく github token を使った git 操作
- 作成した tag で Github Deployment を作成してくれるオプションの追加
- PR 歓迎
Discussion