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.
~/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.
~/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.
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
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.
# 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.