GH-200 · GitHub Actions · Associate

GH-200 Cheat Sheet 2026: Quick Reference

Organized by what you're trying to do, not by exam domain — the YAML key or setting that solves it, plus a pattern table for spotting the right answer fast.

Exam Snapshot

Duration: 100 minutes
Passing score: 700 / 1000
Level: Intermediate
Languages: EN, ES, PT-BR, KO, JA
Objectives revised: January 2026

Microsoft does not publish an exact question count or price for GH-200 — only duration and passing score are official (price is set by country/region). Third-party trackers commonly cite ~60 scored questions plus 10-15 unscored pretest items; treat that as an estimate, not a confirmed figure.

Every row below traces to Microsoft's GH-200 skills-measured page or GitHub's Actions documentation, both checked September 7, 2026 — not carried over from a generic template.

What You're Trying to Do → Where It Lives in the YAML

TaskDo thisWatch out for
Run a workflow on a timeron.schedule.cronCron is UTC; GitHub does not guarantee the exact minute under load
Let someone trigger a run manually with typed inputson.workflow_dispatch.inputsSupports string/boolean/choice types, required flags, and defaults
Share one workflow definition across many reposworkflow_call (reusable workflow)Central, versioned, invoked with inputs: and secrets: — not copied
Give new repos a one-time starting pointStarter workflow templateCopied once, then independent — edits don’t propagate back
Run the same job across OS/runtime combinationsstrategy.matrix with include/excludefail-fast stops all jobs on first failure; max-parallel caps concurrency
Pass a value from one job into a job that depends on itjob outputs + needs contextStep outputs (GITHUB_OUTPUT) must be surfaced as job outputs first
Write a readable summary of what a run didGITHUB_STEP_SUMMARYRenders as Markdown directly in the Actions run UI
Reuse the same YAML block in several places in one fileYAML anchors/aliases (&, *, <<)Native YAML feature, not GitHub-specific — reduces copy-paste drift
Authenticate to a cloud provider with no stored secretpermissions.id-token: write + OIDC federationExchanges GitHub’s OIDC token for a short-lived cloud token; removes the stored secret entirely
Lock a third-party action to something that can’t change under youPin to a full commit SHA, not @v4 or @mainAligns with 2026 immutable-actions enforcement on GitHub-hosted runners
Investigate one failing variant without rerunning the whole matrixRerun individual matrix jobs from the run UICorrelate the job name back to its matrix axis values first
Restrict which actions an org’s repos are allowed to runOrg-level action allow/deny policyApplies regardless of what an individual repo’s settings say
Scope a secret so it only applies to production deploysEnvironment secrets (not repo or org secrets)Gated behind environment protection rules and required approvals
Get software onto a runner that isn’t preinstalledsetup-* action, package manager, or custom runner imageCheck the runner image’s release notes/toolcache before assuming it’s missing

If the Question Says X, Think Y

If the scenario says...Think...
A long-lived cloud credential is stored as a secret and security wants it goneOIDC + id-token permission, not "rotate the secret more often"
The same YAML steps are duplicated across many jobs in one fileYAML anchors/aliases — not a reusable workflow (that’s for cross-repo sharing)
Many separate repos need identical CI and someone has to keep updating all of themA reusable workflow via workflow_call, not a starter workflow
A matrix job fails but the run shows success or hides other failuresCheck fail-fast — it cancels remaining jobs on first failure, which can mask a second, unrelated failure
A workflow uses a popular third-party action pinned to @main or a bare version tagSecurity risk — pin to a full commit SHA instead
A fork’s pull_request run needs write access to secrets it shouldn’t havepull_request from a fork does not get secrets by default; pull_request_target does, and misusing it is a common trap
A step needs a value another job already computedneeds: <job> plus that job’s outputs — not an environment variable set in a different job

Common Mistake: Confusing GITHUB_TOKEN Scope With OIDC

Candidates who know both features individually still miss questions that combine them. GITHUB_TOKEN is scoped to the repository the workflow runs in and expires when the job finishes — it authenticates to GitHub itself, not to a third-party cloud provider. OIDC federation (permissions: id-token: write) is the separate mechanism for proving identity to Azure, AWS, or GCP without a stored secret. A question describing "removing a stored Azure secret" is always pointing at OIDC, never at reusing GITHUB_TOKEN for something it was never scoped to do.

Actions Contexts Quick Reference

ContextWhat it gives you
githubRepository, ref, event payload, and workflow run metadata
runnerInfo about the machine executing the job (OS, temp dir, architecture)
envEnvironment variables defined at workflow, job, or step scope
varsConfiguration variables (non-secret) at org/repo/environment scope
secretsEncrypted secrets — automatically masked in logs when referenced
inputsValues passed via workflow_dispatch or workflow_call
matrixThe current combination of matrix axis values for this job
needsOutputs and result status from jobs this job depends on
strategyMetadata about the matrix/parallel execution strategy itself
stepsOutputs and outcome of previous steps within the same job

GH-200 Glossary

TermDefinition
GITHUB_TOKENAn ephemeral, auto-scoped token GitHub issues per workflow run — not a substitute for a personal access token (PAT), which is long-lived and user-scoped
Starter workflowA template you copy once from the Actions tab; becomes an independent file with no ongoing link to the source
Reusable workflowA versioned workflow file invoked from another workflow via workflow_call — the source stays authoritative
Composite actionA packaged sequence of steps exposed as a single reusable action, distinct from a reusable workflow
Immutable action releaseGitHub's 2026 enforcement making a published action version's content permanently fixed once released, closing the door on a tag being silently repointed
Artifact attestationSigned, verifiable provenance metadata (aligned with SLSA) proving what built an artifact and how

GH-200 Quick Answers

How is this different from the GH-200 study guide?

The study guide explains the five domains in narrative form with an hour-by-hour plan. This page skips narrative and organizes by task instead.

Does Microsoft publish an exact GH-200 question count?

No — only the 100-minute duration and 700/1000 passing score are official. Third-party trackers cite ~60 scored plus 10-15 unscored questions, unconfirmed by Microsoft.

What's the real difference between a starter workflow and a reusable workflow?

A starter workflow is copied once and becomes independent. A reusable workflow stays centrally defined and is invoked live via workflow_call.

Can I print this GH-200 cheat sheet?

Yes — every table here is plain HTML, so a browser print or "print to PDF" renders cleanly.

MSCertQuiz sells practice-exam access for GH-200 and other GitHub and Microsoft certifications; this reference was built by the same team that maintains the question bank behind it.

Version Pinning: What Each Reference Actually Locks

Every "pin this action" question comes down to one of four reference types, and they don't all lock the same thing. Knowing the difference is what separates a right answer from a plausible-sounding wrong one on the security domain.

Reference typeExampleWhat it actually locks
Branch@mainNothing — moves every time the publisher pushes a commit. Highest risk.
Floating tag@v4Nothing guaranteed — a publisher can repoint a major-version tag to a new release at any time, immutable releases or not.
Immutable releasev4.2.1 (2026 rollout)That specific release's content, once published — but only if you reference the release itself, not a tag that might move to a different release.
Full commit SHA@a1b2c3d...Exactly one commit's content, permanently. The exam's expected answer whenever a question asks how to "guarantee" what code runs.

Where to Go Next

Reviewed the reference? Now test it under pressure.

Start with free GH-200 questions covering every table above.

Start Free GH-200 Practice