Bind quire dispatch hook to post-receive event
`hook.<label>.command` alone is inert; git also needs `event` to fire
the command on a hook. Without it, mirror pushes silently never ran.

Assisted-by: Claude Opus 4.7 (1M context) via Claude Code
change tzkvzskzrplwuyozqrzyqwrmoxztmwvm
commit f46397d15447621f437dbe4b25743c98ae69f45a
author Alpha Chen <alpha@kejadlen.dev>
date
parent qslstnxm
diff --git a/Dockerfile b/Dockerfile
index 8b55515..7b71f15 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -71,7 +71,10 @@ COPY --from=git-builder /usr/local/libexec/git-core/ /usr/local/libexec/git-core
 COPY --from=builder /build/quire /usr/local/bin/quire
 
 # Configure git hooks globally so all repos inherit the post-receive dispatch.
-RUN git config --system hook.postReceive.command "quire hook post-receive"
+# `hook.<label>` is an arbitrary identifier; the hook is bound to an event
+# via `event` and run via `command`.
+RUN git config --system hook.quire.event "post-receive" \
+ && git config --system hook.quire.command "quire hook post-receive"
 
 # Volume layout per PLAN.md. Ownership is set on the host; the container
 # runs as the host uid/gid passed via `docker exec --user`, so no user
diff --git a/src/quire.rs b/src/quire.rs
index 563dc9e..9246e26 100644
--- a/src/quire.rs
+++ b/src/quire.rs
@@ -93,7 +93,12 @@ impl Repo {
     /// but it remains visible in `/proc/<pid>/environ` to anything running
     /// as the same uid for the lifetime of the push. Acceptable today
     /// (single-user container, no CI runner yet); revisit when CI lands.
-    pub fn push_to_mirror(&self, mirror: &MirrorConfig, token: &str, refs: &[&str]) -> crate::Result<()> {
+    pub fn push_to_mirror(
+        &self,
+        mirror: &MirrorConfig,
+        token: &str,
+        refs: &[&str],
+    ) -> crate::Result<()> {
         let mut args = vec!["push", "--porcelain", &mirror.url];
         args.extend(refs);