Vi har over 35 tilpasningsfiler i navikt/copilot — agents, instructions, prompts og skills. Mange team har kopiert deler av disse inn i sine egne repoer. Problemet er at filene oppdateres jevnlig, og da blir kopiene utdaterte.
Nå finnes det en sync-workflow som fikser dette. Den fungerer som Dependabot, men for Copilot-filer i stedet for pakker.
Kom i gang
Opprett .github/workflows/copilot-sync.yml i repoet ditt:
name: Copilot Customization Sync
on:
schedule:
- cron: '0 7 * * 1' # Mandager kl. 07:00 UTC
workflow_dispatch:
jobs:
sync:
uses: navikt/copilot/.github/workflows/copilot-customization-sync.yml@main
permissions:
contents: write
pull-requests: write
Ferdig. Ingen tokens, ingen secrets, ingen konfigurasjon.
Hva skjer?
Workflowen kjører ukentlig og gjør tre ting:
- Finner alle Copilot-filer i repoet ditt
- Sammenligner SHA-256-hasher mot siste versjon i
navikt/copilot - Åpner en PR hvis noe er utdatert
PR-en havner på branchen copilot-customization-sync med tittel som «chore: sync 3 Copilot customization(s)». Du ser diffen og bestemmer selv om du merger.
Hvilke filer sjekkes?
Workflowen sjekker alle Copilot-filer som allerede finnes i repoet ditt:
.github/agents/*.agent.md.github/instructions/*.instructions.md.github/prompts/*.prompt.md.github/skills/*/SKILL.mdogmetadata.json
AGENTS.md og .github/copilot-instructions.md synces aldri fordi de alltid er repospesifikke.
Bare bestemte filer?
Opprett .github/copilot-sync.json for å begrense hva som sjekkes:
{
"files": [
".github/agents/nais-platform.agent.md",
".github/instructions/kotlin-ktor.instructions.md"
]
}
Uten denne fila sjekkes alt som finnes i repoet.
Hva om jeg har gjort lokale endringer?
PR-en viser diffen. Du kan merge selektivt, redigere PR-en, eller lukke den. Workflowen tvinger ingenting — den åpner bare PR-er.
Hvis teamet ditt bevisst vedlikeholder egne versjoner av bestemte filer, kan du markere dem som overrides. Da hopper sync over dem helt — ingen hashsjekk, ingen PR-diff:
{
"overrides": [
".github/agents/nais.agent.md",
".github/instructions/security.instructions.md"
]
}
Legg dette i .github/copilot-sync.json. Filer i overrides vil aldri dukke opp i sync-PR-er.
Astro, Remix eller annen frontend uten Next.js?
Hvis du har installert nextjs-frontend- eller fullstack-samlingen men ikke bruker Next.js, kan du hoppe over Next.js-filene:
{
"overrides": [
".github/instructions/nextjs-aksel.instructions.md",
".github/instructions/performance.instructions.md",
".github/prompts/nextjs-api-route.prompt.md"
]
}
Alternativt kan du installere frontend-samlingen som kun inneholder rammeverk-agnostiske verktøy.
Synkroniser mot et annet repo
Du kan synkronisere mot et team-repo i stedet for navikt/copilot:
jobs:
sync:
uses: navikt/copilot/.github/workflows/copilot-customization-sync.yml@main
with:
source_repo: navikt/my-team-copilot
permissions:
contents: write
pull-requests: write
Dette lar teamet ha et eget sett med Copilot-tilpasninger som synkroniseres ned til alle team-repoene.
Formatering og whitespace
Sync-workflowen er tolerant for formatforskjeller i markdown-filer (.md). Forskjeller i linjeskift (CRLF vs LF), trailing whitespace og antall blanke linjer utløser ikke falske oppdateringer. JSON-filer sjekkes fortsatt byte for byte.
Oppdateringer kommer automatisk
Workflowen er en reusable workflow. Den refereres med @main, så forbedringer vi gjør i navikt/copilot treffer alle team ved neste kjøring uten at dere trenger å endre noe.
Mer informasjon
Se dokumentasjonen for sync-workflowen for tekniske detaljer og FAQ.