Hub: `ハブリリース`で注釈付きのgitタグをサポートする

作成日 2019年08月29日  ·  4コメント  ·  ソース: github/hub

hub release create [TAG]に参照されたタグと同じメッセージを使用させることは可能ですか? すでにタグを追加しているときに、エディターを開いてメッセージを追加したくありません。

タグメッセージをロードしてhub release create -m $tag-messageを使用するサブスクリプトを作成できると思いますが、この機能がすでに存在していて見つからなかった可能性はありますか?

feature

最も参考になるコメント

注釈付きのgitタグの件名と本文を再利用してGitHubリリースをプログラムで作成するには:

git for-each-ref --format="%(subject)%0a%0a%(body)" refs/tags/<TAG> | \
  hub release create -F- <TAG>

これは、タグがすでにリモートにプッシュされていることを前提としています。 これをリリースプロセスに組み込むことができます。

これは扱いにくいことに同意します。 ハブが注釈付きタグをより適切にサポートする方法を探るために、この問題をToDoアイテムとして開いたままにしておきます。 提案ありがとうございます!

全てのコメント4件

こんにちはあなたの提案をありがとう! 明確にするために:注釈付きのgitタグについて話しているのですか?提案されたフローは、 hub release create TAGがエディターを開かずに注釈付きタグのタイトルとメッセージを再利用するというものですか?

ハブが代わりにテキストエディタのコンテンツにgitタグからのメッセージを事前入力するが、 --no-editなどのフラグを渡さない限り、テキストエディタを開くという考えを受け入れますか? 私がこれを提案する理由は、 hub release createがテキストエディタを開くこともあれば、開かないこともあるので混乱するだろうと思うからです。

はい、注釈付きのgitタグです。 ご存知かもしれませんが、Githubリリースは注釈付きタグを生成しません(また、生成するオプションも提供しません)。 注釈付きタグを使用するには、手動でタグを付けます。

プロセスの最後に、タグのタイトル/メッセージをコピーして貼り付け、Githubリリースを手動で開き、最近プッシュされた注釈付きタグに基づいて新しいリリースを作成する必要があります。 タグのタイトル/メッセージを含むリリース機能の可能性があると、このプロセスを自動化するのに役立ちます。 同じ問題を抱えている人がウェブの周りにもっといます。

ハブが代わりにテキストエディタのコンテンツにgitタグからのメッセージを事前入力するが、 --no-editなどのフラグを渡さない限り、テキストエディタを開くという考えを受け入れますか?

そのとおり。 私はUXの懸念を完全に理解しており、同意します。一貫性を保つ必要があります。 ただし、私のユースケースでは、 --no-editのみを使用し、ハブを手動で呼び出す場合にのみエディターを使用する可能性があります。

ps:コンテキストとして、私は現在、作成したbin/releaseスクリプトを実行します。このスクリプトは、過去のコミットに基づいてリリースノートを作成し、それをメッセージとして(とりわけ)注釈付きタグを作成します。 hubが注釈付きタグを作成した場合、おそらくgit tagの部分を完全にバイパスして、$ hubスタンドアロンで使用します。

注釈付きのgitタグの件名と本文を再利用してGitHubリリースをプログラムで作成するには:

git for-each-ref --format="%(subject)%0a%0a%(body)" refs/tags/<TAG> | \
  hub release create -F- <TAG>

これは、タグがすでにリモートにプッシュされていることを前提としています。 これをリリースプロセスに組み込むことができます。

これは扱いにくいことに同意します。 ハブが注釈付きタグをより適切にサポートする方法を探るために、この問題をToDoアイテムとして開いたままにしておきます。 提案ありがとうございます!

リストに別の選択肢を追加したいだけです

これはgit tag --listを利用します。 例えば:

TAG=${GITHUB_REF##*/} # in case you use it in github action

git tag --list ${TAG} --format='%(contents:subject)%0a%0a%(contents:body)' | hub release create --draft -F- ${TAG}

タグが署名されている場合にPGPSIGNATUREが出力されないように、 %(subject)%0a%0a%(body)を使用する代わりに、 %(contents:subject)%0a%0a%(contents:body)と記述する方がよいことに注意してください。 この動作はgit for-each-refにも見られます。

このページは役に立ちましたか?
0 / 5 - 0 評価