runbot/runbot_merge/data/runbot_merge.pull_requests.feedback.template.csv
Xavier Morel 62fbda52a8 [IMP] runbot_merge: a PR can't be reopened if its batch is merged
In that case, ignore the reopen, close the PR, and tell the idiot to
fuck off.

Also the case where a PR is reopened while its batch is staged was
already handled, but probably not tested: it was implicit in
forcefully updating the HEAD of the PR, which triggers an unstage
since c8a06601a7.

Now that scenario is tested, which should lower the odds of breaking
it in the future.

Fixes #965
2024-12-09 16:02:28 +01:00

10 KiB

1idtemplatehelp
2runbot_merge.handle.branch.unmanagedThis PR targets the un-managed branch {repository}:{branch}, it needs to be retargeted before it can be merged.Notifies of event on PR whose branch is not managed by the mergebot. repository: repository name branch: branch (ref) name event: complete pr event
3runbot_merge.handle.branch.inactiveThis PR targets the disabled branch {repository}:{branch}, it needs to be retargeted before it can be merged.Notifies of event on PR whose branch is deactivated. repository: repository name branch: branch (ref) name event: complete pr event
4runbot_merge.handle.pr.merged@{event[sender][login]} ya silly goose you can't reopen a merged PR.Notifies that a user tried to reopen a merged PR. event: complete PR event
5runbot_merge.handle.pr.mergedbatchReopening a PR in a merged batch is not allowed, create a new PR.Notifies that a user tried to reopen a closed PR whose batch is merged. event: complete PR event
6runbot_merge.pr.load.unmanagedBranch `{pr[base][ref]}` is not within my remit, imma just ignore it.Notifies that a user tried to load a PR targeting a non-handled branch. pr: pull request (github object) Repository: repository object (???)
7runbot_merge.pr.load.fetched{ping}I didn't know about this PR and had to retrieve its information, you may have to re-approve it as I didn't see previous commands.Notifies that we did retrieve an unknown PR (either by request or as side effect of an interaction). pr: pr object we just created
8runbot_merge.pr.branch.disabled{pr.ping}the target branch {pr.target.name!r} has been disabled, you may want to close this PR.Notifies that the target branch for this PR was deactivated. pr: pull request in question
9runbot_merge.pr.merge.failed{pr.ping}unable to stage: {reason}Notifies that the PR could not be merged into the staging branch. pr: pr object we tried to merge reason: error message exc: exception object
10runbot_merge.pr.fetch.unmanagedI'm sorry. Branch `{branch}` is not within my remit.Responds to a request to fetch a PR to an unmanaged branch. repository: pr repository branch: target branch number: pr number
11runbot_merge.command.access.noI'm sorry, @{user}. I'm afraid I can't do that.Responds to command by a user who has no rights at all. user: github login of comment sender pr: pr object to which the command was sent
12runbot_merge.command.approve.failure@{user} you may want to rebuild or fix this PR as it has failed CI.Responds to r+ of PR with failed CI. user: github login of comment sender pr: pr object to which the command was sent
13runbot_merge.command.unapprove.p0Skipchecks removed due to r-.Responds to r- of pr in skipchecks. user: github login of comment sender pr: pr object to which the command was sent
14runbot_merge.command.methodMerge method set to {new_method}.Responds to the setting of the merge method. new_method: ... pr: pr object to which the command was sent user: github login of the comment sender
15runbot_merge.failure.approved{pr.ping}{status!r} failed on this reviewed PR.Notification of failed status on a reviewed PR. pr: pull request in question status: failed status
16runbot_merge.pr.created[![Pull request status dashboard]({pr.url}.png)]({pr.url})Initial comment on PR creation. pr: created pr
17runbot_merge.pr.linked.not_ready{pr.ping}linked pull request(s) {siblings} not ready. Linked PRs are not staged until all of them are ready.Comment when a PR is ready (approved & validated) but it is linked to other PRs which are not. pr: pr we're looking at siblings: its siblings, as a single comma-separated list of PR links
18runbot_merge.pr.merge_method{pr.ping}because this PR has multiple commits, I need to know how to merge it: {methods}Comment when a PR is ready but doesn't have a merge method set pr: the pr we can't stage methods: a markdown-formatted list of valid merge methods
19runbot_merge.pr.staging.mismatch{pr.ping}we apparently missed updates to this PR and tried to stage it in a state which might not have been approved. The properties {mismatch} were not correctly synchronized and have been updated. <details><summary>differences</summary> ```diff {diff}``` </details> Note that we are unable to check the properties {unchecked}. Please check and re-approve. Comment when staging was attempted but a sanity check revealed the github state and the mergebot state differ. pr: the pr we tried to stage mismatch: comma separated list of mismatched property names diff: patch-style view of the differing properties unchecked: comma-separated list of properties which can't be checked
20runbot_merge.pr.staging.fail{pr.ping}staging failed: {message}Comment when a PR caused a staging to fail (normally only sent if the staging has a single batch, may be sent on multiple PRs depending whether the heuristic to guess the problematic PR of a batch succeeded) pr: the pr message: staging failure information (error message, build link, etc...)
21runbot_merge.forwardport.updates.closed{pr.ping}ancestor PR {parent.display_name} has been updated but this PR is {pr.state} and can't be updated to match. You may want or need to manually update any followup PR.Comment when a PR is updated and on of its followups is already merged or closed. Sent to the followup. pr: the closed or merged PR parent: the modified ancestor PR
22runbot_merge.forwardport.updates.conflict.parent{pr.ping}WARNING: the latest change ({pr.head}) triggered a conflict when updating the next forward-port ({next.display_name}), and has been ignored. You will need to update this pull request differently, or fix the issue by hand on {next.display_name}.Comment when a PR update triggers a conflict in a child. pr: updated parent PR next: child PR in conflict
23runbot_merge.forwardport.updates.conflict.child{pr.ping}WARNING: the update of {previous.display_name} to {previous.head} has caused a conflict in this pull request, data may have been lost.{stdout}{stderr}Comment when a PR update followup is in conflict. pr: PR where update followup conflict happened previous: parent PR which triggered the followup stdout: markdown-formatted stdout of git, if any stderr: markdown-formatted stderr of git, if any
24runbot_merge.forwardport.update.detached{pr.ping}this PR was modified / updated and has become a normal PR. It must be merged directly.Comment when a forwardport PR gets updated, documents that the PR now needs to be merged the “normal” way. pr: the pr in question
25runbot_merge.forwardport.update.parent{pr.ping}child PR {child.display_name} was modified / updated and has become a normal PR. This PR (and any of its parents) will need to be merged independently as approvals won't cross.Sent to an open PR when its direct child has been detached. pr: the pr child: its detached child
26runbot_merge.forwardport.ci.failed{pr.ping}{ci} failed on this forward-port PRComment when CI fails on a forward-port PR (which thus won't port any further, for now). pr: the pr in question ci: the failed status
27runbot_merge.forwardport.failure.discrepancy{pr.ping}this pull request can not be forward-ported: next branch is {next!r} but linked pull request {linked.display_name} has a next branch {other!r}.Comment when we tried to forward port a PR batch, but the PRs have different next targets (unlikely to happen really). pr: the pr we tried to forward port linked: the linked PR with a different next target next: next target for the current pr other: next target for the other pr
28runbot_merge.forwardport.failure.conflict{pr.ping}the next pull request ({new.display_name}) is in conflict. You can merge the chain up to here by saying > @{pr.repository.project_id.github_prefix} r+ {footer}Comment when a forward port was created but is in conflict, warns of that & gives instructions for current PR. pr: the pr which was just forward ported new: the new forward-port footer: some footer text
29runbot_merge.forwardport.reminder{pr.ping}this forward port of {source.display_name} is awaiting action (not merged or closed).Comment when a forward port has outstanding (not merged or closed) descendants pr: the forward-port source: the source PR
30runbot_merge.forwardport.failure{pr.ping}cherrypicking of pull request {pr.source_id.display_name} failed. {commits}{stdout}{stderr} Either perform the forward-port manually (and push to this branch, proceeding as usual) or close this PR (maybe?). In the former case, you may want to edit this PR message as well. :warning: after resolving this conflict, you will need to merge it via @{pr.repository.project_id.github_prefix}. {footer}Comment when a forward-port failed. pr: the new pr (in failure) commits: markdown-formatted list of source commits, indicating which failed stdout: git's stdout stderr: git's stderr footer: some footer text
31runbot_merge.forwardport.linked{pr.ping}while this was properly forward-ported, at least one co-dependent PR ({siblings}) did not succeed. You will need to fix it before this can be merged. Both this PR and the others will need to be approved via `@{pr.repository.project_id.github_prefix} r+` as they are all considered “in conflict”. {footer} Comment when a forward port succeeded but at least one sibling failed. pr: the current pr (new) siblings: comma-separated list of sibling links footer: some footer text
32runbot_merge.forwardport.final{pr.ping}this PR targets {pr.target.name} and is the last of the forward-port chain{containing} {ancestors} To merge the full chain, use > @{pr.repository.project_id.github_prefix} r+ {footer}Comment when a forward port was created and is the last of a sequence (target the limit branch). pr: the new forward port containing: label changing depending whether there are ancestors to merge ancestors: markdown formatted list of parent PRs which can be approved as part of the chain footer: a footer
33runbot_merge.forwardport.intermediateThis PR targets {pr.target.name} and is part of the forward-port chain. Further PRs will be created up to {pr.limit_pretty}. {footer}Comment when a forward port was succcessfully created but is not the last of the line. pr: the new forward port footer: a footer