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 8c163f1
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/workflows/collect.yml
+14-1Lines changed: 14 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,13 @@ name: collect
25
25
# `client_ref` is OPTIONAL insurance for a caller stuck on the old API version, and for
26
26
# display. It is not the correlation mechanism.
27
27
#
28
+
# AND IT IS PUBLIC. It becomes the run name and the artifact name, both of which an
29
+
# anonymous caller can read on a public repository. Everything this file does to keep the
30
+
# topic out of those names is undone by a caller who puts the subject in the reference -
31
+
# `layoff-plan-q3` fits the permitted shape perfectly. Treat it as an opaque job id.
32
+
# The input description says so at the point of entry, which is the only place a
33
+
# dispatcher is actually looking.
34
+
#
28
35
# THE TOPIC IS NOT IN THE RUN NAME OR THE ARTIFACT NAME
29
36
#
30
37
# An artifact listing and a run listing are readable by an ANONYMOUS caller on a public
@@ -65,7 +72,7 @@ on:
65
72
type: choice
66
73
options: [probe, quick, normal]
67
74
client_ref:
68
-
description: 'Optional caller reference for display and retries: [A-Za-z0-9][A-Za-z0-9._-]{0,63}. Correlation does not need it - pin X-GitHub-Api-Version and read workflow_run_id.'
75
+
description: 'PUBLIC on a public repository - it becomes the run name and the artifact name. Use an opaque id (job-0417), never the subject. Optional: correlation does not need it - pin X-GitHub-Api-Version and read workflow_run_id. Shape [A-Za-z0-9][A-Za-z0-9._-]{0,63}.'
69
76
required: false
70
77
default: ''
71
78
runner:
@@ -135,6 +142,12 @@ jobs:
135
142
console.error("Refused rather than rewritten: a sanitised token means you poll for a reference the artifact does not carry.");
136
143
process.exit(1);
137
144
}
145
+
// A WARNING, not a refusal. Whether a reference discloses a subject is a
146
+
// judgement about meaning, and a regex that tried to make it would refuse
147
+
// honest ids and pass `layoff-plan-q3` anyway - it fits the shape perfectly.
148
+
// What this can do is make sure nobody can say they were not told, on the run
149
+
// that used it, where they will see it.
150
+
console.log(`::warning::client_ref "${value}" is PUBLIC: it is this run's name and the artifact's name, both readable by anyone who can read this repository. If it names the subject, that subject is disclosed.`);
0 commit comments