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

Overwire is not affiliated with, endorsed by, or sponsored by GitHub, Inc., Microsoft Corporation, or Docker, Inc. GitHub and GitHub Actions are trademarks of GitHub, Inc.