Hoppa till huvudinnehållet

Release-branches

Om du underhåller äldre versioner på branches som release/1.x levereras de branches också till dina kunder. fremforge skannar varje skyddad release-branch med samma skannrar som din standardbranch. Dess fynd listas per branch, och inget av dem räknas in i siffrorna för din standardbranch.

Vilka branches som skannas

En branch skannas som release-branch när båda de här villkoren gäller:

  • den matchar något av din organisations mönster för skyddade branches (Repon › Standardinställningar för branch-skydd, main,master,release/* som standard), eller någon av repots egna regler för branch-skydd;
  • den är inte repots standardbranch.

Vilken branch som är standard är det som Forgejo har registrerat för repot, aldrig en inställning i skanningen. Om du byter namn på standardbranchen räknas det nya namnet som standard från nästa skanning, och det gamla namnet behandlas som en release-branch från och med då, om det fortfarande är skyddat.

När de skannas

  • Vid push. En push till en release-branch begär en skanning av den branchen. Flera pushar tätt efter varandra ger en skanning av den senaste commiten.
  • Varje vecka. Varje release-branch skannas om minst en gång i veckan, så att nya säkerhetsmeddelanden når branches som ingen pushar till. En branch skannas direkt första gången den hittas.
  • Raderade eller oskyddade branches glöms bort. När en branch raderas tas dess fynd bort. En branch som inte längre matchar ett skyddsmönster tas bort vid nästa veckovisa genomgång.

Att skanna en release-branch kostar lika mycket runner-tid som att skanna din standardbranch, per push och en gång i veckan. Release-branches ingår inte i den dagliga omskanningen av images eller den veckovisa genomsökningen av historiken efter hemligheter.

Hålls isär från din standardbranch

Fynd på release-branches lagras separat. Siffrorna för din standardbranch är oförändrade: översikten, listorna med fynd och deras antal, SLA-överträdelser och SLA-mått, och fyndens livscykel.

  • Åtgärdsdatum, inga SLA-mått. Varje fynd på en release-branch visar ett datum för senaste åtgärd utifrån din åtgärdsfrist (SLA) för dess allvarlighetsgrad, räknat från när fyndet först sågs på den branchen, eller Ingen SLA där allvarlighetsgraden saknar en. De här datumen visas för planering. De räknas inte in i SLA-överträdelser, SLA-rutan eller något SLA-mått.
  • Varningar och veckosammanfattningen listar release-branches i ett eget avsnitt: nya och öppna kritiska och höga fynd per branch. Standardbranchens siffror i dem är oförändrade.

I konsolen

Säkerhet › Fynd › Alla visar en rad med branches när en release-branch har skannats: Standardbranch, sedan en knapp per release-branch med dess öppna fynd. När du väljer en branch listas bara den branchens fynd, med en kolumn Åtgärda senast. Filtren för typ och allvarlighetsgrad fungerar som vanligt.

Varje rads meny har:

  • Avfärda på den här branchen: se Avfärdanden.
  • Föreslå en åtgärds-PR till denna branch, på ett fynd i ett beroende med en åtgärdad version: se Säkerhetsfixar. Medan en rättning står i kö eller dess pull request är öppen länkar raden till den i stället.

Avfärdanden

Ett avfärdande på en release-branch gäller bara den branchen. Det är en post i samma lista över undantag som alla andra avfärdanden, med id:t branch.<finding id> och scopet branch, och det namnger branchen. Återkalla det där, så är fyndet öppet igen. Din organisations inställningar för undantag gäller, inklusive den längsta giltighetstiden.

Begränsning: där avfärdanden kräver godkännande kan bara en godkännare avfärda ett fynd på en release-branch. Kön för begäran och godkännande täcker ännu inte release-branches. Ett avfärdande av någon annan avvisas (403 approval-required via API:t, ett meddelande i konsolen) och fyndet förblir öppet.

Säkerhetsfixar

Ett fynd i ett beroende med en åtgärdad version kan få en pull request med en säkerhetsfix mot sin release-branch. Allt om rättningen fungerar som på din standardbranch, med de här skillnaderna:

  • Pull requesten riktas mot release-branchen, från en egen branch security-fix/<branch>/<package>-<version>, till exempel security-fix/release-1.x/lodash-4.17.21.
  • Den åtgärdar varje öppet fynd för det paketet på den branchen, med den lägsta version som åtgärdar alla.
  • En aktiv rättning per paket och branch. Samma paket på din standardbranch och på release/1.x får två separata rättningar. Din organisations gränser räknar alla branches tillsammans.
  • En pull request som körningen öppnar mot någon annan branch stängs, med orsaken scope_base.
  • En rättning räknas som löst när release-branchens nästa skanning inte längre rapporterar dess fynd.

Den mergas aldrig automatiskt, precis som på standardbranchen.

Pull requests mot en release-branch

Kontrollerna på en pull request mot en release-branch jämför den med den branchens senaste skanning, inte standardbranchens. En pull request blockeras bara av fynd som den inför. En pull request som bara ändrar konfiguration blockeras inte av fynd som redan finns på release-branchen.

API

AnropVad det gör
GET /orgs/{org}/security/release-branchesDe skannade release-branches, var och en med sitt antal öppna fynd.
GET /orgs/{org}/security/findings?branch=release/1.xDen branchens fynd, i samma form som standardbranchens, plus branch och fix_by. En okänd branch ger 404 unknown-branch.
POST /orgs/{org}/security/release-findings/{id}/dismissAvfärda på den branchen: reason, valfritt expires_at.
POST /orgs/{org}/security/release-findings/{id}/autofixKöa en säkerhetsfix mot den branchen. Svaret innehåller base_branch.
curl -sS "https://frem.sh/_app/api/v1/orgs/acme/security/findings?branch=release%2F1.x" \
  -H "Authorization: Bearer $FREMFORGE_TOKEN"

Läsningar kräver findings:read, och avfärdanden och rättningar kräver findings:write. Se API-referensen för varje fält.

Om Forgejo inte kan nås

För att arkivera en skanning måste fremforge veta om den skannade branchen är standardbranchen. När Forgejo inte kan svara på det tappas skanningen inte bort, och det gissas inte heller. Den hålls kvar och arkiveras så snart Forgejo svarar, normalt inom några minuter. Fram till dess visar den branchens fynd den föregående skanningen.