๐ŸŽ„

CertoMetrics - 9% OFF Special Discount Offer - Ends In:

0d 00h 00m 00s
Coupon code: SALE2026

Microsoft GitHub Actions Exam (GH-200)

Get full access to the updated question bank and pass on your first attempt.

Vendor

Microsoft

Certification

GitHub

Content

87 Qs

Status

Verified

Updated

1 week ago

Test the Practice Engine

Experience our real exam environment with free demo questions

Launch Free Demo
Best Value Bundle

Premium Bundle

Complete Success Suite

$68 $59

Save $9 Instantly

  • โœ“
    Full PDF + Interactive Engine Everything you need to pass
  • โœ“
    All Advanced Question Types Drag & Drop, Hotspots, Case Studies
  • โœ“
    Priority 24/7 Expert Support Direct line to certification leads
  • โœ“
    90 Days Free Priority Updates Stay current as exams change

Success Metric

98.4% Pass Rate

Verified by 15k+ Students
Secure Checkout
Popular

Standard Simulation

Practice Engine

$39

One-Time Payment

  • Web-Based (Zero Install)
  • Real Testing Environment Virtual & Practice Modes
  • Interactive Engine Drag & Drop, Hotspots
  • 60 Days Free Updates

Compatible with All Devices

Chrome
Verified Secure Checkout

Basic Tier

PDF Study Guide

$29

Digital Access

  • โœ“ Exam Questions (PDF)
  • โœ“ Mobile Friendly
  • โœ“ 60 Days Updates
Download Free Sample PDF

Verified 10-Question Preview

Secure Checkout

Verified Community

The CertoMetrics Standard.

Recommend the #1 platform for verified Microsoft certification resources.

Success Network

Help a Colleague Succeed.

Invite a peer to get their own updated GH-200 prep kit.

Exam Overview

The Microsoft GitHub Actions Exam (GH-200) is a pivotal certification designed to validate your proficiency in automating software development workflows directly within GitHub. Earning this credential signifies your expertise in designing, implementing, and managing robust continuous integration and continuous delivery (CI/CD) pipelines, a cornerstone of modern DevOps practices. This certification not only enhances your technical credibility but also demonstrates your ability to streamline development processes, improve code quality, and accelerate release cycles for any project or organization. It positions you as a skilled professional capable of leveraging GitHub's powerful automation capabilities to drive efficiency, innovation, and reliability in software delivery.

Questions

40-60

Passing Score

700/1000

Duration

120 Minutes

Difficulty

Intermediate

Level

Specialist

Skills Measured

Designing and Implementing GitHub Actions Workflows
Managing Workflow Triggers, Contexts, and Events
Utilizing Actions, Runners, and Environments
Securing and Optimizing GitHub Actions Workflows
Troubleshooting and Monitoring GitHub Actions

Career Path

Target Roles

DevOps Engineer Software Developer CI/CD Engineer

Common Questions

Is the material up to date?

Yes. We update our question bank weekly to match the latest Microsoft standards. You get free updates for 90 days.

What format do I get?

You get instant access to both the **PDF** (for reading) and our **Premium Test Engine** (for exam simulation).

Is there a guarantee?

Absolutely. If you fail the GH-200 exam using our materials, we offer a full money-back guarantee.

When do I get the download?

Instantly. The download link is available in your dashboard immediately after payment is confirmed.

Free Study Guide Samples

Previewing updated GH-200 bank (18 Questions).

QUESTION 1

What can be used to set a failed status of an action from its code?

A
JavaScript dist/ folder
B
composite run step
C
output variable
D
a non-zero exit code Most Voted
E
Dockerfile CMD
F
@actions/github toolkit

Correct Option: D

โœ… **a non-zero exit code **

Reasoning: GitHub Actions runners interpret a non-zero exit code from any step's command or script as a failure. This is the fundamental, universal mechanism for signaling failure across shell, JavaScript, and Docker actions. โŒ Why the other choices are incorrect:

  • Option A is incorrect: The dist/ folder contains compiled JavaScript code; it's the location of the code, not a mechanism for status signaling.
  • Option B is incorrect: A composite run step bundles multiple steps. While steps within it can fail, "composite run step" itself isn't the method of failure signaling from code.
  • Option C is incorrect: Output variables pass data between steps. They are not the standard or primary method for marking an action step as failed.
  • Option E is incorrect: Dockerfile CMD defines the default command to run in a Docker container. The exit code of that command determines success or failure, not the CMD instruction itself.
  • Option F is incorrect: The @actions/github toolkit provides API client access. While @actions/core has setFailed, the fundamental mechanism recognized by the runner is the non-zero exit code.


QUESTION 2

As a developer, how can you identify a composite action on GitHub?

A
The actionโ€™s repository name includes the keyword โ€œcomposite.โ€
B
The actionโ€™s repository includes an init.sh file in the root directory.
C
The actionโ€™s repository includes Dockerfile and package.json files.
D
The action.yml metadata file has the runs.using value set to composite.

Correct Option: D

โœ…

Reasoning: A composite action is specifically identified in its action.yml metadata file by setting the runs.using key to composite. This configuration explicitly tells GitHub Actions how to execute the action's defined steps. โŒ Why the other choices are incorrect:

  • Option A is incorrect: Repository names are descriptive and not a technical requirement or identifier for an action's type. A composite action repository can have any name.
  • Option B is incorrect: An init.sh file is not a standard or required file for identifying any type of GitHub Action, including composite actions.
  • Option C is incorrect: Dockerfile and package.json files are used to define Docker container actions and JavaScript actions, respectively. They do not identify a composite action, which is a different action type.


QUESTION 3

As a developer, your Actions workflow often reuses the same outputs or downloaded dependencies from one run to another. To cache dependencies for a job, you are using the GitHub cache action. Which input parameters are required for this action? (Each correct answer presents part of the solution. Choose two.)

A
path: the file path on the runner to cache or restore Most Voted
B
dependency: the name and version of a package to cache or restore
C
key: the key created when saving a cache and the key used to search for a cache Most Voted
D
restore-keys: the copy action key used with cache parameter to cache the data
E
cache-hit: the copy action key used with restore parameter to restore the data from the cache
F
ref: the ref name of the branch to access and restore a cache created

Correct Option: A,C

โœ…

Reasoning: The path input is required for the actions/cache action. It specifies the files, directories, or wildcard patterns on the runner that the action should cache or restore.


โœ…

Reasoning: The key input is mandatory. It provides a unique identifier for the cache entry when saving and is subsequently used to search for and restore a matching cache. โŒ Why the other choices are incorrect:

  • Option B is incorrect: dependency is not a valid input parameter for the GitHub cache action. The path input defines the items to be cached.
  • Option D is incorrect: restore-keys is an optional input parameter, used for providing fallback keys if the primary key does not yield a cache hit. It is not required.
  • Option E is incorrect: cache-hit is an output of the cache action, indicating whether a cache was restored, not an input parameter.
  • Option F is incorrect: ref is not a recognized input parameter for the actions/cache action. Caching operates within the current workflow context.


QUESTION 4

As a developer, how can you identify a JavaScript action on GitHub?

A
The actionโ€™s repository includes a js.yml file in the .github/workflows directory.
B
The actionโ€™s repository name includes the keyword โ€œJavaScript.โ€
C
The action.yml metadata file has the runs.using value set to node16. Most Voted
D
The action.yml metadata file references a package.json file.

Correct Option: C

โœ…

Reasoning: The action.yml metadata file's runs.using property explicitly declares the action's execution environment. For JavaScript actions, this value must be a specific Node.js version (e.g., node16, node20), directly indicating it is a JavaScript-based action type. โŒ Why the other choices are incorrect:

  • Option A is incorrect: .github/workflows directories contain workflow definitions, not the action's metadata file itself. A js.yml file there would define a workflow, not identify a reusable action as JavaScript-based.
  • Option B is incorrect: Repository names are arbitrary and descriptive. While they might hint at the language, they are not a definitive technical mechanism to identify an action's specific type.
  • Option D is incorrect: While package.json is common in JavaScript projects, the action.yml file doesn't directly reference it to define the action's type. The runs.using property, not package.json presence, specifies the Node.js runtime.


QUESTION 5

You are a DevOps engineer working on a custom action. You want to conditionally run a script at the start of the action, before the main entrypoint. Which code block should be used to define the metadata file for your custom action?

A
runs:using: 'nodel6'pre-if: github.event_name == 'push' then 'start.js'main: 'index.js'
B
runs:using: 'nodel6'pre: 'start.js'pre-if: github.event_name == 'push'main: 'index.js'
C
runs:using: 'nodel6'start: 'start.js'start-if: github.event_name == 'push'main: 'index.js'
D
runs:using: 'nodel6'before: 'start.js'before-if: github.event_name == 'push'main: 'index.jsโ€™

Correct Option: B

โœ…

Reasoning: This code block correctly uses pre: 'start.js' to define the script that runs before main, and pre-if: github.event_name == 'push' to apply the conditional expression. This standard action.yml syntax perfectly matches the requirement for conditionally running a script at the action's start. โŒ Why the other choices are incorrect:

  • Option A is incorrect: The pre-if key is for the conditional expression only; it cannot define the script itself. The syntax pre-if:... then 'start.js' is invalid.
  • Option C is incorrect: start and start-if are not valid keywords in action.yml for defining a pre-entrypoint script and its condition. The correct keyword is pre.
  • Option D is incorrect: before and before-if are not valid keywords in action.yml. The standard and documented keyword for running a script before the main entrypoint is pre.


QUESTION 6

Which of the following is the most common way to target a specific major release version?

A
steps:- uses: actions/checkout@v3 Most Voted
B
steps:- uses: actions/checkout
C
steps:- uses: actions/checkout@U1673995124
D
steps:- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c

Correct Option: A

โœ…

Reasoning: actions/checkout@v3 is the most common and recommended method to target a specific major release version (v3 in this case). This syntax allows for automatic updates to minor versions and bug fixes within that major release, ensuring stability and access to the latest patches. โŒ Why the other choices are incorrect:

  • Option B is incorrect: steps:- uses: actions/checkout refers to the default branch (e.g., main or master), which can be unstable if the maintainer pushes breaking changes directly to the default branch. It does not target a specific major release.
  • Option C is incorrect: steps:- uses: actions/checkout@U1673995124 uses an arbitrary, non-standard string that does not correspond to a valid Git ref (tag, branch, or SHA) in GitHub Actions for versioning.
  • Option D is incorrect: steps:- uses: actions/checkout@ac593995615ec2ede58e132d2e21d2b1cbd6127c targets a specific Git commit SHA. While precise, it's not the most common way to target a major release as it locks to an immutable point, preventing automatic receipt of minor version updates or bug fixes within that major release.


QUESTION 7

Which workflow commands send information from the runner? (Each correct answer presents a complete solution. Choose two.)

A
reading from environment variables
B
setting a debug message Most Voted
C
populating variables in a Dockerfile
D
setting output parameters

Correct Option: B,D

โœ… **setting a debug message **

Reasoning: Workflow commands like echo "::debug::message" send diagnostic information from the runner to the GitHub Actions log. This data helps in debugging workflow execution and is explicitly sent from the runner.


โœ… **setting output parameters **

Reasoning: Workflow commands such as echo "::set-output name=myOutput::value" (or echo "myOutput=value" >> $GITHUB_OUTPUT) transmit output values from a step or job on the runner, making them available for subsequent steps or jobs in the workflow. โŒ Why the other choices are incorrect:

  • Option A is incorrect: Reading from environment variables is about consuming information on the runner, not sending information from it to the workflow context.
  • Option C is incorrect: Populating variables in a Dockerfile relates to defining environment within a container during its build or run, not a workflow command that sends information from the runner to the GitHub Actions workflow.


QUESTION 8

You are a DevOps engineer working on custom Actions development. You need to handle the errors or exceptions as part of the JavaScript based action code. What should be added to the following code block to handle errors? const core = require('@actions/core'); try {

// action code

} catch (error) {

<< insert snippet here >>

}

A
core.setException(error.message);
B
action.setError(error.message);
C
core.setFailed(error.message); Most Voted
D
core.action.setException(error.message);

Correct Option: C

โœ… **core.setFailed(error.message); **

Reasoning: The core.setFailed function is the correct and standard method within the @actions/core library to mark a GitHub Action as failed. When called, it causes the action and, subsequently, the entire workflow run to fail, providing the error message as context. โŒ Why the other choices are incorrect:

  • Option A is incorrect: The @actions/core library does not include a setException method. This is not a valid function for reporting exceptions to fail an action.
  • Option B is incorrect: action is not a defined object in the provided scope. While core.error exists, it only logs an error message but does not fail the action; setFailed is required to fail the run.
  • Option D is incorrect: The @actions/core library does not have a core.action property, nor a setException method. This option combines two non-existent elements.
QUESTION 9

What is the most suitable action type for a custom action written in TypeScript?

A
Docker container action
B
Bash script action
C
composite run step
D
JavaScript action

Correct Option: D

โœ…

Reasoning: TypeScript transpiles directly into JavaScript. GitHub Actions' "JavaScript action" type is designed to execute Node.js-based JavaScript files, which perfectly accommodates compiled TypeScript code. This provides the most native and suitable execution environment. โŒ Why the other choices are incorrect:

  • Option A is incorrect: Docker container actions run code within a container. While possible, it's an encapsulation method, not the most suitable action type for TypeScript itself, as it adds unnecessary overhead compared to direct Node.js execution.
  • Option B is incorrect: TypeScript is a programming language that compiles to JavaScript, not a Bash script. It cannot be directly executed as a Bash script.
  • Option C is incorrect: Composite run steps bundle multiple workflow steps into one. While a compiled TypeScript action could be a step within a composite action, "composite run step" isn't the underlying action type for the TypeScript code itself.


QUESTION 10

As a developer, you need to integrate a GitHub Actions workflow with a third-party code quality provider that uses the Checks API. How should you trigger a follow-up workflow?

A
Add the workflow_run webhook event as a trigger for the workflow for the code quality integration name
B
Add the check_run webhook event as a trigger for the workflow when the code quality integration is completed Most Voted
C
Add the pull_request webhook event as a trigger for the workflow when the code quality integration is synchronized
D
Add the deployment webhook event as a trigger for the workflow when the code quality integration is completed

Correct Option: B

โœ…

Reasoning: The check_run webhook event is specifically designed to trigger workflows based on activity related to GitHub Checks API. Third-party code quality providers use the Checks API to report status. A follow-up workflow can be configured to trigger on check_run events, specifically when the status is completed and the check_run.name matches the integration, signaling its conclusion. โŒ Why the other choices are incorrect:

  • Option A is incorrect: The workflow_run event triggers for other GitHub Actions workflows, not directly for the completion of an external Checks API integration. It wouldn't directly capture the third-party check's completion status.
  • Option C is incorrect: The pull_request event triggers on pull request activity (e.g., opened, synchronized). While code quality runs on PRs, this event doesn't signify the completion of a distinct, external code quality check run.
  • Option D is incorrect: The deployment event triggers for code deployment activities. This is unrelated to the completion of a code quality analysis performed by a third-party provider using the Checks API.
QUESTION 11

What is the right method to ensure users approve a workflow before the next step proceeds?

A
creating a branch protection rule and only allow certain users access
B
granting users workflow approval permissions
C
adding users as required reviewers for an environment
D
granting users repository approval permission

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 12

Which syntax correctly accesses a job output (output1) of an upstream job (job1) from a dependent job within a workflow?

A
${{needs.job1.outputs.output1}}
B
${{needs.job1.output1}}
C
${{depends.job1.output1}}
D
${{job1.outputs.output1}}

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 13

As a developer, you are optimizing a GitHub workflow that uses and produces many different files. You need to determine when to use caching versus workflow artifacts. Which two statements are true? (Each correct answer presents part of the solution. Choose two.)

A
Use artifacts to access the GitHub Package Registry and download a package for a workflow.
B
Use caching when reusing files that change rarely between jobs or workflow runs.
C
Use caching to store cache entries for up to 30 days between accesses.
D
Use artifacts when referencing files produced by a job after a workflow has ended.

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 14

What are the two ways to pass data between jobs? (Each correct answer presents part of the solution. Choose two.)

A
Use data storage.
B
Use the copy action with cache parameter to cache the data.
C
Use the copy action with restore parameter to restore the data from the cache.
D
Use artifact storage.
E
Use job outputs.
F
Use the copy action to save the data that should be passed in the artifacts folder.

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 15

Which of the following is a valid reusable workflow reference?

A
uses: octo-org/another-repo/workflow.yml@v1
B
uses: octo-org/another-repo/.github/workflows/workflow.yml@v1
C
uses: another-repo/.github/workflows/workflow.yml@v1
D
uses: <a href="mailto:another-repo/workflow.yml@v1">another-repo/workflow.yml@v1</a>

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 16

Disabling a workflow allows you to stop a workflow from being triggered without having to delete the file from the repo. In which scenarios would temporarily disabling a workflow be most useful? (Each correct answer presents a complete solution. Choose two.)

A
A runner needs to have diagnostic logging enabled.
B
A workflow error produces too many, or wrong, requests, impacting external services negatively.
C
A workflow is configured to run on self-hosted runners.
D
A workflow sends requests to a service that is down.
E
A workflow needs to be changed from running on a schedule to a manual trigger.

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 17

As a DevOps engineer, you are developing workflows to build an application. You have a requirement to create the build targeting multiple node versions. Which code block should you use to define the workflow?

A
options/GH200_9989bc7863.webp
B
options/GH200_9e8f716145.webp
C
options/GH200_400772c328.webp
D
options/GH200_bbf64b1f6a.webp

Premium Solution Locked

Unlock all 87 answers & explanations

QUESTION 18

What is the proper syntax to reference the system-provided run number variable?

A
${{var.GITHUB_RUN_NUMBER}}
B
${{env.GITHUB_RUN_NUMBER}}
C
$GITHUB_RUN_NUMBER
D
${{GITHUB_RUN_NUMBER}}
E
$github.run_number

Premium Solution Locked

Unlock all 87 answers & explanations

Full Question Bank Locked

You have reached the end of the free study guide preview. Upgrade now to unlock all 87 questions and the full simulation engine.

Customer Reviews

5 / 5
(15,000+ verified)
5
100%
4
0%
3
0%
2
0%
1
0%

Global Community Feedback

DM

David M.

Verified Student

"The practice engine is incredible. It feels exactly like the real testing environment and helped me build so much confidence."

SJ

Sarah J.

Premium Member

"The PDF is very well organized and the explanations for the answers are actually helpful, not just random text."

MC

Michael C.

Verified Buyer

"I was skeptical, but the content is high quality and definitely worth the price. I passed on my first try!"

Need Assistance?

Our expert support team is available to assist you with any inquiries about our exam materials.

Contact Support
Average response: < 24 Hours

Get Exam Updates

Subscribe to receive instant notifications on new questions and exclusive flash sales.

* Join 5,000+ students getting weekly updates

Support Chat โ— Active Now

๐Ÿ‘‹ Hi! How can we help you pass your exam?

Enter email to start chatting