Vai al contenuto
CodeQuay

Funzionalità

Tutto quello che serve per ospitare codice importante

CodeQuay unisce l'hosting git che il tuo team conosce già a regole che il server applica sempre. Ecco cosa trovi oggi nella piattaforma e cosa arriverà a breve.

Protezioni lato server

Regole che non si aggirano, nemmeno da owner e admin

Le protezioni sono verificate dal server prima di accettare qualunque push. Non dipendono dagli hook installati sui computer degli sviluppatori e non esiste un ruolo che le scavalchi.

  • Branch protetti per pattern

    main, release/*, develop: per ogni pattern scegli il ruolo minimo per il push. Force-push e cancellazione sono vietati per tutti.

  • Tag di rilascio immutabili

    Un tag come v2.4.0 si crea una volta e non si sposta né si cancella: lo stesso numero di versione indica sempre lo stesso codice.

  • Rifiuti spiegati in italiano

    Chi tenta un'operazione vietata legge nel terminale quale regola l'ha fermato e come procedere.

  • Restrizioni per utente

    Limita il ruolo di un singolo utente su un repository, ad esempio un consulente in sola lettura.

git.codequay.it/acme/portale/api/-/settings/protections
Esempio della console CodeQuay: protezioni dei branch main, release/* e develop, senza force push e non eliminabili; policy di push con tag v* immutabili, limite di 50 MB per file e blocco dei segreti attivo.
git push --force origin v2.4.0
Esempio: lo spostamento del tag v2.4.0 viene rifiutato perché il tag è immutabile; il server suggerisce di pubblicare una nuova versione.
~/progetti/api $ git push --force origin v2.4.0remote:remote: CodeQuay: push RIFIUTATOremote:   - refs/tags/v2.4.0: il tag 'v2.4.0' è immutabileremote:     (pattern v*) e non può essere spostato; per unaremote:     correzione pubblica una nuova versioneremote: ! [remote rejected] v2.4.0 -> v2.4.0 (pre-receive hook declined)

Segreti e policy di push

Le credenziali si fermano prima di entrare nella storia

Una chiave committata per errore, una volta nella storia, va considerata compromessa. CodeQuay analizza i file nuovi di ogni push e respinge quelli che contengono credenziali riconoscibili.

Credenziali riconosciute

  • Chiavi private PEM (RSA, EC, DSA, OpenSSH, PGP)
  • Chiavi di accesso AWS
  • Chiavi API Google
  • Chiavi Stripe di produzione
  • Token GitHub, anche fine-grained
  • Token Slack
  • Token personali CodeQuay

Regole aziendali sul contenuto

  • Formato dei messaggi di commit con un'espressione regolare, ad esempio feat|fix|docs: ….
  • Dimensione massima dei file: i binari pesanti restano fuori dal repository.
  • Nel registro di audit finisce la regola violata, mai il valore del segreto.
git push origin feature/pagamenti
Esempio: un push che contiene una chiave di accesso AWS nel file config/prod.env viene rifiutato; il server indica file e riga, mostra solo l'inizio della chiave e invita a rimuoverla dalla storia e a revocarla.
~/progetti/api $ git push origin feature/pagamentiWriting objects: 100% (7/7), 2.31 KiB | 2.31 MiB/s, done.remote:remote: CodeQuay: push RIFIUTATOremote:   - possibile segreto in 'config/prod.env' riga 12:remote:     chiave di accesso AWS (AKIA7Q2M…(20 caratteri));remote:     rimuovilo dalla storia (non basta un commitremote:     successivo) e revoca la credenzialeremote: ! [remote rejected] feature/pagamenti -> feature/pagamenti   (pre-receive hook declined)

Accesso moderno

Identità solide, per le persone e per gli script

Gli utenti entrano come preferiscono, gli script usano credenziali limitate nel tempo e nei permessi.

Verifica in due passaggi
Codice monouso da app di autenticazione per ogni account.
Accesso federato
Google, Apple, Microsoft 365 e provider aziendali compatibili OIDC.
Token con scadenza obbligatoria
Scope separati per API e git, scadenza massima di un anno, revoca immediata.
HTTPS e SSH
Clone e push con il protocollo che il team usa già, con le stesse regole.
git.codequay.it/-/settings/tokens
Esempio della console CodeQuay: token personali con scope limitati e scadenza obbligatoria, con stato attivo, in scadenza o scaduto; accesso con verifica in due passaggi e provider aziendali.

Prestazioni

Veloce anche quando la storia è lunga

Navigazione del codice, cronologia, blame e diff restano fluidi anche su repository con 100.000 commit. Gli indici di git vengono mantenuti ogni notte, senza interventi da parte tua.

  • File browser con evidenziazione della sintassi e README
  • Cronologia paginata, blame e confronto fra branch
  • Ricerca dei repository a cui hai accesso
git.codequay.it/acme/portale/api/-/commit/a41c9e2
Esempio della console CodeQuay: il diff di un commit su un repository con oltre 128 mila commit, con righe aggiunte e rimosse evidenziate.

Migrazione

Si arriva con un comando, si riparte con un comando

CodeQuay conserva i repository in formato git standard. Per portarne uno basta un mirror: storia completa, tutti i branch e tutti i tag. Nessun formato proprietario, nessun vincolo per il futuro.

  • Crea il repository vuoto dalla console, poi esegui il push del mirror.
  • Attiva protezioni e policy dopo l'importazione: valgono da quel momento in poi.
  • CodeQuay accetta solo branch e tag. Se il repository arriva da una piattaforma che aggiunge riferimenti propri (come refs/pull/*), eliminali dalla copia locale prima del push, come nell'esempio.
migrazione di un repository
Comandi di migrazione: clone mirror dal server attuale, rimozione dei riferimenti refs/pull, push mirror verso CodeQuay.
# 1. copia completa dal server attuale$ git clone --mirror https://server-attuale.example/acme/api.git$ cd api.git# 2. solo se esistono: via i riferimenti delle pull request$ git for-each-ref --format='delete %(refname)' refs/pull |    git update-ref --stdin# 3. push di storia, branch e tag su CodeQuay$ git push --mirror https://git.codequay.it/acme/portale/api.git

Roadmap

In arrivo (non ancora disponibile)

Funzioni in sviluppo. Non fanno parte della piattaforma di oggi e non vanno considerate nella valutazione attuale.

  • Merge request con revisione In arrivo

    Revisione del codice con approvazioni e merge eseguito dal server, nel rispetto delle protezioni del branch.

  • Issue In arrivo

    Tracciamento di attività e segnalazioni collegato a commit e merge request.

  • Webhook firmati In arrivo

    Notifiche verso i tuoi sistemi con firma verificabile di ogni chiamata.

  • Release con checksum In arrivo

    Pubblicazione delle release con artefatti e checksum, legate ai tag immutabili.

  • CI/CD In arrivo

    Pipeline di integrazione e rilascio compatibili con la sintassi di GitHub Actions.

  • Revisione assistita da AI In arrivo

    Suggerimenti automatici sulle modifiche, come supporto al revisore umano.

  • Registry dei pacchetti In arrivo

    Pacchetti e immagini accanto al codice, con gli stessi permessi dei progetti.

Vuoi vedere le protezioni all'opera sui tuoi repository?

Il programma pilota è aperto a un numero limitato di aziende e amministrazioni: ti affianchiamo nella migrazione dei primi repository e nella definizione delle regole.