我想知道,當我們的存盤庫中有一個提交時,它說它來自 John Smith,實際上它確實來自 John Smith。不幸的是,似乎我將本地 user.name 和 user.email 設定為我想要的任何值,然后我提交它;無論我使用什么憑據將更改推送到存盤庫,這些值最終都會出現在存盤庫中。
實際上,我想要的行為是,當從本地存盤庫向遠程存盤庫進行 git push 時,將以某種方式對提交進行注釋,以指示哪個用戶實際將它們推送到存盤庫,以及時間戳是這已經完成了。
在我對這個特定問題的閱讀中,似乎除了簡單地添加一個符號之外的任何東西都可能會產生一些非常有問題的情況(例如,如果我從一個存盤庫克隆一個存盤庫,并將其回傳到我的存盤庫,我可能想要注明用戶推送的那個資料結束;但我絕對不想替換所有歷史記錄中的提交者)。因此,我希望記錄而不是替換。
我發現
在GitHub Enterprise Server 中,該資料可從推送日志中獲得。
最重要的是,GitHub 可以跟蹤人們的 GPG 密鑰或 s/mime 證書,以確保提交者是他們所說的那個人。
然而,由于 Git 的分布式特性,也可以直接從同事的分叉或本地 repos 或拉取請求接收提交,其中推送的人可能正在推送他們從其他人那里收到的提交。這是 git 世界中的預期行為。
如果您關心提交者的真實性,請讓人們使用 GPG 密鑰或與他們的身份相關聯的代碼簽名證書簽署他們的提交,只有他們可以訪問。
對于 Azure DevOps Server,可以創建一個 ISubscriber 服務器插件(一個實作特定介面的 dotnet 程式集)來阻止任何原因的提交。對于 Azure DevOps(服務),不存在此類功能。yiu 可以在這里利用 Axure Pipeline。
對于 GitHub,您可以創建一個 GitHub 操作作業流來阻止拉取請求,以防它包含未簽名的提交或提交者與推送者不匹配的提交。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433759.html
標籤:混帐 安全 github 天蓝色的devops
