GitHub - Amazon Kendra

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

GitHub

GitHub 是一種基於 Web 的託管服務,用於軟件開發,提供代碼存儲和管理服務以及版本控制。您可以用 Amazon Kendra 來為 GitHub 企業雲端 (SaaS) 和 GitHub 企業伺服器 (在 Prem) 儲存庫檔案建立索引、發出和提取要求、發出和提取要求註解,以及發出和提取要求註解附件。您也可以選擇包含或排除特定檔案。

注意

Amazon Kendra 現在支援升級的 GitHub 連接器。

主機已自動為您升級。您在主控台中建立的任何新連接器都會使用升級的架構。如果您使用API,您現在必須使用TemplateConfiguration物件而非GitHubConfiguration物件來配置連接器。

使用舊版主控台和API架構設定的連接器將繼續如設定般運作。但是,您將無法編輯或更新它們。如果您要編輯或更新連接器組態,您必須建立新的連接器。

我們建議您將連接器工作流程移轉至升級版本。使用舊架構設定的連接器 Support 排程於 2024 年 6 月結束。

您可 Amazon Kendra 以使 GitHub 用Amazon Kendra 主控台TemplateConfigurationAPI.

如需疑難排解資 Amazon Kendra GitHub 料來源連接器,請參閱疑難排解資料來

支援的功能

Amazon Kendra GitHub 資料來源連接器支援下列功能:

  • 欄位對映

  • 使用者存取控制

  • 包含/排除過濾器

  • 完整和增量內容同步

  • 虛擬私有雲 (VPC)

必要條件

在您可以用來 Amazon Kendra 為資 GitHub 料來源建立索引之前,請先在 GitHub 和 AWS 帳戶中進行這些變更。

在中 GitHub,請確定您有:

  • 建立具有 GitHub 組 GitHub 織管理權限的使用者。

  • 在 Git Hub 中設定個人存取權杖作為您的驗證認證使用。請參GitHub 閱有關建立個人存取權杖的文件。

    注意

    我們建議您定期重新整理或輪換您的認證和密碼。僅為您自己的安全提供必要的訪問級別。我們建議您跨資料來源以及連接器 1.0 和 2.0 版 (如果適用) 重複使用認證和密碼。

  • 建議:設定驗證認證的OAuth權杖。使用OAuth令牌可獲得更好的API節流限制和連接器性能。請參GitHub 閱OAuth授權文件。

  • 記下您使URL用的 GitHub服務類型的 GitHub 主機。例如, GitHub 雲的主URL機可能是 https://api.github.com 並且服 GitHub 務器URL的主機可能是 https://on-prem-host-url/api/v3/.

  • 記下您要連線的 GitHub企業雲端 (SaaS) 帳戶或 GitHub 企業伺服器 (內部部署) 帳戶的組織名稱。 GitHub 您可以登入 GitHub 桌面,然後在您的設定檔圖片下拉式清單中選取的組織,以找到您的組織名稱。

  • 可選(僅限伺服器):產生SSL憑證並將路徑複製到儲存在 Amazon S3 值區中的憑證。 GitHub 如果您需要安全SSL連線,請使用此連線到。您可以使用 Open 在任何電腦上簡單地產生自我簽署的 X509 憑證。SSL如需使用「開啟SSL」建立 X509 憑證的範例,請參閱建立並簽署 X509 憑證。

  • 已新增下列權限:

    適用於 GitHub 企業雲端 (SaaS)

    • repo:status— 授予讀取/寫入存取權限,以便在公用和私有存放庫中認可 此範圍僅用於授予其他用戶或服務訪問私有存儲庫提交狀態,而不授予對代碼的訪問權限。

    • repo_deployment— 授予公用和私有存放庫部署狀態的存取權。只有在授與其他使用者或服務存取部署狀態的情況下,才需要此範圍,而不授與程式碼存取權。

    • public_repo— 限制對公共存儲庫的訪問。這包括對代碼的讀/寫訪問權限,提交狀態,存儲庫項目,協作者以及公共存儲庫和組織的部署狀態。也需要為公共存儲庫主演。

    • repo:invite— 授予邀請在存儲庫上協作的接受/拒絕能力。只有在不授與程式碼存取權的情況下授與其他使用者或服務存取邀請時,才需要此範圍。

    • security_events— 授予:在代碼掃描中對安全事件的讀寫訪問權限API。只有在不授與程式碼存取權的情況下授與其他使用者或服務存取安全性事件時,才需要此範圍。

    • read:org— 組織成員資格、組織專案和小組成員資格的唯讀存取權。

    • user:email— 授予對使用者電子郵件地址的讀取權限。Amazon Kendra 要求抓ACLs取。

    • user:follow— 授予關注或取消關注其他用戶的訪問權限。Amazon Kendra 要求抓ACLs取。

    • read:user— 授予讀取使用者設定檔資料的存取權。Amazon Kendra 要求抓ACLs取。

    • workflow— 授予新增和更新 GitHub 動作工作流程檔案的功能。如果相同的檔案 (具有相同的路徑和內容) 存在於相同存放庫中的另一個分支上,則可以在沒有此範圍的情況下提交工作流程檔案。

    如需詳細資訊,請參閱GitHub文件中OAuth應用程式的範圍

    適用於 GitHub 企業伺服器 (在內部部署)

    • repo:status— 授予讀取/寫入存取權限,以便在公用和私有存放庫中認可 此範圍僅用於授予其他用戶或服務訪問私有存儲庫提交狀態,而不授予對代碼的訪問權限。

    • repo_deployment— 授予公用和私有存放庫部署狀態的存取權。只有在授與其他使用者或服務存取部署狀態的情況下,才需要此範圍,而不授與程式碼存取權。

    • public_repo— 限制對公共存儲庫的訪問。這包括對代碼的讀/寫訪問權限,提交狀態,存儲庫項目,協作者以及公共存儲庫和組織的部署狀態。也需要為公共存儲庫主演。

    • repo:invite— 授予邀請在存儲庫上協作的接受/拒絕能力。只有在不授與程式碼存取權的情況下授與其他使用者或服務存取邀請時,才需要此範圍。

    • security_events— 授予:在代碼掃描中對安全事件的讀寫訪問權限API。只有在不授與程式碼存取權的情況下授與其他使用者或服務存取安全性事件時,才需要此範圍。

    • read:user— 授予讀取使用者設定檔資料的存取權。Amazon Q 業務要求抓取ACLs。

    • user:email— 授予對使用者電子郵件地址的讀取權限。Amazon Q 業務要求抓取ACLs。

    • user:follow— 授予關注或取消關注其他用戶的訪問權限。Amazon Q 業務要求抓取ACLs。

    • site_admin— 授與網站管理員對 GitHub 企業伺服器管理API端點的存取權。

    • workflow— 授予新增和更新 GitHub 動作工作流程檔案的功能。如果相同的檔案 (具有相同的路徑和內容) 存在於相同存放庫中的另一個分支上,則可以在沒有此範圍的情況下提交工作流程檔案。

    如需詳細資訊,請參閱GitHub文件中的OAuth應用程式範圍和了解GitHub開發人員中的OAuth應用程式範圍。

  • 已勾選的每個文件在您打算用於相同索引的其他資料來源中 GitHub 和其他資料來源之間都是唯一的。您要用於索引的每個資料來源不得包含跨資料來源的相同文件。文件對索引來說IDs是全域的,而且每個索引必須是唯一的。

在您的中 AWS 帳戶,請確保您有:

  • 創建了一個 Amazon Kendra 索引,如果使用API,則註明索引 ID。

  • 為您的資料來源建立 IAM 角色,如果使用API,則會記錄 IAM 角色ARN的。

    注意

    如果您變更驗證類型和認證,則必須更新 IAM 角色才能存取正確的 AWS Secrets Manager 密碼 ID。

  • 將您的 GitHub 驗證認證儲存在 AWS Secrets Manager 密碼中,如果使用API,則會記錄密碼ARN的內容。

    注意

    我們建議您定期重新整理或輪換您的認證和密碼。僅為您自己的安全提供必要的訪問級別。我們建議您跨資料來源以及連接器 1.0 和 2.0 版 (如果適用) 重複使用認證和密碼。

如果您沒有現有的 IAM 角色或密碼,則可以在將 GitHub 資料來源連線到時使用主控台建立新 IAM 角色和 Secrets Manager 密碼 Amazon Kendra。如果您使用的是API,則必須提ARN供現有 IAM 角色和 Secrets Manager 密碼,以及索引 ID。

連接說明

若要連線 Amazon Kendra 到 GitHub 資料來源,您必須提供資料來源的必要詳細 GitHub 資訊, Amazon Kendra 以便能夠存取您的資料。如果尚未配置 Amazon Kendra, GitHub 請參閱必要條件

Console

若要連線 Amazon Kendra 到 GitHub

  1. 登入 AWS Management Console 並開啟Amazon Kendra 主控台

  2. 在左側導覽窗格中,選擇 [索引],然後從索引清單中選擇要使用的索引。

    注意

    您可以選擇在索引設置下配置或編輯用戶訪問控制設置

  3. 在 [開始使用] 頁面上,選擇 [新增資料來源]。

  4. 在 [新增資料來源] 頁面上,選擇 [GitHub 連接器],然後選擇 [新增連接器]。如果使用版本 2(如果適用),請選擇帶有「V2.0」標籤的GitHub 連接器

  5. 在 [指定資料來源詳細資訊] 頁面上,輸入下列資訊:

    1. 名稱和說明中,對於資料來源名稱 — 輸入資料來源的名稱。您可以包含連字號,但不能包含空格。

    2. (選擇性) 說明 — 輸入資料來源的選用說明。

    3. 預設語言中 — 選擇一種語言來篩選索引的文件。除非另有指定,否則語言預設為英文。文件中繼資料中指定的語言會覆寫選取的語言。

    4. 在「」中,針對「新增標籤」— 包含可選標籤以搜尋和篩選資源或追蹤 AWS 成本。

    5. 選擇 Next (下一步)

  6. 在 [定義存取和安全性] 頁面上,輸入下列資訊:

    1. GitHub來源 — 在GitHub 企業雲和GitHub企業服務器之間進行選擇。

    2. GitHub 主機 URL — 例如, GitHub 雲的主URL機可以是 https://api.github.com 並且服 GitHub 務器URL的主機可能是 https://on-prem-host-url/api/v3/.

    3. GitHub 組織名稱 — 輸入您的 GitHub組織名稱。您可以在您的 GitHub 帳戶中找到您的組織資訊。

      注意

      GitHub Connector 支援每個資料來源連接器執行個體探索單一組織。

    4. 授權 — 開啟或關閉文件的存取控制清單 (ACL) 資訊 (如果您有ACL並且想要將其用於存取控制)。ACL指定使用者和群組可存取的文件。此資ACL訊可用來根據使用者或使用者對文件的群組存取權來篩選搜尋結果。如需詳細資訊,請參閱使用者內容篩選

    5. AWS Secrets Manager 祕密 — 選擇現有密碼或建立新 Secrets Manager 密碼來儲存您的 GitHub 驗證認證。如果您選擇建立新密碼,則會開啟一個 AWS Secrets Manager 密碼視窗。

      1. 在「建立 AWS Secrets Manager 密碼視窗」中輸入下列資訊:

        1. 秘密名稱 — 您秘密的名稱。前綴 'AmazonKendraGitHub-' 會自動添加到您的密碼名稱中。

        2. 對於 GitHubToken — 輸入中 GitHub配置的驗證認證值。

      2. 保存並添加您的秘密。

    6. 虛擬私人雲端 (VPC) — 您可以選擇使用VPC. 如果是這樣,您必須新增子網路VPC安全性群組

    7. 識別爬行者程式 — 指定是否要開啟身分爬行 Amazon Kendra者程式。身分識別爬行者程式會使用文件的存取控制清單 (ACL) 資訊,根據使用者或使用者對文件的群組存取權來篩選搜尋結果。如果您的文件有一個ACL,並選擇使用您的ACL,您也可以選擇開啟的身分識別爬行 Amazon Kendra者程式,以設定搜尋結果的使用者內容篩選。否則,如果關閉身分搜索器,則可以公開搜索所有文檔。如果您想要對文件使用存取控制,且身分識別爬行者程式已關閉,您也可以使用PutPrincipalMappingAPI來上傳使用者和群組存取資訊以進行使用者前後關聯篩選。

    8. IAM role — 選擇現有 IAM 角色或建立新 IAM 角色以存取存放庫認證和索引內容。

      注意

      IAM 用於索引的角色不能用於資料來源。如果您不確定索引是否使用現有角色FAQ,或選擇建立新角色以避免發生錯誤。

    9. 選擇 Next (下一步)

  7. 在 [設定同步設定] 頁面上,輸入下列資訊:

    1. 取存放庫 — 選擇編目所有存放庫或選取。

      如果您選擇編目選取的存放庫,請新增存放庫的名稱,並選擇性地新增任何特定分支的名稱。

    2. 內容類型 — 選擇您要從檔案、問題、提取請求等編目的內容類型。

    3. 正則表達式模式-添加正則表達式模式以包含或排除某些文件。

    4. 同步模式 — 選擇資料來源內容變更時要如何更新索引。當您第一次將資料來源同 Amazon Kendra 步處理時,依預設會檢索所有內容並建立索引。如果初始同步失敗,您必須執行資料的完整同步,即使您沒有選擇完整同步作為同步模式選項。

      • 完全同步:新鮮索引所有內容,並在每次資料來源與索引同步時取代現有內容。

      • 新增、修改的同步:每次資料來源與索引同步時,僅對新內容和已修改的內容建立索引。 Amazon Kendra 可以使用資料來源的機制來追蹤內容變更,並為上次同步後變更的內容建立索引。

      • 新增、修改、刪除的同步:每次資料來源與索引同步時,僅對新內容、已修改和刪除的內容建立索引。 Amazon Kendra 可以使用資料來源的機制來追蹤內容變更,並為上次同步後變更的內容建立索引。

    5. 頻率同步執行排程 — 選擇同步資料來源內容和更新索引的頻率。

    6. 選擇 Next (下一步)

  8. [設定欄位對映] 頁面上,輸入下列資訊:

    1. 預設資料來源欄位 — 從要對映至索引的 Amazon Kendra 產生預設資料來源欄位中選取。

    2. 新增欄位 — 新增自訂資料來源欄位以建立要對映的索引欄位名稱和欄位資料類型。

    3. 選擇 Next (下一步)

  9. 在 [檢閱並建立] 頁面上,檢查您輸入的資訊是否正確,然後選取 [新增資料來源]。您也可以從此頁面選擇編輯您的資訊。成功新增資料來源後,您的資料來源將顯示在 [資料來源] 頁面上。

API

若要連線 Amazon Kendra 到 GitHub

您必須使用指定JSON一個資料來源結構描述TemplateConfigurationAPI。您必須提供以下信息:

  • 資料來源 — 指定使用TemplateConfigurationJSON結構描述GITHUB時的資料來源類型。同時指定呼叫TEMPLATE時的資料來源CreateDataSourceAPI。

  • GitHub類型 — 將類型指定為SAASON_PREMISE

  • 主機 URL — 指定 GitHub 主機URL或API端點URL。例如,如果您使用 GitHub SAAS/ 企業雲,則主機URL可能是,對於 GitHub 內部部署/企業服務器https://api.github.com,則主機可能是。URL https://on-prem-host-url/api/v3/

  • 組織名稱 — 指定 GitHub 帳戶組織的名稱。您可以登入 GitHub 桌面,然後在您的設定檔圖片下拉式清單中選取的組織,以找到您的組織名稱。

  • 同步模式 — 指定資料來源內容變更時 Amazon Kendra 應如何更新索引。當您第一次將資料來源同 Amazon Kendra 步處理時,依預設會檢索所有內容並建立索引。如果初始同步失敗,您必須執行資料的完整同步,即使您沒有選擇完整同步作為同步模式選項。您可以選擇:

    • FORCED_FULL_CRAWL新建索引所有內容,並在每次資料來源與索引同步時取代現有內容。

    • FULL_CRAWL,以在每次資料來源與索引同步時,僅對新的、修改的和刪除的內容建立索引。 Amazon Kendra 可以使用資料來源的機制來追蹤內容變更,並為上次同步後變更的內容建立索引。

    • CHANGE_LOG每次資料來源與索引同步時,僅對新內容和修改的內容建立索引。 Amazon Kendra 可以使用資料來源的機制來追蹤內容變更,並為上次同步後變更的內容建立索引。

  • 識別爬行者程式 — 指定是否要開啟身分爬行 Amazon Kendra者程式。身分識別爬行者程式會使用文件的存取控制清單 (ACL) 資訊,根據使用者或使用者對文件的群組存取權來篩選搜尋結果。如果您的文件有一個ACL,並選擇使用您的ACL,您也可以選擇開啟的身分識別爬行 Amazon Kendra者程式,以設定搜尋結果的使用者內容篩選。否則,如果關閉身分搜索器,則可以公開搜索所有文檔。如果您想要對文件使用存取控制,且身分識別爬行者程式已關閉,您也可以使用PutPrincipalMappingAPI來上傳使用者和群組存取資訊以進行使用者前後關聯篩選。

  • 秘密 Amazon 資源名稱 (ARN) — 提供包含您 GitHub 帳戶身份驗證登入資料的 Secrets Manager 密碼的 Amazon 資源名稱 (ARN)。密碼會儲存在具有下列索引鍵的JSON結構中:

    { "personalToken": "token" }
  • IAM role — 指定RoleArn何時呼叫CreateDataSource以提供具有存取 Secrets Manager 密碼的權限的 IAM 角色,以及呼叫 GitHub 連接器和 Amazon Kendra所需公APIs用者的時間。有關詳情,請參閱資 GitHub 料來源的IAM 角色

您還可以添加以下可選功能:

  • 虛擬私人雲端 (VPC) — 指定您撥打電話CreateDataSourceVpcConfiguration時間。如需詳細資訊,請參閱設定 Amazon Kendra 以使用 Amazon VPC

    注意

    如果您使用 GitHub 伺服器,則必須使用連線 Amazon VPC 到 GitHub伺服器。

  • 存放庫篩選器 — 依名稱和分支名稱篩選儲存庫。

  • 文件/內容類型 — 指定是否要編目儲存庫文件、問題、發佈註解、發出註解附件、提取請求、提取請求註解、提取請求註解附件。

  • 包含和排除篩選器 — 指定要包含還是排除某些檔案和資料夾。

    注意

    大多數資料來源使用規則運算式模式,這些模式是稱為篩選器的包含或排除模式。如果您指定包含篩選器,則只有符合包含項目篩選器的內容會編製索引。不符合包含篩選器的任何文件都不會建立索引。如果您指定包含和排除篩選器,符合排除篩選器的文件將不會建立索引,即使它們符合包含篩選器也是如此。

  • 存取控制清單 (ACL) — 指定是否要編目文件的ACL資訊 (如果您有ACL並且想要將其用於存取控制)。ACL指定使用者和群組可存取的文件。此資ACL訊可用來根據使用者或使用者對文件的群組存取權來篩選搜尋結果。如需詳細資訊,請參閱使用者內容篩選

  • 欄位對映 — 選擇將資 GitHub 料來源欄位對映至 Amazon Kendra 索引欄位。您可以包含文件、確認、問題、發放附件、發放附件、提取請求、提取請求附件、提取請求附件等欄位。如需詳細資訊,請參閱映射資料來源欄位

    注意

    Amazon Kendra 需要文件的文件內文欄位或文件內文對等項目,Amazon Kendra 才能搜尋您的文件。您必須將資料來源中的文件內文欄位名稱對應至索引欄位名稱_document_body。所有其他欄位是選用的。

如需要設定的其他重要JSON金鑰清單,請參閱GitHub範本結構描述

進一步了解

若要進一步瞭解 Amazon Kendra 與 GitHub 資料來源整合的相關資訊,請參閱: