コンテンツにスキップ

Update Release Badge(signage-server)

What:新規リリース時に Gist の release.json を更新(Shields.io のエンドポイント用)
Whenreleasecreated, published
Outputs:Gist 更新(バッジに反映)
Permissions:既定(API は PAT で実施)
Concurrency:なし
SecretsGH_PAT(Gist への PATCH 用;gist スコープ)

定義(workflow)

  • ファイル.github/workflows/update-release-badge.yaml
  • nameUpdate Release Badge
  • jobsbadgeubuntu-latest
    if 条件${{ !github.event.release.prerelease }}(プレリリースを除外)

Steps

1) タグ決定id: vars):
release イベント:${{ github.event.release.tag_name }}
それ以外:${GITHUB_REF#refs/tags/}TAGGITHUB_OUTPUT

2) JSON 生成id: badge):jq で、以下を badge.json に出力

{ "schemaVersion": 1, "label": "release", "message": "<TAG>", "color": "blue" }

3) Gist 更新curl -X PATCH

  • URLhttps://api.github.com/gists/${GIST_ID}
  • HeaderAuthorization: Bearer $GH_PAT
  • Payload{ "files": { "release.json": { "content": "<badge.json の文字列>" } } }jq -Rs でファイル内容を文字列化)

Note

  • GIST_ID は固定値(ワークフロー内で環境変数に設定)。
  • 既存 Gist を上書きするため、公開範囲/権限の管理に注意。
  • プレリリースは無視(安定版のみバッジ更新)。