AWS CodeBuild SDK, источник из GitHub - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующий вариант использования. (Использование AWS CodeBuild Node.js SDK)

Мне нужно использовать частный репозиторий GitHub в качестве источника для проекта CodeBuild.

CASE № 1

Когда я иду вНа месте проекта CodeBuild и «Редактировать исходный код» я вставляю личный токен доступа, и все работает как положено.

CASE № 2

Проблема возникает, когда я хочу добиться того же самоговещь, используя AWS CodeBuild Node.js SDK.

Я использую тот же самый существующий проект CodeBuild, и я устанавливаю свои параметры AWS.CodeBuild.start следующим образом

{
   projectName: CODEBUILD_PROJECT,
   sourceLocationOverride: "https://github.com/owner/name",
   buildspecOverride: buildspecYML,
   sourceTypeOverride: "GITHUB",
   sourceAuthOverride: {
      // Deprecated, but TS requires it
      type: "OAUTH",
      resource: TOKEN
   }
}

Я получаю ответ:

InvalidInputException: No Access token found, please visit AWS CodeBuild console to connect to GitHub

Мой вопрос. Поддерживается ли мой сценарий использования с текущим состоянием SDK? Если да, то как мне этого добиться?

Одна вещь, которую я заметил, просматривая определения типов TS, это комментарий о том, что в настоящее время поддерживается только тип OAUTH. По этой причине я не уверен, есть ли способ достичь моего варианта использования.

export interface SourceAuth {
    /**
     *   This data type is deprecated and is no longer accurate or used.   The authorization type to use. The only valid value is OAUTH, which represents the OAuth authorization type.
     */
    type: SourceAuthType;
    /**
     * The resource value that applies to the specified authorization type.
     */
    resource?: String;
  }

Еще несколько деталей:

То, что я пытаюсь достичь, этосоздание простого CI, который будет управляться из GitHub App , поэтому токен, который я передам, - это токен доступа пользователей.

1 Ответ

0 голосов
/ 09 октября 2019

С источником Github у вас есть два варианта для authType:

  • OAUTH
  • PERSONAL_ACCESS_TOKEN

При использовании OAUTH, единственный вариант, чтобы предоставитьучетные данные через консоль AWS CodeBuild. Начните создавать проект, под источником выберите «Подключиться с помощью OAuth», нажмите «Подключиться к Github» и завершите процесс. Вы можете отменить выход из проекта после подключения к Github.

Подтвердите, что учетные данные зарегистрированы, выполнив команду:

$ aws codebuild list-source-credentials --region us-east-1

Вывод выглядит примерно так:

{
    "sourceCredentialsInfos": [
        {
            "arn": "arn:aws:codebuild:us-east-1:<ACCOUNTNUM>:token/github",
            "serverType": "GITHUB",
            "authType": "OAUTH"
        },
        {
            "arn": "arn:aws:codebuild:us-east-1:<ACCOUNTNUM>:token/github_enterprise",
            "serverType": "GITHUB_ENTERPRISE",
            "authType": "PERSONAL_ACCESS_TOKEN"
        }
    ]
}
...