【问题标题】:AWS Codebuild createProject method is missing oauth token parameter for Github auth?AWS Codebuild createProject 方法缺少 Github 身份验证的 oauth 令牌参数?
【发布时间】:2018-04-11 21:41:11
【问题描述】:

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
    });


  });

我尝试了以下 URL 格式: 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 访问令牌创建代码构建?我知道如何使用代码管道来做到这一点,但如果可能的话,我想避免使用代码管道。

【问题讨论】:

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


    【解决方案1】:

    现在已经不是这样了。见:How do you specify GitHub access token with CodeBuild from CloudFormation

    本质上:

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

    上面的详细信息。令牌应该有repoadmin:repo_hook(如果你想使用webhooks)权限。

    【讨论】:

      【解决方案2】:

      我刚找到这个帖子... 所以跟进问题:如果您必须为 GH 进行一次性设置,那么如果我有多个团队 - 每个团队都有自己的 GH 组织,那么我不能使用单独的令牌吗?

      我必须使用拥有所有 GH 组织权限的用户的令牌吗?对吗?

      【讨论】:

        【解决方案3】:

        您的模板中缺少一个参数。源代码应如下所示:

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

        正如李振所说,您必须先通过控制台 (create auth resource like this) 在 Github 上授权您的 AWS 账户一次,然后您可以通过编程方式为您的 Github 创建任意数量的授权构建项目!

        【讨论】:

          【解决方案4】:

          没有程序化的方法可以做到这一点。您可以使用 AWS CodeBuild 控制台连接您的 GitHub 账户。这是一次性设置。连接后,以后所有使用来自您的 GitHub 帐户的源代码的 CodeBuild 项目都将能够使用存储的令牌。

          【讨论】:

          • 这不再是真的。见下文。
          猜你喜欢
          • 1970-01-01
          • 2018-08-03
          • 2020-08-27
          • 1970-01-01
          • 2019-03-25
          • 2020-09-18
          • 2021-08-28
          • 1970-01-01
          • 2018-09-27
          相关资源
          最近更新 更多