fj secret / fj variable are repo-only: no --org scope for shared CI credentials #127
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
fj secretandfj variableoperate on repo-scoped Actions secrets andvariables only. There is no
--org <name>(or user-level) scope, so a team thatshares CI credentials across many repos via Forgejo's org-level Actions secrets
cannot manage them with fj at all.
gh secret set --org/gh variable set --orgare the standard tool for this.Evidence
Every secret/variable API call is hard-wired to the repo path
(
src/api/workflow_secrets.rs):list_variables/set_variable/delete_variable(same file) are identical.The CLI args carry only
RepoFlagand offer no scope selector(
src/cli/workflow_secret.rs:29-61), andvar/secretshare those same argsvia
workflow_variable.rs. Forgejo exposes the org surface at/orgs/{org}/actions/secretsand/orgs/{org}/actions/variables(mirroring therepo endpoints fj already calls), so the gap is purely on the fj side.
Why it matters for CI/automation buyers
Org-level secrets are how teams avoid copy-pasting the same
REGISTRY_TOKEN/DEPLOY_KEYinto 30 repos. The provisioning script for a new org is:Today none of that is expressible; the only escape hatch is hand-rolled
fj api -X PUT /orgs/acme/actions/secrets/REGISTRY_TOKEN ..., which alsore-exposes the
--inputstdin gap (rasterstate/fj#126).Proposed shape
fj secretandfj variable:--org <name>(and consider--userfor user-level secrets, which Forgejoalso supports). Default remains repo scope inferred from the remote.
/orgs/{org}/actions/...path when--orgis set; the request/responseshapes match the repo endpoints already implemented.
Scope
Adds a scope dimension to existing commands; no new verbs, no new auth. The
table/JSON rendering is unchanged.
Converted to backlog item rasterstate/fj#137 (p3, size M).