Appearance
2. リポジトリを作成する
概要
ローカルで Git を初期化し、利用可能な GitHub アカウントまたは Organization に演習用リポジトリを作成します。
手順
1. GitHub の認証を確認する
演習に使用する GitHub アカウントの認証状態を確認し、意図したアカウントで操作できる状態にします。
Agent モードで以下の指示を与えます。
text
GitHub CLI の認証状態と github.com の認証先アカウントを確認してください。
未認証の場合は Web ブラウザーを使うログインが必要なこと、認証先と権限への影響を説明し、askQuestions で承認を得てから gh auth login --hostname github.com --web を実行してください。
表示されたアカウントがリポジトリ作成に使うアカウントかを私に確認し、認証情報そのものは表示しないでください。次を確認します。
github.comの認証状態と認証先アカウントが報告されている- 未認証の場合は、認証先と権限への影響を確認して明示的に承認するまでログインが実行されていない
- 表示されたアカウントがリポジトリ作成に使うアカウントである
- 認証情報そのものが表示されていない
表示されたアカウントが、リポジトリを作成するアカウントであることを確認します。
powershell
# GitHub CLI の認証状態と認証先アカウントを表示します
gh auth status
# Web ブラウザーを使って GitHub.com へログインします
gh auth login --hostname github.com --web既に認証済みの場合、gh auth login は不要です。
表示されたアカウントが、リポジトリを作成するアカウントであることを確認します。
bash
# GitHub CLI の認証状態と認証先アカウントを表示します
gh auth status
# Web ブラウザーを使って GitHub.com へログインします
gh auth login --hostname github.com --web既に認証済みの場合、gh auth login は不要です。
ブラウザーで GitHub を開き、リポジトリを作成するアカウントでサインインしていることを確認します。
2. ローカルリポジトリを初期化する
スターターのルートを Git リポジトリとして初期化し、初期ブランチが main であることを確認します。
Agent モードで以下の指示を与えます。
text
既存の AGENTS.md と git-workflow Skill のガードレールに従ってください。
現在のフォルダーと Git の状態を確認し、このスターターのルートが対象で、まだ Git リポジトリではない場合だけ main を初期ブランチとして git init -b main を実行してください。
既存リポジトリ、親リポジトリ、または対象不明を検出した場合は変更せず質問してください。
実行後に現在のブランチと作業ツリーの状態を確認してください。次を確認します。
- 対象がスターターのルートであり、既存または親の Git リポジトリではない
- 初期ブランチが
mainである - 実行後の現在のブランチと作業ツリーの状態が報告されている
- 対象が不明な場合は変更されていない
powershell
# main を初期ブランチとして Git リポジトリを初期化します
git init -b mainbash
# main を初期ブランチとして Git リポジトリを初期化します
git init -b main3. 最初のコミットを作成する
Git の作者情報を確認し、スターターの初期ファイルを最初のコミットとして記録します。スターターの初期ファイルを記録する最初のコミットを作成し、作業ツリーが clean な状態にします。
Agent モードで以下の指示を与えます。
text
既存の AGENTS.md と git-workflow Skill のガードレールに従ってください。
現在のブランチ、作者情報、変更一覧、ステージ対象を確認し、このスターターの初期ファイルだけをステージして、chore: add workshop starter という1件のコミットを作成してください。
コミットの対象と影響を要約し、askQuestions で明示的な承認を得てから実行してください。対象不明、秘密情報の疑い、状態不整合があれば変更せず質問し、push は行わないでください。
実行後にコミットと作業ツリーの状態を確認してください。次を確認します。
- コミットの対象がスターターの初期ファイルだけである
- コミットメッセージが
chore: add workshop starterである - 対象と影響を確認して明示的に承認するまでコミットが実行されていない
- コミット後の作業ツリーの状態が報告され、push は実行されていない
powershell
# 現在のフォルダーにある変更をすべてステージします
git add .
# ステージしたファイルを最初のコミットとして記録します
git commit -m "chore: add workshop starter"bash
# 現在のフォルダーにある変更をすべてステージします
git add .
# ステージしたファイルを最初のコミットとして記録します
git commit -m "chore: add workshop starter"Git の作者情報が未設定の場合
次のコマンドで、作者名とメールアドレスを確認します。
shell
# Git に設定された作者名を表示します
git config --get user.name
# Git に設定された作者メールアドレスを表示します
git config --get user.emailuser.name または user.email が表示されない場合は、YOUR_NAME と YOUR_EMAIL を自分の情報へ置き換え、このリポジトリに設定します。メールアドレスを公開したくない場合は、GitHub の noreply メールアドレスを使用できます。
shell
# このリポジトリで使用する Git の作者名を設定します
git config user.name "YOUR_NAME"
# このリポジトリで使用する Git の作者メールアドレスを設定します
git config user.email "YOUR_EMAIL"補足: コミットメッセージの規約
このハンズオンでは、変更の種類が分かるように Conventional Commits の形式を使用します。
text
<type>: <description>例えば、chore: add workshop starter の chore は、機能追加や不具合修正ではない準備作業を表します。主な type は次のとおりです。
feat: 機能を追加するfix: 不具合を修正するdocs: ドキュメントを変更するtest: テストを追加または変更するci: CI/CD の設定を変更するchore: その他の保守作業を行う
description には、変更内容を簡潔に記述します。
4. GitHub リポジトリを作成する
GitHub のリポジトリは、Owner と Repository name を指定して作成します。
| 項目 | 説明 | 本ワークショップの想定 |
|---|---|---|
| Owner | リポジトリの所有者。自分のアカウントまたは所属する Organization を指定します。 | 手順1で認証またはサインインを確認した自分のアカウント |
| Repository name | 作成するリポジトリの名前。 | github-cicd-workshop |
特定の Organization に作成するよう講師から指定された場合は、その Organization を Owner に指定します。Owner に同じ名前のリポジトリが既にある場合は、Repository name を github-cicd-workshop-2 のように変更してください。
GitHub に演習用リポジトリを作成して Pages を設定し、ローカルの main を初回 push できたことを確認します。
Agent モードで以下の指示を与えます。
Owner や名前を変更する場合は、プロンプト内の値も置き換えます。
text
既存の AGENTS.md と git-workflow Skill のガードレールに従ってください。
認証先アカウント、現在のブランチとコミット、remote の有無を確認してください。作成候補は Owner が認証中の自分のアカウント、名前が github-cicd-workshop、Public、説明が GitHub CI/CD workshop です。
同名リポジトリの有無を調べ、これから行う外部変更(Public リポジトリ作成、Pages の Source を GitHub Actions に設定、origin 追加、main の初回 push)について、対象、公開範囲、各値、影響を要約してください。
askQuestions で私が Owner、リポジトリ名、Public 公開、Pages 設定、push を明示的に承認するまで実行しないでください。対象不明、既存 remote、状態不整合があれば変更せず質問してください。
承認後だけ順に実行し、作成した URL、Pages の build_type、origin、push 先を確認して報告してください。次を確認します。
- Owner、リポジトリ名、Public 公開、Pages 設定、push 先が意図した値である
- 外部変更の対象、公開範囲、影響を確認して明示的に承認するまで実行されていない
- 作成した URL、Pages の
build_type、origin、push 先が報告されている - 既存 remote や状態の不整合がある場合は変更されていない
powershell
# 認証中の GitHub ユーザー名を取得します
$owner = gh api user --jq .login
# 作成するリポジトリ名を設定します
$repositoryName = "github-cicd-workshop"
# Owner とリポジトリ名から完全なリポジトリ名を組み立てます
$repo = "$owner/$repositoryName"
# GitHub に Public リポジトリを作成します
gh repo create $repo --public --description "GitHub CI/CD workshop"
# GitHub Pages の公開元を GitHub Actions に設定します
gh api --method POST "repos/$repo/pages" -f build_type=workflow
# 作成した GitHub リポジトリを origin として登録します
git remote add origin "https://github.com/$repo.git"
# main を origin へ初回 push し、追跡先に設定します
git push -u origin mainOrganization を Owner にする場合や Repository name を変更する場合は、$owner または $repositoryName の値を変更します。
gh api が Already enabled に相当するエラーを返した場合は、次のコマンドで build_type が workflow であることを確認して続行します。
powershell
# GitHub Pages の現在の設定を取得します
$pages = gh api "repos/$repo/pages" | ConvertFrom-Json
# Pages の公開元の種類を表示します
$pages.build_typebash
# 認証中の GitHub ユーザー名を取得します
owner=$(gh api user --jq .login)
# 作成するリポジトリ名を設定します
repository_name="github-cicd-workshop"
# Owner とリポジトリ名から完全なリポジトリ名を組み立てます
repo="$owner/$repository_name"
# GitHub に Public リポジトリを作成します
gh repo create "$repo" --public --description "GitHub CI/CD workshop"
# GitHub Pages の公開元を GitHub Actions に設定します
gh api --method POST "repos/$repo/pages" -f build_type=workflow
# 作成した GitHub リポジトリを origin として登録します
git remote add origin "https://github.com/$repo.git"
# main を origin へ初回 push し、追跡先に設定します
git push -u origin mainOrganization を Owner にする場合や Repository name を変更する場合は、owner または repository_name の値を変更します。
gh api が Already enabled に相当するエラーを返した場合は、次のコマンドで build_type が workflow であることを確認して続行します。
bash
# Pages の公開元の種類を表示します
gh api "repos/$repo/pages" --jq .build_type- GitHub の右上にある + を選択し、New repository を選択します。
- Owner で、表に示した Owner を選択します。
- Repository name で、表に示した Repository name を入力します。
- Configuration > Choose visibility で Public を選択します。README、
.gitignore、ライセンスは追加せず、空の状態で作成します。 - Create repository を選択します。
- 作成したリポジトリの Settings > Pages を開き、Build and deployment の Source に GitHub Actions を選択します。
OWNERを選択した Owner、REPOSITORYを入力した Repository name へ置き換え、スターターを push します。
powershell
# 入力した Owner とリポジトリ名から完全なリポジトリ名を組み立てます
$repo = "${OWNER}/${REPOSITORY}"
# 作成した GitHub リポジトリを origin として登録します
git remote add origin "https://github.com/$repo.git"
# main を origin へ初回 push し、追跡先に設定します
git push -u origin mainbash
# 入力した Owner とリポジトリ名から完全なリポジトリ名を組み立てます
repo="${OWNER}/${REPOSITORY}"
# 作成した GitHub リポジトリを origin として登録します
git remote add origin "https://github.com/$repo.git"
# main を origin へ初回 push し、追跡先に設定します
git push -u origin mainリポジトリの Visibility 設定
Private リポジトリで GitHub Pages を利用できるプランは限られています。また、Private リポジトリから公開しても、Pages サイト自体は公開される場合があります。詳しくは、GitHub Docs の GitHub のプランを確認してください。本ハンズオンでは、プランに依存せず利用可能な Public リポジトリを使用する想定です。
5. Workflow を確認する
初回 push で開始された CI と Pages の Workflow を確認し、実行状態と対象リポジトリが正しいことを確かめます。
Agent モードで以下の指示を与えます。
text
現在の origin が指す GitHub リポジトリを特定し、直近5件の Workflow run を読み取り専用で確認してください。
CI と Pages の run が開始または完了しているか、各状態と URL を要約してください。リポジトリを特定できない場合は変更せず質問し、Workflow の再実行や設定変更は行わないでください。次を確認します。
- 対象が現在の
originが指すリポジトリである - CI と Pages の Workflow run の状態と URL が報告されている
- Workflow の再実行や設定変更が行われていない
powershell
# 現在の GitHub リポジトリの完全な名前を取得します
$repo = (gh repo view --json nameWithOwner | ConvertFrom-Json).nameWithOwner
# 直近5件の Workflow run を表示します
gh run list --repo $repo --limit 5bash
# 現在の GitHub リポジトリの完全な名前を取得します
repo=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
# 直近5件の Workflow run を表示します
gh run list --repo "$repo" --limit 5- GitHub で演習用リポジトリを開きます。
- Actions を選択します。
- Workflow run の一覧に CI と Pages の実行が表示されることを確認します。
初回 push により、CI と Pages の Workflow が開始されます。Pages の結果は後の記事で確認します。
確認事項
originが今回作成した GitHub リポジトリを指している- 現在のブランチが
mainである - 作業ツリーが clean である
- CI と Pages の Workflow run が開始または完了している
まとめ
GitHub 上に演習用リポジトリを作成し、スターターを push しました。