非レビューコードと力コードレビュー文化からGithubプロジェクトを保護する方法
6623 ワード
このブログ記事では、私たちはあなたに、非査読されたコードのランダムなプッシュからgithubリポジトリを保護する方法を示します、あるいは、
コードレビューは、文化に依存する実践です.継続的な学習、共有、チームワークのための大きな願いを持つ自我のない文化.コードを学習する以外に、コードのレビューは、あなたが良い指導者かどうかを表示されます過酷なことなく、明確かつプロフェッショナルである必要があるようにあなたのコミュニケーションソフトスキルを向上させます.
この記事は、コードレビューの練習でプル要求を達成するために3ステップに焦点を当てます.
理論のワークフロー
プロジェクトを設定する
プルリクエストテンプレートを作成
ワークフロー
Githubでは レビュアーのために非常に時間がかかる非常に大きなプル要求を作成するのを避けるために、すべて242479142/
2 .作業終了後、あなたのコードを
コードレビューのために誰かを割り当てる.ここでの目標は、お互いから学び、すべての標準が満たされ、コードのスタイルが尊重されることを確認することであり、もちろん、コードにはバグがないことを確認することです.
4 .コードレビューを行っている人から要求された質問/提案/修正/変更があれば、その人は明確なコメントでgithubの変更を要求します、そして、プロセスは再び始まります.すべてのコメントは、レビュアーがプルリクエストを受け入れる前に解決する必要があります.
成功したコードレビューの後、ブランチは
プロジェクトの設定
ファイルを作成する
コード所有者ファイルは、リポジトリ内のコードに責任がある個人やチームを定義します.コード所有者は自動的に誰かが自分のコードを変更するプル要求を開いたときに確認要求されます.
例
2 .ユーザロールの管理
GitHubリポジトリでは
ブランチ保護設定の設定
GitHubリポジトリでは
これはブランチ保護構成を開きます.
この設定は次のようになります.を合併する前に、プル要求レビューを必要とします はコード所有者 から批評を必要としますは、誰がプル・リクエストレビューを終えることができるかについて制限します は、 を合併する前にステータスチェックを通過するのを必要としますは、 を合併する前に、分岐を最新にするのを必要としますを合併する前に会話解決を必要とする は誰が一致する枝 にプッシュすることができます制限します強制的にプッシュアクセス ですべてのユーザーのプッシュプッシュは、一致するブランチ を削除するためにプッシュ・アクセスでユーザーを不許可にします
ファイルを作成する
あなたのリポジトリにプル要求テンプレートを追加すると、プロジェクトの貢献者は、プル要求本文でテンプレートの内容を自動的に表示します.
あなたのプルリクエストテンプレートをリポジトリのルートディレクトリに表示するには、プルリクエストテンプレート
今、貢献者が新しいプル要求を作成するとき、彼らはプル要求をより標準化し、貢献者がチェックリストを使用してプロジェクト(標準、コードスタイル、ビルドフローなどのような)に重要なものについて思い出させることができるテンプレートを見るでしょう.
例
結論
これらの3つのセットアップステップは、非審査されたコードのプッシュに対するリポジトリの強力な保護を作成するか、直接マスター/メインブランチにプッシュします.それは、チームに規則を適用して、コードレビュー文化を維持させます.
それは人々がルールに従うことを強制することは必ずしも簡単ではないが、提案を投稿全体で与えられた、あなたはすぐに、誰もがそれを次のように確認するために自動化することができます.
上記の規則についてどう思いますか.あなたのチームのワークフローを改善するために他のアドバイスがありますか?
master
/main
ブランチにプッシュします.私はコードレビューでプル要求を介して機能を展開する強い信者です.私は、ブランチとプルのリクエストのワークフローが良いか悪いかどうかは質問にはならない、私はそれがプル要求とコードのレビューは、学習したいチームのために必要であるという私の意見を持っていないので、あなたが同意しない場合は、この記事はあなたのためではないので、それはすべてのチームメンバーがそれを使用するように強制されます.コードレビューは、文化に依存する実践です.継続的な学習、共有、チームワークのための大きな願いを持つ自我のない文化.コードを学習する以外に、コードのレビューは、あなたが良い指導者かどうかを表示されます過酷なことなく、明確かつプロフェッショナルである必要があるようにあなたのコミュニケーションソフトスキルを向上させます.
この記事は、コードレビューの練習でプル要求を達成するために3ステップに焦点を当てます.
理論の
プルリクエストテンプレートを作成
ワークフロー
Githubでは
master
から新しいブランチを作成し、分岐の標準命名規則を使用します.feature/name-of-the-feature
fix/name-of-the-fix
feature
のためにこれをしてみてください.2 .作業終了後、あなたのコードを
fix
/feature
ブランチにプッシュして、この分岐をfix
ブランチに結合するようにプル要求を作成します.コードレビューのために誰かを割り当てる.ここでの目標は、お互いから学び、すべての標準が満たされ、コードのスタイルが尊重されることを確認することであり、もちろん、コードにはバグがないことを確認することです.
4 .コードレビューを行っている人から要求された質問/提案/修正/変更があれば、その人は明確なコメントでgithubの変更を要求します、そして、プロセスは再び始まります.すべてのコメントは、レビュアーがプルリクエストを受け入れる前に解決する必要があります.
成功したコードレビューの後、ブランチは
master
ブランチにマージされ、master
/feature
ブランチが自動的に削除されます.プロジェクトの設定
ファイルを作成する
コード所有者ファイルは、リポジトリ内のコードに責任がある個人やチームを定義します.コード所有者は自動的に誰かが自分のコードを変更するプル要求を開いたときに確認要求されます.
fix
ファイルを使用するには、コードの所有者を追加したい枝のCODEOWNERS
、CODEOWNERS
、またはCODEOWNERS
ディレクトリ内のroot
という新しいファイルを作成します.私は単純な男であるので、私は常にdocs/
にすべてを置きました.別の支店の異なるコードの所有者を割り当てることができます.実際には、誰もコードの所有者の承認なしにプル要求を承認することができます.これは開発者が誰も承認しないプル要求をマージしようとしてから保護します.例
.github/
ファイル* @marioloncarek
2 .ユーザロールの管理
GitHubリポジトリでは
root
タブに進み、左メニューからCODEOWNERS
を選択します.ここでは、どのユーザーがレポジトリにアクセスできるかを定義できます.常に少なくとも1つの管理者を持ち、他のすべての開発者は書き込み権限を持つことができます.実際には、管理者はこの記事からすべてをオーバーライドし、マスターブランチまたはフォースの変更を確認せずに権限を使用できます.これは、ホットフィックスに役立つ可能性があります.ブランチ保護設定の設定
GitHubリポジトリでは
Settings
タブに進み、左メニューからManage access
を選択します.Settings
の下でBranches
をクリックします.これはブランチ保護構成を開きます.
Branch protection rules
の下で、あなたの主な支店名(おそらくAdd rule
)またはあなたが保護したい他のどの枝も書きます.このイメージに従ってすべてのオプションを設定しますこの設定は次のようになります.
ファイルを作成する
あなたのリポジトリにプル要求テンプレートを追加すると、プロジェクトの貢献者は、プル要求本文でテンプレートの内容を自動的に表示します.
あなたのプルリクエストテンプレートをリポジトリのルートディレクトリに表示するには、プルリクエストテンプレート
Branch name pattern
に名前を付け、リポジトリのmaster
に置きます.今、貢献者が新しいプル要求を作成するとき、彼らはプル要求をより標準化し、貢献者がチェックリストを使用してプロジェクト(標準、コードスタイル、ビルドフローなどのような)に重要なものについて思い出させることができるテンプレートを見るでしょう.
例
pull_request_template.md
ファイル## Description
Please include a summary of the change or which issue is fixed.
## Type of change
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
## Area of change
- [ ] Frontend
- [ ] Backend
## General checklist:
- [ ] My code follows the style guidelines of this project
- [ ] I ran `npm run format`/`yarn format` before commit
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation where needed
- [ ] My changes generate no new warnings
- [ ] I have checked my code and corrected any misspellings
- [ ] I have updated `master` and merged to my branch before submitting pull request
- [ ] My pull request generate no conflicts with `master` branch
- [ ] I requested code review from other team members
## Frontend checklist:
- [ ] I followed guidelines for `HTML`/`LIQUID`, `SCSS`, `JAVASCRIPT` from readme
- [ ] My `Javascript` generate no new console errors
- [ ] I tested my code cross browsers
- [ ] My slice is pixel perfect for both desktop and mobile according to design
- [ ] I conducted basic QA to assure all features are working
- [ ] I tested responsive for mobile and tablet resolutions
## Backend checklist:
- [ ] I tested admin by manually adding content from zero
- [ ] I followed guidelines for naming admin fields
- [ ] I created easy to use admin experience which is self-explanatory
- [ ] I added description to admin fields in hard-to-understand areas
- [ ] I followed guidelines for naming `php`/`liquid` variables
- [ ] I conducted basic QA to assure all features are working
結論
これらの3つのセットアップステップは、非審査されたコードのプッシュに対するリポジトリの強力な保護を作成するか、直接マスター/メインブランチにプッシュします.それは、チームに規則を適用して、コードレビュー文化を維持させます.
それは人々がルールに従うことを強制することは必ずしも簡単ではないが、提案を投稿全体で与えられた、あなたはすぐに、誰もがそれを次のように確認するために自動化することができます.
上記の規則についてどう思いますか.あなたのチームのワークフローを改善するために他のアドバイスがありますか?
Reference
この問題について(非レビューコードと力コードレビュー文化からGithubプロジェクトを保護する方法), 我々は、より多くの情報をここで見つけました https://dev.to/bornfightcompany/how-to-protect-github-projects-from-non-reviewed-code-and-force-code-review-culture-3ip7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol