Goal
Every public repo in the textconvo org should carry the same label set. Today each repo still has GitHub's nine default labels, which looks unmanaged next to Stripe/Twilio/Vercel-style orgs.
Build a scheduled + manually triggerable GitHub Actions workflow in this repo (textconvo/.github) that pushes one canonical label list out to every public repo.
Requirements
- Create
.github/labels.yml as the single source of truth. Each entry: name, color (hex, no #), description.
- Create
.github/workflows/label-sync.yml:
- triggers:
workflow_dispatch, schedule (weekly, e.g. 0 6 * * 1), and push on main limited to paths: [.github/labels.yml]
- a
matrix over the target repos listed below
- use
EndBug/label-sync@v2 with config-file pointed at the raw labels.yml in this repo, delete-other-labels: true, and repository: textconvo/${{ matrix.repo }}
- auth via
${{ secrets.LABEL_SYNC_TOKEN }} — a fine-grained PAT with Issues: read and write on the org repos. Never commit a token.
permissions: block scoped to contents: read only
concurrency group so overlapping runs cancel
continue-on-error: false, but fail-fast: false on the matrix so one bad repo does not block the rest
- Add a short section to this repo's README explaining how to add a repo to the matrix and how to rotate
LABEL_SYNC_TOKEN.
Target repos
.github
awesome-textconvo
terraform-examples
textconvo-api-examples
textconvo-dotnet-sdk
textconvo-go-sdk
textconvo-java-sdk
textconvo-node-sdk
textconvo-openapi
textconvo-postman
textconvo-python-sdk
textconvo-sample-apps
textconvo-webhooks
Proposed label taxonomy
Type: type: bug, type: feature, type: docs, type: question, type: security, type: chore
Area: area: api-examples, area: openapi, area: postman, area: webhooks, area: sdk, area: sample-apps, area: ci
Language: lang: curl, lang: javascript, lang: typescript, lang: python, lang: go, lang: java, lang: csharp, lang: php
Status: status: needs triage, status: needs info, status: confirmed, status: in progress, status: blocked
Resolution: resolution: duplicate, resolution: wontfix, resolution: invalid, resolution: stale
Community: good first issue, help wanted
Priority: priority: p0, priority: p1, priority: p2
Pick a consistent colour family per prefix (one hue per group) and keep descriptions under 100 characters.
Constraints
- No production code, no internal architecture, no secrets, no infrastructure details in anything you add.
- Do not duplicate documentation that lives on https://textconvo.ai — link to it instead.
- Keep the workflow readable; comment the non-obvious parts.
Acceptance criteria
Goal
Every public repo in the
textconvoorg should carry the same label set. Today each repo still has GitHub's nine default labels, which looks unmanaged next to Stripe/Twilio/Vercel-style orgs.Build a scheduled + manually triggerable GitHub Actions workflow in this repo (
textconvo/.github) that pushes one canonical label list out to every public repo.Requirements
.github/labels.ymlas the single source of truth. Each entry:name,color(hex, no#),description..github/workflows/label-sync.yml:workflow_dispatch,schedule(weekly, e.g.0 6 * * 1), andpushonmainlimited topaths: [.github/labels.yml]matrixover the target repos listed belowEndBug/label-sync@v2withconfig-filepointed at the rawlabels.ymlin this repo,delete-other-labels: true, andrepository: textconvo/${{ matrix.repo }}${{ secrets.LABEL_SYNC_TOKEN }}— a fine-grained PAT with Issues: read and write on the org repos. Never commit a token.permissions:block scoped tocontents: readonlyconcurrencygroup so overlapping runs cancelcontinue-on-error: false, butfail-fast: falseon the matrix so one bad repo does not block the restLABEL_SYNC_TOKEN.Target repos
Proposed label taxonomy
Type:
type: bug,type: feature,type: docs,type: question,type: security,type: choreArea:
area: api-examples,area: openapi,area: postman,area: webhooks,area: sdk,area: sample-apps,area: ciLanguage:
lang: curl,lang: javascript,lang: typescript,lang: python,lang: go,lang: java,lang: csharp,lang: phpStatus:
status: needs triage,status: needs info,status: confirmed,status: in progress,status: blockedResolution:
resolution: duplicate,resolution: wontfix,resolution: invalid,resolution: staleCommunity:
good first issue,help wantedPriority:
priority: p0,priority: p1,priority: p2Pick a consistent colour family per prefix (one hue per group) and keep descriptions under 100 characters.
Constraints
Acceptance criteria
labels.ymlandlabel-sync.ymlexist and the workflow parsesworkflow_dispatchrun succeeds against all 13 repos