簡體   English   中英

在 GitHub 中將 CLA 確認添加到 pull request 流程

[英]Add CLA confirmation to pull request process in GitHub

需要將哪些具體步驟放在一起才能添加一個步驟,要求任何貢獻者在嘗試向公共 GitHub 存儲庫提交拉取請求時單擊按鈕以“同意”貢獻者許可協議 CLA?

這似乎是一個廣泛的用例,因為每個開源項目都必須確保任何貢獻的代碼都來自已授予開源項目合法使用拉取請求中包含的代碼的權利的來源。 例如,證明貢獻者有權貢獻代碼等。

我已閱讀此鏈接中 GitHub 支票的文檔,以及此其他鏈接中的支票 API 的文檔。 我曾想象過使用來自存儲庫所有者帳戶的 CLI 命令設置它,該命令上傳許可證文本,包括用於附加“接受”按鈕的任何參數以及用於將帶有按鈕的許可證放置在開始時的特定位置的任何參數拉取請求工作流程。

但是最好的方法是什么?

應遵循哪些具體步驟,包括代碼。

您需要添加一個 CI 檢查來驗證 CLA 是否已簽名,如果沒有則失敗。 CLA 必須托管在一個單獨的網站上,並具有某種 API,CI 檢查必須調用它才能執行此操作。 為此所需的代碼非常龐大,無法在此處提供,而且它也是根據您的特定用例定制的。

例如,如果您使用 GitHub 操作,您只需設置一個操作來抓取作者和提交者 email 地址的整個提交范圍,並將它們發送到您的服務進行驗證。 如果全部通過,則檢查成功; 否則,檢查將打印一條錯誤消息並失敗。

您可以使用git log --format='%ae %ce' BASE..HEAD替換BASEHEAD來抓取提交歷史記錄。

請注意,許多開源項目(例如 Git)使用 Git 簽核,斷言開發人員和任何貢獻者已同意開發者原產地證書,這是斷言他們有權根據該項目。 這比 CLA 更靈活,因為它只能用於某些代碼而不能用於其他代碼,它在許多用例中更容易,並且它對不想授予比許可證更多權利的開源開發人員的敵意更少,或者誰不想授予全權更改許可證,而 CLA 通常會這樣做。 這意味着實際上,更多的開發人員將希望並且能夠為您的項目做出貢獻。

如果你想這樣做,你可以簡單地使用git log爬取與以前相同的提交范圍,只需檢查每個提交者和作者是否有一個Signed-off-by條目。 或者, 您可以為此使用內置的 GitHub 功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM