git@cosmocr.at/gitweb.git · summary refs
landing page: link to the source repo and the auth setup docs
commit a207c5803b08d1c2c8cc568feae42028bc310a0a
Patrick Gallagher <rpg137@gmail.com> · 2026-09-20 14:32 -0400
parent 2d414e7b
The front page explained how to publish a repo but not how to reach a
private one, and nothing pointed at gitweb's own source. Adds a "Cloning
and pushing" section linking the README's "Authenticating (clients)"
section for credential-helper setup, and a "Source" section linking the
self-hosted repo and the architecture notes.

Both doc links carry ?render=markdown: blob pages default to the source
view, where the rendered heading anchors do not exist.
web/index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>git.cosmocr.at</title>
<link rel="stylesheet" href="/_assets/style.css">
</head>
<body>
<main class="markdown-body">
<h1>git.cosmocr.at</h1>
<p>Browses git repositories stored in <a href="https://upspin.io">upspin</a>. The
URL path is the upspin path to a bare repository:</p>
<pre><code>https://git.cosmocr.at/&lt;user@domain&gt;/path/to/repo.git/</code></pre>
<h2>Publishing a repository</h2>
<p>Store a bare git repo in upspin (e.g. <code>git init --bare</code> then
<code>git push --all</code> into a copy under your tree) and grant the browser
read access in an upspin <code>Access</code> file in the repo directory:</p>
<pre><code>read,list: git@cosmocr.at
*: you@example.com</code></pre>
<p>Then anyone with the link can browse the repository: summary and README,
branches and tags, commit log and diffs, the file tree, and individual files.</p>
+<h2>Cloning and pushing</h2>
+<p>Browsing and cloning a public repository needs no credentials. Reaching a
+private one, and pushing to any of them, needs a passkey login through the
+<code>git-credential-cosmocr</code> helper. Setting it up is described under
+<a href="/git@cosmocr.at/gitweb.git/blob/main/README.md?render=markdown#authenticating-clients">Authenticating
+(clients)</a>, which also covers the personal access token alternative for CI.</p>
<h2>Demo</h2>
<p>A sample repository lives at
<a href="/git@cosmocr.at/demo.git/">/git@cosmocr.at/demo.git/</a>.</p>
+<h2>Source</h2>
+<p>gitweb serves its own source at
+<a href="/git@cosmocr.at/gitweb.git/">/git@cosmocr.at/gitweb.git/</a>. The
+<a href="/git@cosmocr.at/gitweb.git/blob/main/docs/ARCHITECTURE.md?render=markdown">architecture
+notes</a> describe how browsing, clone, push, and passkey auth fit together.</p>
</main>
</body>
</html>