🍣

GitHub の tag や release の asserts に何が入っいるか

2024/08/03に公開

GitHub の tag

  • GitHub の tag を作ると、下記のように一覧で asserts が確認できる。圧縮ファイルですね

  • これらの asserts に何が入っているか興味を持っていて確認してみた

前提知識

先に検証結果

  • main ブランチ(の commit)のみではなく、main 以外のブランチ(の commit)に対しても tag を作成できる
  • tag を作成する時に commit を指定(指定しない場合はデフォルトで現在のブランチの head になる)するので、指定した commit の祖先 commit 群と自身を含めたデータをすべて圧縮して GihHub 上の asserts を作成する
    • ある commit の祖先 commit は誰か、tag -> commit -> branch という順番で依存関係がある
  • なので、tag の asserts に入っているのは 該当 commit とその祖先 commit のデータとなる

検証過程

初期で main ブランチのみ

  • tag を打つと:v1.0.0
  • GitHub の asserts
    • この状態で main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている

dog ブランチを作成 & tag を作成

  • wanwan.txt を追加してコミットする
  • この状態で tag を作成 & push
git tag v1.dog.0
git push origin v1.dog.0
  • GitHub の asserts
    • 追加した wanwan.txt ファイルが入っている
    • 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている

cat ブランチを作成 & tag を作成

  • kitty.txt を追加してコミットする
  • この状態で tag を作成 & push
git tag v1.cat.0
git push origin v1.cat.0
  • GitHub の asserts
    • kitty.txt ファイルが入っている
    • 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている

cat ブランチを main ブランチへマージ & tag を作成

  • cat ブランチを main ブランチへマージする
  • main ブランチの最新の状態で tag を作成 & push
git tag v1.0.1
git push origin v1.0.1
  • GitHub の asserts
    • 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイル
    • kitty.txt ファイルが入っている(v1.0.0 との差分である)

全体イメージ

  • 生成した git graph

- 生成した GitHub Tags(と中身)

参考資料:

松の風

Discussion