# リポジトリのベスト プラクティス

リポジトリを効果的かつ安全に使う方法について説明します。

## README ファイルを作成する

作業内容を理解して参照しやすくするために、リポジトリごとに README ファイルを作成することをお勧めします。

README ファイルをリポジトリに追加して、プロジェクトに関する重要な情報を伝えることができます。 README は、リポジトリ ライセンス、引用ファイル、コントリビューション ガイドライン、倫理規定と並んで、プロジェクトに期待されるものを伝え、コントリビューションを管理しやすくします。詳細については、「[リポジトリの README ファイルについて](/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes)」を参照してください。

## リポジトリをセキュリティで保護する

脆弱性、不正アクセス、その他の潜在的なセキュリティの脅威からコードをセキュリティで保護するには、使用できる GitHub のセキュリティ機能を使ってリポジトリをセキュリティで保護する必要があります。 少なくとも、次の機能 (**パブリック リポジトリでは無料**で使用できます) を有効にすることをお勧めします。

* **Dependabot alerts** からは、プロジェクトの依存関係ネットワーク内にあるセキュリティの脆弱性が通知されます。これにより、影響を受ける依存関係をより安全なバージョンに更新できます。
* **Secret scanning** を使ってリポジトリのシークレット (API キーやトークンなど) をスキャンし、シークレットが見つかった場合はアラートを受け取ることで、リポジトリからシークレットを削除できます。
* **プッシュ保護**を使うと、サポートされているシークレットを含むプッシュは禁止されるので、まず自分 (と共同編集者) がリポジトリにシークレットを持ち込むことを防ぐことができます。
* **Code scanning** により、リポジトリのコードに含まれる脆弱性とエラーが特定されるので、これらの issue を早期に修正し、悪意のあるアクターによる脆弱性やエラーの悪用を防ぐことができます。

さらに、次の点も考慮してください。

* `SECURITY.md` ファイルをリポジトリに追加する。
  `SECURITY.md` ファイルには、プロジェクトで見つかったセキュリティの脆弱性を報告するコラボレーター向けの手順が記載され、責任ある開示が奨励されています。
* リポジトリで \[Private vulnerability reporting] を有効にする。これにより、コラボレーターとセキュリティ研究者は、リポジトリで見つかった脆弱性をあなたにのみ公開できるようになります。

詳しくは、「[リポジトリを保護するためのクイック スタート](/ja/code-security/getting-started/quickstart-for-securing-your-repository)」をご覧ください。

## フォークよりもブランチを優先する

コラボレーションを合理化するために、通常のコラボレーターは 1 つのリポジトリから作業し、リポジトリ間ではなくブランチ間で pull request を作成することをお勧めします。 フォークは、プロジェクトに関係のない人 (オープンソースの共同作成者など) からのコントリビューションを受けるのに最適です。

ブランチ ワークフローを使用しながら、重要なブランチ (`main` など) の品質を維持するために、必要な状態チェックと pull request レビューで保護されたブランチを使用できます。 詳しくは、「[保護されたブランチについて](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)」をご覧ください。

## Git 大容量ファイルストレージ を使う

パフォーマンスを最適化するために、GitHub ではリポジトリ内で許可されるファイルのサイズが制限されています。 詳しくは、「[GitHub での大きいファイルについて](/ja/repositories/working-with-files/managing-large-files/about-large-files-on-github)」をご覧ください。

Git リポジトリで大きなファイルを追跡するには、Git 大容量ファイルストレージ (Git LFS) を使うことをお勧めします。 詳しくは、「[Git Large File Storageについて](/ja/repositories/working-with-files/managing-large-files/about-git-large-file-storage)」をご覧ください。

## ハンズオン プラクティス

リポジトリ管理の実践的な経験を積むには、「[リポジトリ管理の概要](https://github.com/skills/introduction-to-repository-management/)」スキル演習を試してください。