Migrazione
Da GitHub a CodeQuay, con la CI che continua a girare
Il principio in una riga: si fa push solo su CodeQuay, e GitHub diventa una copia aggiornata automaticamente dopo ogni push. Le pipeline di GitHub Actions restano dove sono.
Come si fa
Cinque passi, nessun fermo
Import e mirror si gestiscono dalla console, oppure da riga di comando sul server.
- 01
Autorizza la chiave dell'istanza
Su GitHub aggiungi la chiave pubblica di CodeQuay come deploy key del repository. La chiave privata non lascia mai il server.
- 02
Importa il repository
Tutti i branch e tutti i tag, il branch di default già protetto, gli indici pronti per una navigazione veloce. Se si interrompe, si rilancia e riprende.
- 03
Controlla i segreti della storia
L'import analizza tutta la storia e segnala tipo, file, riga e commit di ogni possibile segreto, senza mai mostrarne il valore.
- 04
Attiva il mirror verso GitHub
Da quel momento ogni push accettato da CodeQuay viene replicato su GitHub in pochi secondi, e GitHub Actions parte come oggi.
- 05
Cambia il remote, e basta
Per gli sviluppatori è un solo comando per ogni clone: la storia è identica, niente da riscaricare.
Import
Arrivi con tutta la storia, e sai cosa c'è dentro
L'import copia tutti i branch e tutti i tag (le pull request di GitHub no), protegge il branch di default e analizza l'intera storia alla ricerca di chiavi private e token.
- I segreti trovati sono già pubblicati: vanno ruotati, non basta cancellarli dal codice
- Da quel momento il blocco dei segreti impedisce di reintrodurne di nuovi
- Rilanciabile: se si interrompe riprende e allinea, senza sovrascrivere lavoro nuovo
Mirror verso GitHub
La CI resta dov'è, finché vuoi
Branch nuovi e aggiornati, tag nuovi, branch cancellati: tutto viene replicato su GitHub pochi secondi dopo il push su CodeQuay.
Quando vuoi, i workflow possono passare a CodeQuay Actions, con la stessa sintassi di GitHub Actions. CodeQuay Actions
-
I workflow partono come oggi
I push replicati sono push veri sul repository GitHub e attivano i workflow on: push.
-
Segreti e ambienti restano su GitHub
Nessuna configurazione della CI da spostare per iniziare.
-
Se GitHub non risponde, CodeQuay ritenta
Con attese crescenti, e avvisa gli amministratori alla prima rottura e al ripristino. Il push degli sviluppatori non ne risente.
-
GitHub diventa una copia
Si fa push solo su CodeQuay; con un ruleset su GitHub solo la deploy key di CodeQuay può scrivere.
Per chi sviluppa
Un comando, e si torna al codice
Branch, tag, commit e hash restano gli stessi. Cambia solo l'indirizzo del remote, e da quel momento le protezioni, il blocco dei segreti e l'audit lavorano per te.
Arrivi da un'altra piattaforma? Il formato è git standard: basta un git push --mirror. E si riparte allo stesso modo, con un git clone --mirror.
# HTTPS (con un token personale CodeQuay)$ git remote set-url origin https://git.codequay.it/acme/portale/api.git# oppure SSH (con una chiave registrata nella console)$ git remote set-url origin ssh://git@git.codequay.it:2222/acme/portale/api.git$ git fetch origin $ git clone --mirror https://server-attuale.example/acme/api.git$ cd api.git# solo se esistono: via i riferimenti delle pull request$ git for-each-ref --format='delete %(refname)' refs/pull | git update-ref --stdin$ git push --mirror https://git.codequay.it/acme/portale/api.git Perché CodeQuay
Gli altri plus di CodeQuay
Vuoi portare i tuoi repository su CodeQuay?
Crea il tuo account, inizia gratis e parti dall'import. Vuoi capire se fa per il tuo team o ti serve un'istanza dedicata? Scrivici.