【问题标题】:Github Oauth token for GolangGolang 的 Github Oauth 令牌
【发布时间】:2016-03-03 17:14:36
【问题描述】:

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

  1. 提供 Uname 和 Pwd(非首选)
  2. 设置 SSH 密钥(由于实例不断更改 ip,因此无法设置)
  3. Oauth 令牌

为 PHP 存储库设置 Oauth 是通过将其添加到 composer auth.json .composer/auth.json 来完成的。

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

但找不到为 Golang 项目执行此操作的方法。通常,我们希望在不显式提供凭据的情况下实现 go get https://github.com/username/reponame

【问题讨论】:

  • @SalvadorDali 项目中的同事面临同样的问题。
  • 是私人仓库吗?
  • @ltachi,你在使用go get xxx 吗?你试过了吗?gist.github.com/shurcooL/6927554
  • @holys 这涉及使用实例创建 SSH 密钥。因此,如果实例出现故障并提供新的 ip,则需要另一个 SSH 密钥。如果它是身份验证令牌,我可以编写一个启动脚本来正确安装它。 -u 似乎也不起作用。
  • @ltachi 这对你有帮助吗?github.com/golang/go/issues/10791

标签: github go oauth aws-code-deploy


【解决方案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
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多