Golang的Github Oauth代币

时间:2015-11-30 06:02:46

标签: github go oauth aws-code-deploy

我们使用AWS代码部署将Github项目部署到Ec2实例,每次部署它时都会要求Github用户名和密码来下载存储库。找到以下解决方法

  1. 供应Uname& Pwd(不是首选)
  2. 设置SSH密钥(不可能因为实例不断更改ip)
  3. Oauth令牌
  4. 为PHP存储库设置Oauth是通过在composer auth.json .composer / auth.json 中添加它来完成的。

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

    但是无法为Golang项目找到一种方法。通常,我们希望在不提供明确凭据的情况下实现 go get https://github.com/username/reponame

1 个答案:

答案 0 :(得分: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://$TOKEN@github.com/org/project.git