Microsoft / GitHubLevel 3

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

GitHub Actions(GH-200)のサンプル問題(本番形式・解説付き)

GitHub Actions(GH-200)(Microsoft / GitHub・GitHub Actions 認定試験 GH-200(2026年1月時点のスキル))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(75問)の冒頭から抜粋したオリジナル問題です。当サイトは全825問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

再利用可能なワークフローの参照の付け方に合う、変更の伝わり方を、下のタイルから選んで置いてください。(使わないタイルもあります)

    解説

    ref の種類で、元を変えたときの伝わり方が決まります。リダイレクトは行われず、コピーを残すのはワークフローテンプレートの性質です。

    設問2

    main がデフォルトブランチのリポジトリで、main の schedule ワークフローは cron "0 3 * * *" です。開発者は feature/cron ブランチで同じファイルの cron を "0 4 * * *" に書き換えて push しましたが、マージはまだです。次の実行ではどう動きますか。

    • デフォルトブランチ main の最新コミットの内容で動くので、UTC の 3 時に動く(正解)
    • feature/cron の最新コミットの内容で動くので、UTC の 4 時に動く
    • より新しいコミットを持つブランチの定義が自動で選ばれる
    • main と feature/cron の両方の定義が使われ、3 時と 4 時の 2 回動く

    解説

    schedule は常にデフォルトブランチの最新コミットで動きます。feature ブランチの変更はマージするまで反映されません。 「feature/cron の最新コミットの内容で動くので、UTC の 4 時に動く」は誤りです。schedule が読むのは feature ブランチの内容ではなく、デフォルトブランチの最新コミットです。 「main と feature/cron の両方の定義が使われ、3 時と 4 時の 2 回動く」は誤りです。schedule が使う定義はデフォルトブランチの 1 つです。別ブランチの定義が重なって動くことはありません。 「より新しいコミットを持つブランチの定義が自動で選ばれる」は誤りです。新しさでブランチが選ばれることはありません。選ばれるのは常にデフォルトブランチです。

    他の選択肢が誤りである理由

    • 「feature/cron の最新コミットの内容で動くので、UTC の 4 時に動く」schedule が読むのは feature ブランチの内容ではなく、デフォルトブランチの最新コミットです。
    • 「より新しいコミットを持つブランチの定義が自動で選ばれる」新しさでブランチが選ばれることはありません。選ばれるのは常にデフォルトブランチです。
    • 「main と feature/cron の両方の定義が使われ、3 時と 4 時の 2 回動く」schedule が使う定義はデフォルトブランチの 1 つです。別ブランチの定義が重なって動くことはありません。

    設問3

    呼ばれる側でシークレットを直接参照したい。さらに、Windows 向けの一連の作業を、Linux で動くジョブから呼びたい。この 2 つの要件を満たす仕組みはどれですか。

    • JavaScript アクション
    • 再利用可能ワークフロー(正解)
    • Docker コンテナー アクション
    • 複合アクション

    解説

    再利用可能ワークフローは、呼ばれる側でシークレットを直接参照でき、ジョブごとに runs-on を決められるので、別の OS の作業を呼べます。 「複合アクション」は誤りです。複合アクションはシークレットを使えず、入力で渡す必要があります。呼んだジョブのランナーで動くので、別の OS には切り替えられません。 「JavaScript アクション」は誤りです。呼んだジョブのランナー上で直接動きます。別の OS のマシンで動かす用途には使えません。 「Docker コンテナー アクション」は誤りです。Linux のランナーでしか実行できないので、Windows 向けの作業をまとめる用途に使えません。

    他の選択肢が誤りである理由

    • 「JavaScript アクション」呼んだジョブのランナー上で直接動きます。別の OS のマシンで動かす用途には使えません。
    • 「Docker コンテナー アクション」Linux のランナーでしか実行できないので、Windows 向けの作業をまとめる用途に使えません。
    • 「複合アクション」複合アクションはシークレットを使えず、入力で渡す必要があります。呼んだジョブのランナーで動くので、別の OS には切り替えられません。

    設問4

    on.schedule の動きについて、正しい説明を 2 つ選んでください。

    • timezone を指定しない限り、cron はリポジトリ所有者の地域の時刻で解釈される
    • 実行は、デフォルトブランチの最新コミットにあるワークフローでだけ動く(正解)
    • 毎時 0 分は負荷が低いため、ほかの時刻より遅れずに始まる傾向がある
    • 5 分より短い間隔では動かせない(正解)
    • cron は 6 つのフィールドで書き、先頭のフィールドが秒を表す

    解説

    schedule は 5 分より短い間隔では動かせません。 別のブランチに置いたファイルでは、スケジュールの実行は動きません。 「timezone を指定しない限り、cron はリポジトリ所有者の地域の時刻で解釈される」は誤りです。既定は UTC です。試験の版(2026 年 1 月)の文書では、schedule は常に UTC で動きます。今の文書では、IANA のタイムゾーン文字列を timezone に指定して、別の時刻で読ませることもできます。 「毎時 0 分は負荷が低いため、ほかの時刻より遅れずに始まる傾向がある」は誤りです。毎時 0 分の前後は負荷が高く、遅れることがあります。 「cron は 6 つのフィールドで書き、先頭のフィールドが秒を表す」は誤りです。フィールドは 5 つで、分・時・日・月・曜日の順です。

    他の選択肢が誤りである理由

    • 「timezone を指定しない限り、cron はリポジトリ所有者の地域の時刻で解釈される」既定は UTC です。試験の版(2026 年 1 月)の文書では、schedule は常に UTC で動きます。今の文書では、IANA のタイムゾーン文字列を timezone に指定して、別の時刻で読ませることもできます。
    • 「毎時 0 分は負荷が低いため、ほかの時刻より遅れずに始まる傾向がある」毎時 0 分の前後は負荷が高く、遅れることがあります。
    • 「cron は 6 つのフィールドで書き、先頭のフィールドが秒を表す」フィールドは 5 つで、分・時・日・月・曜日の順です。

    設問5

    独自のデプロイ保護ルールを作った GitHub App が、POST /repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule に結果を送ります。デプロイの可否を伝える state の値として、正しいものはどれですか。

    • allow か deny のどちらか
    • approved か rejected(正解)
    • success か failure のどちらか
    • pending か running のどちらか

    解説

    state には、承認する approved か、却下する rejected を送ります。 「success か failure のどちらか」は誤りです。ワークフローの結果を表す語で、この API の state には使いません。 「pending か running のどちらか」は誤りです。処理の途中を表す語で、この API の state には使いません。 「allow か deny のどちらか」は誤りです。この API の state の値は approved か rejected です。

    他の選択肢が誤りである理由

    • 「allow か deny のどちらか」この API の state の値は approved か rejected です。
    • 「success か failure のどちらか」ワークフローの結果を表す語で、この API の state には使いません。
    • 「pending か running のどちらか」処理の途中を表す語で、この API の state には使いません。

    続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

    登録なしで50問解く