Repository navigation
Document harper deploy setup=true provider=github-actions, and how a workflow uses a trust policy - #722
Conversation
…a workflow uses a trust policy - commands.md: a GitHub Actions deploys (OIDC) section for the new setup provider: what it checks and creates, that it only creates, its names, and how to revoke; `setup=true` mentions it - authentication.md: a "Using it in a workflow" subsection that says plainly that nothing in a workflow names the policy, and every `harper` command in a job authenticates through it when four conditions hold, with a one-job excerpt - operations.md and the CI guide point at both, and the guide notes the setup command suits branch-triggered workflows, not its tag-triggered ones - 5.4 release notes: the new setup Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… looked up, and what the workflow check refuses Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the pre-push review: - the CI guide's :::tip closing marker sat on the paragraph's last line, so the admonition never closed; it now has a line of its own - "every harper command authenticates" now says each may do only what the policy's user's role allows, and the guide notes setup's role lacks the get_deployment the manual role adds - condition 4 lists every credential that outranks the exchange, and links the precedence order - commands.md says a missing workflow file leaves the whole check unverified, that a concurrent writer can still overwrite the policy, and what to do when setting the variable fails; every page names the role setup creates Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…say a rerun sets the variable again Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the documentation across several files to introduce and explain the new GitHub Actions OIDC deployment setup (harper deploy setup=true provider=github-actions) added in version 5.4.0. The review feedback highlights multiple instances where the component is incorrectly used within running prose or mid-sentence, advising the use of plain text instead to maintain consistent formatting.
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
…ge for headings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
…turns - commands.md: the role `harper deploy setup=true provider=github-actions` creates now also allows registration_info (HarperFast/harper#3127). - deploying-from-ci.mdx and operations.md: the hand-written deploy role and policy scope list it too, since `harper deploy` checks the version with it first and an allowlist that omits it logs a denial on every deploy. - operations.md: registration_info returns only `{ version, deprecated }` (since v5.0.0), not registration status, RAM or license details. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….4 note - operations.md: `get_fingerprint` no longer points at registration_info, which returns only the version. - operations-api-commands.md: registration_info gets the Harper version. - authentication.md: the example deploy role lists registration_info, like the role setup creates. - 5.4 release note: a rerun sets the variable again, and a policy another super user changes just before setup writes it is still overwritten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
Setup defaults to .github/workflows/deploy.yaml, create-harper's name, while the CI guide and the operations examples use deploy.yml. A missing default file is only reported as unverified, so setup could still pin deploy.yaml and leave a deploy.yml workflow's token unable to match. The reference now says so next to the command, with a workflow= example. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
…eckout rule Follows HarperFast/harper#3127's review changes: setup leaves a HARPER_CLI_TARGET that already names another cluster, requires a job in the environment to grant `id-token: write`, and checks the local workflow only when the checkout is the repository the policy is for. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Setup takes the checkout's repository from GITHUB_REPOSITORY before the origin remote, so the checkout rule now says both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
Setup never writes a policy that already exists, so another super user's disable can't be overwritten; only a policy with the same id created in the moment before setup writes it can be (HarperFast/harper#3127). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
…hub-actions # Conflicts: # reference/cli/operations-api-commands.md # reference/operations-api/operations.md
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-722 This preview will update automatically when you push new commits. |
🧹 Preview CleanupThe preview deployment for this PR has been removed. |
⊙ Problem
HarperFast/harper#3127 adds
harper deploy setup=true provider=github-actions, and nothing documents it. The docs also don't make plain how a workflow uses a trust policy once one exists. And they sayregistration_inforeturns registration details it hasn't returned since v5.0.0.❓ Your call: is a "Using it in a workflow" section the right fix?
You asked that it be easy to see that every
harpercommand in a set-up job authenticates by itself. It is one subsection that the operations reference and the CI guide link to, rather than the same text on each page.💡 Solution
harper deploy, or any other command, authenticates by itself, with a one-job example.registration_info, and its entry says it returns only the version.⚖️ Alternatives
❓ Your call: should every deploy role list
registration_info?harper deploychecks the version with it first. Without it the deploy still works, but the cluster logs a refused operation on every run. The cost is a deprecated operation in the guide's role and the policy examples.🔧 Changes
reference/cli/commands.md: the GitHub Actions deploys (OIDC) section. It covers the default workflow name andworkflow=, the repository lookup, the workflow check, the create-only variable, the policy-write race and recovery when the variable isn't set. Thesetup=trueparameter mentions it.reference/cli/authentication.md: the one-command setup, "Using it in a workflow", and an example role that listsregistration_info.reference/operations-api/operations.md: the OIDC section points at both.registration_infois corrected.reference/cli/operations-api-commands.md:registration_infogets the Harper version.learn/developers/deploying-from-ci.mdx: the same pointer, the tip, and the role.release-notes/v5-lincoln/5.4.md: the new setup.✅ Verification
npm run format:checkandnpm run buildpass.bin/deploySetupGithubActions.tson Set up GitHub Actions deploys withharper deploy setup=true provider=github-actionsharper#3127's branch. "Using it in a workflow" ran end to end there, with a mock OIDC issuer (see that PR).registration_info's response was checked inresources/registrationDeprecated.tsatv5.0.0andv5.3.2.Depends-on: HarperFast/harper#3127
🤖 Generated with Claude Code
Related PRs: #713 overlaps, #728 overlaps (merged; its
get_fingerprintandset_licensewording was kept when mergingmain), 1 other independentComplexity: easy
Review-Coverage: authored=claude; ran=gemini,cursor-composer,codex,cursor-muse; adjudicated=domain; declined=cursor-grok,cursor-kimi; rounds=6; full=2 @ 0c85d28
Review-Attention: skim ~2m (decisions: setup-role-omits-get-deployment, document-policy-write-race, setup-branch-only-scope) @ 0c85d28