Github 十大最佳實踐

劉小緒同學發表於2018-11-24

1、保護主分支不受直接提交的影響

    主分支中的任何一次提交都應該是可以直接部署的,所以永遠不要直接提交預設分支,同時也是 Gitflow workflow 成為標準的原因。使用分支保護可以幫你防止直接提交,當然,所有的事情都應該使用pull requests來管理。

image

2、避免基礎資訊的混亂

    或許你在一個新的環境工作,或者你並沒有注意到自己的 git 配置是不正確的,因此提交程式碼時伴隨著錯誤的郵箱地址。如果提交沒有關聯到正確的使用者資訊,那將導致無法追溯到是誰寫的程式碼。

    保證你的 git 客戶端配置是正確的郵箱地址,並且關聯到你的 github 賬戶。評審程式碼時注意檢查你的pull requests是否存在無法識別的提交。

image

3、為每個倉庫定義 CODEOWNERS

    使用 CODEOWNERS 功能可以定義哪些團隊和人員被自動選為倉庫的審閱者。此功能會自動請求倉庫所有者進行稽核。如今。組織擁有很多的倉庫,而 CODEOWNERS 可以選擇定義組織中的維護者。

image

4、從原始碼中分離出祕密憑證

    在構建雲原生程式時,我們保護了許多的機密資訊,比如賬戶密碼、API 祕鑰、私人令牌、SSH 祕鑰等。絕對不要將任何機密資訊提交到你的程式碼中,而應該採用從安全儲存外部注入的環境變數。

    你可以使用 VaultAWS Secrets Manager 之類的工具來管理產品中的機密資訊。

    有很多超棒的工具可以識別程式碼中的機密資訊,例如 Git-secrets 可以幫助你識別程式碼中的密碼;使用 Git Hooks 可以構建一個預提交鉤子,並檢查每個pull requests中的機密資訊。

image

5、不要提交專案的依賴

    將專案的依賴提交到倉庫中會增加倉庫的大小。應該將你專案的所有依賴都從倉庫中移除,讓你的包管理器負責去下載它們。如果你擔心“依賴可用性”,可以考慮使用 JfrogNexus Repository 這樣的二進位制儲存庫管理器。

6、從原始碼中分離配置檔案

    建議不要將本地配置檔案提交到版本控制器,通常這些都是你不想推送到遠端的私有配置檔案,因為它們包含機密資訊。個人的偏好,歷史資訊等應該儲存在本地環境中。

7、為專案建立一個有意義的 .gitignore 檔案

    每個倉庫都必須使用.gitignore檔案來忽略預定義的檔案和目錄,它可以幫助你保護程式碼中的機密資訊、依賴項和其他可能的差異。你可以從 Gitignore.io 選擇相關的模板。

image

8、將死庫歸檔

    隨著時間的推移,由於各種原因,我們發現自已擁有不再維護的倉庫。或許你為一個臨時用例新建了倉庫,或者有一些包含舊的和不相關程式碼的倉庫。它們存在的問題是相同的,這些倉庫在達到其目的之後不在被積極的維護開發,因此你不希望再維護它們或不希望其他人依賴/使用它們,最好的方式是將這些倉庫歸檔,這樣對每個人都是“只讀”的。

image

9、鎖定依賴包的版本

    你的依賴配置檔案中包含所有軟體包版本的資訊,以便在每次安裝應用程式時,在不破壞程式碼的前提下保持一致的結果。最好的方式是使用配置鎖定檔案來避免差異,並確定每次都獲得相同的軟體包版本。

image

10、對齊包版本

    雖然你使用的是相同的軟體包,但是不同的版本會使得在不同專案中重用程式碼和測試變得困難。

    如果你有一個在多個專案中使用的包,請至少嘗試在不同的倉庫中使用相同的主要版本。

image

    原文連結:https://datree.io/blog/top-10-github-best-practices/