問題:
有沒有辦法將 GitHub 的細粒度 PAT 的優勢與git pullover HTTPS 的簡單性結合起來?如果是這樣,那又如何呢?
背景
GitHub 具有“經典”和“細粒度”個人訪問令牌 (PAT):

轉到“設定”>“開發人員設定”以查看這些。
我一直在使用經典的 PATgit pull通過 HTTPS 運行命令,從 GitHub 中提取最新的提交:
git pull https://${token}@github.com/${owner}/${repo}.git
這在不提示輸入密碼的情況下作業(我將 PAT 的有效期保持得相當短)。
我不能只是(天真地)用新的細粒度令牌替換我git pull命令中的經典令牌。它提示我輸入密碼。(我認為它被視為用戶 ID。)
細粒度 PAT 當然可以與 GitHub 
Fine 令牌分配所有存盤庫或僅分配特定存盤庫。并通過 PAT UI 螢屏分配
這也會自動設定元資料(只讀)權限。
- 我不需要或授予任何帳戶權限。
在我的服務器上:
這是一個無頭的 Linux 盒子。我沒有任何與 Git 集成的第 3 方密鑰存盤(例如,沒有libsecret)。
我選擇使用 Git 提供的store. 雖然這以明文形式存盤憑據,但它的安全性(在我看來)不亞于存盤在.ssh. 這對我的情況來說是可以接受的——而且比我一直在做的要好得多(直接在pull命令的 URL 中放置一個令牌)。
具體的一次性設定命令:
git config --global credential.helper store
git config --global credential.useHttpPath true
這會在我的全域.gitconfig檔案中創建以下內容:
[credential]
helper = store
useHttpPath = true
然后,在我的 Git repo 目錄中,我運行一個簡單的pull:
git pull https://github.com/${owner}/${repo}.git
作為一次性步驟,我必須在提示時手動提供我的用戶 ID 和 PAT。
這些憑據存盤在一個新的(對我而言).git-credentials檔案中。憑據的格式是:
https://<user ID>:<fine-grained PAT>@github.com/<owner>/<repo>.git
我可以根據需要重復此程序以獲得更多回購協議,每個回購協議都有自己的 PAT。
當我執行后續git pull命令時,會使用商店中相關的特定于 URL 的憑據——不需要命令列互動。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536302.html
標籤:混帐知乎
