GitHub 和 GitHub Enterprise Server 存取權杖 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GitHub 和 GitHub Enterprise Server 存取權杖

存取字符先決條件

在開始之前,您必須將適當的許可範圍新增至您的 GitHub 存取權杖。

對於 GitHub,您的個人存取權杖必須具有下列範圍。

  • repo:授予私有儲存庫的完全控制。

  • repo:status :授予公有和私有儲存庫遞交狀態的讀取/寫入存取權。

  • admin:repo_hook:授予儲存庫勾點的完全控制。如果您的字符有 repo 範圍,則不需要此範圍。

  • admin:org_hook :授予組織掛鉤的完整控制權。只有在您使用組織 Webhook 功能時,才需要此範圍。

如需詳細資訊,請參閱了解 網站上的OAuth應用程式範圍。 GitHub

如果您使用的是精細的個人存取權杖,取決於您的使用案例,您的個人存取權杖可能需要下列許可:

  • 內容:唯讀:授予私有儲存庫的存取權。如果您使用私有儲存庫作為來源,則需要此許可。

  • 遞交狀態:讀取和寫入:准許建立遞交狀態。如果您的專案已設定 Webhook,或已啟用報告建置狀態功能,則需要此許可。

  • Webhooks:讀取和寫入:授予管理 Webhook 的許可。如果您的專案已設定 Webhook,則需要此許可。

  • 提取請求:唯讀:授予存取提取請求的許可。如果您的 Webhook 具有提取請求事件的FILE_PATH篩選條件,則需要此許可。

  • 管理:讀取和寫入:如果您使用 自我託管 GitHub 動作執行器功能搭配 ,則需要此許可 CodeBuild。如需詳細資訊,請參閱建立儲存庫的註冊權杖教學課程:設定 CodeBuild GitHub託管動作執行器

注意

如果您想要存取組織儲存庫,請務必將組織指定為存取權杖的資源擁有者。

如需詳細資訊,請參閱 GitHub 網站上的精細個人存取權杖所需的許可

GitHub 使用存取權杖連線 (主控台)

若要使用主控台, GitHub 使用存取權杖將專案連線至 ,請在建立專案時執行下列動作。如需相關資訊,請參閱 建立組建專案 (主控台)

  1. 對於來源提供者 ,選擇 GitHub

  2. 對於憑證 ,請執行下列其中一項操作:

    • 選擇預設來源憑證,以使用您帳戶的預設來源憑證套用至所有專案。

      1. 如果您未連線至 GitHub,請選擇管理預設來源憑證

      2. 針對憑證類型 ,選擇個人存取權杖

      3. 如果您選擇預設來源憑證 ,針對 Service,請選擇您要用來存放權杖的服務,並執行下列動作:

        • 如果您選擇使用 Secrets Manager ,您可以選擇使用現有的秘密連線或建立新的秘密,然後選擇儲存 。如需如何建立新的秘密的詳細資訊,請參閱 在 Secrets Manager 秘密中建立和存放權杖

        • 如果您選擇使用 CodeBuild,請輸入GitHub 您的個人存取權杖,然後選擇儲存

    • 選擇自訂來源憑證以使用自訂來源憑證來覆寫帳戶的預設設定。

      1. 針對憑證類型 ,選擇個人存取權杖

      2. 連線 中,選擇使用現有的秘密連線或建立新的秘密。

GitHub 使用存取權杖連線 (CLI)

請依照下列步驟,使用 AWS CLI 來 GitHub 使用存取權杖將專案連線至 。如需有關 AWS CLI 搭配 使用 的資訊 AWS CodeBuild,請參閱 命令列參考

  1. 執行 import-source-credentials 命令:

    aws codebuild import-source-credentials --generate-cli-skeleton

    JSON輸出中會顯示 格式化的資料。將資料複製到 AWS CLI 安裝 的本機電腦或執行個體位置中的檔案 (例如 import-source-credentials.json)。如下所示修改複製的資料,並儲存您的結果。

    { "serverType": "server-type", "authType": "auth-type", "shouldOverwrite": "should-overwrite", "token": "token", "username": "username" }

    取代以下項目:

    • server-type:必要值。用於此登入資料的來源供應商。有效值為 GITHUB、BITBUCKET、GITHUB_GITLAB、 ENTERPRISE和 GITLAB_SELF_MANAGED。

    • auth-type:必要值。用於連線至儲存庫的身分驗證類型。有效值為 OAUTH、BASIC_AUTH、PERSONAL_ACCESS_TOKEN、 CODECONNECTIONS和 SECRETS_MANAGER。對於 GitHub,僅允許 PERSONAL_ACCESS_TOKEN。BASIC_AUTH 僅允許使用 Bitbucket 應用程式密碼。

    • should-overwrite:選用值。設為 false 可防止覆寫儲存庫來源登入資料。設為 true 可覆寫儲存庫來源登入資料。預設值為 true

    • token:必要值。對於 GitHub 或 GitHub Enterprise Server,這是個人存取權杖。對於 Bitbucket,這是個人存取權杖或應用程式密碼。對於 auth-type CODECONNECTIONS,這是連線 ARN。對於 auth-type SECRETS_MANAGER,這是秘密 ARN。

    • username:選用值。 GitHub 和 GitHub Enterprise Server 來源提供者會忽略此參數。

  2. 若要使用存取字符連接您的帳戶,請切換到包含您在步驟 1 中儲存的 import-source-credentials.json 檔案的目錄,並再次執行 import-source-credentials 命令。

    aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json

    JSON格式化資料會顯示在具有 Amazon Resource Name () 的輸出中ARN。

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }
    注意

    如果您使用相同的伺服器類型和身分驗證類型執行 import-source-credentials 命令第二次,即會更新存放的存取字符。

    帳戶與存取權杖連線後,您可以使用 create-project 來建立 CodeBuild 專案。如需詳細資訊,請參閱建立建置專案 (AWS CLI)

  3. 若要檢視連接的存取字符,請執行 list-source-credentials 命令。

    aws codebuild list-source-credentials

    輸出中會出現JSON格式化的sourceCredentialsInfos物件:

    { "sourceCredentialsInfos": [ { "authType": "auth-type", "serverType": "server-type", "arn": "arn" } ] }

    sourceCredentialsObject 包含連接的來源登入資料資訊的清單:

    • authType 是登入資料使用的身分驗證類型。這可以是 OAUTHBASIC_AUTHPERSONAL_ACCESS_TOKENCODECONNECTIONSSECRETS_MANAGER

    • serverType 是來源供應商的類型。這可以是 GITHUBGITHUB_ENTERPRISEBITBUCKETGITLABGITLAB_SELF_MANAGED

    • arn 是權杖ARN的 。

  4. 若要中斷與來源提供者的連線並移除其存取權杖,請使用其 執行 delete-source-credentials命令ARN。

    aws codebuild delete-source-credentials --arn arn-of-your-credentials

    JSON已格式化的資料會傳回為已刪除憑證ARN的 。

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }