2015-11-30 39 views
6

我们使用AWS代码部署将Github项目部署到Ec2实例,每次部署时都会要求Github用户名和密码来下载存储库。发现下面的方法来解决这个Golang的Github Oauth令牌

  1. 供应UNAME &密码(不推荐)
  2. 设置SSH密钥(不可能的,因为实例不断变化的IP)
  3. Oauth权杖

设置的Oauth对于PHP存储库是通过将其添加到作曲家auth.json中compospos/auth.json完成的。

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

但是找不到办法为Golang项目做到这一点。通常我们想要实现去获得https://github.com/username/reponame而不明确提供证书。

+0

@SalvadorDali同事:只需添加到您的构建脚本几个命令。 – Itachi

+0

它是一个私人回购? – holys

+0

@holys是的。 – Itachi

回答

1

有两个解决这个问题:

  1. 不部署代码。 Go是一种静态编译的编程语言。您无意在要运行Go程序的服务器上安装Go源代码。
  2. 不要使用go get来获取您的私人GitHub回购代码。只要代码结束在正确的子目录($GOPATH/src/github.com/org/project),Go就不在乎它如何到达那里。在面临着同样的问题,该项目

    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