Skip to content

Conversation

@emily8rown
Copy link
Contributor

Summary:
Now that all Danger.js checks have been migrated to native GitHub Actions in the annotate-pr.yml workflow, this removes the deprecated Danger infrastructure:

  • Deletes .github/workflows/danger-pr.yml workflow
  • Deletes private/react-native-bots/dangerfile.js
  • Removes danger npm dependency from react-native-bots/package.json

The functionality previously provided by Danger.js is now handled by:

  • API diff detection: diff-js-api-changes action
  • PR body validation: validatePRBody.js script (summary, test plan, changelog checks)
  • Branch targeting: checkBranchTarget.js script (validates target branch, adds "Pick Request" label)
  • PR commenting: post-pr-comment action

This simplifies the CI pipeline by removing the third-party Danger dependency and consolidating PR annotation logic into maintainable GitHub Actions workflows.

Differential Revision: D91695886

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

Reviewed By: huntie

Differential Revision: D91158803
Summary:

Adds a branch targeting validation that replaces the equivalent Danger.js check.
  The check validates that PRs target either `main` or a `-stable` branch, and
  automatically adds the "Pick Request" label when targeting stable branches.

  - Created `checkBranchTarget.js` - pure function returning validation message
  - Added check step to `annotate-pr.yml` that calls the JS and adds labels
  - Added `issues: write` permission for label functionality

Differential Revision: D91685081
Summary:
Now that all Danger.js checks have been migrated to native GitHub Actions in the `annotate-pr.yml` workflow, this removes the deprecated Danger infrastructure:

- Deletes `.github/workflows/danger-pr.yml` workflow
- Deletes `private/react-native-bots/dangerfile.js`
- Removes `danger` npm dependency from `react-native-bots/package.json`

The functionality previously provided by Danger.js is now handled by:
- **API diff detection**: `diff-js-api-changes` action
- **PR body validation**: `validatePRBody.js` script (summary, test plan, changelog checks)
- **Branch targeting**: `checkBranchTarget.js` script (validates target branch, adds "Pick Request" label)
- **PR commenting**: `post-pr-comment` action

This simplifies the CI pipeline by removing the third-party Danger dependency and consolidating PR annotation logic into maintainable GitHub Actions workflows.

Differential Revision: D91695886
@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 D91695886.

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 meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants