Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.

3.1.2. Access Control and Use Policies

💡 First Principle: Actions policy answers three separable questions — may this repository run Actions at all, which actions may it use, and what may the resulting token do — and each is a different setting, layered from enterprise down to repository.

The action-source policy is a ladder, and the exam wants the rungs in order:

Policy settingWhat it permitsTypical use
Allow all actions and reusable workflowsAnything, including arbitrary Marketplace codeOpen-source orgs, low-risk repos
Allow enterprise/org actions only ("local only")Only actions defined inside the enterprise or organizationHighest-lockdown regulated environments
Allow actions created by GitHubThe actions/* first-party setBaseline tier, combined with others
Allow Marketplace actions by verified creatorsPublishers GitHub has verifiedAdds vetted third parties
Allow specified actions (allowlist)Patterns like owner/repo@*, owner/*The practical enterprise middle ground

The allowlist is pattern-based, and its syntax is testable: monalisa/octocat@* permits all versions of one action, monalisa/octocat@v2 pins a version, and monalisa/* permits everything from one owner. Wildcards may not span the owner/repo boundary in a way that would grant "all of GitHub."

Layering runs outside-in. An enterprise policy sets the ceiling; an organization can be more restrictive but never more permissive; a repository can restrict further still. When a scenario reports "we allowed this action at the repository level but it's still blocked," the answer is essentially always an enterprise or organization policy above it.

Alongside source policy sit two settings that show up constantly. Workflow permissions set the default GITHUB_TOKEN scope for the org or repository — read-only by default in newer configurations — plus a checkbox controlling whether workflows may approve pull requests. And fork pull request policies govern whether workflows run at all on fork PRs, whether they require approval from a maintainer first (the default for first-time contributors), and whether they may access secrets — the enterprise-level counterpart to the pull_request_target danger from 2.1.

⚠️ Exam Trap: Policies restrict uses: resolution, not what a workflow can do generally. An allowlist does not stop a run: step from curl-ing and executing a script — that's what runner hardening, network controls, and code review are for. Answers implying the allowlist alone prevents arbitrary code execution are wrong.

Reflection Question: An organization sets "Allow specified actions" with an allowlist of forty entries and considers itself locked down. Name the execution path that policy doesn't touch, and which control from Phase 6 actually addresses it.

See how it connects
Alvin Varughese
Written byAlvin Varughese
Founder18 professional certifications