Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/ariesq/gh-safe-repo
Utilità GenericheScanner di VulnerabilitàScripting e AutomazioneAudit di ConfigurazioneSicurezza CloudDevSecOpsRilevamento Segreti
GitHubariesq/gh-safe-repo

gh-safe-repo

CLI Python che crea repository GitHub con impostazioni sicure predefinite — protezione dei branch, Dependabot, scansione dei segreti e scansione di sicurezza pre-flight — applicate automaticamente.

Vedi Repository
383121 giorno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

gh-safe-repo

Crea repository GitHub con impostazioni sicure predefinite applicate automaticamente. Sostituisce la checklist di cinque minuti per le impostazioni post-creazione con un singolo comando.``` gh-safe-repo create <owner/repo>

La protezione dei branch, i tag immutabili, Dependabot, le autorizzazioni Actions limitate e la scansione dei segreti con push protection — tutto configurato prima ancora di scrivere la prima riga di codice.

> **Stato:** gh-safe-repo è in fase di sviluppo intenso. Funziona bene per il caso d'uso principale — creare un nuovo repo con impostazioni sicure predefinite — ma le opzioni della CLI sono ancora in fase di rifinitura per allinearsi meglio alle aspettative degli utenti. Aspettati modifiche incompatibili finché release e CI/CD non saranno consolidati. ✌️

---

## Cosa ottieni

Le impostazioni predefinite di GitHub sono ottimizzate per la scopribilità e la flessibilità, non per la sicurezza: ogni nuovo repo viene creato senza protezione dei branch, senza Dependabot e con Actions che hanno accesso in scrittura al repo e possono approvare le proprie pull request.

`gh-safe-repo` risolve tutto questo in un colpo solo, mostrandoti prima un piano:

- **Privato per impostazione predefinita** — passa `--public` quando vuoi che il mondo lo veda
- **Protezione dei branch** — PR obbligatoria, 1 revisione approvante, revisioni obsolete scartate, conversazioni risolte, nessun force push, nessuna cancellazione di branch
- **Tag immutabili** — i tag di release non possono essere riscritti o eliminati
- **Actions bloccate** — token in sola lettura, nessuna PR auto-approvata, azioni con SHA bloccato, solo publisher di proprietà GitHub e verificati
- **Dependabot attivo** — avvisi di vulnerabilità più PR di correzione automatiche
- **Scansione dei segreti con push protection** — i commit contenenti segreti supportati vengono bloccati
- **Segnalazione privata di vulnerabilità** — i ricercatori possono contattarti senza rendere pubblico il problema
- **Scansione preventiva dei segreti** — quando si esegue il push di codice esistente (`--local` / `--from`), il working tree e la cronologia git vengono scansionati localmente prima che qualsiasi cosa raggiunga GitHub
- **Extra opzionali** — wiki, progetti e issue vengono lasciati invariati a meno che tu non ne richieda la gestione (`has_wiki = false` nella configurazione)

Tutto è configurabile. Vedi [Impostazioni sicure predefinite complete](#safe-defaults-in-full) per le impostazioni esatte e [Configurazione](#configuration) per come modificarle.

## Requisiti

- **Python 3.10+**
- **[`gh` CLI](https://cli.github.com/)** autenticata (`gh auth login`), **oppure** `GITHUB_TOKEN` impostato nel tuo ambiente
- **[`uv`](https://docs.astral.sh/uv/)** per l'installazione dal sorgente
- **truffleHog v3** *(opzionale)* — utilizzato dallo scanner preventivo; rilevato automaticamente dal PATH o eseguito tramite podman/docker, con un fallback regex se nessuno dei due esiste

Il push del codice con `--local` o `--from` richiede inoltre le tue normali credenziali git per GitHub — vedi [Lavorare da codice locale o esistente](#working-from-local-or-existing-code).

## Installazione```bash
git clone https://github.com/AriESQ/gh-safe-repo
cd gh-safe-repo
uv tool install .

gh-safe-repo --help

Questo installa gh-safe-repo nell'ambiente degli strumenti di uv e lo aggiunge al tuo PATH.

Per eseguirlo senza installarlo:```bash uv sync # creates .venv ./gh-safe-repo create <owner/repo>

## Il tuo primo repository

**1. Anteprima.** `--dry-run` non effettua alcuna chiamata API — non viene creato nulla:```
$ gh-safe-repo create AriESQ/demo-repo --dry-run

Configuring AriESQ/demo-repo...

Planned Changes
Type    Category           Setting                                 Value / Note
------  -----------------  --------------------------------------  ----------------------------------------------------------------
ADD     repo               repository                              AriESQ/demo-repo
DELETE  file               readme                                  README.md
UPDATE  actions            allowed_actions                         'all' → 'selected'
UPDATE  actions            verified_allowed                        False → True
UPDATE  actions            sha_pinning_required                    False → True
UPDATE  actions            default_workflow_permissions            'write' → 'read'
UPDATE  actions            can_approve_pull_request_reviews        True → False
SKIP    branch_protection  branch_protection                       Branch protection requires a public repo or paid GitHub plan
SKIP    security           dependabot_alerts                       Requires a public repo or paid GitHub plan
SKIP    security           secret_scanning                         Requires a public repo or paid GitHub plan
SKIP    security           dependabot_security_updates             Requires a public repo or paid GitHub plan
SKIP    security           private_vulnerability_reporting         Requires a public repo or paid GitHub plan
SKIP    security           enable_dependency_graph                 Requires a public repo or paid GitHub plan
SKIP    security           enable_secret_scanning_push_protection  Requires a public repo or paid GitHub plan
SKIP    tag_protection     tag_protection                          Tag protection rulesets require a public repo or paid GitHub plan

7 change(s) to apply, 8 skipped

Dry run — no changes made.

Le righe SKIP sopra sono un repo privato con piano gratuito: quelle funzionalità richiedono un repo pubblico o un piano a pagamento. Nulla fallisce silenziosamente — vedi Limitazioni del piano GitHub.

2. Apply. Stesso comando senza --dry-run. Ottieni lo stesso piano, poi un prompt di conferma (--yes lo salta):```bash gh-safe-repo create AriESQ/demo-repo

**3. Inizia a lavorare.** In caso di successo ottieni l'URL del repository e i comandi remoti pronti da incollare:```
╭─ Done ───────────────────────────────────────────────────╮
│   Repository created successfully!                       │
│   https://github.com/AriESQ/demo-repo                    │
│                                                          │
│   Add remote to existing repo:                           │
│   SSH  : git remote add origin [email protected]:AriESQ/…   │
│   HTTPS: git remote add origin https://github.com/…      │
│                                                          │
│   Clone fresh:                                           │
│   SSH  : git clone [email protected]:AriESQ/demo-repo.git   │
│   HTTPS: git clone https://github.com/AriESQ/demo-…      │
╰──────────────────────────────────────────────────────────╯

I remote sono elencati con il tuo protocollo preferito per primo (gh config get -h github.com git_protocol).

Attività comuni

Creare un repository```bash

gh-safe-repo create <owner/repo> # private (default) gh-safe-repo create <owner/repo> --public # public — branch and tag protection apply

Un semplice `create` inizializza il repository in modo che esista un branch predefinito (la protezione del branch ne ha bisogno), poi elimina il `README.md` generato automaticamente così inizi da zero. Imposta `auto_init = true` nella configurazione per conservarlo.

### Eseguire il push di un progetto locale esistente```bash
gh-safe-repo create <owner/repo> --local ~/projects/myapp

Analizza prima la directory alla ricerca di segreti, crea il repository, esegue il push di tutti i branch e tag, quindi configura origin e il tracking upstream nella directory originale in modo che git push funzioni immediatamente. Un origin esistente che punta altrove viene lasciato invariato; un avviso e il banner di successo ti indicano l'esatto git push -u origin <branch>:<branch> da eseguire invece. Vedi Working from local or existing code.

Scarica lo strumento