Pull request-støtte i Endre-menyen

Sist endret: 2026-04-24 16:38av bruker: Erik Hagen ID: 88a7cc4a-b428-488f-b159-1696bbc68594 ◕Til QA SAMT-X/solution-samt-bu-docs

Brukere uten direkte push-tilgang til repoet kan bidra via det innebygde grensesnittet ved å sende forslag som pull requests i stedet for direktecommit til main.

Implementert

Rettighetssjekk og branch-oppretting

FunksjonPlasseringBeskrivelse
checkCollaboratorPermission(repo, callback)custom-footer.htmlGitHub API GET /repos/SAMT-X/<repo>/collaborators/<login> – 204 = write-tilgang, annet = bare-leser. Resultat caches 1 time i localStorage (samtu-perm-<repo>).
makePrBranch()custom-footer.htmlGenererer branch-navn: <login>/suggest-<åååå><mm><dd>-<hh><mm><ss>.
createPr(token, repo, branchName, title, body)custom-footer.htmlPOST /repos/SAMT-X/<repo>/pulls, returnerer PR-objekt med html_url.
ensureForkReady(token, repo)custom-footer.htmlSjekker om fork finnes → oppretter om ikke → synkroniserer main med upstream. Venter maks 20 × 2 sek = 40 sek på ny fork.

Meny-tilpasning

Når Endre-menyen åpnes og brukeren mangler write-tilgang, omdøpes alle menyitems i sanntid (via checkCollaboratorPermission):

Original tekstForeslå-tekst
Rediger dette kapitletForeslå endring av dette kapitlet
Edit this chapterSuggest change to this chapter
Nytt kapittel etter detteForeslå nytt kapittel etter dette
New chapter after thisSuggest new chapter after this
Nytt underkapittelForeslå nytt underkapittel
New sub-chapterSuggest new sub-chapter
Slett denne sidenForeslå sletting av denne siden
Delete this pageSuggest deletion of this page

Flyt per dialog

Rediger-dialog (QE): canWrite=falseensureForkReady → commit til fork-branch → createPr → viser «✓ Pull request: #N» med klikkbar lenke i statusfeltet. «Lagre»-knapp blir «Sendt» (deaktivert, grønn).

Ny side/underkapittel-dialog (NP): canWrite=falseensureForkReady → commit til fork-branch → createPr → lenke til PR vises i statusfeltet. «Opprett»-knapp blir «Sendt».

Slett-dialog: canWrite=falseensureForkReady → slett-commit til fork-branch → createPr → heading endres til «Forslag sendt!» med PR-lenke. Bygg-polling startes ikke.

PR-titler og -beskrivelser

DialogPR-tittel (nb)PR-tittel (en)
Rediger«Foreslår endring: <sidetittel>»«Suggest change: <title>»
Ny side«Foreslår ny side: <tittel>»«Suggest new page: <title>»
Slett«Foreslår sletting: <sidetittel>»«Suggest deletion: <title>»

PR-beskrivelse inkluderer brukerens GitHub-brukernavn og kilden («via SAMT-BU Docs redigeringsgrensesnitt»).

Ikke implementert

  • Flytt-dialog_mvCommit brukes direkte uten rettighetssjekk. Lite kritisk da flytt primært er en admin-operasjon.

Hva gjenstår / mulig videre arbeid

  • Mer testing av fork-flyt for brukere som aldri har forket repoet – verifisere ventetid og feilhåndtering
  • Duplikat-PR – hva skjer hvis brukeren sender to forslag etter hverandre uten at første PR er merget? GitHub avviser per i dag med feil.
  • PR-flyt i flytt-dialog – om flytt skal bli tilgjengelig for ikke-redaktører
  • Notification til repo-eier – i dag krever merge manuell oppfølging. Slack-varsling eller e-post er mulig fremtidig utvidelse.

Relatert

  • themes/hugo-theme-samt-bu/layouts/partials/custom-footer.htmlcheckCollaboratorPermission(), makePrBranch(), createPr(), ensureForkReady()
  • themes/hugo-theme-samt-bu/layouts/partials/edit-switcher.html – Endre-menyen og meny-tilpasnings-JS