Conversation
c850ce7 to
bf49b39
Compare
…bypass # Conflicts: # web_src/js/components/PullRequestMergeForm.vue
|
TBH, the checkbox UI/UX seems strange. Personally I am used to the old UI. I prefer to keep the UI concise, avoid unnecessary interactive components when end user doesn't really need it. That's just my opinion, just FYI. If most people like the new UI, I am neutral |
Or, if the "bypass" decision is not made by a checkbox, but by a secondary "toggle link/button" like "Switch to auto merge / Switch to force merge", maybe the UI would look better. |
|
Thanks @wxiaoguang for the response - i will take a look at it |
|
@wxiaoguang changed it to this: |
|
@silverwind what do you think about the new UI?
|
|
ping @silverwind |
|
Looks ok but I would do something to align the button colors of the merge box with github, they only have two states, uncolored and green. Those red/blue buttons confuse me and their meaning is not really conveyed. Whether the primary action is green or primary (blue) I don't really care but I guess for consistency it should remain blue. |
|
I think we should keep the red color if you are doing something "bad" (bypass merging) |
|
Ok I think diff is as small as it can get without dropping major functionality. |
|
Doing a few more tweaks. |
…the timeline Follow GitHub's merge box more closely: checks are grouped like GitHub with expected checks under pending, opening the merge form hides the other sections, auto merge can be scheduled while conflicted or checking, and work in progress shows a disabled merge button. Use one command line merge recipe for every merge style, since the per-style ones rewrote commits and broke manual merge detection, and show the checkout steps to everyone again. Web merges follow the repository's delete branch setting, and a deleted head branch can be restored from the timeline like on GitHub. Assisted-by: Claude Code:claude-opus-5-5
The action form is the only form in the merge section, and the section only exists in the merge box, so the extra qualifiers were redundant. Assisted-by: Claude Code:claude-opus-5-5
|
I think it's in a good state now, but the changes are quite a lot and more review is definitely needed. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved auto-merge correctness, readiness-state, accessibility, and refresh-lifecycle issues remain.
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
Reworks the pull request merge box, expands auto-merge behavior, and adds auto_merge details to pull request APIs.
Changes:
- Adds grouped checks, refreshed merge UI, merge instructions, and branch restoration.
- Updates auto-merge scheduling, cancellation, and lifecycle handling.
- Adds API schemas, tests, styling, localization, and devtest scenarios.
| File | Change |
|---|---|
web_src/js/features/repo-legacy.ts |
Registers merge UI initializers. |
web_src/js/features/repo-issue.ts |
Prevents duplicate WIP updates. |
web_src/js/features/repo-issue-pull.ts |
Adds merge-box refresh and menus. |
web_src/js/components/PullRequestMergeForm.vue |
Reworks merge controls. |
web_src/css/repo/merge-box.css |
Styles the redesigned merge box. |
web_src/css/repo.css |
Updates status-list styling. |
web_src/css/modules/button.css |
Adds button-group styling. |
web_src/css/index.css |
Imports merge-box styles. |
tests/integration/pull_status_test.go |
Updates merge-status assertions. |
tests/integration/pull_merge_test.go |
Tests merge, restore, and auto-merge behavior. |
tests/integration/actions_approve_test.go |
Updates approval assertions. |
tests/e2e/utils.ts |
Adds branch-protection setup helpers. |
tests/e2e/pull-merge-box.test.ts |
Covers auto-merge and bypass flows. |
templates/swagger/v1-swagger.generated.json |
Updates API schema documentation. |
templates/swagger/v1-openapi3.generated.json |
Updates OpenAPI schema documentation. |
templates/repo/pulls/status_items.tmpl |
Simplifies status rendering. |
templates/repo/issue/view_content/update_branch_by_merge.tmpl |
Adds the update-style menu. |
templates/repo/issue/view_content/pull_merge_status_checks.tmpl |
Renders grouped checks. |
templates/repo/issue/view_content/pull_merge_section.tmpl |
Adds reusable merge sections. |
templates/repo/issue/view_content/pull_merge_instruction.tmpl |
Adds command-line instructions. |
templates/repo/issue/view_content/pull_merge_box.tmpl |
Rebuilds the merge-box layout. |
templates/repo/issue/view_content/comments.tmpl |
Adds restore and auto-merge events. |
templates/repo/issue/view_content.tmpl |
Includes merge instructions. |
templates/devtest/pull-merge-box.tmpl |
Adds merge-box devtest scenarios. |
services/pull/ref.go |
Includes empty pull requests in mergeability. |
services/pull/check.go |
Allows conflicted auto-merge scheduling. |
services/convert/pull.go |
Converts auto-merge API data. |
services/convert/pull_test.go |
Tests auto-merge conversion. |
services/automerge/notify.go |
Handles auto-merge lifecycle notifications. |
services/automerge/automerge.go |
Updates scheduling and cancellation behavior. |
services/automerge/automerge_test.go |
Tests auto-merge lifecycle scenarios. |
services/agit/agit.go |
Reorders pull-request checks. |
routers/web/web.go |
Requires authentication for cancellation. |
routers/web/repo/pull.go |
Updates merge handling and cancellation. |
routers/web/repo/pull_status_checks.go |
Groups and summarizes checks. |
routers/web/repo/pull_status_checks_test.go |
Tests check grouping. |
routers/web/repo/pull_merge_form.go |
Builds merge-form properties. |
routers/web/repo/pull_merge_box.go |
Builds merge-box sections and readiness. |
routers/web/repo/pull_merge_box_devtest.go |
Provides merge-box scenarios. |
routers/web/repo/issue_view.go |
Prepares merge-box state and branch restoration. |
routers/web/devtest/devtest.go |
Registers merge-box devtest data. |
routers/api/v1/repo/pull.go |
Adds auto-merge API behavior. |
options/locale/locale_en-US.json |
Adds merge-box translations. |
modules/structs/pull.go |
Adds the auto-merge API structure. |
models/pull/automerge.go |
Adds bulk scheduled-merge lookup. |
models/issues/comment.go |
Stores auto-merge event metadata. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
@lunny @silverwind did some cleanups - should be fine now |
The mergeability check marks a pull request without a merge base as empty, so treating empty pull requests as mergeable offered merge buttons and auto merge that git then refuses with unrelated histories. Assisted-by: Claude Code:claude-opus-5-5
|
Did another deep review for regressions, only 9d88adf came out of it. |
|
moved to 29.0.0 ( cc @wxiaoguang ) |




Rework the pull request merge box to follow GitHub, fix auto merge edge cases, and add
auto_mergeto the pull request API.PullRequestAPI responses gain a GitHub-compatibleauto_mergeobject./devtest/pull-merge-boxshows every state.