The gihub.ref description is confusing and incorrect, particularly for PRs

Aperta
#43,055 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github-actions
Ambito
documentation

Direzione di ricerca

Inizia dall'articolo sul contesto GitHub di GitHub Actions all'URL docs.github.com collegata, quindi confronta la descrizione di github.ref con la documentazione degli eventi collegata. Chiarisci il comportamento per ogni evento elencato e ristruttura il paragrafo in casi di facile lettura; il lavoro è completato quando la descrizione è accurata e non ambigua.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

content github_actions never-stale
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 by pull_request that were not merged, this is the pull request merge branch. If the pull request was merged, this is the head branch. For workflows triggered by release, 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 is refs/heads/<branch_name>. For pull requests events except pull_request_target that were not merged, it is refs/pull/<pr_number>/merge. pull_request_target events have the ref from the base branch. For tags it is refs/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:

  1. pull_request events with a closed activity type that were merged: github.ref = refs/heads/<head_branch>
  2. All other pull_request events: github.ref = refs/pull/<pr_number>/merge
  3. All pull_request_target events (potentially excluding merged events): github.ref = refs/heads/<base_branch>
  4. issue_comment, pull_request_review and pull_request_review_comment (and potentially merged pull_request_target) events: github.ref = refs/pull/<pr_number>/merge

Problems to highlight:

  1. It's unclear whether "pull requests events except pull_request_target that were not merged" includes merged pull_request_target events. My tests suggest it doesn't; merged pull_request_target events show refs/heads/main, not refs/pull/<pr_number>/merge. What is this line trying to say?
  2. On a merged pull_request event, my tests show <base_branch>, not <head_branch>. There is a mistake in the description.
  3. For pull_request_target events, regardless of PR direction (main -> test or test -> main), my tests show refs/heads/main. Is it always the repo default, not the PR base?
  4. My tests show issue_comment events use refs/heads/main (regardless of PR direction), not refs/pull/<pr_number>/merge. Are these events not part of the PR logic? Does it always use the repo default?
  5. If we're being picky, there's a case to be made that "workflows triggered by pull_request that were not merged" means "closed and 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_target events: refs/heads/<default_branch>
  • Merged pull_request events: refs/heads/<base_branch>
  • All other pull_request events, and all pull_request_review and pull_request_review_comment events: refs/pull/<pr_number>/merge
  • issue_comment events: refs/heads/<default_branch>
Additional information

No response

Lingua principale
TypeScript
Stelle
20.9k
Fork
68.8k
Merge medio
13h 43m
PR unite (30g)
110

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/docs

Tutte le issue di github/docs

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.