Skip to content

Add PR body validation to analyze-pr workflow#55382

Closed
emily8rown wants to merge 2 commits intofacebook:mainfrom
emily8rown:export-D91158803
Closed

Add PR body validation to analyze-pr workflow#55382
emily8rown wants to merge 2 commits intofacebook:mainfrom
emily8rown:export-D91158803

Conversation

@emily8rown
Copy link
Contributor

Summary:
This adds a validatePRBody.js script that checks pull request descriptions for required sections as part of a new analyze-pr.yml workflow that will replace part of the Danger-pr workflow.

The validation includes:

  • Description length check: Fails if the PR body is missing or less than 50 characters
  • Summary section check: Warns if the PR lacks a "## Summary" section
  • Test plan check: Warns if the PR lacks a "## Test Plan" section
  • Changelog validation: failing if missing or invalid

Key behaviors:

  • Phabricator-sourced PRs (detected via "Differential Revision:" in body) skip summary, test plan, and changelog validation since these are enforced differently
  • Validation messages use GitHub's [!WARNING] and [!CAUTION] callout syntax for clear visual feedback
  • The workflow fails (via core.setFailed) when any required check fails
  • Messages are passed to postPRComment alongside API changes for consolidated PR comments

This aims to mimic relevant parts of dangerfile.js

Reviewed By: huntie

Differential Revision: D91158803

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Feb 2, 2026
@meta-codesync
Copy link

meta-codesync bot commented Feb 2, 2026

@emily8rown has exported this pull request. If you are a Meta employee, you can view the originating Diff in D91158803.

@emily8rown emily8rown force-pushed the export-D91158803 branch 2 times, most recently from 62f3368 to 3be4133 Compare February 3, 2026 14:01
emily8rown added a commit to emily8rown/react-native that referenced this pull request Feb 6, 2026
Summary:

This adds a `validatePRBody.js` script that checks pull request descriptions for required sections as part of a new `analyze-pr.yml` workflow that will replace part of the Danger-pr workflow.

The validation includes:
- **Description length check**: Fails if the PR body is missing or less than 50 characters
- **Summary section check**: Warns if the PR lacks a "## Summary" section
- **Test plan check**: Warns if the PR lacks a "## Test Plan" section
- **Changelog validation**: failing if missing or invalid

Key behaviors:
- Phabricator-sourced PRs (detected via "Differential Revision:" in body) skip summary, test plan, and changelog validation since these are enforced differently
- Validation messages use GitHub's `[!WARNING]` and `[!CAUTION]` callout syntax for clear visual feedback
- The workflow fails (via `core.setFailed`) when any required check fails
- Messages are passed to `postPRComment` alongside API changes for consolidated PR comments

This aims to mimic relevant parts of dangerfile.js

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D91158803
emily8rown added a commit to emily8rown/react-native that referenced this pull request Feb 6, 2026
Summary:

This adds a `validatePRBody.js` script that checks pull request descriptions for required sections as part of a new `analyze-pr.yml` workflow that will replace part of the Danger-pr workflow.

The validation includes:
- **Description length check**: Fails if the PR body is missing or less than 50 characters
- **Summary section check**: Warns if the PR lacks a "## Summary" section
- **Test plan check**: Warns if the PR lacks a "## Test Plan" section
- **Changelog validation**: failing if missing or invalid

Key behaviors:
- Phabricator-sourced PRs (detected via "Differential Revision:" in body) skip summary, test plan, and changelog validation since these are enforced differently
- Validation messages use GitHub's `[!WARNING]` and `[!CAUTION]` callout syntax for clear visual feedback
- The workflow fails (via `core.setFailed`) when any required check fails
- Messages are passed to `postPRComment` alongside API changes for consolidated PR comments

This aims to mimic relevant parts of dangerfile.js

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D91158803
Summary:

Changelog:
[INTERNAL] [CHANGED] - Add api-changes.yml workflow to replace danger-pr for detecting changes in the js api


  The workflow:
  - Triggers on `pull_request_target` for opened, edited, reopened, and synchronize events
  - Checks out the main branch (for security, using trusted code)
  - Runs the `diff-js-api-changes` action to detect API changes
  - Posts a PR comment using the generic `post-pr-comment` action

  The PR comment script creates, updates, or deletes a bot comment based on whether
  there are any sections to report, using a marker to identify existing bot comments.

Reviewed By: huntie

Differential Revision: D90991845
Summary:

This adds a `validatePRBody.js` script that checks pull request descriptions for required sections as part of a new `analyze-pr.yml` workflow that will replace part of the Danger-pr workflow.

The validation includes:
- **Description length check**: Fails if the PR body is missing or less than 50 characters
- **Summary section check**: Warns if the PR lacks a "## Summary" section
- **Test plan check**: Warns if the PR lacks a "## Test Plan" section
- **Changelog validation**: failing if missing or invalid

Key behaviors:
- Phabricator-sourced PRs (detected via "Differential Revision:" in body) skip summary, test plan, and changelog validation since these are enforced differently
- Validation messages use GitHub's `[!WARNING]` and `[!CAUTION]` callout syntax for clear visual feedback
- The workflow fails (via `core.setFailed`) when any required check fails
- Messages are passed to `postPRComment` alongside API changes for consolidated PR comments

This aims to mimic relevant parts of dangerfile.js

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D91158803
emily8rown added a commit to emily8rown/react-native that referenced this pull request Feb 6, 2026
Summary:

This adds a `validatePRBody.js` script that checks pull request descriptions for required sections as part of a new `analyze-pr.yml` workflow that will replace part of the Danger-pr workflow.

The validation includes:
- **Description length check**: Fails if the PR body is missing or less than 50 characters
- **Summary section check**: Warns if the PR lacks a "## Summary" section
- **Test plan check**: Warns if the PR lacks a "## Test Plan" section
- **Changelog validation**: failing if missing or invalid

Key behaviors:
- Phabricator-sourced PRs (detected via "Differential Revision:" in body) skip summary, test plan, and changelog validation since these are enforced differently
- Validation messages use GitHub's `[!WARNING]` and `[!CAUTION]` callout syntax for clear visual feedback
- The workflow fails (via `core.setFailed`) when any required check fails
- Messages are passed to `postPRComment` alongside API changes for consolidated PR comments

This aims to mimic relevant parts of dangerfile.js

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D91158803
@meta-codesync meta-codesync bot closed this in 5e41043 Feb 6, 2026
@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Feb 6, 2026
@meta-codesync
Copy link

meta-codesync bot commented Feb 6, 2026

This pull request has been merged in 5e41043.

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

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants