Repository: facebook/react
Pull request: Convert deprecated stalebot to github action

## Summary

This repo uses [Stalebot](https://github.com/probot/stale) to manage stale Issues and PRs. Stalebot hasn't been maintained for a couple of years and is officially archived. The number of open Issues and PRs has increased rapidly since early 2022. Some of this looks like issues with Stalebot reliability where labels were not applied or close actions were not taken even when meeting the criteria in the config.

In order to make it easier for maintainers to spend time on current Issues and PRs, let's upgrade to the Github Stale Action. For now this PR applies the same config to the new action but we can iterate on it as needed. The goal is to clean up abandoned and no-longer-relevant submissions, not to close Issues that describe active bugs or feedback.

## How did you test this change?

Added `debug-only: 'true'` to this PR so we can run the action and review the logs before allowing the action to run on schedule. We may see a large amount of label changes and close actions on the first run as the action clears out previously ignored stale submissions.

Changed files:
filename: .github/stale.yml
patch: @@ -1,35 +0,0 @@
-# Configuration for probot-stale - https://github.com/probot/stale
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 90
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 7
-# Issues with these labels will never be considered stale
-exemptLabels:
-  - "Partner"
-  - "React Core Team"
-  - "Resolution: Backlog"
-  - "Type: Bug"
-  - "Type: Discussion"
-  - "Type: Needs Investigation"
-  - "Type: Regression"
-  - "Type: Feature Request"
-# Label to use when marking an issue as stale
-staleLabel: "Resolution: Stale"
-issues:
-  # Comment to post when marking an issue as stale.
-  markComment: >
-    This issue has been automatically marked as stale.
-    **If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open.
-    We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment!
-  # Comment to post when closing a stale issue.
-  closeComment: >
-    Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!
-pulls:
-  # Comment to post when marking a pull request as stale.
-  markComment: >
-    This pull request has been automatically marked as stale.
-    **If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open.
-    We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated.
-  # Comment to post when closing a stale pull request.
-  closeComment: >
-    Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you!

filename: .github/workflows/stale.yml
patch: @@ -0,0 +1,46 @@
+# Configuration for stale action workflow - https://github.com/actions/stale
+name: 'Manage stale issues and PRs'
+on:
+  schedule:
+    # Run daily at 2AM
+    - cron: '0 2 * * *'
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/stale@v9
+        with:
+          # --- Issues & PRs ---
+          # Number of days of inactivity before an issue or PR becomes stale
+          days-before-stale: 90
+          # Number of days of inactivity before a stale issue or PR is closed
+          days-before-close: 7
+          # Tmp dry run setup to test new config
+          debug-only: 'true'
+
+          # --- Issues ---
+          stale-issue-label: "Resolution: Stale"
+          # Comment to post when marking an issue as stale
+          stale-issue-message: >
+            This issue has been automatically marked as stale.
+            **If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open.
+            We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment!
+          # Comment to post when closing a stale issue
+          close-issue-message: >
+            Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!
+          # Issues with these labels will never be considered stale
+          exempt-issue-labels: "Partner,React Core Team,Resolution: Backlog,Type: Bug,Type: Discussion,Type: Needs Investigation,Type: Regression,Type: Feature Request"
+
+          # --- PRs ---
+          stale-pr-label: "Resolution: Stale"
+          # Comment to post when marking a pull request as stale
+          stale-pr-message: >
+            This pull request has been automatically marked as stale.
+            **If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open.
+            We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated.
+          # Comment to post when closing a stale pull request
+          close-pr-message: >
+            Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you!
+          # PRs with these labels will never be considered stale
+          exempt-pr-labels: "Partner,React Core Team,Resolution: Backlog,Type: Bug,Type: Discussion,Type: Needs Investigation,Type: Regression,Type: Feature Request"
\ No newline at end of file