[
https://issues.apache.org/jira/browse/HADOOP-20056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18139799#comment-18139799
]
ASF GitHub Bot commented on HADOOP-20056:
-----------------------------------------
GauthamBanasandra commented on PR #8912:
URL: https://github.com/apache/hadoop/pull/8912#issuecomment-6691627543
Thanks for the thorough review. Changes in 4c63885f8, and the PR description
is updated:
1. Agreed. I spot-checked forks whose legacy check is `action_required`:
their workflow lookup returned 404 or `active`, never `disabled_*`. The
description now says no-run PRs get `neutral`. The post-merge step now expects
a `neutral` "No fork run for this commit" check that links to the guide.
Raising the 404 case with Infra is listed as a follow-up.
2. Set `sweep-size: "50"`. That gives about a one-hour rotation over the
~264 eligible PRs at roughly 1,000 calls per hour.
3. Added `.github/pr-build-check.md` and set `guide-url` to it. It covers
enabling Actions, rebasing onto trunk, what a no-run check means, and how to
rerun, and it reuses the existing enable-button image.
4. I kept the SHA pin. SECURITY.md requires actions to be pinned by commit
SHA, and zizmor reports `fork-ci@fork-ci/v1` as `unpinned-uses` (error). The
Dependabot config from HADOOP-20050 now proposes the bumps, so fixes still
arrive without hand-written bump PRs. Happy to revisit if we relax the policy
for `apache/*` actions.
5. Done, in the `build_and_test.yml` comment and in the guide.
6. Noted in the description as deliberate upstream behaviour, and listed as
something to raise with Infra.
7. Reworded in the workflow comment, `workflow-security.md` and the
description. Leaving out `workflow_run` is now described as our choice, with
the reasons.
8. Noted in the description: the 46 same-repository PRs (45 from Dependabot)
lose the mirrored check and keep their native `Run / ...` checks.
9. Noted in the description.
_🤖 Addressed by [Claude Code](https://claude.com/claude-code)_
> Replace the pull_request_target "Build" check bridge with ASF fork-ci
> ---------------------------------------------------------------------
>
> Key: HADOOP-20056
> URL: https://issues.apache.org/jira/browse/HADOOP-20056
> Project: Hadoop Common
> Issue Type: Bug
> Components: hadoop-common
> Affects Versions: 3.5.0
> Reporter: Gautham Banasandra
> Assignee: Gautham Banasandra
> Priority: Major
> Labels: pull-request-available
> Fix For: 3.5.0
>
>
> ASF Infra disables the {{pull_request_target}} trigger for ASF repositories
> from November 2026 ([ASF GitHub Actions
> policy|https://infra.apache.org/github-actions-policy.html]). ASF
> repositories cannot opt back in.
> Hadoop uses {{pull_request_target}} to put the "Build" check on pull
> requests. Contributors run {{build_and_test.yml}} in their own fork on
> {{push}}, and two upstream workflows mirror that run onto the PR:
> * {{notify_test_workflow.yml}} ({{pull_request_target}}) finds the fork's run
> and creates the "Build" check.
> * {{update_build_status.yml}} (cron, every 15 minutes) updates the check
> until the fork run completes.
> Once the trigger is disabled, PRs lose the "Build" check.
> h3. Proposal
> Replace both workflows with one schedule-driven bridge built on ASF Infra's
> [fork-ci
> action|https://github.com/apache/infrastructure-actions/tree/fork-ci/v1.0.0/fork-ci]
> ({{fork-ci/v1.0.0}}):
> * Add {{.github/workflows/fork_ci_status.yml}}. It is triggered only by
> {{schedule}} (every 10 minutes) and {{workflow_dispatch}}. It has no
> {{pull_request_target}} and no {{workflow_run}} trigger, which SECURITY.md
> disallows and zizmor flags as a dangerous trigger.
> * The job token has only {{actions: read}}, {{checks: write}} and
> {{pull-requests: read}}. The workflow is guarded to {{apache/hadoop}},
> serialized in one concurrency group, and runs on {{ubuntu-slim}} with a
> 10-minute timeout. The action is pinned by commit SHA.
> * fork-ci reads GitHub API metadata only. It never checks out, builds or
> downloads anything from the PR or the fork, and it writes only its own checks.
> * Keep the check name "Build". Mirror PRs against {{trunk}}, the only branch
> that currently has {{build_and_test.yml}}.
> * Add {{workflow_dispatch}} to {{build_and_test.yml}}, as fork-ci requires.
> Contributors can then rerun the build on their PR branch without pushing
> again.
> * Delete {{notify_test_workflow.yml}} and {{update_build_status.yml}} in the
> same change, so two bridges never write "Build" checks at the same time.
> * Update {{.github/workflow-security.md}} to describe the new bridge and the
> {{schedule}} / {{workflow_dispatch}} triggers.
> h3. Behaviour changes for contributors
> * A new PR's "Build" check appears on the next scheduled run, typically
> within 10-20 minutes, instead of right after the PR is opened.
> * If no fork run is found, the check is now "neutral" with setup advice
> instead of "action required". Disabled fork workflows still get "action
> required".
> * On PRs that are open at the cutover, the old "Build" check stops updating,
> and a new "Build" check appears beside it until the next push.
> h3. Out of scope (follow-ups)
> * {{labeler.yml}} and {{notify_cloud_aws.yml}} also use
> {{pull_request_target}} and need their own migration before the cutoff.
> * A "Build (Windows)" check for the planned {{build_and_test_windows.yml}}
> can be added later as a second fork-ci step in the same workflow.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]