🏷️ GitHub repository labels
Overzicht
Bij Brixion gebruiken we een geautomatiseerd label-synchronisatiesysteem dat zorgt voor consistente labels in al onze repositories. Het systeem gebruikt GitHub custom properties om automatisch het juiste labelbestand te kiezen op basis van het type codebase.
Hoe het werkt
Automatische synchronisatie
- Wanneer: Elke maandag om 06:00 UTC
- Wat: Synchroniseert labels vanuit de centrale configuratie naar alle repositories
- Trigger: Handmatig uitvoerbaar via de GitHub Actions interface
Label configuratie
Labels worden centraal beheerd in de brixion/.github repository onder de labels/ map:
brixion/.github/
├── labels/
│ ├── general.yml # Algemene labels voor alle repositories
│ ├── frontend.yml # Extra labels voor frontend projecten
│ ├── backend.yml # Extra labels voor backend projecten
Codebase types
Het systeem gebruikt de GitHub custom property codebase_type om te bepalen welke labels moeten worden toegepast:
| Codebase type | Labels die worden toegepast |
|---|---|
frontend | general.yml + frontend.yml |
backend | general.yml + backend.yml |
monorepo | general.yml |
infra | general.yml |
library | general.yml |
scripts | general.yml |
misc | general.yml |
Setup voor nieuwe repositories
Stap 1: Codebase type instellen
- Ga naar je repository op GitHub
- Ga naar Settings → General
- Scroll naar Custom properties
- Stel
codebase_typein op de juiste waarde
Stap 2: Workflow toevoegen
Maak het bestand .github/workflows/label-sync.yml aan in je repository:
---
name: Label Sync
on: # yamllint disable-line rule:truthy
schedule:
- cron: '0 6 * * 1' # Weekly on Monday at 6 AM UTC
workflow_dispatch:
repository_dispatch:
types: [label-sync]
permissions:
issues: write # Required to create and update labels
jobs:
label-sync:
uses: brixion/.github/.github/workflows/label-sync.yml@main
Dit workflowbestand is identiek voor alle repositories. Je hoeft alleen de codebase_type custom property in te stellen.
Handmatige synchronisatie
Je kunt labels ook handmatig synchroniseren:
- Ga naar je repository
- Klik op Actions
- Selecteer de Label Sync workflow
- Klik op Run workflow
Labels beheren
Nieuwe labels of wijzigingen voorstellen
Mis je een label of wil je een bestaand label aanpassen?
Maak een issue aan in brixion/.github om dit te bespreken met het team. Na akkoord kan het label worden toegevoegd of aangepast.
Nieuwe labels toevoegen
- Bewerk het juiste bestand in
brixion/.github/labels/ - Commit en push je wijziging
- Laat je PR reviewen
- Labels worden automatisch gesynchroniseerd bij de volgende run
Nieuwe codebase types toevoegen
- Maak een nieuw labelfile aan in
brixion/.github/labels/(bijv.mobile.yml) - Voeg het nieuwe type toe in
brixion/.github/.github/workflows/label-sync-reusable.yml - Stel de
codebase_typecustom property in bij de repositories die dit type gebruiken
Label formaat
Labels worden gedefinieerd in YAML. Voorbeeld:
- name: "type: bug"
color: "d73a4a"
description: "Something isn't working"
- name: "type: feature"
color: "a2eeef"
description: "New feature or request"
- name: "priority: high"
color: "ff0000"
description: "High priority issue"
Voordelen
- Consistentie: Alle repositories hebben dezelfde basislabels
- Automatisering: Geen handmatige acties nodig
- Flexibiliteit: Labels per codebase type
- Centraal beheer: Wijzigingen worden automatisch uitgerold
- Schaalbaarheid: Werkt probleemloos voor 100+ repositories
Problemen
Labels worden niet gesynchroniseerd
- Controleer of
codebase_typecorrect is ingesteld - Controleer of de workflow bestaat in
.github/workflows/ - Bekijk de logs van GitHub Actions voor foutmeldingen
- Voer een handmatige synchronisatie uit
Onbekend codebase type
Als een codebase type niet wordt herkend, worden alleen de general.yml labels toegepast. Bekijk de Actions logs voor waarschuwingen.