Lisenspolicy
Lisenspolicyen avgjør hva lisensen til en avhengighet betyr på to steder:
- Pull requests. Lisensskanningen vurderer
lisensene til avhengighetene i en pull request, og sjekken
fremforge/license-scanblokkerer eller advarer. - Nedlastinger. Pakkepolicyen vurderer lisensene til en fil i registeret ditt før den kan lastes ned.
Begge leser de samme listene. Åpne den under Sikkerhet › Policyer › Lisenspolicy. Bare en eier av organisasjonen kan lagre den.
Reglene
| Innstilling | Pull requests | Nedlastinger |
|---|---|---|
| Tillatte lisenser | Godkjennes alltid. De blir aldri blokkert eller flagget av terskelen. | Godkjennes. |
| Nedlastinger: bare tillatte lisenser | Ingen effekt. | Alle lisenser som ikke står på tillatt-listen, avvises. Krever minst én tillatt lisens. |
| Blokkerte lisenser | Blokkerer merge. | Avvises. |
| Lisenser som gir advarsel | Funn til informasjon. | Tillates med en advarsel. |
| Ukjent lisens | allow, warn eller block for en lisens som mangler eller ikke er et SPDX-uttrykk. | Det samme. |
| Flere lisenser | all: hver lisens en komponent oppgir, må godkjennes. any: én godkjent lisens er nok. | Det samme, for et uttrykk som MIT OR GPL-3.0-only. |
| Pull requests: blokker ved | En lisens som ikke står på noen liste, blokkerer på eller over dette nivået og er til informasjon under det. Standard er restricted. | Ingen terskel. |
Oppføringene i listene er SPDX-identifikatorer, én per linje, for eksempel MIT,
LicenseRef-acme eller GPL-2.0-only WITH Classpath-exception-2.0. Samsvaret
skiller ikke mellom store og små bokstaver. En lisens kan bare stå på én liste. Hver liste kan ha opptil 100
oppføringer. I et uttrykk sjekkes hver lisens for seg: med OR er én
godkjent lisens nok, med AND må alle lisensene godkjennes.
Når pull requests og nedlastinger fortsatt er ulike
Før denne siden fantes, hadde hvert omfang sine egne lister, på fanen Licences og på siden Package policies. Ingenting ble migrert. Hvis de to settene dine allerede er like, viser siden dem som én policy. Hvis de er ulike, sier siden fra og fyller ut skjemaet med et forslag der den strengeste regelen vinner for hvert omfang:
- de avviste lisensene fra begge;
- lisensene med advarsel fra begge, uten de avviste;
- den strengeste handlingen for ukjente lisenser;
allfor flere lisenser når ett av omfangene saall;- for tillatt-lister: lisensene som står på begge listene, eller den ene listen som har oppføringer. En lisens som også er avvist eller har advarsel, tas ut av tillatt-listen.
En tillatt-liste kan ikke alltid slås sammen uten å løsne på et omfang. I slike tilfeller viser siden en merknad. For eksempel blir en tillatt-liste for nedlastinger også tillatt-listen for pull requests, slik at de lisensene begynner å bli godkjent i pull requests.
Ingenting endres før du lagrer.
Se resultatet før du lagrer
Under What saving changes viser siden:
- hver lagrede innstilling som endres, for pull requests og for nedlastinger;
- hver lisens der resultatet endres, med resultatet før og etter i hvert omfang. Den sjekker vanlige lisenser og alle lisenser pull requestene dine har støtt på.
Save licence policy tilbys bare for den policyen som har endringene på skjermen. Redigerer du skjemaet, velger du Preview changes først. En lagring som ikke ville endret noe, tilbys ikke.
Ikke en del av denne policyen
- Om pull requests skannes. Slå lisensskanning av eller på under Sikkerhet › Policyer › Skannere.
- Modus for nedlastingssperren. Off, Shadow eller Enforce forblir på Pakkepolicyer.
- Overstyringer per repository av reglene for pull requests. De står nederst på denne siden, se Overstyringer per repository.
- Lisensinnstillinger per pakketype i en pakkepolicy. En pakketype som har sine egne lisensregler, beholder dem. Siden viser disse typene.
- Unntak for én komponent og lisens.
API
| Endepunkt | Scope | Gjør |
|---|---|---|
GET /orgs/{org}/licence-policy | policy:read | Policyen (unified: true), eller policy: null med forslaget der det strengeste vinner (proposal) og tilhørende proposal_notes. I tillegg de lagrede feltene for hvert omfang og package_policy_version. |
POST /orgs/{org}/licence-policy/preview | policy:read | Bare lesing. Endringene per omfang og lisensene der resultatet endres. |
PUT /orgs/{org}/licence-policy | policy:write | Lagrer policyen i begge omfang. Alle felt er påkrevd. Send med package_policy_version du leste. |
curl -X PUT "https://frem.sh/_app/api/v1/orgs/acme/licence-policy" \
-H "Authorization: Bearer $FREMFORGE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"allow": ["MIT", "Apache-2.0", "BSD-3-Clause"],
"deny": ["AGPL-3.0-only", "SSPL-1.0"],
"warn": ["MPL-2.0"],
"allow_only_downloads": false,
"unknown": "warn",
"multiple": "all",
"block_severity": "restricted",
"package_policy_version": 7
}'En utdatert package_policy_version avvises med 409 policy-version-conflict. En lisens på to lister avvises med 400 licence-on-two-lists. En lagring revisjonslogges som security.licence_policy.updated
med hvert endret felt. Nedlastingssiden revisjonslogges i tillegg som
package_policy.updated.
De eldre endepunktene virker fortsatt og skriver bare til ett omfang:
PUT /orgs/{org}/code-security/licenses/settings og lisensfeltene i
PUT /orgs/{org}/package-policy. Bruker du dem, viser siden de to
omfangene som ulike igjen.