Skip to content

Add a github workflow for reverting PRs.#184593

Merged
auto-submit[bot] merged 3 commits into
flutter:masterfrom
eyebrowsoffire:revert_workflow
Apr 7, 2026
Merged

Add a github workflow for reverting PRs.#184593
auto-submit[bot] merged 3 commits into
flutter:masterfrom
eyebrowsoffire:revert_workflow

Conversation

@eyebrowsoffire

Copy link
Copy Markdown
Contributor

This is a simple github workflow to replace the revert service in cocoon. It is set to use a tag called revert_wf for now, so that it doesn't conflict with the existing service. Once we have tested this workflow and are happy with it, we can turn down the cocoon service and change this workflow to respond to the revert label instead.

This is a simple github workflow to replace the revert service in cocoon.
It is set to use a tag called `revert_wf` for now, so that it doesn't
conflict with the existing service. Once we have tested this workflow and
are happy with it, we can turn down the cocoon service and change this
workflow to respond to the `revert` label instead.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 3, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 3, 2026
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 3, 2026
@eyebrowsoffire eyebrowsoffire requested a review from reidbaker April 6, 2026 17:24
Comment thread .github/workflows/revert.yml Outdated
Comment thread .github/workflows/revert.yml
REASON=$(gh pr view ${{ github.event.pull_request.number }} --json comments \
--jq '.comments[] | .body | select(startswith("Reason for revert:")) | sub("^Reason for revert:\\s*"; "")' | head -n 1)

if [ -z "$REASON" ]; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a code injection vulnerability here if the $REASON from someones pr tries to escape its way out of the shell?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe expanding an environment variable inside double quotes is safe. Contents of the variable are automatically escaped properly. For example, you can't end the quote early, because if the comment contains a quote, bash replaces it with an escaped quote \".

REVIEWER=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews \
--jq '[.[] | select(.state == "APPROVED")] | .[0].user.login')

echo "MERGE_COMMIT=$MERGE_COMMIT" >> $GITHUB_ENV

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add a comment about what these lines of of code doing?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just taking the information we've gathered and attaching it to the github environment so it can be accessed in subsequent steps. This happens all over the place in these workflows (you can see many examples of this in the other steps in this workflow and in the other workflows I linked).


- name: Checkout Fork
if: steps.find-reason.outputs.found == 'true'
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a comment about when this has needs to be updated.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure we have an official process for updating these pinned tags.

if: steps.find-reason.outputs.found == 'true'
working-directory: ./flutter
run: |
git config user.name "flutteractionsbot"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the same way we set author info in other workflow? if so can you add a link as a reply to this comment?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, see the other workflows I linked.

env:
GITHUB_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }}
run: |
git push origin ${{ env.BRANCH_NAME }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the difference between upstream and origin in this workflow?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Origin is flutteractionsbot's fork of the flutter repo. Upstream is flutter/flutter. Branch creation is restricted on flutter/flutter, so the PR branch needs to be created in a separate fork. This is the same pattern used in the other workflows I mentioned.

@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 6, 2026
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 6, 2026
@eyebrowsoffire eyebrowsoffire added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 7, 2026
@auto-submit auto-submit Bot added this pull request to the merge queue Apr 7, 2026
Merged via the queue into flutter:master with commit d5c5d7a Apr 7, 2026
12 of 13 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 7, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Apr 8, 2026
flutter/flutter@a0924c7...05e0ae0

2026-04-08 [email protected] Fix Android engine flags defaulting to true for malformed values (flutter/flutter#184631)
2026-04-08 [email protected] Try one more again (flutter/flutter#184767)
2026-04-08 [email protected] Remove custom `analysis_options.yaml` from `imitation_game_flutter` (flutter/flutter#184717)
2026-04-08 [email protected] Add more error handling to unawaited callsites (flutter/flutter#184526)
2026-04-08 [email protected] Refactor: remove material from absorb_ponter_test, container_test,  lookup_boundary_test, page_view_test, router_test, semantics_clipping_test, semantics_merge_test, shadow_test, text_test (flutter/flutter#183309)
2026-04-08 [email protected] Remove editable_text_utils cross-imports from material and cupertino … (flutter/flutter#184519)
2026-04-08 [email protected] Replace hard coded max path length with system defined one. (flutter/flutter#184697)
2026-04-08 [email protected] [Re-land] Add Support For Built-in Kotlin (flutter/flutter#184745)
2026-04-08 [email protected] Manually stop and continue LLDB breakpoints on Xcode 26.4+ (flutter/flutter#184690)
2026-04-08 [email protected] Code freeze workflow (flutter/flutter#184246)
2026-04-08 [email protected] [Dot shorthands] Migrate examples/api/lib/widgets (flutter/flutter#183965)
2026-04-08 [email protected] [cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor (flutter/flutter#182036)
2026-04-08 [email protected] [Semantics] clarify Android header docs (flutter/flutter#183573)
2026-04-08 [email protected] [ci] mac build_test bringup false (flutter/flutter#184738)
2026-04-08 [email protected] Reland "Apply rect clipping to surface views" (flutter/flutter#184732)
2026-04-08 [email protected] Remove bringup label for resharded Windows tool_integration_tests shards (flutter/flutter#184721)
2026-04-08 [email protected] Tool: Add search and filtering to widget preview scaffold (flutter/flutter#184023)
2026-04-08 [email protected] Update localization from translation console (flutter/flutter#184742)
2026-04-07 [email protected] Revert "Add Support For Built-in Kotlin (#184227)" (flutter/flutter#184739)
2026-04-07 [email protected] Collect HCPP adoption analytics for flutter run/build apk/build appbundle (flutter/flutter#184225)
2026-04-07 [email protected] Add a github workflow for reverting PRs. (flutter/flutter#184593)
2026-04-07 [email protected] Add Support For Built-in Kotlin (flutter/flutter#184227)
2026-04-07 [email protected] Revert "Apply rect clipping to surface views (#184471)" (flutter/flutter#184728)
2026-04-07 [email protected] [Fix-forward] Added Compose plugin to Add-to-app Integration Test (flutter/flutter#184681)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mbcorona pushed a commit to mbcorona/flutter that referenced this pull request Apr 15, 2026
This is a simple github workflow to replace the revert service in
cocoon. It is set to use a tag called `revert_wf` for now, so that it
doesn't conflict with the existing service. Once we have tested this
workflow and are happy with it, we can turn down the cocoon service and
change this workflow to respond to the `revert` label instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants