
GitHub App per impostare e applicare policy di sicurezza
[](https://api.scorecard.dev/projects/github.com/ossf/allstar)
<img align="right" src="https://assets.kitploit.com/production/public/readmes/4605/56f8714eef22fa31a6956e341013b069f09b7dd1b45c374eec1e6987c911ed49.png" width="300" height="400">
# **Allstar**
> [!IMPORTANT]
> **L'app GitHub Allstar ospitata da OpenSSF è stata ritirata.**
> Allstar, il sottoprogetto OpenSSF Scorecard, continua comunque a essere
> mantenuto — ora devi eseguirlo tu stesso, sia
> [come GitHub Action](#running-allstar-as-a-github-action) sia
> [come demone di servizio](#running-allstar-as-a-service-daemon).
>
> Vedi [ossf/allstar#881](https://github.com/ossf/allstar/issues/881) per
> maggiori dettagli.
>
> Se la tua organizzazione faceva affidamento sull'app ospitata, vedi
> [Migrazione dall'app ospitata](#migrating-off-the-hosted-app).
## Panoramica
- [Cos'è Allstar?](#what-is-allstar)
## Novità di Allstar
- [whats-new.md](https://github.com/ossf/allstar/blob/main/whats-new.md)
## Disattivazione di problemi indesiderati
- [Aiuto! Allstar crea problemi che non voglio!](#disabling-unwanted-issues-1)
## Per iniziare
- [Contesto](#background)
- [Opzioni a livello di organizzazione](#org-level-options)
- [Opzioni di installazione](#installation-options)
- [Crea la tua GitHub App](#create-your-github-app)
- [Crea il tuo repository di controllo `.allstar`](#create-your-allstar-control-repository)
- [Eseguire Allstar come GitHub Action](#running-allstar-as-a-github-action)
- [Eseguire Allstar come demone di servizio](#running-allstar-as-a-service-daemon)
- [Migrazione dall'app ospitata](#migrating-off-the-hosted-app)
## Policy e azioni
- [Azioni](#actions)
- [Policy](#policies)
## Avanzato
- [Definizioni di configurazione](#configuration-definitions)
- [Configurazioni di esempio](#example-config-repository)
- [Esegui la tua istanza di Allstar](https://github.com/ossf/allstar/blob/main/operator.md)
## Contribuisci
- [Contribuire](#contributing)
________
________
## Panoramica
### Cos'è Allstar?
Allstar è una GitHub App che monitora continuamente organizzazioni o
repository GitHub per verificare l'aderenza alle best practice di sicurezza. Se Allstar rileva una
violazione di una policy di sicurezza, crea un problema per avvisare il proprietario del
repository o dell'organizzazione. Per alcune policy di sicurezza, Allstar può anche modificare automaticamente
l'impostazione del progetto che ha causato la violazione, ripristinandola allo
stato previsto.
L'obiettivo di Allstar è darti un controllo finemente calibrato sui file e sulle impostazioni
che influiscono sulla sicurezza dei tuoi progetti. Puoi scegliere quali policy
di sicurezza monitorare sia a livello di organizzazione sia a livello di repository, e come
gestire le violazioni delle policy. Puoi anche sviluppare o contribuire con nuove policy.
Allstar è sviluppato come parte del progetto [OpenSSF Scorecard](https://github.com/ossf/scorecard).
## [Novità di Allstar](https://github.com/ossf/allstar/blob/main/whats-new.md)
## Disattivazione di problemi indesiderati
Se Allstar crea problemi indesiderati, segui [queste istruzioni](https://github.com/ossf/allstar/blob/main/opt-out.md) per disattivarlo.
## Per iniziare
### Contesto
Allstar è altamente configurabile. Ci sono tre livelli principali di controlli:
- **Livello organizzazione**: Gli amministratori dell'organizzazione possono scegliere di abilitare Allstar su:
- tutti i repository dell'organizzazione;
- la maggior parte dei repository, tranne alcuni che hanno scelto di escludersi;
- solo alcuni repository che hanno scelto di includersi.
Queste configurazioni vengono effettuate nel repository `.allstar` dell'organizzazione.
- **Livello repository:** I manutentori dei repository in un'organizzazione che usa
Allstar possono scegliere di includere o escludere il proprio repository dalle
applicazioni a livello di organizzazione. Nota: questi controlli a livello di repository funzionano solo quando
"repo override" è consentito nelle impostazioni a livello di organizzazione. Queste configurazioni vengono
effettuate nella directory `.allstar` del repository.
- **Livello policy:** Gli amministratori o i manutentori possono scegliere quali policy
sono abilitate su repository specifici e quali azioni Allstar intraprende quando una policy
viene violata. Queste configurazioni vengono effettuate in un file yaml di policy nel
repository `.allstar` dell'organizzazione (amministratori) o nella directory
`.allstar` del repository (manutentori).
### Opzioni a livello di organizzazione
Prima di installare Allstar a livello di organizzazione, dovresti decidere approssimativamente su quanti repository
vuoi che Allstar operi. Questo ti aiuterà a scegliere tra le strategie Opt-In e
Opt-Out.
- La strategia Opt In ti consente di aggiungere manualmente i repository su cui
vuoi che Allstar operi. Se non specifichi alcun repository, Allstar non
verrà eseguito nonostante sia installato. Scegli la strategia Opt In se vuoi applicare
policy solo su un numero limitato dei tuoi repository totali, o se vuoi provare
Allstar su un singolo repository prima di abilitarlo su altri. Dalla
release v4.3, sono supportati i glob per aggiungere facilmente più repository con
un nome simile.
- La strategia Opt Out (consigliata) abilita Allstar su tutti i repository
e ti consente di selezionare manualmente i repository da escludere dalle
applicazioni di Allstar. Puoi anche scegliere di escludere tutti i repository pubblici, o tutti
i repository privati. Scegli questa opzione se vuoi eseguire Allstar su tutti i
repository di un'organizzazione, o se vuoi escludere solo un numero limitato di
repository o un tipo specifico (ad es., pubblico vs. privato) di repository.
Dalla release v4.3, sono supportati i glob per aggiungere facilmente più
repository con un nome simile.
<table>
<thead>
<tr>
<th></th>
<th><strong>Opt Out (Consigliato)</strong><br>
<strong>optOutStrategy = true</strong></th>
<th><strong>Opt In</strong><br>
<strong>optOutStrategy = false</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Comportamento predefinito </td>
<td>Tutti i repository sono abilitati</td>
<td>Nessun repository è abilitato </td>
</tr>
<tr>
<td>Aggiunta manuale di repository</td>
<td>Aggiungere manualmente repository disabilita Allstar su quei repository</td>
<td>Aggiungere manualmente repository abilita Allstar su quei repository</td>
</tr>
<tr>
<td>Configurazioni aggiuntive</td>
<td>optOutRepos: Allstar sarà disabilitato sui repository elencati<br>
<br>
optOutPrivateRepos: se true, Allstar sarà disabilitato su tutti i repository privati
<br>
<br>
optOutPublicRepos: se true, Allstar sarà disabilitato su tutti i repository
pubblici<br>
<br>
(optInRepos: questa impostazione verrà ignorata)</td>
<td>optInRepos: Allstar sarà abilitato sui repository elencati <br>
<br>
(optOutRepos: questa impostazione verrà ignorata)</td>
</tr>
<tr>
<td>Override del repository </td>
<td>Se true: I repository possono escludersi dalle applicazioni Allstar della loro organizzazione
usando le impostazioni nel proprio file di repository. Le impostazioni di inclusione a livello di organizzazione che
si applicano a quel repository vengono ignorate. <br>
<br>
Se false: i repository non possono escludersi dalle applicazioni Allstar configurate a
livello di organizzazione. </td>
<td>Se true: I repository possono includersi nelle applicazioni Allstar della loro organizzazione anche
se non sono configurati per il repository a livello di organizzazione. Le impostazioni di esclusione a livello di organizzazione
che si applicano a quel repository vengono ignorate.<br>
<br>
Se false: I repository non possono includersi nelle applicazioni Allstar se non sono
configurati a livello di organizzazione. </td>
</tr>
</tbody>
</table>
### Opzioni di installazione
Allstar agisce sulla tua organizzazione come una GitHub App: crei l'app e
esegui il processo che si autentica come essa. La configurazione è quindi composta da due passaggi
comuni a ogni distribuzione — [crea l'app](#create-your-github-app) e
[crea il repository di controllo](#create-your-allstar-control-repository) — e
poi una scelta su come eseguirla:
| | [GitHub Action](#running-allstar-as-a-github-action) | [Demone di servizio](#running-allstar-as-a-service-daemon) |
|---|---|---|
| **Come funziona** | Job pianificato nel tuo repository `.allstar` | Processo persistente che ospiti tu |
| **Cosa fornisci** | Nient'altro oltre a GitHub | Un server o un orchestratore di container |
| **Cadenza** | Qualunque cosa imposti nel `cron` | Continua, con risultati in 5-10 minuti |
| **Sforzo di configurazione** | Moderato | Alto |
| **Ideale quando** | Vuoi l'opzione con la minima infrastruttura | Vuoi il massimo controllo, o gestisci già servizi |
L'Action è l'opzione con il minor overhead delle due ed è da lì che la maggior parte delle organizzazioni
dovrebbe iniziare; puoi passare a un demone in seguito senza modificare alcuna configurazione
di policy.
#### Crea la tua GitHub App
Un'App è un'identità simile a un utente con un insieme di permessi nella tua organizzazione.
Allstar necessita di accesso in lettura alla maggior parte delle impostazioni e dei contenuti dei file per rilevare
la conformità, e accesso in scrittura a problemi e check per aprire problemi e
supportare l'azione `block`.
Segui [Istruzioni per l'operatore - Crea una GitHub
App](https://github.com/ossf/allstar/blob/main/operator.md#create-a-github-app) e registra l'ID App e la chiave privata.
Entrambe le modalità di esecuzione ne hanno bisogno.
#### Crea il tuo repository di controllo `.allstar`
Allstar legge la sua configurazione da un repository chiamato `.allstar` nella tua
organizzazione.
Il modo più rapido per crearne uno è partire dal modello:
1. [Apri il repository di esempio](https://github.com/ossf/dot-allstar-quickstart)
e clicca sul pulsante "Use this template"
1. Nel campo per il Nome Repository, digita `.allstar`
1. Clicca su "Create repository from template"
Questo abilita tutte le attuali [policy](#policies) di Allstar su tutti i repository
usando la strategia Opt Out, con l'azione `issue`. Puoi modificare tutto in seguito.
Per un controllo granulare fin dall'inizio — scegliendo la strategia Opt In o Opt Out
e scrivendo tu stesso i singoli file di policy — segui invece le [istruzioni di
installazione manuale](https://github.com/ossf/allstar/blob/main/manual-install.md).
#### Eseguire Allstar come GitHub Action
Questa opzione esegue Allstar come job pianificato usando GitHub Actions, quindi non c'è
infrastruttura da gestire oltre a GitHub stesso.
Segui le [istruzioni di installazione per GitHub
Actions](https://github.com/ossf/allstar/blob/main/github-action-installation.md) per configurare un'Action ricorrente nel tuo
repository `.allstar`, rafforzarla e monitorarne i risultati.
#### Eseguire Allstar come demone di servizio
Questa opzione esegue Allstar come processo persistente, che rileva e risolve
le violazioni in modo continuo anziché secondo una pianificazione.
Vedi [Istruzioni per l'operatore](https://github.com/ossf/allstar/blob/main/operator.md) per eseguire il processo, gestire
i segreti, il dimensionamento e le variabili d'ambiente disponibili.
### Migrazione dall'app ospitata
Se la tua organizzazione usava l'app ospitata da OpenSSF, **la tua configurazione viene
trasferita così com'è**. Il repository di controllo `.allstar`, `allstar.yaml` e ogni
file di policy continuano a funzionare invariati; ciò che sostituisci è solo il processo
che li legge.
Per migrare:
1. [Crea la tua GitHub App](#create-your-github-app) e installala sulla tua
organizzazione con lo stesso accesso ai repository che aveva l'app ospitata.
1. Mantieni il tuo repository `.allstar` esistente esattamente com'è.
1. Esegui Allstar [come Action](#running-allstar-as-a-github-action) o
[come demone](#running-allstar-as-a-service-daemon).
1. Disinstalla `allstar-app` dalla tua organizzazione, se appare ancora sotto
Impostazioni -> GitHub Apps.
I problemi precedentemente aperti dall'app ospitata rimangono nei tuoi repository. La tua
istanza identifica i suoi problemi tramite la stessa etichetta `allstar` (o la tua
`issueLabel` configurata), quindi li adotterà e li chiuderà man mano che le violazioni vengono risolte,
anziché aprire duplicati.
## Policy e azioni
## **Azioni**
Ogni policy può essere configurata con un'azione che Allstar intraprenderà quando
rileva che un repository non è conforme.
- `log`: Questa è l'azione predefinita e in realtà avviene per tutte le
azioni. Tutti i risultati e i dettagli delle esecuzioni delle policy vengono registrati. I log sono attualmente
visibili solo all'operatore dell'app; i piani per esporli sono in discussione.
- `issue`: Questa azione crea un problema GitHub. Viene creato un solo problema per
policy e il testo descrive i dettagli della violazione della policy. Se il
problema è già aperto, viene "pingato" con un commento ogni 24 ore senza aggiornamenti
(attualmente non configurabile dall'utente). Se il risultato della policy cambia, un nuovo commento
verrà lasciato sul problema e collegato nel corpo del problema. Una volta che la violazione viene
affrontata, il problema verrà chiuso automaticamente da Allstar entro 5-10 minuti.
- `fix`: Questa azione è specifica della policy. La policy apporterà le modifiche alle
impostazioni GitHub per correggere la violazione della policy. Non tutte le policy saranno in grado
di supportarla (vedi sotto).
Azioni proposte ma non ancora implementate. Le definizioni verranno aggiunte in
futuro.
- `block`: Allstar può impostare un [GitHub Status
Check](https://docs.github.com/en/github/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks)
e bloccare qualsiasi PR nel repository dall'essere unito se il check fallisce.
- `email`: Allstar invierebbe un'email agli amministratori del repository.
- `rpc`: Allstar invierebbe un rpc a qualche sistema specifico dell'organizzazione.
### **Configurazione dell'azione**
Due impostazioni sono disponibili per configurare l'azione issue:
- `issueLabel` è disponibile a livello di organizzazione e di repository. Impostarla
sovrascriverà l'etichetta `allstar` predefinita usata da Allstar per identificare i suoi
problemi.
- `issueRepo` è disponibile a livello di organizzazione. Impostarla forzerà la creazione di tutti
i problemi creati nell'organizzazione nel repository specificato.
## **Policy**
Analogamente alla configurazione di abilitazione dell'app Allstar, tutte le policy sono abilitate e
configurate con un file yaml nel repository `.allstar` dell'organizzazione
o nella directory `.allstar` del repository. Come per l'app, le policy sono opt-in
per impostazione predefinita; inoltre, l'azione `log` predefinita non produrrà risultati visibili. Un
modo semplice per abilitare tutte le policy è creare un file yaml per ogni policy con il
contenuto:```yaml
optConfig:
optOutStrategy: true
action: issue
```
I dettagli di come funziona l'azione `fix` per ogni policy sono descritti di seguito. Se omesso di seguito, l'azione `fix` non è applicabile.
### Protezione dei rami
Il file di configurazione di questa policy si chiama `branch_protection.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/branch#OrgConfig).
La policy di protezione dei rami verifica che le [impostazioni di protezione dei rami](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches) di GitHub siano configurate correttamente secondo la configurazione specificata. Il testo del problema descriverà quale impostazione non è corretta. Consulta la [documentazione di GitHub](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches) per correggere le impostazioni.
L'azione `fix` modificherà le impostazioni di protezione dei rami per renderle conformi alla configurazione della policy specificata.
### Artefatti binari
Il file di configurazione di questa policy si chiama `binary_artifacts.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/binary#OrgConfig).
Questa policy incorpora il [controllo di scorecard](https://github.com/ossf/scorecard/#scorecard-checks). Rimuovi l'artefatto binario dal repository per raggiungere la conformità. Poiché i risultati di scorecard possono essere prolissi, potresti dover eseguire [scorecard stesso](https://github.com/ossf/scorecard) per vedere tutte le informazioni dettagliate.
### CODEOWNERS
Il file di configurazione di questa policy si chiama `codeowners.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/codeowners#OrgConfig).
Questa policy verifica la presenza di un [file `CODEOWNERS`](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) nei tuoi repository.
### Collaboratori esterni
Il file di configurazione di questa policy si chiama `outside.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/outside#OrgConfig).
Questa policy verifica se eventuali [Collaboratori esterni](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization) hanno accesso amministratore (predefinito) o push (opzionale) al repository. Solo i membri dell'organizzazione dovrebbero avere questo accesso, altrimenti membri non fidati possono modificare le impostazioni a livello di amministratore e committare codice dannoso.
### SECURITY.md
Il file di configurazione di questa policy si chiama `security.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/security#OrgConfig).
Questa policy verifica che il repository abbia un file di policy di sicurezza in `SECURITY.md` e che non sia vuoto. Il problema creato avrà un collegamento alla [scheda di GitHub](https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository) che ti aiuta a committare una policy di sicurezza nel tuo repository.
### Workflow pericoloso
Il file di configurazione di questa policy si chiama `dangerous_workflow.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/workflow#OrgConfig).
Questa policy verrà eseguita su **tutti** i rami, vedi la motivazione [qui](https://github.com/ossf/allstar/issues/569).
Questa policy controlla i file di configurazione dei workflow di GitHub Actions (`.github/workflows`), per qualsiasi pattern che corrisponda a comportamenti pericolosi noti. Consulta la [documentazione di OpenSSF Scorecard](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dangerous-workflow) per maggiori informazioni su questo controllo.
### Controllo Scorecard generico
Il file di configurazione di questa policy si chiama `scorecard.yaml`, e le [definizioni di configurazione sono qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/scorecard#OrgConfig).
Questa policy esegue qualsiasi controllo scorecard elencato nella configurazione `checks`. Tutti i controlli eseguiti devono avere un punteggio uguale o superiore all'impostazione `threshold`. Consulta la [documentazione di OpenSSF Scorecard](https://github.com/ossf/scorecard/blob/main/docs/checks.md) per maggiori informazioni su ciascun controllo.
#### Upload SARIF
La policy Scorecard può opzionalmente caricare i risultati come [SARIF](https://sarifweb.azurewebsites.net/) nella scheda **Security > Code Scanning** di ciascun repository. Questo offre agli amministratori dell'organizzazione visibilità sui risultati di Scorecard insieme ad altri strumenti di sicurezza (CodeQL, Dependabot, ecc.) senza richiedere la configurazione di workflow per singolo repository.
Per abilitare l'upload SARIF, aggiungi il campo `upload` al tuo `scorecard.yaml`:```yaml
optConfig:
optOutStrategy: true
action: issue
checks:
- Binary-Artifacts
- Signed-Releases
threshold: 8
upload:
sarif: true
```
**Requisiti:**
- L'app GitHub Allstar deve avere il permesso **Code scanning alerts** del
repository impostato su **Read & write** (ambito API: `security_events`). Questo
non è tra i permessi che Allstar richiede altrimenti, quindi aggiungilo alla tua app
prima di abilitare il caricamento SARIF.
- Il caricamento SARIF non è bloccante: se il caricamento fallisce (ad es., a causa di
permessi mancanti), il controllo della policy continua normalmente.
- Il rilevamento delle modifiche confronta l'hash SHA del commit HEAD del repository e salta la scansione
e il caricamento quando il repo non è stato aggiornato dall'ultimo caricamento.
Il caricamento SARIF funziona con entrambi i modi di eseguire Allstar: come [daemon
di servizio](https://github.com/ossf/allstar/blob/main/operator.md) o come [GitHub
Action](https://github.com/ossf/allstar/blob/main/github-action-installation.md).
### GitHub Actions
Il file di configurazione di questa policy si chiama `actions.yaml`, e le [definizioni di configurazione
sono
qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/action#OrgConfig).
Questa policy controlla i file di configurazione dei workflow GitHub Actions
(`.github/workflows`) (e le esecuzioni dei workflow in alcuni casi) in ogni repo per garantire
che siano in linea con le regole (ad es. richiedi, nega) definite nella
configurazione a livello di organizzazione per la policy.
### Repository Administrators
Il file di configurazione di questa policy si chiama `admin.yaml`, e le [definizioni di configurazione
sono
qui](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/admin#OrgConfig).
Questa policy verifica che, per impostazione predefinita, tutti i repository debbano avere un utente o un gruppo assegnato come Amministratore. Ti consente di configurare opzionalmente se gli utenti possono essere amministratori (invece dei team).
### Future Policies
- Garantire che dependabot sia abilitato.
- Verificare che le dipendenze siano bloccate/congelate.
## **Esempio di Repository di Configurazione**
Vedi [questo repo](https://github.com/GoogleContainerTools/.allstar) come esempio
di configurazione Allstar in uso. Come amministratore dell'organizzazione, considera un
README.md con alcune informazioni su come Allstar viene utilizzato nella tua
organizzazione.
## Avanzato
### Definizioni di Configurazione
- [Configurazione di abilitazione a livello di organizzazione](https://pkg.go.dev/github.com/ossf/allstar/pkg/config#OrgOptConfig)
- [Configurazione di abilitazione per override del repository]( https://pkg.go.dev/github.com/ossf/allstar/pkg/config#RepoOptConfig)
### Posizione secondaria della configurazione a livello di organizzazione
Per impostazione predefinita, i file di configurazione a livello di organizzazione, come il file `allstar.yaml`
sopra, sono previsti in un repository `.allstar`. Se questo repository non
esiste, viene utilizzata la directory `allstar` del repository `.github` come
posizione secondaria. Per chiarire, per `allstar.yaml`:
| Precedenza | Repository | Percorso |
| - | - | - |
| Primaria | `.allstar` | `allstar.yaml` |
| Secondaria | `.github` | `allstar/allstar.yaml` |
Questo vale anche per i file di configurazione a livello di organizzazione delle singole
policy, come descritto di seguito.
### Configurazioni delle policy del repo nel repo dell'organizzazione
Allstar cercherà anche le configurazioni delle policy a livello di repository nel
repository `.allstar` dell'organizzazione, nella directory con lo stesso nome del
repository. Questa configurazione viene utilizzata indipendentemente dal fatto che "repo override"
sia disabilitato.
Ad esempio, Allstar cercherà la configurazione della policy per un dato repo
`myapp` nel seguente ordine:
| Repository | Percorso | Condizione |
| - | - | - |
| `myapp` | `.allstar/branch_protection.yaml` | Quando "repo override" è consentito. |
| `.allstar` | `myapp/branch_protection.yaml` | Sempre. |
| `.allstar` | `branch_protection.yaml` | Sempre. |
| `.github` | `allstar/myapp/branch_protection.yaml` | Se il repo `.allstar` non esiste. |
| `.github` | `allstar/branch_protection.yaml` | Se il repo `.allstar` non esiste. |
### Posizione della configurazione Base e Merge a livello di organizzazione
Per i file di configurazione Allstar e delle policy a livello di organizzazione, puoi specificare il campo
`baseConfig` per indicare un altro repository che contiene la configurazione Allstar
di base. Questo si spiega meglio con un esempio.
Supponiamo che tu abbia più organizzazioni GitHub, ma voglia mantenere una singola
configurazione Allstar. La tua organizzazione principale è "acme", e il repository
`acme/.allstar` contiene `allstar.yaml`:```yaml
optConfig:
optOutStrategy: true
issueLabel: allstar-acme
issueFooter: Issue created by Acme security team.
```
You also have a satellite GitHub organization named "acme-sat". You want to
re-use the main config, but apply some changes on top by disabling Allstar on
certain repositories. The repository `acme-sat/.allstar` contains
`allstar.yaml`:```yaml
baseConfig: acme/.allstar
optConfig:
optOutRepos:
- acmesat-one
- acmesat-two
```
Questo utilizzerà tutta la configurazione da `acme/.allstar` come configurazione di base, ma poi
applicherà le eventuali modifiche presenti nel file corrente sopra la configurazione di base. Il
metodo con cui viene applicato è descritto come una [JSON Merge
Patch](https://datatracker.ietf.org/doc/html/rfc7396). Il `baseConfig` deve essere
un `<org>/<repository>` di GitHub.
## **Contribuire**
Vedi [CONTRIBUTING.md](https://github.com/ossf/allstar/blob/main/CONTRIBUTING.md)