GitLab, GitHub, and Bitbucket statuses: a mini glossary for DevOps
Pending, running, success, failed, skipped, canceled, required checks, and commit status: what CI statuses mean and why a MR/PR can be red in surprising places.
CI status looks simple: green means merge, red means stop. In practice, GitLab, GitHub, and Bitbucket show several kinds of status, and they do not always mean the same thing.
This guide is for engineers who have seen red MRs/PRs but still mix up pipeline status, commit status, check runs, and required checks.
Status tells you what, not why
Pipeline status represents a set of jobs. Commit status is attached to a specific SHA. A GitHub check run may include annotations and a summary. A required check is a branch-protection rule: no passing check, no merge.
Status answers “can we move forward?” You still need the log to understand why it failed.
Common statuses
pending/ queued — the job is waiting for a runner.running— commands are executing.success— the job exited with code 0.failed— the job ended with an error.skipped— the job did not run because of rules/conditions.canceled— the job was canceled manually or by a newer pipeline.manual— the job is waiting for a human.
For newcomers: skipped is not success, and manual does not always block merge.
Why a MR/PR is red while the pipeline is green
Common causes:
- required check expects a different job name;
- the status is attached to an older commit SHA;
- one matrix cell failed;
- an optional job does not fail the pipeline but blocks branch protection;
- an external CI system posts a commit status after the native pipeline.
What to inspect first
- The SHA attached to the status.
- Required check name in branch protection.
- Whether PR/MR pipeline differs from push pipeline.
- Whether skipped/manual jobs are required.
- Whether Jenkins/TeamCity/Bitbucket posted an external status later.
Where Exlogare fits
Status says “broken.” Exlogare adds “why”: it receives the failed-job log and posts RCA in the MR/PR. If you publish statuses back to VCS, see feedback status checks.
Related reading
- GitLab CI:
rules,workflow, and why your job did not start - Monorepo CI: one pipeline, many packages — how to read the log
Checklist
- Check status on the specific SHA.
- Match required check names exactly.
- Do not confuse skipped/manual/success.
- For matrix builds, inspect the specific cell.
- Put RCA next to the red MR/PR status.