Skip to content

[eas-cli] Add project:status command - #4006

Draft
jonsamp wants to merge 4 commits into
mainfrom
jon/eng-24460-eas-projectstatus-command
Draft

[eas-cli] Add project:status command#4006
jonsamp wants to merge 4 commits into
mainfrom
jon/eng-24460-eas-projectstatus-command

Conversation

@jonsamp

@jonsamp jonsamp commented Jul 12, 2026

Copy link
Copy Markdown
Member

Why

Resolves ENG-24460.

We want a single command that outputs the same information you'd see on the website's project dashboard (the Overview page) — the latest builds, development builds, workflow runs, submissions, and updates. A big motivating use case is letting agents call one command and get back the current state of a project.

How

Adds eas project:status (aliased as eas status).

  • New command packages/eas-cli/src/commands/project/status.ts (thin: flags, context, dispatch).
  • New module packages/eas-cli/src/project/projectStatus.ts that aggregates all sections in parallel (Promise.all) and renders both human-readable text and a structured JSON snapshot.
  • Sections mirror the website ProjectDashboard query:
    • Production buildsfilter: { developmentClient: false, distribution: STORE }
    • Development buildsfilter: { developmentClient: true }
    • Workflow runsAppQuery.byIdWorkflowRunsFilteredByStatusAsync
    • SubmissionsSubmissionQuery.allForAppAsync
    • UpdatesUpdateQuery.viewUpdateGroupsOnAppAsync
  • Reuses existing typed queries (no GraphQL codegen round-trip).
  • Flags: --json (emits { project, productionBuilds, developmentBuilds, workflowRuns, submissions, updates }, nulls/__typename stripped), --non-interactive (implied by --json), and --limit (default 3, cap 25).

Notes for reviewers

  • "Production builds" matches the website's production card (STORE distribution only), so a project that only does internal-distribution non-dev-client builds would show empty build sections. Faithful to the dashboard — happy to broaden if preferred.
  • The website Overview also has a 6th card (EAS Hosting deployments); the ticket didn't list it, so it's omitted here. Easy to add for full parity.
  • Submissions show status/platform/track but no timestamp, since the shared SubmissionFragment doesn't include createdAt.

Test Plan

  • Added src/commands/project/__tests__/status.test.ts (5 tests, passing): verifies the production/development build filter split, that --limit propagates to every section, JSON snapshot shape, default text rendering, and the empty-project case.
  • yarn fmt:check, yarn lint (0 errors), yarn typecheck (0 errors) all pass.
  • Verified locally: ./bin/run project:status --help and ./bin/run status --help both resolve.
$ eas project:status --help
show a snapshot of the project: recent builds, dev builds, workflow runs, submissions, and updates

USAGE
  $ eas project:status [--limit <value>] [--json] [--non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr. Implies --non-interactive.
  --limit=<value>    The number of items to fetch each query. Defaults to 3 and is capped at 25.
  --non-interactive  Run the command in non-interactive mode.

ALIASES
  $ eas status

@linear-code

linear-code Bot commented Jul 12, 2026

Copy link
Copy Markdown

ENG-24460

@codecov

codecov Bot commented Jul 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.88235% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.57%. Comparing base (e383931) to head (6ae101c).

Files with missing lines Patch % Lines
packages/eas-cli/src/project/projectStatus.ts 79.77% 35 Missing ⚠️
...ges/eas-cli/src/graphql/queries/SubmissionQuery.ts 0.00% 3 Missing ⚠️
packages/eas-cli/src/submit/utils/urls.ts 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4006      +/-   ##
==========================================
+ Coverage   62.47%   62.57%   +0.10%     
==========================================
  Files        1008     1010       +2     
  Lines       45778    45979     +201     
  Branches     9632     9706      +74     
==========================================
+ Hits        28596    28765     +169     
- Misses      15721    15753      +32     
  Partials     1461     1461              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jonsamp
jonsamp force-pushed the jon/eng-24460-eas-projectstatus-command branch 2 times, most recently from d30d6ed to 2442547 Compare August 1, 2026 20:22
@jonsamp
jonsamp force-pushed the jon/eng-24460-eas-projectstatus-command branch from 2442547 to 54f1a06 Compare August 2, 2026 15:39
jonsamp added 4 commits August 6, 2026 09:52
Adds `eas project:status` (alias `eas status`), a snapshot of the project
overview: recent production builds, development builds, workflow runs,
submissions, and updates. Mirrors the website project dashboard and
supports --json and --non-interactive for agent consumption.
@jonsamp
jonsamp force-pushed the jon/eng-24460-eas-projectstatus-command branch from 54f1a06 to 6ae101c Compare August 6, 2026 14:55
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

✅ Thank you for adding the changelog entry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant