Release-branches
Vedligeholder du ældre versioner på branches som release/1.x, bliver de branches
også leveret til dine kunder. fremforge scanner hver beskyttet release-branch
med de samme scannere som din standardbranch. Dens fund vises pr. branch, og
ingen af dem tælles med i tallene for din standardbranch.
Hvilke branches der scannes
En branch scannes som release-branch, når begge disse betingelser er opfyldt:
- den matcher et af organisationens mønstre for beskyttede branches (Repositorier ›
Branch protection defaults, som standard
main,master,release/*) eller en af repositoriets egne regler for branch-beskyttelse; - den er ikke repositoriets standardbranch.
Hvilken branch der er standard, er det, Forgejo har registreret for repositoriet, aldrig en indstilling i scanningen. Omdøber du standardbranchen, tæller det nye navn som standard fra næste scanning, og det gamle navn behandles fra da af som en release-branch, hvis det stadig er beskyttet.
Hvornår de scannes
- Ved push. Et push til en release-branch bestiller en scanning af den branch. Flere push tæt efter hinanden giver én scanning af den seneste commit.
- Ugentligt. Hver release-branch scannes igen mindst én gang om ugen, så nye advisories når frem til branches, som ingen pusher til. En branch scannes med det samme, første gang den bliver fundet.
- Slettede eller ikke længere beskyttede branches glemmes. Når en branch slettes, fjernes dens fund. En branch, der ikke længere matcher et beskyttelsesmønster, fjernes ved næste ugentlige gennemløb.
En scanning af en release-branch koster den samme runner-tid som en scanning af din standardbranch, pr. push og én gang om ugen. Release-branches er ikke med i den daglige genscanning af images eller den ugentlige gennemgang af historikken for secrets.
Holdt adskilt fra din standardbranch
Fund på release-branches gemmes for sig. Tallene for din standardbranch er uændrede: overblikket, listerne over fund og deres antal, SLA-overskridelser og SLA-målinger samt fundenes livscyklus.
- Rettefrist, ingen SLA-målinger. Hvert fund på en release-branch viser en rettefrist ud fra din rettefrist (SLA) for dets alvorlighed, regnet fra det tidspunkt, hvor fundet første gang blev set på den branch, eller Ingen SLA, hvor alvorligheden ikke har nogen. Disse datoer vises til planlægning. De tælles ikke med i SLA-overskridelser, SLA-feltet eller nogen SLA-måling.
- Advarsler og det ugentlige sammendrag viser release-branches i et afsnit for sig: nye og åbne kritiske og høje fund pr. branch. Standardbranchens tal i dem er uændrede.
I konsollen
Sikkerhed › Fund › Alle viser en række med branches, når en release-branch er blevet scannet: Standardbranch og derefter én chip pr. release-branch med dens åbne fund. Vælger du en branch, vises kun den branchs fund, med kolonnen Ret senest. Filtrene for type og alvorlighed virker som sædvanligt.
Hver rækkes menu har:
- Afvis på denne branch: se Afvisninger.
- Foreslå en rettelses-PR til denne branch, på et fund i en afhængighed med en rettet version: se Sikkerhedsrettelser. Mens en rettelse står i kø, eller dens pull request er åben, linker rækken i stedet til den.
Afvisninger
En afvisning på en release-branch gælder kun for den branch. Den er en post i den
samme liste over Undtagelser som alle andre afvisninger,
med id’et branch.<finding id> og omfanget branch, og den angiver branchen.
Tilbagekald den dér, så er fundet åbent igen. Organisationens indstillinger for
undtagelser gælder, også den maksimale udløbstid.
Begrænsning: hvor afvisninger kræver godkendelse,
kan kun en godkender afvise et fund på en release-branch. Køen til anmodning og
godkendelse dækker endnu ikke release-branches. En afvisning foretaget af en anden
afvises (403 approval-required over API’et, en besked i konsollen), og fundet
forbliver åbent.
Sikkerhedsrettelser
Et fund i en afhængighed med en rettet version kan få en pull request med en sikkerhedsrettelse ind i sin release-branch. Alt ved rettelsen fungerer som på din standardbranch, med disse forskelle:
- Pull requesten har release-branchen som mål, fra sin egen branch
security-fix/<branch>/<package>-<version>, for eksempelsecurity-fix/release-1.x/lodash-4.17.21. - Den retter alle åbne fund på den pakke på den branch, med den laveste version, der retter dem alle.
- Én aktiv rettelse pr. pakke pr. branch. Den samme pakke på din standardbranch
og på
release/1.xfår to separate rettelser. Organisationens grænser tæller alle branches sammen. - En pull request, som kørslen åbner mod en anden branch, lukkes med årsagen
scope_base. - En rettelse regnes for løst, når release-branchens næste scanning ikke længere rapporterer dens fund.
Den merges aldrig automatisk, ligesom på standardbranchen.
Pull requests ind i en release-branch
Tjekkene på en pull request ind i en release-branch sammenligner den med den branchs seneste scanning, ikke standardbranchens. En pull request blokeres kun af fund, den selv tilføjer. En pull request, der kun ændrer konfiguration, blokeres ikke af fund, der allerede findes på release-branchen.
API
| Kald | Hvad det gør |
|---|---|
GET /orgs/{org}/security/release-branches | De scannede release-branches, hver med sit antal åbne fund. |
GET /orgs/{org}/security/findings?branch=release/1.x | Den branchs fund, i samme form som standardbranchens, plus branch og fix_by. En ukendt branch giver 404 unknown-branch. |
POST /orgs/{org}/security/release-findings/{id}/dismiss | Afvis på den branch: reason, valgfrit expires_at. |
POST /orgs/{org}/security/release-findings/{id}/autofix | Sæt en sikkerhedsrettelse ind i den branch i kø. Svaret indeholder base_branch. |
curl -sS "https://frem.sh/_app/api/v1/orgs/acme/security/findings?branch=release%2F1.x" \
-H "Authorization: Bearer $FREMFORGE_TOKEN"Læsning kræver findings:read, og afvisninger og rettelser kræver findings:write. Se
API-referencen for alle felter.
Hvis Forgejo ikke kan nås
For at kunne registrere en scanning skal fremforge vide, om den scannede branch er standardbranchen. Når Forgejo ikke kan svare på det, droppes scanningen ikke, og der gættes heller ikke. Den holdes tilbage og registreres, så snart Forgejo svarer, normalt inden for få minutter. Indtil da viser den branchs fund den forrige scanning.