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.
Let the browser edit issue and change details
a4e7a99a9ecf697586abdb884351a722fc25a864 · Keenan Nemetz · 5d ago · parent de84c32b
Let the browser edit issue and change details An issue's title and description could only be corrected with the CLI, and a change request's prose could not be corrected at all after it was opened. Add an edit page for each, offered to the author and to a maintainer. A change edit writes through a new metadata writer so the record is still validated, and neither edit touches the discussion, labels, or review state.
server/web/request_view.go +5
| @@ -125,6 +125,10 @@ type requestSidebarView struct { | |||
| 125 | 125 | Current int | |
| 126 | 126 | CanApprove bool | |
| 127 | 127 | CanClose bool | |
| 128 | // CanEdit is the title and description control. It is the author's or a | ||
| 129 | // maintainer's, the same rule as the writer and the push boundary; unlike the | ||
| 130 | // target it does not depend on the request still being open. | ||
| 131 | CanEdit bool | ||
| 128 | 132 | // CanEditIssues is the add and remove controls. Only an open request may be | |
| 129 | 133 | // relinked, and only by its author or a maintainer, matching `change update`. | |
| 130 | 134 | CanEditIssues bool | |
| @@ -357,6 +361,7 @@ func (w *Web) requestStatus(r *http.Request, m *repo.Meta, req *metadata.Request | |||
| 357 | 361 | Page: w.page(r, ""), Name: m.Name, Request: req, | |
| 358 | 362 | Approvals: approvals, Checks: checks, Required: required, Current: current, | |
| 359 | 363 | CanApprove: approvable, CanClose: canClose, HeadRefNote: headRefNote, | |
| 364 | CanEdit: canClose, | ||
| 360 | 365 | CanEditIssues: req.Open() && canClose, | |
| 361 | 366 | CanRetarget: canRetarget, | |
| 362 | 367 | CanMerge: mergeable, MergePending: mergePending, MergeArmed: mergeArmed, | |