Skip to content

[eas-cli] fix interpolated workflow URI validation - #4329

Open
davidmokos wants to merge 1 commit into
mainfrom
agent/eng-26025-uri-interpolation
Open

[eas-cli] fix interpolated workflow URI validation#4329
davidmokos wants to merge 1 commit into
mainfrom
agent/eng-26025-uri-interpolation

Conversation

@davidmokos

@davidmokos davidmokos commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Why

A Slack workflow can read its webhook URL from an environment variable:

webhook_url: ${{ env.SLACK_WEBHOOK_URL }}

EAS CLI checks the workflow before it sends it to Expo's server. At that point, the environment variable has not been replaced with its real value. The local URL checker sees ${{ env.SLACK_WEBHOOK_URL }} instead of a URL and rejects the workflow.

Expo's server already accepts this workflow. The SDK does not validate Slack webhook URLs, so the bug is in EAS CLI's local check.

The EAS Workflows skill once had its own validator with the same problem. expo/skills#149 removed it and changed the skill to use eas workflow:validate. This PR fixes the check in EAS CLI instead of adding the validator back to the skill.

How

When a URI field contains ${{ ... }}, EAS CLI now waits for the workflow to resolve that value at runtime instead of trying to validate the unfinished URL.

Literal values still need to be valid URLs. For example, webhook_url: not a URL still fails validation. Other workflow and metadata checks do not change.

Fixes ENG-26025

Test Plan

  • Added a test for ${{ env.SLACK_WEBHOOK_URL }}.
  • Added a test that confirms an invalid literal URL still fails.
  • Ran the EAS CLI tests and typecheck.
  • Ran the repository lint and formatting checks.
  • Checked the fix against the current production workflow schema.

@linear-code

linear-code Bot commented Sep 2, 2026

Copy link
Copy Markdown

ENG-26025

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Subscribed to pull request

File Patterns Mentions
packages/eas-cli/** @douglowder

Generated by CodeMention

Warning: The preamble and epilogue options in commentConfiguration are deprecated. Use template instead.

@davidmokos davidmokos changed the title [eas-cli] fix interpolated workflow URI validation (ENG-26025) [eas-cli] fix interpolated workflow URI validation Sep 2, 2026
@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.71429% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 65.51%. Comparing base (83fa42c) to head (617bc6f).

Files with missing lines Patch % Lines
...es/eas-cli/src/commandUtils/workflow/validation.ts 85.72% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4329      +/-   ##
==========================================
+ Coverage   65.48%   65.51%   +0.04%     
==========================================
  Files        1060     1060              
  Lines       49302    49305       +3     
  Branches    10437    10438       +1     
==========================================
+ Hits        32282    32299      +17     
+ Misses      16904    16890      -14     
  Partials      116      116              

☔ 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.

@davidmokos davidmokos changed the title [eas-cli] fix interpolated workflow URI validation [eas-cli] fix interpolated workflow URI validation (ENG-26025) Sep 2, 2026
@davidmokos davidmokos changed the title [eas-cli] fix interpolated workflow URI validation (ENG-26025) [eas-cli] fix interpolated workflow URI validation Sep 2, 2026
@davidmokos davidmokos added the no changelog PR that doesn't require a changelog entry label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

⏩ The changelog entry check has been skipped since the "no changelog" label is present.

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

Labels

no changelog PR that doesn't require a changelog entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant