Skip to content

pull-requests.yml and statuses.yml

These two files describe platform state that workflows and merge prediction consume: pull requests that “exist” and statuses that “already happened”. JSON Schemas: pull-requests and statuses, also printable offline with overwire schema.

Local pull request scenarios under a single pullRequests: list. Scenarios drive:

  • pull_request event simulation: the payload reflects the scenario PR.
  • Merge prediction against rulesets: review requirements and required checks evaluate against the scenario’s reviews and the statuses below.
  • The desktop app’s pull requests page.
FieldDescription
numberPR number (required).
id, state, title, draft, mergedOptional identity and lifecycle fields; state is open or closed.
actionThe pull_request event action the scenario simulates.
base, headRefs (required). Each carries ref plus optional sha, repository (for forks), lastPusher, and lastPushedAt.
changedFilesFile paths the PR touches; feeds CODEOWNERS and path filters.
reviewsSubmitted reviews (below).
conversationsReview threads: id, resolved, optional outdated, path, line. Feeds required-conversation-resolution rules.
FieldDescription
userReviewer login (required).
stateAPPROVED, CHANGES_REQUESTED, COMMENTED, DISMISSED, or PENDING (lowercase accepted).
codeOwnerMarks the review as satisfying code-owner requirements.
staleMarks the review stale, as a later push would on the platform.
id, body, submittedAt, commitShaOptional metadata.
pullRequests:
- number: 10
title: "feat: add caching layer"
base: { ref: main }
head: { ref: feat/cache, sha: abc1234 }
changedFiles: [src/core/cache.js]
reviews:
- user: lead-dev
state: APPROVED
codeOwner: true

External commit statuses and check runs that exist independently of your local runs, the way a third-party CI or scanner would report them upstream. Two lists: statuses: (classic commit statuses) and checks: (check runs). Every entry targets a commit through at least one of ref, sha, or pr. The desktop app’s Repository → Statuses section edits both lists as tables.

FieldDescription
contextStatus context name (required).
stateerror, failure, pending, or success (required).
description, targetUrl, id, createdAt, updatedAtOptional metadata.
FieldDescription
nameCheck name (required).
statusqueued, in_progress, completed, waiting, requested, or pending. Defaults to completed.
conclusionRequired when completed: success, failure, skipped, neutral, cancelled, timed_out, action_required, stale, error, pending, or startup_failure.
summary, detailsUrl, id, startedAt, completedAtOptional metadata.
statuses:
- pr: 10
context: security/scan
state: success
checks:
- pr: 10
name: license-check
conclusion: success

Seeding a required context here lets merge prediction resolve required checks that your local workflows do not produce themselves. The desktop app edits both files as plain files; nothing is hidden in app state.

overwire.io Privacy Terms

Overwire is not affiliated with, endorsed by, or sponsored by GitHub, Inc. “GitHub” and “GitHub Actions” are trademarks of GitHub, Inc.