AWS Codebuild createProject方法缺少Github auth的oauth令牌参数?

时间:2017-10-30 19:56:59

标签: amazon-web-services github aws-codebuild

AWS Codebuild createProject方法是否缺少Github身份验证的OAuth令牌参数?

我想避免使用CodePipeline。我想以编程方式使用Github令牌创建代码构建项目,但我似乎无法找到包含GitHub令牌的方法。有没有人经历过这个?

var params = {
    artifacts: {
      /* required */
      type: 'S3',
      location: 'STRING_VALUE',
      packaging: 'ZIP'
    },
    environment: {
      /* required */
      computeType: 'BUILD_GENERAL1_LARGE',
      image: 'aws/codebuild/nodejs:4.3.2', /* required */
      type: "LINUX_CONTAINER",
    },
    name: key, /* required */
    source: {
      /* required */
      type: "GITHUB",
      auth: {
        type: "OAUTH"
      },
      buildspec: 'echo "test";',
      location: `https://github.com/${original.organizations.name}/${original.repos.name}.git`,

    },
    description: 'STRING_VALUE',
    serviceRole: 'arn:aws:iam::171566796811:role/tmmmm6',
    timeoutInMinutes: 5
  };
  codebuild.createProject(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response


    console.log("WEBHOOK")
    var params = {
      projectName: key /* required */
    };
    codebuild.createWebhook(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else     console.log(data);           // successful response
    });


  });

我尝试使用以下网址格式: https://${original.github.token}:@github.com/${original.organizations.name}/${original.repos.name}.git 但这不起作用。 Codebuild不允许我创建webhook。

以下是文档。 http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CodeBuild.html 是否可以使用GitHub访问令牌创建代码构建?我知道如何使用代码管道,但我想尽可能避免使用代码管道。

4 个答案:

答案 0 :(得分:4)

没有以编程方式执行此操作。您可以使用AWS CodeBuild控制台连接您的GitHub帐户。这是一次性设置。连接后,使用GitHub帐户的所有未来CodeBuild项目都可以使用存储的令牌。

答案 1 :(得分:1)

您在模板中缺少参数。来源应如下所示:

    source: {
      /* required */
      type: "GITHUB",
      auth: {
        type: "OAUTH",
        resource: "GITHUB"
      },
      buildspec: 'echo "test";',
      location: `https://github.com/${original.organizations.name}/${original.repos.name}.git`,

    },

如Zhen Li所说,您必须首先通过控制台(create auth resource like this)向Github授权您的AWS账户,然后您可以根据需要以编程方式为Github创建尽可能多的授权构建项目!

答案 2 :(得分:1)

现在已经不是这样了。请参阅:a more reliable way of using vw units in font-size:

本质上:

  • 创建 PAT 并将其放入机密管理器
  • 在 CloudFormation 中创建一个 AWS::CodeBuild::SourceCredential 并动态链接密钥。
  • 在项目定义中引用此资源。

上面的细节。令牌应具有 repoadmin:repo_hook(如果您想使用网络钩子)权限。

答案 3 :(得分:0)

我刚刚找到了这个线程... 因此,接下来的问题是:如果您必须为GH进行一次性设置,那么如果我有多个团队-每个团队都有自己的GH组织,那么我不能使用单独的令牌吗?

我必须使用有权访问所有GH组织的用户的令牌吗?正确吗?