agentleFS
ethosagentethosagent/ethos/skills/github/github-repo-management/SKILL.md

github-repo-management

Skill22 starsChanged 8 days agoMITView on GitHub

Repository administration — clone, create, fork and sync, settings, branch protection, secrets, releases, GitHub Actions workflows, and gists. Uses gh CLI exclusively.

  • Reads credentials
  • Commits and pushes

18 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use touchdesigner-mcp, webhook-subscriptions and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • john-data-chenSkill

    touchdesigner-mcp

    Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.

    Also in 7 projects that use this

  • Tommy-ywSkill

    webhook-subscriptions

    Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.

    Also in 4 projects that use this

  • Tommy-ywSkill

    songwriting-and-ai-music

    Songwriting craft, AI music generation prompts (Suno focus), parody/adaptation techniques, phonetic tricks, and lessons learned. These are tools and ideas, not rules. Break any of them when the art calls for it.

    Also in 8 projects that use this

  • john-data-chenSkill

    teams-meeting-pipeline

    Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.

    Also in 6 projects that use this

  • mae616Skill

    p5js

    p5.js(クリエイティブコーディング)のProcessing由来「コードでスケッチ」思想を軸に、setup/drawループ・座標系・インタラクション・パフォーマンス最適化を整理する。p5.js、Processing、クリエイティブコーディング、ジェネラティブアート、インタラクティブ表現、ビジュアルプログラミング、Canvas描画、パーティクル、フラクタル、ノイズ表現に関する相談で必ず使うこと。ユーザーが「コードでアート」「動くビジュアル」「インタラクティブな描画」と言った場合にも適用する。

    Also in 8 projects that use this

  • AsharibAliSkill

    pretext

    DOM-free multiline text measurement and layout using @chenglou/pretext. Use when the user needs text height calculation, virtualized list row sizing, canvas/SVG text rendering, rich-text inline flow, or any scenario involving text layout without DOM reflow.

    Also in 7 projects that use this

  • +3 more from Tommy-yw

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 0 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If gh is not installed, stop and point the user to cli.github.com.

    line 52
  2. Very specific:

    Use gh secret set exclusively.

    line 145
  3. Very specific:

    Hard rule: never echo, log, or print secret values.

    line 166
  4. Very specific:

    Never store secrets via raw API calls: Use gh secret set exclusively — it handles encryption.

    line 225
  5. Very specific:

    Verify: gh auth status should print "Logged in to github.com as ...".

    line 234

“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

GitHub Repository Management

Repository administration — clone, create, fork, settings, branch protection, secrets, releases, Actions, and gists. Uses gh CLI exclusively.

When to use this skill

  • User wants to create, clone, or fork a repository.
  • User needs to configure repo settings, branch protection, or secrets.
  • User wants to cut a release, manage GitHub Actions, or create gists.

When NOT to use this skill

  • Code changes or PR workflow — use github-pr-workflow instead.
  • Issue management — use github-issues instead.
  • Code review — use github-code-review instead.

Preflight

gh auth status          # must succeed
gh --version            # confirm gh >= 2.x

If gh is not installed, stop and point the user to cli.github.com.

Clone / Create / Fork+Sync

# Clone
gh repo clone owner/repo                               # HTTPS default
gh repo clone owner/repo -- --depth 1                  # shallow clone for large repos

# Create
gh repo create my-project --public --add-readme --clone # new repo + clone locally
gh repo create my-project --private --source . --push   # push existing dir as new repo
gh repo create my-project --template owner/tpl --clone  # from template

# Fork + sync
gh repo fork owner/repo --clone                         # fork and clone locally
gh repo sync owner/my-fork --source owner/repo          # sync fork with upstream

gh repo sync fast-forwards your default branch to match upstream. If branches have diverged, it refuses — merge or rebase manually.

Repository settings

gh repo edit --description "A fast widget library"
gh repo edit --add-topic "typescript" --remove-topic "javascript"
gh repo edit --visibility private
gh repo edit --default-branch develop
gh repo edit --enable-issues=false --enable-wiki=false
gh repo edit --enable-squash-merge=true --enable-rebase-merge=false
gh repo edit --delete-branch-on-merge=true

# View current settings
gh repo view --json name,description,visibility,defaultBranchRef,isPrivate,hasIssuesEnabled

Branch protection

Branch protection requires gh api because gh repo edit does not cover protection rules.

Set required reviews + status checks

gh api repos/{owner}/{repo}/branches/main/protection \
  --method PUT \
  --input - <<'EOF'
{
  "required_status_checks": {
    "strict": true,
    "contexts": ["ci/build", "ci/test"]
  },
  "enforce_admins": true,
  "required_pull_request_reviews": {
    "required_approving_review_count": 1,
    "dismiss_stale_reviews": true,
    "require_code_owner_reviews": false
  },
  "restrictions": null
}
EOF

Key fields in the JSON payload:

FieldPurpose
required_status_checks.strictRequire branch to be up-to-date before merging
required_status_checks.contextsList of required CI check names
enforce_adminsApply rules to repo admins too
required_approving_review_countMinimum number of approvals
dismiss_stale_reviewsDismiss approvals when new commits are pushed
restrictionsLimit who can push (null = no restriction)

View current protection

gh api repos/{owner}/{repo}/branches/main/protection --jq '{
  status_checks: .required_status_checks.contexts,
  reviews: .required_pull_request_reviews.required_approving_review_count,
  enforce_admins: .enforce_admins.enabled
}'

Remove protection

gh api repos/{owner}/{repo}/branches/main/protection --method DELETE

Warning: removing protection is destructive. Confirm with the user first.

Secrets

Use gh secret set exclusively. Do NOT use raw curl with PyNaCl encryption — gh handles the encryption transparently.

# Set from value / file / env var
gh secret set API_KEY --body "sk-abc123"
gh secret set DEPLOY_KEY < ~/.ssh/deploy_key
printenv DATABASE_URL | gh secret set DATABASE_URL

# Environment-scoped secrets
gh secret set API_KEY --env production --body "sk-prod-abc123"

# List and delete (names only — values are never exposed)
gh secret list
gh secret list --env production
gh secret delete API_KEY

# Organization secrets
gh secret set ORG_TOKEN --org my-org --visibility all --body "token"
gh secret set ORG_TOKEN --org my-org --visibility selected --repos "repo1,repo2" --body "token"

Hard rule: never echo, log, or print secret values. gh secret list shows names and timestamps only — that is by design.

Releases

# Create
gh release create v1.2.0 --title "v1.2.0" --notes "Bug fixes and performance."
gh release create v1.2.0 --generate-notes                         # auto-notes from merged PRs
gh release create v2.0.0-beta.1 --prerelease --title "Beta 1"     # pre-release
gh release create v1.3.0 --draft --title "v1.3.0" --notes "WIP"   # draft (not published)
gh release create v1.2.0 ./dist/*.tar.gz --generate-notes          # with assets

# List / view / edit / delete
gh release list
gh release view v1.2.0 --json tagName,publishedAt,assets
gh release edit v1.2.0 --title "v1.2.0 (patched)" --notes "Updated."
gh release delete v1.2.0 --yes

GitHub Actions

# Workflows
gh workflow list
gh workflow view build.yml
gh workflow run build.yml                                        # trigger dispatch
gh workflow run deploy.yml --field environment=production         # with inputs
gh workflow run build.yml --ref feature-branch                   # on a branch

# Runs — monitor, inspect, retry
gh run list --limit 10
gh run list --workflow build.yml
gh run view 12345                          # summary
gh run view 12345 --log-failed             # failed step logs only
gh run watch 12345                         # real-time tail
gh run rerun 12345 --failed                # re-run failed jobs only
gh run cancel 12345
gh run download 12345 --name my-artifact --dir ./artifacts

Gists

# Create
gh gist create script.py --public --desc "Utility script"
gh gist create file1.py file2.py --desc "Related scripts"   # multi-file
echo '{"key": "value"}' | gh gist create --filename config.json  # from stdin

# List / view / edit / delete
gh gist list --limit 20
gh gist view <gist-id>
gh gist view <gist-id> --raw                    # raw content
gh gist edit <gist-id> --add new.py             # add a file
gh gist clone <gist-id>
gh gist delete <gist-id>

Hard rules

  • Never store secrets via raw API calls. Use gh secret set exclusively — it handles encryption.
  • Never log or echo secret values. gh secret list shows names only; that is by design.
  • Confirm before destructive operations — deleting repos, removing branch protection, deleting releases.
  • Never change visibility from private to public without explicit user confirmation. This exposes all history.

Setup the user needs to do once

  1. Install gh: per cli.github.com.
  2. Authenticate: gh auth login. Follow the browser flow.
  3. Verify: gh auth status should print "Logged in to github.com as ...".

Adapted from NousResearch/hermes-agent (MIT)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.