Commit Diff


commit - 1e23e5fea0a2e03b1461fa0733401b1a7314eb85
commit + 7196cfe5eb781e511f09e0c51d40405642cbdc93
blob - 67184c461579ade5363aa4f17fac8478553935c3
blob + ce521293df622d4582bafca29f0bb23972e7092a
--- git-repository.5.html
+++ git-repository.5.html
@@ -215,7 +215,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - df887d569f16159279ffa36be4e83690a1c2fdb5
blob + ae92734f6791758902da2c8f0a925a766cd0eb6b
--- gitwrapper.1.html
+++ gitwrapper.1.html
@@ -142,7 +142,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - ab3930be32d497ecbca8bb88d8cf9e3a7677680a
blob + f09a60b50a3f0d0bb0d338717fe5dfbc4a21b573
--- got-worktree.5.html
+++ got-worktree.5.html
@@ -187,7 +187,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 0a79cf06575e50a73dae80b876db41afaa617642
blob + b8086c3303d7eff33add62ef51daa8fa12957d73
--- got.1.html
+++ got.1.html
@@ -3612,7 +3612,7 @@ remote &quot;origin&quot; {
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 0fa58670e2aaa224bc744d20d54afe8622b3cea7
blob + a581c147fc0b99a9f4dee3d2c6f6ccd00d0ea1c3
--- got.conf.5.html
+++ got.conf.5.html
@@ -325,7 +325,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - d19b0b1fa9363a73ca04e1f89daac9ee6183589b
blob + 9b61a16ff3a2476eb47561046855d009629d6522
--- gotadmin.1.html
+++ gotadmin.1.html
@@ -443,7 +443,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 299cb470f66fcfa85ab79428dfded30a51e23b32
blob + cc0b1d4974ae9d6b54b7e238b9c36b7c1e08a472
--- gotctl.8.html
+++ gotctl.8.html
@@ -86,7 +86,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 00ac07931cfd6e6f0ac567d23b85704c67564316
blob + e85f4582fefb36ac04b29079b9cbd491dcf9dea5
--- gotd.8.html
+++ gotd.8.html
@@ -37,7 +37,8 @@
   <tr>
     <td><code class="Nm">gotd</code></td>
     <td>[<code class="Fl">-dnv</code>] [<code class="Fl">-f</code>
-      <var class="Ar">config-file</var>]</td>
+      <var class="Ar">config-file</var>] [<code class="Fl">-s</code>
+      <var class="Ar">secrets</var>]</td>
   </tr>
 </table>
 </section>
@@ -68,6 +69,11 @@
       <span class="Pa">/etc/gotd.conf</span> will be used.</dd>
   <dt id="n"><a class="permalink" href="#n"><code class="Fl">-n</code></a></dt>
   <dd>Configtest mode. Only check the configuration file for validity.</dd>
+  <dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
+    <var class="Ar">secrets</var></dt>
+  <dd>Set the path to the secrets file. If not specified, the file
+      <span class="Pa">/etc/gotd-secrets.conf</span> will be used if it
+    exists.</dd>
   <dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
   <dd>Verbose mode. Verbosity increases if this option is used multiple
     times.</dd>
@@ -119,7 +125,9 @@
 <p class="Pp"><a class="Xr" aria-label="got, section 1">got(1)</a>,
     <a class="Xr" aria-label="gotsh, section 1">gotsh(1)</a>,
     <a class="Xr" aria-label="git-repository, section 5">git-repository(5)</a>,
-    <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a></p>
+    <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>
+    <a class="Xr" aria-label="gotd-secrets.conf, section
+    5">gotd-secrets.conf(5)</a></p>
 </section>
 <section class="Sh">
 <h2 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h2>
@@ -135,7 +143,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - /dev/null
blob + 0f965be93b65e42deb38741a2afdf867341c3582 (mode 644)
--- /dev/null
+++ gotd-secrets.conf.5.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8"/>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
+  <title>GOTD-SECRETS.CONF(5)</title>
+</head>
+<!-- This is an automatically generated file.  Do not edit.
+   Copyright (c) 2024 Omar Polo <op@openbsd.org>
+  
+   Permission to use, copy, modify, and distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
+  
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   -->
+<body>
+<div class="head" role="doc-pageheader" aria-label="Manual header
+  line"><span class="head-ltitle">GOTD-SECRETS.CONF(5)</span>
+  <span class="head-vol">File Formats Manual</span>
+  <span class="head-rtitle">GOTD-SECRETS.CONF(5)</span></div>
+<main class="manual-text">
+<section class="Sh">
+<h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
+<p class="Pp"><code class="Nm">gotd-secrets.conf</code> &#x2014;
+    <span class="Nd" role="doc-subtitle">gotd secrets file</span></p>
+</section>
+<section class="Sh">
+<h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
+<p class="Pp"><code class="Nm">gotd-secrets.conf</code> contains authentication
+    credentials for use with <a class="Xr" aria-label="gotd, section
+    8">gotd(8)</a> notifications. This file must be owned by the root user and
+    must not be readable by any other users.</p>
+<p class="Pp">The file format is line-based, with one entry per line. Comments
+    can appear at the start of a line using a hash mark (&#x2018;#&#x2019;), and
+    extend to the end of the line. Empty lines are ignored.</p>
+<p class="Pp">Each entry consists of whitespace-separated tokens and defines a
+    set of credentials. Any credential parameters containing whitespace should
+    be surrounded by single or double quotes.</p>
+<p class="Pp">Each set of credentials must be given a
+    <var class="Ar">label</var> which can be used to refer to credentials in
+    <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>. This
+    <var class="Ar">label</var> must be unique among all credentials of the same
+    type.</p>
+<p class="Pp">The supported credential types and their parameters are:</p>
+<dl class="Bl-tag">
+  <dt id="auth"><a class="permalink" href="#auth"><code class="Ic">auth</code></a>
+    <var class="Ar">label</var> <code class="Ic">user</code>
+    <var class="Ar">user</var> <code class="Ic">password</code>
+    <var class="Ar">password</var></dt>
+  <dd>The <code class="Ic">auth</code> type represents HTTP Basic Authentication
+      credentials consisting of a <var class="Ar">user</var> and a
+      <var class="Ar">password</var>.</dd>
+  <dt id="hmac"><a class="permalink" href="#hmac"><code class="Ic">hmac</code></a>
+    <var class="Ar">label</var> <var class="Ar">secret</var></dt>
+  <dd>The <code class="Ic">hmac</code> type represents shared secrets for use
+      with HMAC signatures of HTTP request bodies. A suitable
+      <var class="Ar">secret</var> can be generated with
+      <a class="Xr" aria-label="openssl, section 1">openssl(1)</a> as follows:
+    <p class="Pp"></p>
+    <div class="Bd Bd-indent"><code class="Li">$ openssl rand -base64
+      32</code></div>
+  </dd>
+</dl>
+</section>
+<section class="Sh">
+<h2 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h2>
+<dl class="Bl-tag Bl-compact">
+  <dt><span class="Pa">/etc/gotd-secrets.conf</span></dt>
+  <dd>Location of the <code class="Nm">gotd-secrets.conf</code> configuration
+      file.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h2 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h2>
+<p class="Pp">Define credentials for HTTP basic authentication and HMAC
+    signatures:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre># /etc/gotd-secrets.conf
+auth mochi user &quot;flan&quot; password &quot;super-strong-password!&quot;
+hmac hacker q0tcl8QhjYs7U75MW/2rwB30CpdbAhONkfLGxFHm/+8=</pre>
+</div>
+<p class="Pp">These credentials can be referenced in
+    <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a> as
+  follows:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre># /etc/gotd.conf
+repository &quot;openbsd/src&quot; {
+	path &quot;/var/git/src.git&quot;
+	permit rw :hackers
+
+	notify {
+		url https://example.com/ci/ auth mochi hmac hacker
+	}
+}</pre>
+</div>
+</section>
+<section class="Sh">
+<h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+  ALSO</a></h2>
+<p class="Pp"><a class="Xr" aria-label="got, section 1">got(1)</a>,
+    <a class="Xr" aria-label="gotsh, section 1">gotsh(1)</a>,
+    <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>,
+    <a class="Xr" aria-label="gotd, section 8">gotd(8)</a></p>
+</section>
+</main>
+<div class="foot" role="doc-pagefooter" aria-label="Manual footer
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
+</body>
+</html>
blob - 54a84d085d90ab56faf623ce1243c92c888ef5c2
blob + 349270870029ca349527ccbf2e2ea708fa4df411
--- gotd.conf.5.html
+++ gotd.conf.5.html
@@ -275,9 +275,9 @@
             and port.</p>
       </dd>
       <dt id="url"><a class="permalink" href="#url"><code class="Ic">url</code></a>
-        <var class="Ar">URL</var> [<code class="Ic">user</code>
-        <var class="Ar">user</var> <code class="Ic">password</code>
-        <var class="Ar">password</var> [<code class="Ic">insecure</code>]]</dt>
+        <var class="Ar">URL</var> [<code class="Ic">auth</code>
+        <var class="Ar">label</var> [<code class="Ic">insecure</code>]]
+        [<code class="Ic">hmac</code> <var class="Ar">label</var>]</dt>
       <dd>Send notifications via HTTP. This directive may be specified multiple
           times to build a list of HTTP servers to send notifications to.
         <p class="Pp">The notification will be sent as a POST request to the
@@ -285,15 +285,25 @@
             begin with either &#x201C;http://&#x201D; or
             &#x201C;https://&#x201D;. If HTTPS is used, sending of notifications
             will only succeed if no TLS errors occur.</p>
-        <p class="Pp">The optional <code class="Ic">user</code> and
-            <code class="Ic">password</code> directives enable HTTP Basic
-            authentication. If used, both a <var class="Ar">user</var> and a
-            <var class="Ar">password</var> must be specified. The
-            <var class="Ar">password</var> must not be an empty string. Unless
-            the <code class="Ic">insecure</code> option is specified the
+        <p class="Pp">The optional <code class="Ic">auth</code> directive
+            enables HTTP Basic authentication. Authentication credentials must
+            be specified in the separate
+            <a class="Xr" aria-label="gotd-secrets.conf, section
+            5">gotd-secrets.conf(5)</a> file, using the
+            <var class="Ar">label</var> as identifier. Unless the
+            <code class="Ic">insecure</code> option is specified the
             notification target <var class="Ar">URL</var> must be a
             &#x201C;https://&#x201D; URL to avoid leaking of authentication
             credentials.</p>
+        <p class="Pp">If a <code class="Ic">hmac</code> secret is provided, the
+            request body will be signed using HMAC, allowing the receiver to
+            verify the notification message's authenticity and integrity. The
+            HMAC secret to use must be specified in the separate
+            <a class="Xr" aria-label="gotd-secrets.conf, section
+            5">gotd-secrets.conf(5)</a> file, using the
+            <var class="Ar">label</var> as identifier. The signature uses
+            HMAC-SHA256 and will be sent in the HTTP header
+            &#x201C;X-Gotd-Signature&#x201D;.</p>
         <p class="Pp">The request body contains a JSON object with a
             &#x201C;notifications&#x201D; property containing an array of
             notification objects. The following notification object properties
@@ -475,11 +485,13 @@ connection {
   ALSO</a></h2>
 <p class="Pp"><a class="Xr" aria-label="got, section 1">got(1)</a>,
     <a class="Xr" aria-label="gotsh, section 1">gotsh(1)</a>,
-    <a class="Xr" aria-label="gotd, section 8">gotd(8)</a></p>
+    <a class="Xr" aria-label="gotd-secrets.conf, section
+    5">gotd-secrets.conf(5)</a>, <a class="Xr" aria-label="gotd, section
+    8">gotd(8)</a></p>
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - d8be79134153495c16b4f68121a60f4a9a8c60fa
blob + 456ac6912b392fc857dd53f02921289da6670a4c
--- gotsh.1.html
+++ gotsh.1.html
@@ -157,7 +157,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - ce821ea610009f53d0563fada6bc0547abefe814
blob + e77673c6ee389a819f7311a93d6f0a67dbc3db9a
--- gotwebd.8.html
+++ gotwebd.8.html
@@ -191,7 +191,7 @@ server &quot;example.com&quot; {
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 632578648df57a231351bf6f968d1d59055d1069
blob + b9d8027a441f5b208b163c1c7064115bec754cc9
--- gotwebd.conf.5.html
+++ gotwebd.conf.5.html
@@ -242,7 +242,7 @@ server &quot;localhost&quot; {
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>
blob - 90565568006df54fe0d0ae49965a26963dd25314
blob + 00a4a0957eadf47f6a8a7abe9c37189abb8aa0bd
--- manual.html
+++ manual.html
@@ -31,6 +31,7 @@ Manual pages installed by the <code>gotwebd</code> pac
 Manual pages installed by the <code>gotd</code> package:
 <ul>
 <li><a href="gotd.conf.5.html">gotd.conf</a> &mdash; gotd configuration file
+<li><a href="gotd-secrets.conf.5.html">gotd-secrets.conf</a> &mdash; gotd secrets file
 <li><a href="gotd.8.html">gotd</a> &mdash; Game of Trees Daemon
 <li><a href="gotctl.8.html">gotctl</a> &mdash; control the Game of Trees Daemon
 <li><a href="gotsh.1.html">gotsh</a> &mdash; Game of Trees Shell
blob - 7010ccaf5ad2d45ea6f8ef025cb119d4b1dac1fb
blob + ced357b461836747a86cfe0cdc10369f11496efd
--- sync-man.sh
+++ sync-man.sh
@@ -14,7 +14,7 @@ for f in \
     gotadmin/gotadmin.1 \
     tog/tog.1 \
     gotwebd/gotwebd.8 gotwebd/gotwebd.conf.5 \
-    gotd/gotd.8 gotd/gotd.conf.5 \
+    gotd/gotd.8 gotd/gotd.conf.5 gotd/gotd-secrets.conf.5 \
     gotsh/gotsh.1 \
     gotctl/gotctl.8 \
     gitwrapper/gitwrapper.1 \
blob - fd6a14dfc48b642b524a64a19c5546ef6667ea62
blob + 874fda360c18b352ac1fb8d0405bceaa124dc5e3
--- tog.1.html
+++ tog.1.html
@@ -393,6 +393,10 @@
           If the diff was opened via the <code class="Cm">blame</code> view,
           move to the Nth next line and load the corresponding commit (default:
           1).</dd>
+      <dt id="p"><a class="permalink" href="#p"><code class="Cm">p</code></a></dt>
+      <dd>Write the currently viewed diff to a patch file in
+          <span class="Pa">/tmp</span>. The patch pathname is drawn to the
+          status line.</dd>
       <dt id="/~2"><a class="permalink" href="#/~2"><code class="Cm">/</code></a></dt>
       <dd>Prompt for a search pattern and start searching for matching lines.
           The search pattern is an extended regular expression. Regular
@@ -473,7 +477,7 @@
       <dt id="c~2"><a class="permalink" href="#c~2"><code class="Cm">c</code></a></dt>
       <dd>Reload the <code class="Cm">blame</code> view with the version of the
           file as found in the currently selected line's commit.</dd>
-      <dt id="p"><a class="permalink" href="#p"><code class="Cm">p</code></a></dt>
+      <dt id="p~2"><a class="permalink" href="#p~2"><code class="Cm">p</code></a></dt>
       <dd>Reload the <code class="Cm">blame</code> view with the version of the
           file as found in the parent commit of the currently selected line's
           commit.</dd>
@@ -855,7 +859,7 @@
 </section>
 </main>
 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
-  line"><span class="foot-left"></span><span class="foot-date">August 14,
-  2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
+  line"><span class="foot-left"></span><span class="foot-date">September 9,
+  2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
 </body>
 </html>