本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
GitHub
GitHub 是適用於軟體開發的 Web 型託管服務,提供具有版本控制的程式碼儲存和管理服務。您可以使用 Amazon Kendra為 GitHub Enterprise Cloud (SaaS) 和 GitHub Enterprise Server (On Prem) 儲存庫檔案編製索引、發出和提取請求、發出和提取請求評論,以及發出和提取請求評論附件。您也可以選擇包含或排除特定檔案。
注意
Amazon Kendra現在支援升級的 GitHub 連接器。
主控台已為您自動升級。您在主控台中建立的任何新連接器都將使用升級的架構。如果您使用 API,您現在必須使用 TemplateConfiguration 物件,而不是 GitHubConfiguration 物件來設定連接器。
使用舊版主控台和 API 架構設定的連接器將繼續按設定運作。不過,您將無法編輯或更新它們。如果您想要編輯或更新連接器組態,則必須建立新的連接器。
建議您將連接器工作流程遷移至升級版本。使用較舊架構設定的連接器支援預計在 2024 年 6 月結束。
您可以使用 Amazon Kendra主控台
如需對 Amazon KendraGitHub 資料來源連接器進行故障診斷,請參閱 對資料來源進行故障診斷。
支援的功能
Amazon KendraGitHub 資料來源連接器支援下列功能:
-
欄位對應
-
使用者存取控制
-
包含/排除篩選條件
-
完整和增量內容同步
-
虛擬私有雲端 (VPC)
先決條件
在您可以使用 Amazon Kendra為 GitHub 資料來源編製索引之前,請在 GitHub 和 AWS帳戶中進行這些變更。
在 GitHub 中,請確定您有:
-
建立具有 GitHub 組織管理許可的 GitHub 使用者。
-
在 Git Hub 中設定個人存取字符,以用作您的身分驗證憑證。請參閱關於建立個人存取字符的 GitHub 文件
。 注意
建議定期更新或輪換憑證與機密。僅授予作業所需的最低存取層級,以確保自身安全。我們不建議您在資料來源以及連接器 1.0 和 2.0 版 (如適用) 之間重複使用登入資料和秘密。
-
建議:設定身分驗證憑證的 OAuth 權杖。使用 OAuth 字符可提升 API 限流門檻與連接器效能。請參閱 GitHub 關於 OAuth 授權的相關文件
。 -
記下您使用的 GitHub 服務類型的 GitHub 主機 URL。例如,GitHub 雲端主機 URL 可以是
https://api.github.com,GitHub 伺服器主機 URL 可能是https://on-prem-host-url/api/v3/。 -
記下您要連線的 GitHub Enterprise Cloud (SaaS) 帳戶或 GitHub Enterprise Server (內部部署) 帳戶之組織的名稱。您可以登入 GitHub 桌面並在設定檔圖片下拉式清單下選取您的組織,以尋找您的組織名稱。
-
選用 (僅限伺服器):產生 SSL 憑證,並複製存放在 Amazon S3儲存貯體中的憑證路徑。如果您需要安全的 SSL 連線,您可以使用此功能連線至 GitHub。您可以直接在任何使用 OpenSSL 的電腦上產生自我簽署 X509 憑證。如需使用 OpenSSL 建立 X509 憑證的範例,請參閱建立和簽署 X509 憑證。
-
新增下列許可:
對於 GitHub Enterprise Cloud (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 Enterprise Server (內部部署)
-
repo:status— 授與讀取/寫入公有與私有儲存庫提交狀態的權限。此權限範圍僅在需讓其他使用者或服務讀取私有儲存庫的提交狀態、但不授與程式碼存取時才需啟用。 -
repo_deployment— 授與存取公有與私有儲存庫部署狀態的權限。此權限僅在需授與他人存取部署狀態、但不授與程式碼存取時才必須啟用。 -
public_repo— 限制對公有儲存庫的存取。其中包括對公有儲存庫與組織的程式碼、提交狀態、儲存庫專案、協作者及部署狀態的讀寫存取。收藏公有儲存庫時亦需此權限。 -
repo:invite— 授與接受或拒絕儲存庫協作邀請的權限。僅在須授與他人查看協作邀請、但不授與程式碼存取權時才需啟用。 -
security_events— 授與讀寫程式碼掃描 API 之安全事件的權限。僅在需授與他人存取安全事件、但不授與程式碼存取時才需啟用。 -
read:user— 授與讀取使用者個人資料的權限。Amazon Q Business 在進行 ACL 爬取時需要此權限。 -
user:email— 授與讀取使用者電子郵件地址的權限。Amazon Q Business 在進行 ACL 爬取時需要此權限。 -
user:follow— 授與追蹤或取消追蹤其他使用者的權限。Amazon Q Business 在進行 ACL 爬取時需要此權限。 -
site_admin– 授予網站管理員對 GitHub Enterprise Server Administration API 端點的存取權。 -
workflow– 授予新增和更新 GitHub 動作工作流程檔案的能力。若同一份工作流程檔案 (路徑與內容皆相同) 已存在於同一儲存庫的其他分支,即可在未啟用此權限範圍的情況下提交。
如需詳細資訊,請參閱 GitHub 文件中 OAuth 應用程式的範圍
和GitHub開發人員中 OAuth 應用程式的範圍 。 -
-
已檢查每個文件在 GitHub 中以及您計劃用於相同索引的其他資料來源中是唯一的。您要用於索引的每個資料來源不得包含跨資料來源的相同文件。文件 IDs是索引的全域 ID,且每個索引必須是唯一的。
在您的 中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,則必須提供現有IAM角色和Secrets Manager秘密的 ARN,以及索引 ID。
連線指示
若要Amazon Kendra連線至 GitHub 資料來源,您必須提供 GitHub 資料來源的必要詳細資訊,讓 Amazon Kendra可以存取您的資料。如果您尚未為 設定 GitHubAmazon Kendra,請參閱 先決條件。
進一步了解
若要進一步了解Amazon Kendra如何與您的 GitHub 資料來源整合,請參閱: