The gihub.ref description is confusing and incorrect, particularly for PRs
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 68/100
- issue の種類
- ドキュメント
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- github-actions
調査の方向性
リンク先の docs.github.com URL にある GitHub Actions の GitHub コンテキストに関する記事から始め、github.ref の説明をリンク先のイベントドキュメントと比較します。一覧にある各イベントの動作を明確にし、段落を読みやすいケースに再構成します。説明が正確で曖昧さのないものになれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Code of Conduct
- I have read and agree to the GitHub Docs project's Code of Conduct
What article on docs.github.com is affected?
https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#github-context
What part(s) of the article would you like to see updated?
The description for github.ref is confusing, misleading and incorrect, particularly for PR events.
The fully-formed ref of the branch or tag that triggered the workflow run. For workflows triggered by
push, this is the branch or tag ref that was pushed. For workflows triggered bypull_requestthat were not merged, this is the pull request merge branch. If the pull request was merged, this is the head branch. For workflows triggered byrelease, this is the release tag created. For other triggers, this is the branch or tag ref that triggered the workflow run. This is only set if a branch or tag is available for the event type. The ref given is fully-formed, meaning that for branches the format isrefs/heads/<branch_name>. For pull requests events exceptpull_request_targetthat were not merged, it isrefs/pull/<pr_number>/merge.pull_request_targetevents have thereffrom the base branch. For tags it isrefs/tags/<tag_name>. For example,refs/heads/feature-branch-1.
Firstly, it's quite hard to follow the different branching logic of that parapgrah. Can this be formatted better, e.g. with nested bullet points?
Secondly, particularly for PR events, the logic is quite unclear, and incorrect in some places. The description mentions
pull requests events
but doesn't define them what these are. Is it the following subset of triggers?
Assuming this is the case, my understanding of the logic is as follows:
pull_requestevents with aclosedactivity type that were merged:github.ref=refs/heads/<head_branch>- All other
pull_requestevents:github.ref=refs/pull/<pr_number>/merge - All
pull_request_targetevents (potentially excluding merged events):github.ref=refs/heads/<base_branch> issue_comment,pull_request_reviewandpull_request_review_comment(and potentially mergedpull_request_target) events:github.ref=refs/pull/<pr_number>/merge
Problems to highlight:
- It's unclear whether "pull requests events except
pull_request_targetthat were not merged" includes mergedpull_request_targetevents. My tests suggest it doesn't; mergedpull_request_targetevents showrefs/heads/main, notrefs/pull/<pr_number>/merge. What is this line trying to say? - On a merged
pull_requestevent, my tests show<base_branch>, not<head_branch>. There is a mistake in the description. - For
pull_request_targetevents, regardless of PR direction (main->testortest->main), my tests showrefs/heads/main. Is it always the repo default, not the PR base? - My tests show
issue_commentevents userefs/heads/main(regardless of PR direction), notrefs/pull/<pr_number>/merge. Are these events not part of the PR logic? Does it always use the repo default? - If we're being picky, there's a case to be made that "workflows triggered by
pull_requestthat were not merged" means "closedand not merged" - meaning other activity types might not be included in the list. This could be worded better
Is the following summary more accurate?
- All
pull_request_targetevents:refs/heads/<default_branch> - Merged
pull_requestevents:refs/heads/<base_branch> - All other
pull_requestevents, and allpull_request_reviewandpull_request_review_commentevents:refs/pull/<pr_number>/merge issue_commentevents:refs/heads/<default_branch>
Additional information
No response
- 主要言語
- TypeScript
- スター
- 20.9k
- フォーク
- 68.8k
- 平均マージ
- 13時間 43分
- マージ済み PR(30日)
- 110
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/docs のほかの issue
-
triage
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
-
localization
難易度 2/5 1〜2日 初心者へのやさしさ 72/100
-
builder persona
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
content localization
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
content localization
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
似ている issue
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
vicharanashala/fln#563 ·