diff --git a/.github/labels.yaml b/.github/labels.yaml deleted file mode 100644 index e6ed382..0000000 --- a/.github/labels.yaml +++ /dev/null @@ -1,44 +0,0 @@ -- name: blocked - color: 'd93f0b' -- name: released - color: 'ededed' -- name: next - color: '5d3fd3' -- name: roadmap - color: '0e8a16' -- name: bug - color: 'd73a4a' -- name: enhancement - color: 'a2eeef' -- name: help wanted - color: '008672' -- name: good first issue - color: '7057ff' -- name: documentation - color: '0075ca' -- name: question - color: 'd876e3' -- name: duplicate - color: 'cfd3d7' -- name: wontfix - color: 'ffffff' -- name: spam - color: 'e4e669' -- name: off topic - color: 'e4e669' -- name: needs triage - color: 'fbca04' -- name: needs investigation - color: 'fbca04' -- name: breaking change - color: 'b60205' -- name: performance - color: 'f9d0c4' -- name: security - color: 'b60205' -- name: refactor - color: 'c5def5' -- name: automation - color: 'bfdadc' -- name: repo-assist - color: 'bfdadc' diff --git a/.github/workflows/active-sync-github-labels.yaml b/.github/workflows/active-sync-github-labels.yaml deleted file mode 100644 index 1d7a0da..0000000 --- a/.github/workflows/active-sync-github-labels.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: ๐Ÿ”„ Sync labels - -on: - schedule: - - cron: '0 0 * * *' # Every day at midnight - - -permissions: - issues: write - -jobs: - sync: - name: Run EndBug/label-sync - runs-on: ubuntu-latest - steps: - - name: ๐Ÿ“‘ Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: ๐Ÿ”„ Sync labels - uses: ./sync-github-labels diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f5fa2c4..21e36a0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -958,24 +958,6 @@ jobs: rm -rf "$okbin" "$badver" "$noskill" "$win" "$badarch" "$oldskill" "$nounzip" - # โ”€โ”€ sync-github-labels โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ - test-sync-github-labels: - if: "${{ !startsWith(github.head_ref, 'release-please--') && !startsWith(github.event.head_commit.message, 'chore(main): release ') }}" - runs-on: ubuntu-latest - permissions: - issues: write - steps: - - name: ๐Ÿ“‘ Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - - name: ๐Ÿงช Run sync-github-labels - uses: ./sync-github-labels - with: - config-file: .github/labels.yaml - delete-other-labels: "false" - # โ”€โ”€ update-agent-skills โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ test-update-agent-skills-noop: if: "${{ !startsWith(github.head_ref, 'release-please--') && !startsWith(github.event.head_commit.message, 'chore(main): release ') }}" @@ -1172,36 +1154,6 @@ jobs: close-comment: "๐Ÿงช Closed by test workflow." github-token: ${{ secrets.GITHUB_TOKEN }} - # โ”€โ”€ sync-github-labels (negative path) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ - test-sync-github-labels-missing-config: - if: "${{ !startsWith(github.head_ref, 'release-please--') && !startsWith(github.event.head_commit.message, 'chore(main): release ') }}" - runs-on: ubuntu-latest - permissions: - issues: write - steps: - - name: ๐Ÿ“‘ Checkout - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - - name: ๐Ÿงช Run sync-github-labels with a missing config file (expected to fail) - id: sync - continue-on-error: true - uses: ./sync-github-labels - with: - config-file: .github/this-config-does-not-exist.yaml - delete-other-labels: "false" - - - name: โœ… Verify step failed as expected - shell: bash - env: - OUTCOME: ${{ steps.sync.outcome }} - run: | - if [[ "$OUTCOME" != "failure" ]]; then - echo "::error::Expected the action to fail on a missing config file, got: $OUTCOME" - exit 1 - fi - # โ”€โ”€ login-to-ghcr (negative path) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ test-login-to-ghcr-empty-token: if: "${{ !startsWith(github.head_ref, 'release-please--') && !startsWith(github.event.head_commit.message, 'chore(main): release ') }}" @@ -2260,14 +2212,12 @@ jobs: - test-setup-ksail-cli - test-retry-script - test-ensure-gh-skill-script - - test-sync-github-labels - test-update-agent-skills-noop - test-update-agent-skills-dry-run - test-update-agent-skills-missing-dir - test-upload-coverage - test-upsert-issue-create - test-upsert-issue-close - - test-sync-github-labels-missing-config - test-login-to-ghcr-empty-token - test-setup-go-toolchain-invalid-version - test-upsert-issue-missing-body @@ -2339,14 +2289,12 @@ jobs: ${{ needs.test-setup-ksail-cli.result }} ${{ needs.test-retry-script.result }} ${{ needs.test-ensure-gh-skill-script.result }} - ${{ needs.test-sync-github-labels.result }} ${{ needs.test-update-agent-skills-noop.result }} ${{ needs.test-update-agent-skills-dry-run.result }} ${{ needs.test-update-agent-skills-missing-dir.result }} ${{ needs.test-upload-coverage.result }} ${{ needs.test-upsert-issue-create.result }} ${{ needs.test-upsert-issue-close.result }} - ${{ needs.test-sync-github-labels-missing-config.result }} ${{ needs.test-login-to-ghcr-empty-token.result }} ${{ needs.test-setup-go-toolchain-invalid-version.result }} ${{ needs.test-upsert-issue-missing-body.result }} diff --git a/AGENTS.md b/AGENTS.md index f11bf1d..7135a4e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,6 @@ This file is the single canonical instructions file for the repository. It is re โ”‚ โ”‚ # repo-owned = `ci.yaml` + `active-*.yaml`; reusable products = every other name. โ”‚ โ”œโ”€โ”€ ci.yaml # repo-owned: one `test-` job per action + one `[Test]` job per reusable workflow โ”‚ โ”œโ”€โ”€ active-release.yaml # repo-owned: release-please driver (release PR โ†’ tag) -โ”‚ โ”œโ”€โ”€ active-sync-github-labels.yaml # repo-owned: label-sync caller โ”‚ โ”œโ”€โ”€ create-release.yaml # reusable product (workflow_call): semantic-release automation for consumer repos โ”‚ โ””โ”€โ”€ .yaml # the other reusable `workflow_call` products (dependency-review, validate-go-project, โ€ฆ) โ”œโ”€โ”€ fixtures/ # fixtures for the action `test-` jobs diff --git a/README.md b/README.md index 0f2d016..93aa79b 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,6 @@ flowchart TD | [setup-agent-skills](setup-agent-skills/README.md) | Install agent skills via `gh skill` from a newline list of ` [@pin]` entries, for one or more agents (e.g. Copilot, Claude Code) | | [setup-go-toolchain](setup-go-toolchain/README.md) | Setup Go with optional private module support | | [setup-ksail-cli](setup-ksail-cli/README.md) | Install KSail CLI via Homebrew | -| [sync-github-labels](sync-github-labels/README.md) | Sync GitHub labels from a configuration file | | [update-agent-skills](update-agent-skills/README.md) | Run `gh skill update --all` against installed skills and report changes | | [upload-coverage](upload-coverage/README.md) | Upload a Cobertura coverage report to GitHub Code Quality | | [upsert-issue](upsert-issue/README.md) | Create, update, reopen, or close a GitHub issue by title | diff --git a/sync-github-labels/README.md b/sync-github-labels/README.md deleted file mode 100644 index 1ecd2bf..0000000 --- a/sync-github-labels/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Sync GitHub Labels - -Sync GitHub labels from a configuration file. Creates, updates, or deletes labels to match the config, ensuring consistent labeling across repositories. - -## Inputs - -| Name | Description | Required | Default | -|------|-------------|----------|---------| -| `config-file` | URL or path to the labels config file | โŒ | [devantler-tech labels](https://raw.githubusercontent.com/devantler-tech/actions/refs/heads/main/.github/labels.yaml) | -| `delete-other-labels` | Whether to delete labels not in the config | โŒ | `true` | - -## Usage - -### Default config - -```yaml -steps: - - name: Sync labels - uses: devantler-tech/actions/sync-github-labels@main -``` - -### Custom config - -```yaml -steps: - - name: Sync labels - uses: devantler-tech/actions/sync-github-labels@main - with: - config-file: "https://raw.githubusercontent.com/my-org/configs/main/labels.yaml" -``` - -### Preserve existing labels - -```yaml -steps: - - name: Sync labels - uses: devantler-tech/actions/sync-github-labels@main - with: - delete-other-labels: "false" -``` diff --git a/sync-github-labels/action.yaml b/sync-github-labels/action.yaml deleted file mode 100644 index d120785..0000000 --- a/sync-github-labels/action.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: Sync GitHub Labels -description: Sync GitHub labels from a configuration file -author: devantler-tech -inputs: - config-file: - description: "URL or path to the labels config file" - required: false - default: "https://raw.githubusercontent.com/devantler-tech/actions/refs/heads/main/.github/labels.yaml" - delete-other-labels: - description: "Whether to delete labels not in the config" - required: false - default: "true" -runs: - using: "composite" - steps: - - uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3 - with: - config-file: ${{ inputs.config-file }} - delete-other-labels: ${{ inputs.delete-other-labels }}