Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Merge the landing facts into the Review section

ad4d93489a023ec688702a889c53adf4c990dcfa · Keenan Nemetz · 11d ago · parent 59c0625b

Merge the landing facts into the Review section

The merge check and closes links describe the same base/head target the Review controls do, so they now live under Review instead of a separate What would land heading. Changes moves between Review and Approvals, and HTMX write fragments compute the landing facts so they render the complete sidebar.

server/issues_changes_test.go +2−2

@@ -392,13 +392,13 @@ func TestRequestSidebarAndDiscussionUpdateWithHtmx(t *testing.T) {
392 392 t.Fatalf("approval response is not the expected sidebar (%d):\n%s", resp.StatusCode, body)
393 393 }
394 394
395 // The page's poll replaces the whole aside: the landing block and the
395 // The page's poll replaces the whole aside: the Changes block and the
396 396 // sidebar come back together, without a page shell.
397 397 resp, body = f.htmxGet(t, "/r/"+f.repo+"/requests/"+id+"/aside", writerCookie)
398 398 if resp.StatusCode != http.StatusOK || strings.Contains(body, "<!doctype html>") ||
399 399 !strings.Contains(body, `id="request-aside"`) || !strings.Contains(body, `id="request-sidebar"`) ||
400 400 !strings.Contains(body, `hx-trigger="every 20s`) || !strings.Contains(body, `class="help"`) ||
401 !strings.Contains(body, "What would land") || !strings.Contains(body, "1 of 1 required approval(s).") {
401 !strings.Contains(body, "Merges into main cleanly") || !strings.Contains(body, "1 of 1 required approval(s).") {
402 402 t.Fatalf("aside poll is not the expected fragment (%d):\n%s", resp.StatusCode, body)
403 403 }
404 404