2015-11-30 20 views
6

Utilizziamo il codice AWS distribuito per distribuire i progetti Github alle istanze Ec2 ogni volta che viene distribuito richiede nome utente e password Github per scaricare il repository. Trovato seguenti modi per risolvere questoToken Github Oauth per Golang

  1. alimentazione Uname & Pwd (non preferita)
  2. Setup SSH Key (non possibile in quanto l'istanza continua a cambiare ip)
  3. token OAuth

Impostazione Oauth per il repository PHP è stato fatto aggiungendolo nel compositore auth.json .composer/auth.json.

{ 
    "http-basic": {}, 
    "github-oauth": {"github.com": "xyzasasasauhu"} 
} 

Ma non è riuscito a trovare un modo per farlo per il progetto Golang. In genere vogliamo ottenere andare a ottenere https://github.com/username/reponame senza fornire esplicitamente le credenziali.

+0

colleghi @SalvadorDali nel progetto di fronte lo stesso problema. – Itachi

+0

È un repo privato? – holys

+0

@holys Sì, lo è. – Itachi

risposta

1

ci sono due soluzioni a questo problema:

  1. non distribuire il codice. Go è un linguaggio di programmazione staticamente compilato. Non è necessario avere il codice sorgente Go sul server su cui si intende eseguire il programma Go.
  2. Non utilizzare go get per ottenere il codice per il repository GitHub privato. Finché il codice finisce nella sottodirectory corretta ($GOPATH/src/github.com/org/project), a Go non importa come sia arrivato. Basta aggiungere al vostro script di build alcuni comandi:

    DIR=$GOPATH/src/github.com/org/project 
    TOKEN=yourtoken 
    
    if [ -d $DIR ]; then 
        cd $DIR 
        git reset --hard 
        git clean -dfx 
    else 
        mkdir -p $DIR 
        cd $DIR 
        git init 
    fi 
    
    git pull https://[email protected]/org/project.git 
    
Problemi correlati