You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 02d7c6f
Browse filesBrowse the repository at this point in the historyBrowse files
Use Actions approval for artifact publication (#31)
## Summary
* rely on GitHub Actions approval for external contributors instead of
workflow-file equality
* retain trusted publisher validation for run identity, artifacts, job
completion, and write destinations
* reuse PR eligibility during archival to avoid a duplicate API request
## Validation
* `npm run build`
* `git diff --check`
Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/README.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,7 +110,6 @@ The preview URL then returns 404.
110
110
* Each of the 36 measurement jobs runs all three strategies sequentially with a fresh server process for each. Retrying a job repeats its three strategies.
111
111
* Preview builds run independently of benchmarks. Draft PRs have no preview.
112
112
* Production uses published history. Previews include matching pending results when available.
113
-
* Benchmark trigger, workload, and preview workflow YAML must match `main` before publishers accept their artifacts.
114
113
* Merge requires `Benchmark Policy`, `Benchmark Status`, an up-to-date branch, and squash merging. Required PR review count is zero. Preview and publication success do not block merge.
115
114
116
115
Publication calls Pages after a main push or a data change. Pages also runs for
@@ -122,11 +121,11 @@ Benchmark checks ignore unrelated labels and title or body edits.
122
121
123
122
## Security
124
123
125
-
*Outside contributors require **Approve and run**. Collaborators run automatically. Allowing preview execution also permits serving its JavaScript to visitors.
124
+
*GitHub Actions must use **Require approval for all external contributors**. **Approve and run** authorizes pending benchmark archival and serving preview JavaScript from that revision. Collaborators run automatically.
126
125
* PR jobs use read-only repository permissions. The separate `workflow_run` publishers execute `main` code with their own tokens.
127
126
* Benchmark Publication uses `contents: write` and `statuses: write`. It commits to `data` as `github-actions[bot]` and restricts write paths in code.
128
127
* Pages handles PR metadata with `pull_request_target` and executes only `main` code.
129
128
* Pages uses `pages: write` and `id-token: write`. Configure Pages for GitHub Actions and restrict the `github-pages` environment to `main`.
130
-
* Publishers validate PR artifacts as untrusted input. They do not execute artifact scripts or restore PR caches. Workflow matching cannot prove measurements are genuine.
129
+
* Publishers validate PR artifacts as untrusted input. Validation and successful job topology do not prove measurements are genuine. Publishers do not execute artifact scripts or restore PR caches.
131
130
* PRs can change workflows and check scripts. Inspect those changes before allowing execution or merging. Self-hosted runners must be disposable and isolated from credentials and sensitive networks.
132
131
* Preview JavaScript shares production's origin and browser storage. Separate-origin hosting is required for browser isolation.
0 commit comments