GitLab PM Associate cheat sheet
GitLab PM Associate · Keep the key ideas within reach.
GitLab Platform Fundamentals
GitLab organizes work in a hierarchy: instance > group > subgroup > project; issues, merge requests, epics, and milestones belong to a project or group, and permissions inherit downward.
Five standard roles, lowest to highest: Guest, Planner, Reporter, Developer, Maintainer, Owner. Planner can manage issues and boards; Developer can push code and create merge requests; Maintainer can change project settings; Owner applies to groups only.
Visibility levels are Private, Internal, and Public. Internal makes a project visible to any signed-in user on the instance; Public exposes it to anonymous users.
A project is the unit of repository storage. It holds one repository, its issues, merge requests, CI/CD configuration, container registry, and package registry.
Groups provide shared members, shared epics, group-level milestones and labels, and can contain subgroups nested up to 20 levels deep.
Protected branches restrict push and merge rights by role; protected tags restrict who can create or delete release tags.
The GitLab DevOps lifecycle spans plan, create, verify, package, secure, release, configure, and monitor; each stage maps to specific features such as boards, repositories, CI pipelines, and environments.
Personal access tokens and SSH keys authenticate a user; project and group access tokens authenticate automation scoped to that project or group.
Instance-level administration (Admin Area) is separate from group and project settings; only administrators see instance-wide settings such as user management and instance CI/CD limits.
Planning and Project Management
Issue types: Issue is the default work item; Task and Objective/Key Result exist as work item types on newer versions. Epics exist at group level, not project level.
Labels are flat strings; scoped labels use a double colon (e.g., status::in review) and only one label per scope can be applied at a time, so applying status::done replaces status::in review.
Milestones group issues and merge requests by time; a group milestone is shared across all projects in the group, while a project milestone is local.
Boards are Kanban views driven by labels. A board has lists; each list is defined by a label, and moving a card applies and removes labels accordingly.
Issue weights estimate effort; the sum of weights rolls up to the milestone and epic, and issue health status (on track, needs attention, at risk) is set on epics and issues.
Iterations are time-boxed sprints scoped to a group; they differ from milestones because they are strictly sequential and date-bound.
Quick actions are slash commands typed in a comment or description (e.g., /assign, /label, /milestone, /due, /close) and execute when the note is submitted.
Confidential issues are visible only to project members with Reporter or higher; they are excluded from public search and from non-member views.
Roadmaps visualize epics across quarters along a timeline; dependencies between issues appear as blocking links and surface on the roadmap and issue view.
Source Code and Collaboration Workflows
A merge request merges a source branch into a target branch. Approval rules can require a minimum number of approvals and can be scoped to specific users or groups.
Merge methods: merge commit, semi-linear (fast-forward with a merge commit), and fast-forward. Squash can be enabled to collapse commits into one on merge.
Draft merge requests (title prefixed Draft: or WIP:) cannot be merged; they signal work in progress and are excluded from merge unless marked ready.
Merge trains queue merge requests and merge them sequentially against the updated target branch, preventing semantic conflicts between simultaneously approved MRs.
A fork is a copy of a project under a different namespace; merge requests from a fork to the upstream project are the standard external-contributor flow.
Code owners defined in a CODEOWNERS file can be required as approvers for matching paths; the file can live at the repository root, in docs/, or in .gitlab/.
Push rules at project or group level can reject commits by message regex, block secret files, or require signed commits; they apply before the push completes.
A commit reverts cleanly through the Revert button, which creates a new merge request that reverses the diff rather than rewriting history.
Squashing and rebasing options on the merge request page control whether the source branch is rewritten before merge; rebase rewrites commits, merge does not.
CI/CD and Delivery Visibility
Pipeline configuration lives in .gitlab-ci.yml at the repository root. Keywords include stages, jobs, script, image, rules, needs, artifacts, and cache.
A pipeline contains stages; stages contain jobs. Jobs in the same stage run in parallel; stages run sequentially by default unless needs: creates a directed acyclic graph.
rules: replaces only/except and evaluates top-down; the first matching rule applies. when: never in a matching rule excludes the job.
Predefined variables include CI_COMMIT_BRANCH, CI_COMMIT_SHA, CI_PIPELINE_ID, CI_JOB_TOKEN, CI_PROJECT_PATH, and CI_ENVIRONMENT_NAME; they are available inside job scripts.
Artifacts pass files between stages and are stored after the job; cache speeds up jobs by persisting paths across pipelines but is not guaranteed to exist.
Environments track deployments; a deployment to an environment with a stop action can be rolled back, and protected environments restrict who may deploy.
Manual jobs use when: manual and pause the pipeline until triggered; allow_failure: true on a manual job makes it optional and non-blocking.
Pipeline status values are created, pending, running, passed, failed, canceled, skipped, and manual; downstream pipelines are triggered with trigger: and appear as child pipelines.
Merge request pipelines run against the source branch and are configured with rules referencing CI_PIPELINE_SOURCE == "merge_request_event"; they gate merges via required status checks.
GitLab Platform Fundamentals
GitLab organizes work in a hierarchy: instance > group > subgroup > project; issues, merge requests, epics, and milestones belong to a project or group, and permissions inherit downward.
Five standard roles, lowest to highest: Guest, Planner, Reporter, Developer, Maintainer, Owner. Planner can manage issues and boards; Developer can push code and create merge requests; Maintainer can change project settings; Owner applies to groups only.
Visibility levels are Private, Internal, and Public. Internal makes a project visible to any signed-in user on the instance; Public exposes it to anonymous users.
A project is the unit of repository storage. It holds one repository, its issues, merge requests, CI/CD configuration, container registry, and package registry.
Groups provide shared members, shared epics, group-level milestones and labels, and can contain subgroups nested up to 20 levels deep.
Protected branches restrict push and merge rights by role; protected tags restrict who can create or delete release tags.
The GitLab DevOps lifecycle spans plan, create, verify, package, secure, release, configure, and monitor; each stage maps to specific features such as boards, repositories, CI pipelines, and environments.
Personal access tokens and SSH keys authenticate a user; project and group access tokens authenticate automation scoped to that project or group.
Instance-level administration (Admin Area) is separate from group and project settings; only administrators see instance-wide settings such as user management and instance CI/CD limits.
Planning and Project Management
Issue types: Issue is the default work item; Task and Objective/Key Result exist as work item types on newer versions. Epics exist at group level, not project level.
Labels are flat strings; scoped labels use a double colon (e.g., status::in review) and only one label per scope can be applied at a time, so applying status::done replaces status::in review.
Milestones group issues and merge requests by time; a group milestone is shared across all projects in the group, while a project milestone is local.
Boards are Kanban views driven by labels. A board has lists; each list is defined by a label, and moving a card applies and removes labels accordingly.
Issue weights estimate effort; the sum of weights rolls up to the milestone and epic, and issue health status (on track, needs attention, at risk) is set on epics and issues.
Iterations are time-boxed sprints scoped to a group; they differ from milestones because they are strictly sequential and date-bound.
Quick actions are slash commands typed in a comment or description (e.g., /assign, /label, /milestone, /due, /close) and execute when the note is submitted.
Confidential issues are visible only to project members with Reporter or higher; they are excluded from public search and from non-member views.
Roadmaps visualize epics across quarters along a timeline; dependencies between issues appear as blocking links and surface on the roadmap and issue view.
Source Code and Collaboration Workflows
A merge request merges a source branch into a target branch. Approval rules can require a minimum number of approvals and can be scoped to specific users or groups.
Merge methods: merge commit, semi-linear (fast-forward with a merge commit), and fast-forward. Squash can be enabled to collapse commits into one on merge.
Draft merge requests (title prefixed Draft: or WIP:) cannot be merged; they signal work in progress and are excluded from merge unless marked ready.
Merge trains queue merge requests and merge them sequentially against the updated target branch, preventing semantic conflicts between simultaneously approved MRs.
A fork is a copy of a project under a different namespace; merge requests from a fork to the upstream project are the standard external-contributor flow.
Code owners defined in a CODEOWNERS file can be required as approvers for matching paths; the file can live at the repository root, in docs/, or in .gitlab/.
Push rules at project or group level can reject commits by message regex, block secret files, or require signed commits; they apply before the push completes.
A commit reverts cleanly through the Revert button, which creates a new merge request that reverses the diff rather than rewriting history.
Squashing and rebasing options on the merge request page control whether the source branch is rewritten before merge; rebase rewrites commits, merge does not.
CI/CD and Delivery Visibility
Pipeline configuration lives in .gitlab-ci.yml at the repository root. Keywords include stages, jobs, script, image, rules, needs, artifacts, and cache.
A pipeline contains stages; stages contain jobs. Jobs in the same stage run in parallel; stages run sequentially by default unless needs: creates a directed acyclic graph.
rules: replaces only/except and evaluates top-down; the first matching rule applies. when: never in a matching rule excludes the job.
Predefined variables include CI_COMMIT_BRANCH, CI_COMMIT_SHA, CI_PIPELINE_ID, CI_JOB_TOKEN, CI_PROJECT_PATH, and CI_ENVIRONMENT_NAME; they are available inside job scripts.
Artifacts pass files between stages and are stored after the job; cache speeds up jobs by persisting paths across pipelines but is not guaranteed to exist.
Environments track deployments; a deployment to an environment with a stop action can be rolled back, and protected environments restrict who may deploy.
Manual jobs use when: manual and pause the pipeline until triggered; allow_failure: true on a manual job makes it optional and non-blocking.
Pipeline status values are created, pending, running, passed, failed, canceled, skipped, and manual; downstream pipelines are triggered with trigger: and appear as child pipelines.
Merge request pipelines run against the source branch and are configured with rules referencing CI_PIPELINE_SOURCE == "merge_request_event"; they gate merges via required status checks.