This document provides step-by-step instructions for setting up the GitHub repository with issue templates, labels, and workflows.
Ensure all the following files are committed and pushed to GitHub:
# Check that these files exist in your repository
git ls-files .github/
# Should show:
# .github/ISSUE_TEMPLATE/bug.yml
# .github/ISSUE_TEMPLATE/chore.yml
# .github/ISSUE_TEMPLATE/config.yml
# .github/ISSUE_TEMPLATE/discussion.yml
# .github/ISSUE_TEMPLATE/enhancement.yml
# .github/ISSUE_TEMPLATE/tracking.yml
# .github/workflows/setup-labels.yml
If any files are missing, commit and push them:
git add .github/
git commit -m "chore(github): add issue templates and workflows"
git push origin main
The label setup workflow creates all the predefined labels in your repository.
main)The workflow will create the following labels:
Issue Type Labels:
tracking (purple) - High-level Epic/Feature tracking issueenhancement (light blue) - New functionality or requirementchore (yellow) - Internal technical tasks and maintenancebug (red) - Functional defect or errordiscussion (light purple) - Architectural proposals or RFCsPriority Labels:
priority:high (dark red) - Urgent items requiring immediate attentionpriority:medium (yellow) - Important but not urgentpriority:low (green) - Nice to have, low urgencySize Labels:
size:small (light green) - Small effort (< 1 day)size:medium (light blue) - Medium effort (1-3 days)size:large (light orange) - Large effort (> 3 days)Area Labels:
area:core (light blue) - Core library functionalityarea:ffi (light blue) - FFI bindings and C interoparea:protocol (light blue) - Protocol implementation (XML/JSON)area:discovery (light blue) - Server discovery (ZeroConf/Bonjour)area:testing (light blue) - Testing infrastructure and testsarea:docs (light blue) - DocumentationIf the workflow fails:
Permission Error:
Error: Resource not accessible by integration
Solution: Ensure GitHub Actions has write permissions:
Label Already Exists:
Label "enhancement" already exists, skipping.
This is normal - the workflow skips existing labels.
Test that issue templates are working:
Templates Not Showing:
.github/ISSUE_TEMPLATE/ directory.yml extension (not .yaml)Config.yml Issues:
blank_issues_enabled: false is set in config.ymlconfig.yml to match your repositoryEdit .github/ISSUE_TEMPLATE/config.yml to customize contact links:
blank_issues_enabled: false
contact_links:
- name: 💬 GitHub Discussions
url: https://github.com/YOUR_ORG/libindigo/discussions # Update this
about: For general questions and community discussions
- name: 📚 Documentation
url: https://github.com/YOUR_ORG/libindigo/tree/main/doc # Update this
about: Check the documentation for guides and references
Replace YOUR_ORG with your GitHub organization or username.
Commit and push the changes:
git add .github/ISSUE_TEMPLATE/config.yml
git commit -m "chore(github): update issue template config links"
git push origin main
Create milestones for release planning:
For each milestone:
Create a test issue to verify everything works:
enhancement labelpriority:low and size:smallarea:docs (since this is a test)Protect your main branch:
mainEnsure workflows have necessary permissions:
Before considering setup complete, verify:
After completing the GitHub setup:
plans/ directory to GitHub issuesProblem: Templates don’t appear in the New Issue chooser.
Solutions:
.github/ISSUE_TEMPLATE/ (not .github/ISSUE_TEMPLATES/).yml (not .yaml)Problem: Workflow runs but labels aren’t created.
Solutions:
Problem: Workflow fails with “Resource not accessible by integration”
Solutions:
Problem: Blank issues still enabled or contact links not showing.
Solutions:
config.yml is in .github/ISSUE_TEMPLATE/ directoryblank_issues_enabled: false is setIf you encounter issues not covered here: