GitHub Foundations #6 Domain 4: Modern Development — Actions, Codespaces, Copilot, and Packages
Domain 4 is the Modern Development area. If repositories and collaboration features are GitHub’s skeleton, this domain asks about the features that extend GitHub into a development platform: Actions for CI/CD, Codespaces as a cloud development environment, the AI coding tool Copilot, and the Packages registry. Rather than going deep into any of them, the exam asks what problem each feature solves and how they differ from one another. The difference between github.dev and Codespaces is a recurring question in particular, so we will pin it down precisely in a table.
GitHub Actions — automation attached to the repository #
GitHub Actions is a workflow feature that runs automatically in response to repository events. Its flagship use is CI/CD (automating tests, builds, and deployments), but it also handles repository chores such as labeling Issues. The exam asks about the terminology and relationships of the building blocks, not the fine points of YAML syntax.
| Term | Meaning |
|---|---|
| Workflow | The whole automated process. One YAML file in .github/workflows/ |
| Event | The trigger that starts a workflow (push, pull_request, schedule, and so on) |
| Job | A unit of execution inside a workflow. Jobs run in parallel by default |
| Step | An individual command or action executed in order inside a job |
| Action | A reusable unit of functionality, pulled from the Marketplace |
| Runner | The machine that actually executes a job |
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm teston is the event, test under jobs is a single job, and each line of steps is a step. uses pulls an action from the Marketplace and run executes a shell command directly. Add the distinction between the two kinds of runners — GitHub-hosted runners (ubuntu-latest and friends) provided by GitHub and self-hosted runners you register yourself — and you have covered most of what this area asks.
GitHub Codespaces — a cloud development environment #
Codespaces spins up a complete development environment in the cloud based on a repository. You can connect straight from VS Code in the browser, or from local VS Code and JetBrains IDEs. Because it is a real virtual machine with a terminal and a runtime, you can run and test code in it.
The environment is declared in the repository’s .devcontainer/devcontainer.json file. Write the image to use, the extensions to install, and the port forwarding as code, and every teammate who opens a Codespace gets the same environment reproduced. The benefit statement the exam expects is that a new teammate’s environment setup shrinks to a few minutes. Since it consumes compute, remember also that even the free plan has a monthly usage allowance and overage is billed.
github.dev — the web editor with no execution #
The thing that must be kept apart from Codespaces is the github.dev web editor. It opens when you press the period (.) key on a repository page or change github.com to github.dev in the URL. You can edit files and commit from a VS Code screen in the browser, but it is an editor-only environment with no compute behind it.
| Aspect | github.dev | Codespaces |
|---|---|---|
| What it is | Browser editor (no compute) | Cloud virtual machine |
| Running code, terminal | Not possible | Possible |
| Debugging, tests | Not possible | Possible |
| Cost | Free | Usage-based (free allowance) |
| How to open | . key or a github.dev URL | Code button → Codespaces tab |
The judgment the exam wants: use github.dev for edits that need no execution, such as fixing a typo, and Codespaces when you need to build and test.
GitHub Copilot — the AI coding tool #
Copilot is an AI coding tool that suggests code inside the editor. Three things matter for the exam.
- How it works — installed as an editor extension, it reads the context of the code you are writing and proposes the next code inline. Copilot Chat, where you ask questions and get code explained conversationally, is part of it.
- Supported environments — VS Code, Visual Studio, the JetBrains family, Neovim, and the github.com web experience.
- Plan split — an individual plan, and business and enterprise plans that add organizational controls (policy management, per-member enablement). That verified students and maintainers of popular open source projects get the individual plan for free has appeared on the exam as well.
GitHub Packages — the package registry next to the code #
Packages is a registry for publishing packages under the same account as the repository. It supports language ecosystems such as npm, RubyGems, Maven, Gradle, and NuGet, along with container images. The container-specific address is the GitHub Container Registry (ghcr.io).
The benefit the exam expects: code and packages are managed in one place, and publishing is automated by reusing the repository’s permission model and Actions workflows. The flagship flow is an Actions workflow building a package and pushing it straight to Packages with the GITHUB_TOKEN.
GitHub Marketplace #
The Marketplace is where you find and distribute actions used in Actions and GitHub Apps installed into repositories. It is where you search when attaching third-party functionality — CI tools, code quality checks, project management integrations — to a repository. Knowing that free and paid listings coexist, and that you can publish your own actions and apps, covers the exam scope.
Wrapping up #
The Domain 4 features complete each other in combination: develop in a uniform environment on Codespaces, write code with Copilot’s suggestions, let Actions run the tests on push, and ship the passing artifact through Packages. The exam asks you to keep each feature’s role straight on top of this bigger picture.
In the next post, “GitHub Foundations #7 Domain 5: Project Management — Projects, Automation, and Insights”, we cover GitHub Projects, which binds Issues and PRs into a planning tool.