GitHub Foundations #6 Domain 4: モダン開発 — Actions・Codespaces・Copilot・Packages

読了 6分

Domain 4はモダン開発(Modern Development)の領域です。リポジトリとコラボレーション機能がGitHubの骨格だとすれば、このドメインはGitHubを開発プラットフォームへ拡張する機能を問います。CI/CDを担うActions、クラウド開発環境のCodespaces、AIコーディングツールのCopilot、パッケージレジストリのPackagesが主役です。試験は各機能を深く扱う代わりに、何がどんな問題を解く機能なのか、互いにどう違うのかを問います。特にgithub.devとCodespacesの違いは定番の出題箇所なので、表で正確に整理します。

GitHub Actions — リポジトリに付く自動化 #

GitHub Actionsは、リポジトリのイベントに反応して自動で実行されるワークフロー機能です。代表的な用途はCI/CD(テスト、ビルド、デプロイの自動化)ですが、Issueにラベルを付けるといったリポジトリ運用の自動化にも使われます。試験はYAML文法の詳細ではなく、構成要素の用語と関係を問います。

用語意味
Workflow自動化プロセス全体。.github/workflows/のYAMLファイル1つ
Eventワークフローを開始させるきっかけ (push、pull_request、scheduleなど)
Jobワークフロー内の実行単位。デフォルトでは互いに並列実行
Stepjobの中で順に実行される個別のコマンドまたはアクション
Action再利用可能な単位機能。Marketplaceから持ってきて使う
Runnerjobを実際に実行するマシン
.github/workflows/ci.yml — 最小の例
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test

onがイベント、jobsの下のtestがjob 1つ、stepsの各行がstepです。usesはMarketplaceのアクションを持ってきて、runはシェルコマンドを直接実行します。runnerにはGitHubが提供するGitHub-hosted runner(ubuntu-latestなど)と、自分で用意したマシンを登録するself-hosted runnerの2種類がある、という区別まで知っておけば、この領域の出題範囲はほとんどカバーできます。

GitHub Codespaces — クラウド開発環境 #

Codespacesは、リポジトリをもとにクラウド上へ開発環境を丸ごと立ち上げる機能です。ブラウザのVS Codeでそのまま接続するか、ローカルのVS CodeやJetBrains系IDEから接続でき、ターミナルとランタイムを備えた実際の仮想マシンなので、コードの実行やテストができます。

環境構成は、リポジトリの.devcontainer/devcontainer.jsonファイルで宣言します。使用するイメージ、インストールする拡張機能、ポートフォワーディングの設定をコードで書いておけば、チームの誰がCodespaceを開いても同じ環境が再現されます。「新しいメンバーの開発環境セットアップが数分に縮む」というのが、試験が期待する効用の記述です。コンピューティング資源を使う機能なので、無料プランにも月間の使用量上限があり、超過分は課金されるという事実も合わせて覚えておきます。

github.dev — 実行のないWebエディタ #

Codespacesと必ず区別しなければならないのが、github.devのWebエディタです。リポジトリページでピリオド(.)キーを押すか、URLのgithub.comgithub.devに変えると開きます。ブラウザのVS Code画面でファイルを編集してコミットできますが、後ろにコンピューティング資源のないエディタ専用の環境です。

区分github.devCodespaces
実体ブラウザエディタ (コンピューティングなし)クラウド仮想マシン
コード実行・ターミナル不可可能
デバッグ・テスト不可可能
費用無料使用量ベース (無料枠あり)
開き方.キーまたはgithub.devのURLCodeボタン → Codespacesタブ

「タイポ修正のように実行の要らない編集はgithub.dev、ビルドとテストまで必要ならCodespaces」というのが、試験が求める判断です。

GitHub Copilot — AIコーディングツール #

Copilotは、エディタの中でコードを提案するAIコーディングツールです。試験の観点での核心は3つです。

  • 動作の形 — エディタ拡張としてインストールされ、書いているコードの文脈を読んで次のコードをインラインで提案します。対話形式で質問しコードの説明を受けるCopilot Chatも含まれます。
  • 対応環境 — VS Code、Visual Studio、JetBrains系、Neovimなど主要エディタと、github.comのWebまで対応します。
  • プランの区分 — 個人向けプランと、組織管理機能(ポリシー管理、メンバー単位の有効化)が付くビジネス・エンタープライズプランに分かれます。認証された学生と人気オープンソースのメンテナーには個人プランが無料で提供される、という事実も出題されたことのある箇所です。

GitHub Packages — コードの隣のパッケージレジストリ #

Packagesは、リポジトリと同じアカウントの下でパッケージを配布するレジストリです。npm、RubyGems、Maven、Gradle、NuGetといった言語エコシステムと、コンテナイメージをサポートします。コンテナイメージ専用のアドレスがGitHub Container Registry(ghcr.io)です。

試験が期待する効用は、コードとパッケージを一か所で管理し、リポジトリの権限体系とActionsワークフローをそのまま活用して配布を自動化するという点です。ActionsワークフローでビルドしたパッケージをGITHUB_TOKENでそのままPackagesにpushする組み合わせが代表的な流れです。

GitHub Marketplace #

Marketplaceは、Actionsで使うアクションと、リポジトリにインストールするGitHub Appsを探して配布する場です。CIツール、コード品質チェック、プロジェクト管理連携といったサードパーティ機能をリポジトリに付けるとき、ここで検索します。無料と有料が混ざっていて、自作のアクションやアプリを登録して配布することもできる、という程度が試験範囲です。

注記
試験ポイントを整理します。Actionsの用語の連鎖(workflowはeventで始まり、jobはrunnerの上でstepを順に実行する)を正確に区別すること、github.devは実行・ターミナルが不可能なエディタでCodespacesは実行可能な仮想マシンだという対比、そしてghcr.ioがPackagesのコンテナレジストリだという事実が、このドメインの定番の出題ポイントです。

まとめ #

Domain 4の機能は、互いに組み合わさるときに完成します。Codespacesで統一された環境で開発し、Copilotの提案でコードを書き、pushするとActionsがテストを回し、通過した成果物がPackagesへ配布される流れです。試験もこの大きな絵の上で、各機能の役割の区別を問います。

次回の「GitHub Foundations #7 Domain 5: プロジェクト管理 — Projects・自動化・インサイト」では、IssueとPRを計画ツールとしてまとめ上げるGitHub Projectsを扱います。

X