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.
Turn the code tab into an editor-style file browser
a464f8927bfb3edcf170694f120dc9b3f68320da · Keenan Nemetz · 15d ago · parent f09ef39e
Turn the code tab into an editor-style file browser - Add a persistent nested file tree with HTMX file and folder swaps, active rows, expanded ancestors, and deep-link support. - Share one page header across every repository tab: title and summary on the left, tab actions grouped on the right. - Make the repository name the first tab and show visibility with a lock or globe icon derived from the ACL. - Open markdown as syntax-highlighted source by default, with an explicit full-width preview toggle. - Point the branch breadcrumb at the Code overview instead of a second root directory listing. - Move contributor-branch CI approval from the code browser to the Runs tab. - Extend UI tests for the file tree, fragments, repo visibility, markdown source/preview, shared headers, and the moved CI control.
server/server.go +1
| @@ -166,6 +166,7 @@ func (s *Server) routes() *http.ServeMux { | |||
| 166 | 166 | mux.HandleFunc("GET /r/{name}", w.Overview) | |
| 167 | 167 | mux.HandleFunc("GET /r/{name}/activity", w.Activity) | |
| 168 | 168 | mux.HandleFunc("GET /r/{name}/code", w.Code) | |
| 169 | mux.HandleFunc("GET /r/{name}/tree/{ref}", w.Tree) | ||
| 169 | 170 | mux.HandleFunc("GET /r/{name}/tree/{ref}/{path...}", w.Tree) | |
| 170 | 171 | mux.HandleFunc("GET /r/{name}/blob/{ref}/{path...}", w.Blob) | |
| 171 | 172 | mux.HandleFunc("GET /r/{name}/raw/{ref}/{path...}", w.Raw) | |