GitHub Enterprise 設定・管理 大全
- 池田尚史 著
- 定価
- 3,520円(本体3,200円+税10%)
- 発売日
- 2025.11.10
- 判型
- B5変形
- 頁数
- 288ページ
- ISBN
- 978-4-297-15178-2 978-4-297-15179-9
サポート情報
概要
本書は、GitHub Enterpriseを企業で利用する際に役立つ設定・管理のノウハウをまとめた解説書です。GitHubは当初個人エンジニアを中心に利用されてきましたが、Microsoft 社による買収後、同社のビジネスツールの1つとして企業での利用も増えてきています。企業におけるGitHub Enterpriseを安全にかつ効率的に利用するために必要なケーススタディから、GitHub Enterpriseの運用管理におけるポイントまで解説しています。
こんな方にオススメ
- GitHub Enterpriseの運用管理に携わっている人
- GitHub Enterpriseを使っている人
目次
0章 GitHub Enterpriseによる開発組織の改革と実践
0-1 現代のソフトウェア開発を取り巻く状況
0-2 DXの先にある「ソフトウェア中心の世界」
0-3 ソフトウェア開発の中心にあるGitHub
0-4 多くの現場で眠っているGitHubの真価
0-5 IT部門と開発現場の「乖離」という問題
0-6 ツールは触媒となり、企業文化を変える
第1章 GitHub Enterpriseの基礎知識
1-1 GitHubとは
- 1-1-1 GitHubの思想は「プロジェクトから個人へ」
- 1-1-2 Pull Requestのメリット
1-2 DXにおいてGitHubが必要とされる理由
- 1-2-1 バージョン管理の対象はソースコードからインフラへ
- 1-2-2 GitHubは単なるバージョン管理ツールではない
- GitHub ActionsとGitHub Packages
- GitHubのセキュリティ機能
- 1-2-3 統合開発プラットフォームとして広く受け入れられる GitHub
1-3 GitHubの利用形態と料金プラン
- 1-3-1 適切なGitHubを利用するための3つの軸
- 1-3-2 GitHubにおけるユーザーとOrganizationの考え方
- 1-3-3 GitHubの3つのサービス形態
- 1-3-4 GitHubの各プランの違い
- 個人向けプラン
- チーム・組織(Organization)向けプラン
第2章 ケーススタディから学ぶGitHub Enterprise活用の最適解
2-1 企業におけるGitHub Enterprise利用の現状
- 2-1-1 個人開発者の標準ツールとなったGitHub
- 2-1-2 企業でGitHubを使う際の課題
- 2-1-3 チームや企業の規模によって要件は変わる
2-2 ケーススタディから学ぶGitHub Enterprise利用の最適解
- Case.1 正社員と契約社員とでリポジトリの見える範囲を変えたい
- Case.2 Teamを階層構造にして効率的に権限管理したい
- Case.3 Teamの管理をLDAPで自動化したい
- Case.4 SAML/SCIMでユーザー管理を自動化したい
- Case.5 LDAP/SAMLのユーザーと別の手段でログインするユーザーを共存させたい
- Case.6 私用メールアドレスなどに通知が漏れるのを防ぎたい
- Case.7 IPアドレスを制限したい
- Case.8 手間を掛けずに監査ログをとりたい
- Case.9 Gitの操作についてログを確認したい
- Case.10 GitHubのコンプライアンスレポートを手軽に取得したい
- Case.11 OSSの脆弱性を自動で検知・修正したい
- Case.12 AWSなどのトークンがリポジトリに漏洩するのを防ぎたい
- Case.13 GitHub上から機密情報の履歴を完全に消したい
- Case.14 意図していないライセンスが含まれていないか横断的にチェックしたい
- Case.15 企業内で一貫したポリシーを適用したい
- Case.16 社内の全コードを横断して検索したい
第3章 GitHubの基本構造 ― チームで使うための基礎知識
3-1 GitHubを構成するプロダクト
- 3-1-1 多種多様なプロダクト
- 3-1-2 本書におけるプロダクトの定義
3-2 Enterpriseプラン
- 3-2-1 Enterpriseプランの契約形態
- 3-2-2 Enterpriseプランで利用範囲・機能が拡張される主な機能
- 3-2-3 Enterprise Accountとは
- 3-2-4 Enterprise Accountのメニュー
- Organizationsメニュー
- Peopleメニュー
- リポジトリ関連のポリシー
- メンバー権限のポリシー (Member privileges)
- CodespacesおよびCopilotのポリシー
- GitHub Actionsのポリシー
- GitHub Projectsのポリシー
- セキュリティ関連のポリシー
- その他
- GitHub Connectメニュー
- Security(Code Security)メニュー
- Billing&Licensingメニュー
- Enterprise Accountの基本設定
- 認証セキュリティの設定 (Authentication Security)
- Enterprise Accountの管理機能
- Complianceメニュー
- Insightsメニュー
- 3-2-5 GHESのEnterprise Account
- GitHub Connect
3-3 権限管理の考え方
- 3-3-1 権限(ロール)の全体構造
- System Admin
- Site Admin
- 3-3-2 リポジトリにおける権限の考え方
- GHES固有の設定(Private mode)
- GitHub.com(GHECを含む)とGHESにおける可視性
- Base Permissions
- 3-3-3 Teamに関わる権限の考え方
- Teamsによる権限管理
- Teamに設定可能な権限
- Outside collaboratorに対する一時的な権限付与
- 3-3-4 シナリオ別の権限設定例
- シナリオ1
- シナリオ2
- Enterpriseプラン以外の場合
第4章 開発チーム管理の効率化、Organizationの使い方
4-1 Organizationとは
- 4-1-1 Organizationの位置付け
- 4-1-2 Organizationの利用を検討すべきタイミング
- 個人でGitHubを使う場合
- 企業でGitHubを使う場合
4-2 Organization
- 4-2-1 Overviewタブ
- 4-2-2 Repositoriesタブ
- 4-2-3 Projectsタブ
- 4-2-4 Packagesタブ
- 4-2-5 Teamsタブ
- 4-2-6 Peopleタブ
- 4-2-7 Securityタブ
- 4-2-8 Insightsタブ
- GHECの場合
- GHESの場合
- 4-2-9 Settingsタブ
4-3 Team
- 4-3-1 Membersタブ
- 4-3-2 Teamsタブ
- 4-3-3 Repositoriesタブ
- 4-3-4 Projectsタブ
- 4-3-5 Organization rolesタブ
- 4-3-6 Settingsタブ
- Generalメニュー
- Code reviewメニュー
- Scheduled remindersメニュー
4-4 Projectsを使ったプロジェクト管理
- 4-4-1 2種類のProjects
- 4-4-2 新旧Projectsの相違点
- 4-4-3 Projectsの用途
- 4-4-4 Projectsの利用開始
- 4-4-5 Projectsのビュー
- ビューの作成
- Visible fieldsとHidden fields
- ビューの切り替え
- 4-4-6 カスタムフィールドの追加
- カスタムフィールドの種類
- 4-4-7 テンプレート
- Team backlogテンプレート
- Feature releaseテンプレート
- 4-4-8 Issue/Pull Requestとの関係
- リポジトリからIssue/Pull Requestを取り込む
- Issue/Pull RequestからProjectsの見え方
- 4-4-9 自動化機能
- 4-4-10 インサイト・レポート機能
- 4-4-11 Projectsの権限管理
第5章 GitHub Enterpriseの効果的な運用と管理
5-1 Site Admin
- 5-1-1 Site Adminとは
- 5-1-2 Site Admin権限
- 5-1-3 Site Adminのメニュー
- Searchメニュー
- Management Consoleメニュー
- Audit logメニュー
- Exploreメニュー
- Reportsメニュー
- Indexingメニュー
- Repository networksメニュー
- File storageメニュー
- Reserved loginsメニュー
- Advanced Security Committersメニュー
- Retired namespacesメニュー
- Enterprise overviewメニュー
- Repositoriesメニュー
- ユーザー関連メニュー
- 5-1-4 ユーザー詳細のタブメニュー
- 5-1-5 Adminタブ
- Overviewメニュー
- Adminメニュー
- Emailsメニュー
- Avatarsメニュー
- Followed usersメニュー
- Databaseメニュー
- Retired namespacesメニュー
- 5-1-6 Securityタブ
- Securityメニュー
- SSH Keys、GPG Keysメニュー
- Personal access tokenメニュー
- 5-1-7 Contentタブ
- 5-1-8 Collaborationタブ
- Organizationsメニュー
- Audit logメニュー
- Organization affiliationsメニュー
- Organization securityメニュー
- Collaborating repositoriesメニュー
- Collaborationタブのその他のメニュー
- 5-1-9 Organization詳細のタブメニュー
- 5-1-10 Adminタブ
- Overviewメニュー
- Adminメニュー
- Emailsメニュー
- Domainsメニュー
- 5-1-11 Securityタブ
- Securityメニュー
- Members&Teamsメニュー
- その他のメニュー
- Webhooksメニュー
- SSH Certificate Authoritiesメニュー
- Repository rolesメニュー
- 5-1-12 Contentタブ
- 5-1-13 Repository詳細のタブメニュー
- 5-1-14 Adminタブ
- Overviewメニュー
- Adminメニュー
- Redirectsメニュー
- Searchメニュー
- Languagesメニュー
- 5-1-15 Securityタブ
- Securityメニュー
- Permissionsメニュー
- Webhooks & Servicesメニュー
- Deploy Keysメニュー
- Protected Branchesメニュー
- Push Logメニュー
- 5-1-16 Collaborationタブ
- Networkメニュー
- Issues & Pull Requestsメニュー
- Issue filesメニュー
- Projectsメニュー
- Watchersメニュー
- Repository Notificationsメニュー
- Notificationsメニュー
- Dependabot alertsメニュー
- Eventsメニュー
- 5-1-17 Storageタブ
- Diskメニュー
- Pagesメニュー
- Releasesメニュー
- Git Large File Storageメニュー
- Subversionメニュー
- 5-1-18 Actionsタブ
- Overviewメニュー
- Latest runsメニュー
- Registered workflowsメニュー
- Secretメニュー
- Self-hosted runnersメニュー
- 5-1-19 Site Adminの効果的な使い方
5-2 Management Console
- 5-2-1 Management Consoleとは
- 5-2-2 Management Consoleのタブメニュー
- 5-2-3 Monitorタブ
- 5-2-4 Maintenanceタブ
- Enable maintenance mode
- Active processes
- Enable and configure IP exception list
- 5-2-5 Settingsタブ
- Password
- Login attempt rate limiting
- SSH access
- Hostname
- Time
- Authentication
- Privacy
- Pages
- Monitoring
- Rate limiting
- Applications
- Actions
- Checks
- Packages
- Security
- Migrations
- Mobile
- Chat integration
- 5-2-6 Updatesタブ
- 5-2-7 Licenseタブ
- 5-2-8 Supportタブ
- 5-2-9 User Managementタブ
- 5-2-10 Sign outタブ
5-3 GHESにおけるインフラ運用機能
- 5-3-1 GHESにおけるバックアップと可用性担保
- 5-3-2 インスタンスのバックアップ
- BackupUtilsによるバックアップ
- スナップショットの取得によるバックアップ
- 効率的なバックアップの組み合わせ
- 5-3-3 HAソリューション
- HAソリューション利用上の注意点
- 自動フェイルオーバーの機構は用意されていない
- バージョンアップ時にダウンタイムをなくす目的には使えない
- 5-3-4 Geoレプリケーションとリポジトリキャッシュ
- 5-3-5 ロードバランサー
- 負荷分散
- TLS証明書の設定
- GHESでのロードバランス
第6章 GitHubにおけるCI/CD
6-1 Actions/Packages
- 6-1-1 GitHub Actionsとは
- Actionsで使用される用語
- 6-1-2 GitHub Packagesとは
- 6-1-3 Actions/Packagesの設定開始と注意事項
- 6-1-4 Actions/Packagesの仕組み
- 6-1-5 Actions/Packagesのシステム概要
- GHESにおけるActions/Packagesのシステム概要
- GHECにおけるActions/Packagesのシステム概要
- 6-1-6 Runner(ランナー)
- GitHub-hosted Runner
- Self-hosted Runner
- Self-hosted Runnerの集中管理
- 6-1-7 Actions/Packagesのセキュリティ
- Self-hosted Runnerの通信
- 利用するアクションとの接続
- 信頼できないコードの実行リスク
6-2 Actions/PackagesによるCI/CDパイプライン構築
- 6-2-1 表示されるタブ
- 6-2-2 Actions/Packagesの基本的な使い方
- ①単純なテストを組み込んでローカルで実行可能にする
- ②作成したテストをActionsで実行する
- ③ビルドしたパッケージをGHESのPackagesに公開する
- ④パッケージの公開をActions内で実行可能にする
6-3 まとめ
プロフィール
池田尚史
ITコンサルタントとしてキャリアをスタート。その後コンサルタントからプログラマーに転身し、パッケージソフトウェア開発、Webサービス開発を経て、GitHub日本法人立ち上げなどに関わる。現在はStripeにてパートナーソリューションエンジニアとしてパートナー様の技術支援に従事する。著書に『チーム開発実践入門』(技術評論社、2014年)がある。