github-repo-settings
GitHub repo settings via `gh`: labels, merge methods, branch deletion, Pages.
Skill by leroyguillaume
Chalk Labs
Need help deploying github-repo-settings?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leroyguillaume-github-repo-settings
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/github-repo-settings
What's inside
- Skill name
github-repo-settings- Description
- GitHub repo settings via `gh`: labels, merge methods, branch deletion, Pages. TRIGGER when: user asks to sync labels with `.github/release.yaml`, change merge methods, toggle head-branch deletion, or enable GitHub Pages; a repo gains an `actions/deploy-pages` workflow; a Pages deploy fails because Pages is off. SKIP when: editing workflows or release-note categories (`github-actions-conventions`).
- License
- MIT
- Instructions
- 153 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# GitHub repository settings (`gh` CLI)
Administer GitHub repo settings from the CLI. All commands use `gh`, so the repo
is inferred from the current directory's `origin` remote unless `--repo` is given.
## Sync labels to `.github/release.yaml`
`.github/release.yaml` only governs **PR labels** — the changelog generator reads
the labels on merged PRs, nothing else. So it is **not** the full set of labels a
repo should have. Two distinct purposes coexist:
- **Issue-triage labels** (`bug`, `enhancement`, `question`, `help wanted`, …):
classify *reported* problems/requests, whether or not the repo cuts releases.
They legitimately exist even when absent from `release.yaml`. **Do not delete
them just because the changelog config doesn't reference them.**
- **PR / changelog labels** (`feature`, `fix`, `chore`, `dependencies`, …):
classify the *change shipped*. These category labels are what `release.yaml`
maps to categories. Area and ecosystem labels (`rust`, …) stay out of it and
never select a category (see `github-pr-conventions`).
**Without `release.yaml`, none are created**: nothing reads them (see
`github-pr-conventions`), so the sync below does not apply. The labels
Dependabot creates for its own PRs are its config's business (see the notes).
The same concept often has both: `bug` (issue) ↔ `fix` (PR), `enhancement` (issue)
↔ `feature` (PR). Inside one changelog category, listing both members of such a
pair is a duplicate — pick one (the PR-side label) and drop the other from
`release.yaml`; but keep the issue-side label alive on the repo. That is also
what `github-pr-conventions` assumes when it labels a PR: `fix`/`feature` by
default, `bug`/`enhancement` only where a repo still maps them.
The `"*"` catch-all in `release.yaml` is a wildcard, **not** a real label — never
create it.
Procedure:
1. Read `.github/release.yaml`, collect every concrete label it maps (drop `"*"`).
These must all exist on the repo.
2. List current labels: `gh label list --limit 100`.
3. Create any release.yaml label that's missing. Add any repo label missing from
release.yaml into the right category (or `exclude`) **if it's a category
label**; leave issue-triage and area/ecosystem labels out of `release.yaml`
but keep them on the repo.
4. Only delete a label when the user actually wants it gone — never purely because
it's absent from `release.yaml`.
The block below is a superset: keep `breaking`, the issue-triage labels, and
only the category and exclude labels the repo's `release.yaml` maps (see the
notes after it).
```bash
gh label create feature --description "New feature" --color 0e8a16 --force
gh label create fix --description "Bug fix" --color d73a4a --force
gh label create chore --description "Maintenance / housekeeping" --color fef2c0 --force
gh label create dependencies --description "Dependency updates" --color 0366d6 --force
gh label create documentation --description "Documentation only" --color 0075ca --force
gh label create breaking --description "Backwards-incompatible change" --color b60205 --force
gh label create security --description "Security fix" --color b60205 --force
gh label create deprecation --description "Deprecates a feature, removed in a later release" --color fbca04 --force
gh label create performance --description "Performance improvement" --color 5319e7 --force
# the exclude label, only when release.yaml has an `exclude.labels` entry
gh label create ignore-for-release --description "Exclude from release changelog" --color ededed --force
# issue-triage labels stay even though release.yaml never maps them
gh label create bug --description "Something isn't working" --color d73a4a --force
gh label create enhancement --description "New feature or request" --color a2eeef --force
gh label list --limit 100 # verify
```
Notes:
- **`breaking` is always created alongside `release.yaml`.** If the file has
no *Breaking changes* category, add one — as the **first** category, since
GitHub files a PR under the first match and a breaking PR also carries its
`feature`/`fix` label (see `github-actions-conventions` for the baseline file).
- Otherwise, only create the category labels the repo's `release.yaml` actually
maps; the exclude label only makes sense alongside an `exclude.labels` entry.
- **Leave the ecosystem labels to Dependabot**, and create the ones a
`labels` setting names (`dependency-update-conventions`); creating your own
variant gives the repo two labels for one concept.
- `gh label create --force` upserts, so it is safe to re-run.
- Deleting a label removes it from every issue/PR it is on and **cannot be
undone** — it is destructive. Absence from `release.yaml` is **not** a reason to
delete; only do it when the user explicitly wants the label gone, and confirm
the delete list first.
- Leave GitHub's default `bug` / `enhancement` colours and descriptions as-is
unless asked to unify them with the new labels.
## Restrict merge methods to squash-only
```bash
gh repo edit --enable-squash-merge --enable-merge-commit=false --enable-rebase-merge=false
gh repo view --json mergeCommitAllowed,squashMergeAllowed,rebaseMergeAllowed # verify
```
Expected verification output:
```json
{"mergeCommitAllowed":false,"rebaseMergeAllowed":false,"squashMergeAllowed":true}
```
This greys out the "Create a merge commit" and "Rebase and merge" buttons on
PRs, leaving squash as the only option. Adjust the flags to allow other methods
(e.g. `--enable-rebase-merge` to add rebase back).
## Auto-delete head branches on merge
```bash
gh repo edit --delete-branch-on-merge
gh repo view --json deleteBranchOnMerge # verify -> {"deleteBranchOnMerge":true}
```
Once on, merging a PR deletes its head branch automatically (the branch is still
recoverable from the PR's "Restore branch" button for a while). Pass
`--delete-branch-on-merge=false` to turn it back off.
## Enable GitHub Pages in GitHub Actions mode
Any repo with a workflow that runs `actions/deploy-pages` (the `docs` pipeline
of `github-actions-conventions`) needs Pages switched on with **source "GitHub
Actions"** (`build_type: workflow`), never "Deploy from a branch" (`legacy`).From leroyguillaume/claude, MIT.
More from leroyguillaume/claude
- 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
architecture-conventions
leroyguillaume
ARCHITECTURE.md: the system as it stands, in the present tense.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
dependency-update-conventions
leroyguillaume
Dependabot and Renovate configuration and their PRs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
diagram-conventions
leroyguillaume
Diagrams in committed files: format and diagram type.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
docker-conventions
leroyguillaume
Dockerfiles: base images, multi-stage builds, non-root USER, hadolint and Trivy.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
documentation-conventions
leroyguillaume
Docs a human can maintain: one home per fact, links not copies.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-conventions
leroyguillaume
Frontend code: TypeScript, React, Biome, mobile-first.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
github-actions-conventions
leroyguillaume
GitHub Actions mechanics: workflows, pinned actions, SARIF, release notes, Releases, Pages.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Oct 2, 2026 (28 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/leroyguillaume/claude
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from leroyguillaume
- 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
architecture-conventions
leroyguillaume
ARCHITECTURE.md: the system as it stands, in the present tense.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get github-repo-settings running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
github-repo-settings skill. Agent Mart. https://agentmart.dev/skills/leroyguillaume-github-repo-settings (last updated 2026-10-24)