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/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

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

Move Clone and Site into the repository header

816cc543d34ab52df01c62cfd8878ae70327a21f · Keenan Nemetz · 11d ago · parent a196e404

Move Clone and Site into the repository header

The repository header now carries the controls that act on the repository as a whole. Clone appears once beside the name on every tab, with a copy button for the HTTPS URL and one for the SSH command. Site joins it only when a site would answer: pages are enabled, the repository is public, and its pages branch exists.

The per-tab Clone popovers and the Overview/Code Site buttons are gone, so a tab's page header holds only that tab's own actions. Copy feedback now restores innerHTML, keeping the icon on an icon-only button and surviving a repeated click.

server/web/templates/chrome.html +21−1

@@ -69,7 +69,27 @@
69 69 {{define "repohead"}}
70 70 <div class="repohead">
71 71 <div class="repo-title">
72 <div class="repo-name"><span class="repo-vis" title="{{if .Private}}Private repository{{else}}Public repository{{end}}">{{if .Private}}{{icon "lock"}}{{else}}{{icon "globe"}}{{end}}</span>{{.Name}}</div>
72 <div class="repo-title-row">
73 <div class="repo-name"><span class="repo-vis" title="{{if .Private}}Private repository{{else}}Public repository{{end}}">{{if .Private}}{{icon "lock"}}{{else}}{{icon "globe"}}{{end}}</span>{{.Name}}</div>
74 <div class="repo-title-actions">
75 {{if .Site}}<a class="button secondary" href="{{.Site}}">{{icon "external-link"}}Site</a>{{end}}
76 <details class="clone">
77 <summary>{{icon "copy"}}Clone</summary>
78 <div class="clone-pop">
79 <p class="muted">Read only, no credentials:</p>
80 <div class="clone-field">
81 <code>{{.CloneURL}}</code>
82 <button class="secondary" type="button" data-copy="{{.CloneURL}}" title="Copy HTTPS URL" aria-label="Copy HTTPS URL">{{icon "copy"}}</button>
83 </div>
84 <p class="muted">Write over SSH with a registered key:</p>
85 <div class="clone-field">
86 <code>git clone {{.SSHURL}}</code>
87 <button class="secondary" type="button" data-copy="git clone {{.SSHURL}}" title="Copy SSH command" aria-label="Copy SSH command">{{icon "copy"}}</button>
88 </div>
89 </div>
90 </details>
91 </div>
92 </div>
73 93 {{if .Description}}<p class="repo-desc">{{.Description}}</p>{{end}}
74 94 </div>
75 95 <nav class="tabs" aria-label="Repository">