0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リポジトリの設定

Last updated at Posted at 2025-12-18

リポジトリの設定

GitHubリポジトリの設定(Repository Settings)は、プロジェクトの運用方針を決定する重要な要素です。適切な設定により、チームのワークフローを効率化し、セキュリティを強化し、品質を向上させることができます。本記事では、リポジトリ設定の各項目を体系的に解説します。

目次

  1. アクセス権限の設定
  2. リポジトリのカスタマイズ設定
  3. 機能の有効化・無効化
  4. GitHub Actions設定
  5. セキュリティと分析の設定
  6. リポジトリの可視性設定
  7. その他の管理設定

1. アクセス権限の設定

1.1 権限レベルの理解

個人アカウントが所有するリポジトリには、2つの権限レベルが存在します。

重要な制限事項:

  • GitHub Freeでは、24時間あたりの招待数に制限があります
  • より細かい権限管理が必要な場合は、組織(Organization)への移行を検討してください

1.2 コラボレーター管理

招待手順:

  1. リポジトリの Settings タブをクリック
  2. サイドバーの Collaborators を選択
  3. Add people をクリック
  4. GitHubユーザー名を検索
  5. 招待を送信

削除手順:

  1. SettingsCollaborators & teams
  2. 削除するコラボレーターの横の Remove をクリック

削除時の動作:

  • 読み書きアクセス権が即座に失効
  • プライベートリポジトリのフォークは削除
  • ローカルクローンは削除されない

1.3 チームとユーザーのアクセス管理

SettingsCollaborators & teams で以下を管理できます:

  • アクセス権を持つ全ユーザーとチームの一覧表示
  • 検索とフィルタリング
  • 役割(Role)の変更
  • アクセス権の削除

混在した権限の警告:

ユーザーが複数の経路でアクセス権を持つ場合、「Mixed roles」警告が表示されます。

1.4 後継者の指定

ユーザーアカウントの所有者は、リポジトリの後継者を指定できます。

設定手順:

  1. プロフィール → Settings
  2. サイドバーの Account を選択
  3. Successor settings でユーザーを検索して招待
  4. Add successor をクリック

2. リポジトリのカスタマイズ設定

2.1 基本情報の設定

SettingsGeneral で以下を設定できます:

  • リポジトリ名
  • 説明(Description)
  • Webサイト
  • トピック(Topics)

2.2 トピックの管理

設定方法:

  1. リポジトリのメインページ右上の ⚙️ をクリック
  2. トピックを入力(検索候補から選択可能)
  3. 提案されたトピックを承認または却下
  4. Save changes をクリック

トピックの規則:

  • 小文字、数字、ハイフンのみ使用
  • 50文字以内
  • 最大20個まで

2.3 ソーシャルメディアプレビューの設定

設定手順:

  1. SettingsGeneral
  2. Social preview セクションで Edit をクリック
  3. 画像をアップロード(PNG、JPG、GIF、1MB以下)
  4. 推奨サイズ:640×320ピクセル以上

2.4 READMEファイルの配置

検索優先順位:

自動生成される機能:

  • 目次の自動生成
  • セクションリンクの作成
  • 相対リンクの自動変換

2.5 ライセンスファイルの設定

配置場所:

  • LICENSE.txt
  • LICENSE.md
  • LICENSE.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未満
  • 大文字小文字を区別
  • 無効な行はスキップされる

ブランチ保護との連携:

SettingsBranches → ブランチ保護ルールで「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の設定

無効化手順:

  1. SettingsGeneral
  2. Features セクションの Issues チェックを外す

注意:

  • 無効化しても既存のIssueは削除されません
  • 再度有効化すると以前のIssueが利用可能になります

3.2 Projectsの設定

無効化手順:

  1. SettingsGeneral
  2. Features セクションの Projects チェックを外す

影響:

  • リンクされたプロジェクトはリポジトリのProjectsタブに表示されなくなります
  • 組織レベルやユーザーレベルではアクセス可能なまま

3.3 Discussionsの設定

有効化手順:

  1. SettingsGeneral
  2. Features セクションの Discussions にチェック

無効化手順:

  1. 同じ場所でチェックを外す

3.4 Wikiの設定

Features セクションで Wiki の有効化・無効化を切り替えられます。

3.5 Sponsorshipsの設定

設定手順:

  1. SettingsGeneral
  2. Features セクションの Sponsorships を選択
  3. Set up sponsor button または Override funding links をクリック
  4. FUNDING.ymlファイルを編集

4. GitHub Actions設定

4.1 Actions権限の設定

SettingsActionsGeneral で管理します。

設定オプション:

  1. Disable Actions - すべてのワークフローを無効化
  2. Allow all actions and reusable workflows - すべて許可
  3. 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 フォークのプルリクエスト設定

承認ポリシーの選択:

  1. 初回貢献者(GitHubが初めて) - GitHubアカウントが新規のユーザー
  2. 初回貢献者(リポジトリが初めて) - このリポジトリへの初回貢献
  3. すべての外部貢献者 - 組織外のすべてのユーザー

設定場所: SettingsActionsGeneralApproval for running fork pull request workflows from contributors

4.4 プライベートリポジトリのフォーク設定

SettingsActionsGeneralFork 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権限の設定

SettingsActionsGeneralWorkflow permissions

権限モード:

  • Read repository contents and packages permissions - 制限モード(推奨)
  • Read and write permissions - 許容モード

プルリクエストの作成・承認:

Allow GitHub Actions to create and approve pull requests で制御できます。

4.6 プライベートアクションの共有設定

SettingsActionsGeneralAccess

選択肢:

  • Not accessible - アクセス不可
  • Accessible from repositories owned by 'USER NAME' - 同一ユーザー所有
  • Accessible from repositories in the 'ORGANIZATION NAME' organization - 同一組織内

4.7 キャッシュ設定

SettingsActionsGeneralCache settings

設定項目:

  • Cache retention - 保持期間(1〜90日または1〜365日)
  • Cache size eviction limit - サイズ上限(最大10,000 GB)

4.8 アーティファクトとログの保持期間

SettingsActionsGeneralArtifact and log retention

デフォルト:

  • パブリックリポジトリ:90日
  • プライベートリポジトリ:90日

設定可能範囲:

  • パブリック:1〜90日
  • プライベート:1〜400日

5. セキュリティと分析の設定

5.1 セキュリティ機能の有効化

SettingsAdvanced Security

パブリックリポジトリで利用可能(無料):

  • Dependency graph(依存関係グラフ)
  • Dependabot alerts(脆弱性アラート)
  • Secret scanning(シークレットスキャニング)
  • Push protection(プッシュ保護)
  • Code scanning(コードスキャニング)

プライベートリポジトリ:

GitHub Advanced Securityライセンスが必要です。

5.2 各機能の有効化手順

手順:

  1. SettingsAdvanced Security
  2. 各機能の Disable / Enable をクリック

Code Securityの設定:

  • プライベートリポジトリでCode SecurityまたはSecret Protectionを有効にすると、以下が利用可能になります:
    • Dependency review
    • Secret scanning alerts
    • Code scanning

5.3 セキュリティアラートへのアクセス権付与

対象者:

デフォルトでアクセス可能:

  • リポジトリへの書き込み権限以上を持つユーザー
  • 組織オーナー

追加ユーザーの設定:

  1. SettingsAdvanced Security
  2. Access to alerts でユーザーまたはチームを検索
  3. リストから選択
  4. Save changes をクリック

削除手順:

  1. 同じ画面で削除するユーザーの横の X をクリック
  2. Save changes をクリック

6. リポジトリの可視性設定

6.1 可視性の種類

6.2 可視性変更時の影響

Publicに変更する場合:

  • コードが誰でも閲覧可能になる
  • 誰でもフォーク可能になる
  • すべてのプッシュルールセットが無効化
  • 変更がアクティビティとして公開
  • Actions履歴とログが公開
  • スターとウォッチャーがリセット

Privateに変更する場合:

  • パブリックフォークが切り離される
  • GitHub Pages非公開化(カスタムドメイン注意)
  • 一部機能が制限される(GitHub Freeの場合)
  • カスタムDependabotルール無効化(Code Security未使用時)
  • Code scanning無効化(Code Security未使用時)
  • スターとウォッチャーがリセット

Internalとの変更:

  • エンタープライズメンバーの読み取りアクセス
  • 外部コラボレーターのフォーク制限
  • スターとウォッチャーのリセット

6.3 可視性変更手順

  1. SettingsDanger Zone
  2. Change repository visibilityChange visibility
  3. 新しい可視性を選択
  4. リポジトリ名を入力して確認
  5. I have read and understand these effects にチェック
  6. Make this repository public/private をクリック

7. その他の管理設定

7.1 フォークポリシーの設定

SettingsGeneralFeaturesAllow forking

注意事項:

  • 組織レベルでフォークが許可されている必要があります
  • 機密情報漏洩防止のため慎重に設定してください

7.2 コードレビュー制限

SettingsModeration optionsCode review limits

設定:

  • Limit to users explicitly granted read or higher access - 読み取り権限以上のユーザーのみレビュー可能

7.3 デフォルトブランチ名の設定

個人設定で変更:

  1. プロフィール → Settings
  2. Repositories セクション
  3. デフォルトブランチ名を入力
  4. Update をクリック

7.4 コミットサインオフポリシー

SettingsGeneralRequire contributors to sign off on web-based commits

効果:

  • Web UIでのコミットに自動的にサインオフが追加されます

コマンドラインでのサインオフ:

git commit --signoff -m "機能を追加"

7.5 プッシュポリシーの設定

SettingsGeneralPushes

設定:

Limit how many branches and tags can be updated in a single push

  • 推奨値:5(デフォルト)
  • 最小値:2(ブランチ名変更に必要)

効果:

  • git push --mirror のブロック
  • 破壊的なプッシュの防止

7.6 Git LFS設定

SettingsGeneralArchives

設定:

Include Git LFS objects in archives - アーカイブにLFSオブジェクトを含める

注意事項:

  • ダウンロードが帯域幅使用量にカウントされます
  • 無料枠:月1 GB

7.7 自動リンクの設定

SettingsAutolink 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 メール通知の設定

SettingsEmail notifications

設定項目:

  • Address - メールアドレス(最大2つ)
  • Approved header - メール認証トークン

7.9 Issueの自動クローズ設定

SettingsGeneralIssues

設定:

Auto-close issues with merged linked pull requests - リンクされたPRのマージ時にIssueを自動クローズ

リンク方法:

Closes #123
Fixes #456
Resolves #789

7.10 GitHub Modelsの設定

SettingsModels

有効化:

Models in this repositoryEnabled に変更

前提条件:

  • 組織オーナーが組織レベルで有効化している必要があります
  • 組織で制限されたモデルのみ利用可能になります

8. まとめ

8.1 設定の重要性

リポジトリ設定は、プロジェクトの基盤を形成します。適切な設定により以下が実現できます:

  1. セキュリティの強化 - 脆弱性検出、アクセス制御
  2. 効率的なワークフロー - 自動化、権限管理
  3. 品質の確保 - コードレビュー、保護ルール
  4. 透明性の向上 - ドキュメント、ライセンス

8.2 推奨される実装順序

リポジトリ設定は一度で完成するものではありません。プロジェクトの成長に合わせて、継続的に見直し、最適化していくことが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?