v0.18 版本包含在使用持續整合時,API 金鑰處理和工作流程的相關改進。
現在,當透過 mix hex.user auth
進行身份驗證時,我們會產生兩個 API 金鑰,而不是只有一個。一個金鑰未加密,具有讀取權限,另一個金鑰使用您的本機密碼加密,並具有對 API 的完整讀寫權限。基於安全性考量,Hex 會加密 API 金鑰,舉例來說,您無法在未提供密碼的情況下執行 mix hex.publish
,但這表示 mix hex.search
等指令需要密碼,這似乎沒有必要。現在,不會對任何變更進行指令,且不需輸入密碼。
此外,我們會產生單一金鑰來存取組織中的所有儲存庫,而不是針對每個儲存庫產生一個金鑰。這也帶來一個額外的優點:如果您被新增到新的組織,您不需重新進行身份驗證。
我們也新增了直接由組織(而不是特定使用者)擁有的金鑰,這些金鑰可以透過 mix hex.organization
和 組織儀表板 進行存取。當為 CI 環境產生金鑰時,這項功能會很實用,之前在使用個人金鑰時,人員離開組織或吊銷金鑰可能會對 CI 工作流程造成負面影響。
將變數 HEX_API_KEY
環境變數引入,用於執行需要驗證的命令,無需手動使用 mix hex.user auth
進行驗證,這需要使用者輸入提示。使用 HEX_API_KEY
設定的秘鑰可以使用 mix hex.user key generate
或 mix hex.organization key ORGANIZATION generate
來產生。它還可以執行 mix hex.publish
等命令,無需輸入密碼。
藉由在 mix hex.publish
中傳遞 --yes
旗標,可以在不進行任何確認提示的情況下發行套件(搭配 HEX_API_KEY
)。這樣可以在持續整合 (CI) 建置流程中發行套件。請注意,即使 Hex 發出警告,這仍會發行套件,且您無法在發行前檢查已編譯的套件內容,因此應謹慎使用此選項。
此版本著重於在 CI 環境中工作的流程改善,以及執行需要驗證的命令。具有私人套件的使用者將有更好的安全性,因為他們可以使用專門的組織專屬金鑰。
將功能從 Hex 資訊移往 hex_core 的工作正在進行中。hex_core 是由 Hex 團隊成員 Wojtek Mach 發起的專案,其構想是將建立 Hex 套件管理員端點所需的核心功能移至共用的 Erlang 程式庫。此舉可減少重複開發工作,並讓 rebar3 和 erlang.mk 等工具與 Hex 的最新變更和改進保持最新狀態。
接著,核心團隊將發行私人 HexDocs,並為組織新增年度帳單。Hex v0.18.0 的完整變更清單可在我們的 發行說明中取得。