從版本控制掃描應用程式

2022/3/31 |

在整合 Lucent Sky AVM 至軟體開發流程時,常見的做法是由持續整合管道啟動掃描,再將程式碼推送至 Lucent Sky AVM 實體。在不適合推送程式碼的情境下,Lucent Sky AVM 亦可從版本控制系統中提取程式碼。要深入了解如何整合 Lucent Sky AVM 至持續整合管道,請參考 Lucent Sky 知識庫:
Use Lucent Sky AVM with a continuous integration pipeline

要設定一個掃描從版本控制系統提取程式碼,將掃描的儲存庫設定為適合該版本控制系統的儲存庫連接字串。你也可以將應用程式的儲存庫設為儲存庫連接字串,這麼一來,該應用程式下新的掃描會預設使用這個儲存庫連接字串。一個儲存庫連接字串包含四個部分:protocol、URL、username、password。這個文章包含了常見的版本控制系統的連接字串範例。

Azure DevOps

要從 Azure DevOps 上取得應用程式的程式碼來進行掃描,使用以下的值來建立連接字串:

Protocol URL Username Password
Git https://dev.azure.com/{organization}/{project}/_git/{repo}
https://{organization}.visualstudio.com/{project}/_git/{repo}
` {PAT}
TFVC https://dev.azure.com/{organization}/{path}
https://{organization}.visualstudio.com/{path}
` {PAT}

若是私人 Git 儲存庫,PAT 必需要有 Code > Read 範圍。若是公開 Git 儲存庫,使用 ` 做為密碼。

若是 TFVC 儲存庫,路徑必需以 $/ 開頭。若路徑包含非 ASCII 字元,路徑在 $/ 之後的部分需以 URL 編碼。此外,PAT 必需要有 Full access 範圍。

範例

以下的連接字串連接至 Contoso 組織的 Website 專案的 Git 儲存庫 Backend,使用 PAT personalaccesstoken

protocol,git;url,https://dev.azure.com/contoso/Website/_git/Backend;username,[email protected];password,personalaccesstoken

以下的連接字串連接至 Contoso 組織的 Website 專案的 TFVC 儲存庫 Backend,使用 PAT personalaccesstoken

protocol,tfvc;url,https://dev.azure.com/contoso/$/Website;username,`;password,personalaccesstoken

Azure DevOps Server

要從 Azure DevOps Server(前名為 Team Foundation Server)上取得應用程式的程式碼來進行掃描,使用以下的值來建立連接字串:

Protocol URL Username Password
Git https://{username}:{pat}@{hostname}/{collection}/{project}/_git/{repo} ` `
TFVC https://{hostname}/{collection}/{path} {username} {password}

若是 Git 儲存庫,PAT 必需要有 Code > Read 範圍。

若是 TFVC 儲存庫,路徑必需以 $/ 開頭。若路徑包含非 ASCII 字元,路徑在 $/ 之後的部分需以 URL 編碼。

範例

以下的連接字串連接至 tfs.contoso.comWebsite 專案的 Git 儲存庫 Backend,使用 PAT personalaccesstoken

protocol,git;url,https://[email protected]:[email protected]/DefaultCollection/Website/_git/Backend;username,`;password,`

以下的連接字串連接至 tfs.contoso.comDefaultCollection 專案集合的 $/Website/Backend 路徑,使用使用者名稱 [email protected] 和密碼 tfspassword

protocol,tfvc;url,https://build.westus2.cloudapp.azure.com/DefaultCollection/$/Website/Backend;username,[email protected];password,tfspassword

BitBucket

要從 BitBucket 上取得應用程式的程式碼來進行掃描,使用以下的值來建立連接字串:

Protocol URL Username Password
Git https://bitbucket.org/{workspace}/{repo}.git {username} {apppassword}

若是私人儲存庫,應用程式密碼必需要有 Repositories > Read 權限。若是公開儲存庫,使用 ` 做為使用者名稱和密碼。

若你無法連線到私人儲存庫,試著使用另一種 URL https://{username}:{apppassword}@bitbucket.org/{workspace}/{repo}.git 以及 ` 做為使用者名稱和密碼。

範例

以下的連接字串連接至工作空間 contoso 的 Git 儲存庫 WebsiteBackend,使用使用者名稱 jane 和應用程式密碼 apppassword

protocol,git;url,https://bitbucket.org/contoso/WebsiteBackend.git;username,jane;password,apppassword

GitHub

要從 GitHub 上取得應用程式的程式碼來進行掃描,使用以下的值來建立連接字串:

Protocol URL Username Password
Git https://github.com/{organization}/{repo}.git ` {PAT}

若是私人儲存庫,PAT 必需要有 repo 範圍。若是公開儲存庫,使用 ` 做為密碼。

範例

以下的連接字串連接至 the Git 儲存庫 WebsiteBackend under the organization contoso, using PAT personalaccesstoken:

protocol,git;url,https://github.com/contoso/WebsiteBackend.git;username,`;password,personalaccesstoken

GitLab

要從 GitLab(不論是 self-managed 或 SaaS)上取得應用程式的程式碼來進行掃描,使用以下的值來建立連接字串:

Protocol URL Username Password
Git https://{hostname}/{group}/{repo}.git {username} {password} or {PAT}

若使用 PAT,使用 ` 做為使用者名稱。

若是私人儲存庫,PAT 必需要有 read_repository 範圍。若是公開儲存庫,使用 ` 做為密碼。

範例

以下的連接字串連接至 gitlab.comcontoso 群組的 Git 儲存庫 WebsiteBackend,使用 PAT personalaccesstoken

protocol,git;url,https://gitlab.com/contoso/WebsiteBackend.git;username,`;password,personalaccesstoken

以下的連接字串連接至 gitlab.contoso.comcontoso 群組的 Git 儲存庫 WebsiteBackend,使用使者名稱 jane 和 密碼 gitpassword:

protocol,git;url,https://gitlab.contoso.com/contoso/WebsiteBackend.git;username,jane;password,gitpassword

常見問題

我要如何提取 Git 儲存庫的一個特定分支?

要提取特定的分支,在 URL 部分後方加上 /$/{branch}。舉例來說,要提取 dev 分支,使用以下的連接字串:

protocol,git;url,https://dev.azure.com/contoso/Website/_git/Backend/$/dev;username,`;password,personalaccesstoken

若分支名稱包含非 ASCII 字元,使用 URL 編碼過的分支名稱。舉例來說,要提取 デベ 分支,使用以下的連接字串:

protocol,git;url,https://dev.azure.com/contoso/Website/_git/Backend/$/%E3%83%87%E3%83%99;username,`;password,personalaccesstoken

我要如何連接到一個使用自我簽署憑證的儲存庫伺服器?

要連接到一個使用自我簽署憑證的儲存庫伺服器,將該憑證加入倒 CLEAR Engine 實體中本機電腦的受信任的根憑證授權單位憑證存放區中。

使用個人存取權杖時,我可以使用我的使用者名稱嗎?

在範例連接字串中,一個 backtick(`)被用來作為使用個人存取權杖(PAT)時使用者名稱的代表。大多數的儲存庫伺服器允許在使用 PAT 驗證時使用任何非空白字元做為使用者名稱,然而,有些伺服器可能會要求你在使用 PAT 或應用程式密碼時使用使用者名稱。確認你的儲存庫伺服器的指示來確認使用 PAT 時要使用的使用者名稱。