writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
managing-github-actions-secretsCreates and updates GitHub Actions secrets for PostHog workflows. Use when adding a new CI secret, rotating an existing secret, wiring a workflow to an API token, package registry credential, deploy key, or any value referenced via `${{ secrets.* }}` in `.github/workflows/`.
Independent GitHub snapshot · Automated classification · Original documentation governs
${{ secrets.* }} in .github/workflows/.PostHog centralizes all GitHub Actions secrets at the organization level and grants individual repositories access to them. Do not add secrets to a single repo, even if the secret is only consumed by one workflow today.
posthog org, not on a repo.gh CLIPipe the secret value into gh secret set with --org posthog. The example
below reads the value from stdin so it never appears in shell history:
# Read from clipboard / a pipe / a file — never inline as an argument
pbpaste | gh secret set POSTHOGOS_PACKAGER_KEY --org posthog
Common variants:
# From a file
gh secret set POSTHOGOS_PACKAGER_KEY --org posthog < secret.txt
# Restrict to selected repositories at creation time
gh secret set POSTHOGOS_PACKAGER_KEY --org posthog \
--visibility selected --repos PostHog/posthog,PostHog/posthog-foss
# Update which repos can access an existing org secret
gh secret set POSTHOGOS_PACKAGER_KEY --org posthog \
--visibility selected --repos PostHog/posthog
Verify:
gh secret list --org posthog | grep POSTHOGOS_PACKAGER_KEY
POSTHOGOS_PACKAGER_KEY).gh secret set NAME without --org posthog — that creates a
repo-level secret on whatever repo gh is currently pointed at.Settings → Secrets and variables → Actions on an
individual repo to add a secret. If a repo-level secret already exists for
something that should be org-level, migrate it (create at org, grant to the
repo, then delete the repo-level copy).Default answer: at the org level via gh secret set --org posthog, granted
to the specific repos that need it. Only deviate if the user explicitly
overrides this (e.g. for an environment-scoped secret on a deployment
environment, which is a different mechanism).