2015-11-30 18 views
6

Używamy wdrażania kodu AWS do wdrażania projektów Github do instancji Ec2 za każdym razem, gdy jest on wdrażany, prosi o podanie nazwy użytkownika i hasła Github w celu pobrania repozytorium. Znaleziono następujące sposoby rozwiązania tegoGithub Oauth token dla Golang

  1. Supply uname & PWD (nie jest to korzystne)
  2. konfiguracja SSH Key (niemożliwe jak instancja wciąż się zmienia ip)
  3. Token OAuth

Konfigurowanie OAuth dla repozytorium PHP dokonano poprzez dodanie go do kompozytor auth.json .composer/auth.json.

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

Ale nie mogłem znaleźć sposobu, aby to zrobić dla projektu Golang. Zazwyczaj chcemy uzyskać , aby uzyskać https://github.com/username/reponame bez jawnego podawania poświadczeń.

+0

@SalvadorDali Koledzy w projekcie skierowanym ten sam problem. – Itachi

+0

Czy jest to prywatne repo? – holys

+0

@holys Tak, to jest. – Itachi

Odpowiedz

1

Istnieją dwa rozwiązania tego problemu:

  1. nie wysuną kod. Go to statycznie skompilowany język programowania. Nie musisz mieć kodu źródłowego Go na serwerze, na którym chcesz uruchomić program Go.
  2. Nie używaj kodu go get, aby uzyskać kod prywatnego repozytorium GitHub. Tak długo, jak kod kończy się w poprawnym podkatalogu ($GOPATH/src/github.com/org/project), Go nie obchodzi, jak się tam dostał. Wystarczy dodać do skryptu zbudować kilka poleceń:

    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