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 | ||