Vai al contenuto
CodeQuay

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.

Schema: gli sviluppatori fanno push su CodeQuay, che applica protezioni, blocco dei segreti e audit; CodeQuay replica automaticamente ogni push su GitHub in pochi secondi; su GitHub partono i workflow di GitHub Actions come oggi.

Come si fa

Cinque passi, nessun fermo

Import e mirror si gestiscono dalla console, oppure da riga di comando sul server.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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
Esempio della console CodeQuay, importazione di un repository da GitHub: import completato con 14 branch e 38 tag; l'analisi della storia ha trovato 2 possibili segreti da ruotare, indicati con file, riga e commit, senza mostrarne il valore.
Esempio della console CodeQuay, mirror di un repository verso GitHub: sincronizzato, ultima sincronizzazione riuscita 40 secondi fa, con interruttore attivo e pulsante Sincronizza ora.

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.

nel clone esistente
Comandi per gli sviluppatori: cambiare l'indirizzo del remote verso CodeQuay via HTTPS oppure SSH, poi git fetch.
# 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
da un'altra piattaforma git
Comandi di migrazione da un'altra piattaforma: clone mirror, rimozione dei riferimenti refs/pull, push mirror verso CodeQuay.
$ 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

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.