ops-secret-sync

Solid

Detects and syncs Doppler→GitHub secrets drift. Compares last-updated timestamps between Doppler and GH repo secrets; flags stale GH secrets (>24h behind Doppler); confirms with user before writing any changes. Safe to run in CI or locally.

AI & Automation 20 stars 6 forks Updated today MIT

Install

View on GitHub

Quality Score: 84/100

Stars 20%
44
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# OPS ► SECRET-SYNC Detect GitHub secrets that are stale relative to Doppler. Confirm before syncing. ## CLI/API Reference | Command | Purpose | | -------------------------------------------------------------------- | ------------------------------------ | | `gh secret list --repo <owner/repo> --json name,updatedAt` | List GH repo secrets with timestamps | | `doppler secrets --project <proj> --config <env> --json` | List Doppler secrets with metadata | | `doppler secrets get <NAME> --project <proj> --config <env> --plain` | Fetch raw value for sync | | `gh secret set <NAME> --repo <owner/repo>` | Write secret to GH (reads stdin) | --- ## Phase 1 — Resolve arguments Parse `$ARGUMENTS`: - `--repo <owner/repo>` → target GitHub repo (required unless registry provides default) - `--project <proj>` → Doppler project name (required) - `--config <env>` → Doppler config/environment, e.g. `prd`, `stg` (default: `prd`) - `--dry-run` → report drift only, never write If `--repo` is missing, load `${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/registry.json` and let the user pick via `AskUserQuestion` (max 4 at a time). If `--project` is missing, run: ```bash doppler projects --json 2>/dev/null | jq -r '.[].slug' ``` and let the user pick via `AskUserQuestion` (max 4 at a time). --- ## Phase 2 — F...

Details

Author
Lifecycle-Innovations-Limited
Repository
Lifecycle-Innovations-Limited/claude-ops
Created
3 months ago
Last Updated
today
Language
Shell
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category