test-infra
test-infra copied to clipboard
PR with "Change requested" leads to Tide repeatedly attempting MERGE
What happened:
For a Github PR that has passed all checks but has the Change requested
state, Tide repeatedly attempts to MERGE but fails (presumably rejected by Github due to the Change requested
state).
What you expected to happen:
I would expect Tide to be aware of the Change requested
state and that it is blocking - and therefore not try to perform MERGE.
How to reproduce it (as minimally and precisely as possible):
- Create a pull request
- Request changes on the PR
- Pass all other checks (e.g. presubmits, lgtm, approve, etc)
- Observe that Tide repeatedly attempts to perform MERGE and fails
Please provide links to example occurrences, if any:
Here is an example PR and tide history:
- https://github.com/GoogleContainerTools/kpt-config-sync/pull/210
- https://oss.gprow.dev/tide-history?repo=GoogleContainerTools%2Fkpt-config-sync&branch=main&pull=210
Anything else we need to know?: N/A
/sig testing
We might add some logic to Tide:
- List reviews for a pull request
- Check the
state
field of each review - Do not try to merge when there is any
CHANGES_REQUESTED
state
We could also thing about handling the "Tide wants to merge but GitHub forbids it" situation in general. "Changes requested" is just one of the branch protection mechanisms that can prevent merging.
We could also thing about handling the "Tide wants to merge but GitHub forbids it" situation in general. "Changes requested" is just one of the branch protection mechanisms that can prevent merging.
We recently encountered a situation where tide
was unable to merge a PR due to the merge method not being allowed on the repo. As far as the user was aware, tide was just stuck. There was a log message like:
Tide needs to be configured to use the 'rebase' merge method for this repo or the repo needs to allow merge commits: Merge commits are not allowed on this repository.
We need to figure out a way to surface stuff like this to users on the 'PR Status' page, if not as a message on the PR itself.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale
- Close this issue with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale
- Close this issue with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale
- Close this issue with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale
- Close this issue with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale