リポジトリの設定
GitHubリポジトリの設定(Repository Settings)は、プロジェクトの運用方針を決定する重要な要素です。適切な設定により、チームのワークフローを効率化し、セキュリティを強化し、品質を向上させることができます。本記事では、リポジトリ設定の各項目を体系的に解説します。
目次
1. アクセス権限の設定
1.1 権限レベルの理解
個人アカウントが所有するリポジトリには、2つの権限レベルが存在します。
重要な制限事項:
- GitHub Freeでは、24時間あたりの招待数に制限があります
- より細かい権限管理が必要な場合は、組織(Organization)への移行を検討してください
1.2 コラボレーター管理
招待手順:
- リポジトリの Settings タブをクリック
- サイドバーの Collaborators を選択
- Add people をクリック
- GitHubユーザー名を検索
- 招待を送信
削除手順:
- Settings → Collaborators & teams
- 削除するコラボレーターの横の Remove をクリック
削除時の動作:
- 読み書きアクセス権が即座に失効
- プライベートリポジトリのフォークは削除
- ローカルクローンは削除されない
1.3 チームとユーザーのアクセス管理
Settings → Collaborators & teams で以下を管理できます:
- アクセス権を持つ全ユーザーとチームの一覧表示
- 検索とフィルタリング
- 役割(Role)の変更
- アクセス権の削除
混在した権限の警告:
ユーザーが複数の経路でアクセス権を持つ場合、「Mixed roles」警告が表示されます。
1.4 後継者の指定
ユーザーアカウントの所有者は、リポジトリの後継者を指定できます。
設定手順:
- プロフィール → Settings
- サイドバーの Account を選択
- Successor settings でユーザーを検索して招待
- Add successor をクリック
2. リポジトリのカスタマイズ設定
2.1 基本情報の設定
Settings → General で以下を設定できます:
- リポジトリ名
- 説明(Description)
- Webサイト
- トピック(Topics)
2.2 トピックの管理
設定方法:
- リポジトリのメインページ右上の ⚙️ をクリック
- トピックを入力(検索候補から選択可能)
- 提案されたトピックを承認または却下
- Save changes をクリック
トピックの規則:
- 小文字、数字、ハイフンのみ使用
- 50文字以内
- 最大20個まで
2.3 ソーシャルメディアプレビューの設定
設定手順:
- Settings → General
- Social preview セクションで Edit をクリック
- 画像をアップロード(PNG、JPG、GIF、1MB以下)
- 推奨サイズ:640×320ピクセル以上
2.4 READMEファイルの配置
検索優先順位:
自動生成される機能:
- 目次の自動生成
- セクションリンクの作成
- 相対リンクの自動変換
2.5 ライセンスファイルの設定
配置場所:
LICENSE.txtLICENSE.mdLICENSE.rst
検索機能:
リポジトリをライセンスタイプで検索できます。
# 検索例
license:MIT
license:Apache-2.0
license:GPL-3.0
2.6 CODEOWNERSファイルの設定
配置場所:
.github/CODEOWNERS-
CODEOWNERS(ルート) docs/CODEOWNERS
基本構文:
# デフォルトオーナー
* @tanaka-taro @suzuki-hanako
# 特定のファイルタイプ
*.js @yamada-jiro
*.py @sato-saburo
# ディレクトリ
/docs/ @tanaka-taro
/src/api/ @yamada-jiro @sato-saburo
# サブディレクトリの例外
/apps/ @tanaka-taro
/apps/admin @suzuki-hanako
注意事項:
- ファイルサイズは3MB未満
- 大文字小文字を区別
- 無効な行はスキップされる
ブランチ保護との連携:
Settings → Branches → ブランチ保護ルールで「Require review from Code Owners」を有効化できます。
2.7 CITATIONファイルの設定
研究ソフトウェアの引用情報を提供します。
基本例:
cff-version: 1.2.0
message: "このソフトウェアを使用する場合は、以下のように引用してください。"
authors:
- family-names: "田中"
given-names: "太郎"
orcid: "https://orcid.org/0000-0000-0000-0000"
title: "研究用ソフトウェア"
version: 2.0.4
doi: 10.5281/zenodo.1234
date-released: 2017-12-18
url: "https://github.com/example/repository"
論文を優先引用として設定:
preferred-citation:
type: article
authors:
- family-names: "田中"
given-names: "太郎"
doi: "10.0000/00000"
journal: "Journal Title"
title: "My awesome research software"
year: 2021
2.8 スポンサーボタンの設定
設定ファイル: .github/FUNDING.yml
github: [tanaka-taro, suzuki-hanako]
patreon: yamada-jiro
ko_fi: sato-saburo
open_collective: project-name
custom: ["https://www.paypal.me/example"]
対応プラットフォーム:
- GitHub Sponsors
- Patreon
- Ko-fi
- Liberapay
- Open Collective
- Tidelift
- Buy Me a Coffee
- カスタムURL(最大4つ)
3. 機能の有効化・無効化
3.1 Issuesの設定
無効化手順:
- Settings → General
- Features セクションの Issues チェックを外す
注意:
- 無効化しても既存のIssueは削除されません
- 再度有効化すると以前のIssueが利用可能になります
3.2 Projectsの設定
無効化手順:
- Settings → General
- Features セクションの Projects チェックを外す
影響:
- リンクされたプロジェクトはリポジトリのProjectsタブに表示されなくなります
- 組織レベルやユーザーレベルではアクセス可能なまま
3.3 Discussionsの設定
有効化手順:
- Settings → General
- Features セクションの Discussions にチェック
無効化手順:
- 同じ場所でチェックを外す
3.4 Wikiの設定
Features セクションで Wiki の有効化・無効化を切り替えられます。
3.5 Sponsorshipsの設定
設定手順:
- Settings → General
- Features セクションの Sponsorships を選択
- Set up sponsor button または Override funding links をクリック
- FUNDING.ymlファイルを編集
4. GitHub Actions設定
4.1 Actions権限の設定
Settings → Actions → General で管理します。
設定オプション:
- Disable Actions - すべてのワークフローを無効化
- Allow all actions and reusable workflows - すべて許可
- Allow OWNER, and select non-OWNER, actions and reusable workflows - 選択的に許可
4.2 特定のアクションの許可設定
パターン例:
# 特定の組織を許可
acme-corp/*
# 特定のリポジトリを許可
acme-corp/repository/*
# タグまたはSHA指定
actions/checkout@v4
actions/checkout@a824008085750b8e136effc585c3cd6082bd575f
# ワイルドカード
space-org*/*, octokit/*
# 除外パターン
space-org/*, !space-org/dangerous-action@*
4.3 フォークのプルリクエスト設定
承認ポリシーの選択:
- 初回貢献者(GitHubが初めて) - GitHubアカウントが新規のユーザー
- 初回貢献者(リポジトリが初めて) - このリポジトリへの初回貢献
- すべての外部貢献者 - 組織外のすべてのユーザー
設定場所: Settings → Actions → General → Approval for running fork pull request workflows from contributors
4.4 プライベートリポジトリのフォーク設定
Settings → Actions → General → Fork pull request workflows
設定項目:
- Run workflows from fork pull requests - フォークからのワークフロー実行
- Send write tokens to workflows from pull requests - 書き込み権限トークン送信
- Send secrets to workflows from pull requests - シークレット送信
- Require approval for fork pull request workflows - 承認を要求
4.5 GITHUB_TOKEN権限の設定
Settings → Actions → General → Workflow permissions
権限モード:
- Read repository contents and packages permissions - 制限モード(推奨)
- Read and write permissions - 許容モード
プルリクエストの作成・承認:
Allow GitHub Actions to create and approve pull requests で制御できます。
4.6 プライベートアクションの共有設定
Settings → Actions → General → Access
選択肢:
- Not accessible - アクセス不可
- Accessible from repositories owned by 'USER NAME' - 同一ユーザー所有
- Accessible from repositories in the 'ORGANIZATION NAME' organization - 同一組織内
4.7 キャッシュ設定
Settings → Actions → General → Cache settings
設定項目:
- Cache retention - 保持期間(1〜90日または1〜365日)
- Cache size eviction limit - サイズ上限(最大10,000 GB)
4.8 アーティファクトとログの保持期間
Settings → Actions → General → Artifact and log retention
デフォルト:
- パブリックリポジトリ:90日
- プライベートリポジトリ:90日
設定可能範囲:
- パブリック:1〜90日
- プライベート:1〜400日
5. セキュリティと分析の設定
5.1 セキュリティ機能の有効化
Settings → Advanced Security
パブリックリポジトリで利用可能(無料):
- Dependency graph(依存関係グラフ)
- Dependabot alerts(脆弱性アラート)
- Secret scanning(シークレットスキャニング)
- Push protection(プッシュ保護)
- Code scanning(コードスキャニング)
プライベートリポジトリ:
GitHub Advanced Securityライセンスが必要です。
5.2 各機能の有効化手順
手順:
- Settings → Advanced Security
- 各機能の Disable / Enable をクリック
Code Securityの設定:
- プライベートリポジトリでCode SecurityまたはSecret Protectionを有効にすると、以下が利用可能になります:
- Dependency review
- Secret scanning alerts
- Code scanning
5.3 セキュリティアラートへのアクセス権付与
対象者:
デフォルトでアクセス可能:
- リポジトリへの書き込み権限以上を持つユーザー
- 組織オーナー
追加ユーザーの設定:
- Settings → Advanced Security
- Access to alerts でユーザーまたはチームを検索
- リストから選択
- Save changes をクリック
削除手順:
- 同じ画面で削除するユーザーの横の X をクリック
- Save changes をクリック
6. リポジトリの可視性設定
6.1 可視性の種類
6.2 可視性変更時の影響
Publicに変更する場合:
- コードが誰でも閲覧可能になる
- 誰でもフォーク可能になる
- すべてのプッシュルールセットが無効化
- 変更がアクティビティとして公開
- Actions履歴とログが公開
- スターとウォッチャーがリセット
Privateに変更する場合:
- パブリックフォークが切り離される
- GitHub Pages非公開化(カスタムドメイン注意)
- 一部機能が制限される(GitHub Freeの場合)
- カスタムDependabotルール無効化(Code Security未使用時)
- Code scanning無効化(Code Security未使用時)
- スターとウォッチャーがリセット
Internalとの変更:
- エンタープライズメンバーの読み取りアクセス
- 外部コラボレーターのフォーク制限
- スターとウォッチャーのリセット
6.3 可視性変更手順
- Settings → Danger Zone
- Change repository visibility → Change visibility
- 新しい可視性を選択
- リポジトリ名を入力して確認
- I have read and understand these effects にチェック
- Make this repository public/private をクリック
7. その他の管理設定
7.1 フォークポリシーの設定
Settings → General → Features → Allow forking
注意事項:
- 組織レベルでフォークが許可されている必要があります
- 機密情報漏洩防止のため慎重に設定してください
7.2 コードレビュー制限
Settings → Moderation options → Code review limits
設定:
- Limit to users explicitly granted read or higher access - 読み取り権限以上のユーザーのみレビュー可能
7.3 デフォルトブランチ名の設定
個人設定で変更:
- プロフィール → Settings
- Repositories セクション
- デフォルトブランチ名を入力
- Update をクリック
7.4 コミットサインオフポリシー
Settings → General → Require contributors to sign off on web-based commits
効果:
- Web UIでのコミットに自動的にサインオフが追加されます
コマンドラインでのサインオフ:
git commit --signoff -m "機能を追加"
7.5 プッシュポリシーの設定
Settings → General → Pushes
設定:
Limit how many branches and tags can be updated in a single push
- 推奨値:5(デフォルト)
- 最小値:2(ブランチ名変更に必要)
効果:
-
git push --mirrorのブロック - 破壊的なプッシュの防止
7.6 Git LFS設定
Settings → General → Archives
設定:
Include Git LFS objects in archives - アーカイブにLFSオブジェクトを含める
注意事項:
- ダウンロードが帯域幅使用量にカウントされます
- 無料枠:月1 GB
7.7 自動リンクの設定
Settings → Autolink references
設定例:
# JIRA
Reference prefix: JIRA-
Target URL: https://jira.example.com/issue?query=<num>
# Zendesk
Reference prefix: TICKET-
Target URL: https://company.zendesk.com/tickets/<num>
識別子の形式:
- Alphanumeric - 英数字
- Numeric - 数字のみ
7.8 メール通知の設定
Settings → Email notifications
設定項目:
- Address - メールアドレス(最大2つ)
- Approved header - メール認証トークン
7.9 Issueの自動クローズ設定
Settings → General → Issues
設定:
Auto-close issues with merged linked pull requests - リンクされたPRのマージ時にIssueを自動クローズ
リンク方法:
Closes #123
Fixes #456
Resolves #789
7.10 GitHub Modelsの設定
Settings → Models
有効化:
Models in this repository を Enabled に変更
前提条件:
- 組織オーナーが組織レベルで有効化している必要があります
- 組織で制限されたモデルのみ利用可能になります
8. まとめ
8.1 設定の重要性
リポジトリ設定は、プロジェクトの基盤を形成します。適切な設定により以下が実現できます:
- セキュリティの強化 - 脆弱性検出、アクセス制御
- 効率的なワークフロー - 自動化、権限管理
- 品質の確保 - コードレビュー、保護ルール
- 透明性の向上 - ドキュメント、ライセンス
8.2 推奨される実装順序
リポジトリ設定は一度で完成するものではありません。プロジェクトの成長に合わせて、継続的に見直し、最適化していくことが重要です。