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
The Process-PSModule caller workflow structure is explicitly agreed before canonical guides, templates, or consumer repositories change. The inventory and candidate YAML provide evidence for the decision; they do not establish the standard by themselves.
Use GITHUB_TOKEN for repository-local, non-user-facing checkout and Pages operations. Use scoped GitHub App tokens when the built-in boundary is insufficient and for all user-facing comments, labels, statuses, releases, and cleanup.
Fork behavior
No caller condition. Plan classifies fork PRs as restricted read-only validation and denies privileged capabilities.
Centralizes execution policy while preserving safe fork build, lint, and test coverage.
Credentials
Explicitly map PSGALLERY_API_KEY, SHELLY_CLIENT_ID, and SHELLY_PRIVATE_KEY; optionally map TestData JSON for module-local tests.
This is the v8 producer contract, avoids unrelated inheritance, and preserves the four observed test-data callers.
Optional surface
Permit only optional TestData under secrets.
Every other field matches the canonical template exactly.
Structural decisions to approve
Contract scope: require the complete canonical Process-PSModule.yml; repository-owned automation uses separate workflow files.
Trigger ownership: which of manual dispatch, schedule, default-branch push, and pull-request events belong in every caller.
Pull-request activities: whether all of closed, opened, reopened, synchronize, labeled, and unlabeled are mandatory.
Concurrency: use workflow plus PR number or full github.ref; set cancel-in-progress to ${{ github.event_name == 'pull_request' }}.
Permissions: default deny globally; grant the caller job contents: read, pages: write, and id-token: write; use scoped GitHub App tokens for user-facing interactions and operations beyond the built-in token boundary.
Fork behavior: keep the caller unconditional; let Plan authorize restricted fork validation while denying App tokens, publication, deployment, cleanup, and mutations.
Credentials: require the three explicit v8 mappings; allow optional TestData JSON with separate secrets and variables maps; do not use secrets: inherit.
Optional surface:TestData is the only permitted variation from the canonical template.
Identity: final file, workflow, and job names used for discovery and stable checks.
Scope
Inventory every default-branch workflow that calls PSModule/Process-PSModule/.github/workflows/workflow.yml.
Record workflow identity, triggers, concurrency, permissions, reference, inputs, secrets, and extra jobs.
Compare the evidence with the v8 producer contract.
Record each approved structural decision and its rationale.
Update canonical documentation only after the checklist above is resolved.
Non-goals
Do not modify caller workflows across the fleet in this task.
Do not treat the candidate YAML as approved merely because it appears in documentation or a draft PR.
Do not start the rollout campaign until this issue records the agreed structure.
Acceptance criteria
The complete current repository list and workflow metadata are documented.
GitHub and local-checkout inventory refresh paths are tested.
Every structural decision above has an explicit outcome.
Required elements and optional variations use the approved outcomes rather than inferred commonality.
Canonical guides and templates are updated only after approval.
Outcome
The Process-PSModule caller workflow structure is explicitly agreed before canonical guides, templates, or consumer repositories change. The inventory and candidate YAML provide evidence for the decision; they do not establish the standard by themselves.
Evidence
docs/content/reference/process-workflow-fleet-standard.mdin PR ⚙️ [Maintenance]: Process-PSModule caller fleets can be audited consistently #515.@v8; external automation remains full-SHA pinned.Recommendations for review
These are recommendations, not decisions. The checklist below remains the approval record.
Process-PSModule.closed,opened,reopened,synchronize,labeled, andunlabeled.unlabeledis needed so label removal is evaluated instead of leaving stale release intent.permissions: {}; caller job grantscontents: read,pages: write, andid-token: write.GITHUB_TOKENfor repository-local, non-user-facing checkout and Pages operations. Use scoped GitHub App tokens when the built-in boundary is insufficient and for all user-facing comments, labels, statuses, releases, and cleanup.Planclassifies fork PRs as restricted read-only validation and denies privileged capabilities.PSGALLERY_API_KEY,SHELLY_CLIENT_ID, andSHELLY_PRIVATE_KEY; optionally mapTestDataJSON for module-local tests.TestDataundersecrets.Structural decisions to approve
Process-PSModule.yml; repository-owned automation uses separate workflow files.closed,opened,reopened,synchronize,labeled, andunlabeledare mandatory.github.ref; setcancel-in-progressto${{ github.event_name == 'pull_request' }}.contents: read,pages: write, andid-token: write; use scoped GitHub App tokens for user-facing interactions and operations beyond the built-in token boundary.Planauthorize restricted fork validation while denying App tokens, publication, deployment, cleanup, and mutations.TestDataJSON with separatesecretsandvariablesmaps; do not usesecrets: inherit.TestDatais the only permitted variation from the canonical template.Scope
PSModule/Process-PSModule/.github/workflows/workflow.yml.Non-goals
Acceptance criteria