these 4 derivations will be built: /nix/store/57lx5bq2khsj2fsrzn33p0ca4p0a60ad-argunix-test-github-token.drv /nix/store/crq2krp82vb21jmbcahrwjhypckqisrr-fake-forge.py.drv /nix/store/kd2vmn3864agdbi8ad2m6nvfd7d5m4qm-argunix.yaml.template.drv /nix/store/91s3zqq4mp6ilng76idzmjmv75y3q29k-argunix-webhook-smoke.drv these 31 paths will be fetched (58.4 MiB download, 171.0 MiB unpacked): /nix/store/8w8s8bwhpvq7br89zd5w324i00a7n55w-curl-8.21.0-bin /nix/store/c0yfwmzcz9664k3q08jklfzwrqikxwfn-curl-8.21.0-dev /nix/store/k119lvvhxvz81yza4an5x7bw5mkhanaw-curl-8.21.0-man /nix/store/9swh8yxmagpxcl6k9hrg2jxwvfxmxb9c-gdbm-1.26-lib /nix/store/ysn4m4qsymmr06a61d1b8y134whk6gnr-krb5-1.22.2 /nix/store/apvklz54h34zrc9p1ndp8wpss09901g5-krb5-1.22.2-dev /nix/store/dc42cykz2hy5hyz283bzw0l35hplmi96-libedit-20260508-3.1 /nix/store/fnnrh18s4vx8vlvahzy316h6lz4n5hh6-libidn2-2.3.8-bin /nix/store/z9nl50bgnh2s8vq0b8mpkybdbz8aqqbz-libidn2-2.3.8-dev /nix/store/859ivkh3jrrrc79mn83arqpp82b46nw4-libpsl-0.21.5-dev /nix/store/jcf77makrf08xs3slqwa8hgpsgwd4y9h-libssh2-1.11.1-dev /nix/store/il4z8jyhvjy59qsg0ljj1qfpnlrzd1jj-libyaml-0.2.5 /nix/store/j70aximyfqwcbqf0bzl8g494nfkhasvn-mpdecimal-4.0.1 /nix/store/sfbjq7mllid60l3jvxw0q2gknqldyy2l-python3-3.14.6 /nix/store/0ccz3sywdigv9ys76f75k9nmzcx2hjgl-python3.14-cbor2-5.8.0 /nix/store/4f3jd9nhw2m9ch4w6gwmnqnlmlgsif3p-python3.14-colorama-0.4.6 /nix/store/kf0rm54jhmlpaz1w69vkhpwd8v1ykclm-python3.14-markdown-it-py-4.0.0 /nix/store/cwzb3nm3q6val4ndixmzc9gg49ml9ckl-python3.14-mdurl-0.1.2 /nix/store/jpci141vrjkahcjqczsv1mag4hba1m2w-python3.14-pygments-2.20.0 /nix/store/bkpwjswgdvycykqz6z2igxy2fkv0zn3h-python3.14-python-dateutil-2.9.0.post0 /nix/store/671912n9d0l9kg9x8kh4n95lvbgm0bdd-python3.14-pyyaml-6.0.3 /nix/store/6l0hfj18qn6p0i8a0znxz8jgxcm715x2-python3.14-rich-15.0.0 /nix/store/97mj335fqvi6qk1q72zizs206387i27q-python3.14-rich-argparse-1.7.2 /nix/store/yab2k3g7ann7g52i0999bz91yqcvl45m-python3.14-ruamel-base-1.0.0 /nix/store/xs9wjn7hsfajs2mcp5b5zbyhq23inhvx-python3.14-ruamel-yaml-0.19.1 /nix/store/v2jgsvpj8jvjaq5vw72my3m8jszw3zpl-python3.14-ruamel-yaml-clib-0.2.15 /nix/store/cyimjhl4qi64hfy9kkbk8gv6rzr7xaha-python3.14-six-1.17.0 /nix/store/2bpc9ibcvb08cghw2bzwwcfl604h6ni4-python3.14-tomlkit-0.12.5 /nix/store/k9zr0gm5bk9d1yn7zzjk3i254h4dk728-python3.14-u-msgpack-python-2.8.0 /nix/store/s20mkk95m7qxqkhw90hk8n3jzb1syg61-remarshal-0.17.1 /nix/store/fwvijbykm8qgj7k4b9bf8ik556zgr5n9-util-linux-minimal-2.42.2-lib argunix.yaml.template> structuredAttrs is enabled argunix-webhook-smoke> daemon listening on 127.0.0.1:43723 argunix-webhook-smoke> webhook secret: 32386339393137613666666666373063363637323632366337326532323437323233333762366465363934356639343838623037303236303736343839646462 (hex) argunix-webhook-smoke> --- 1. valid push webhook --- argunix-webhook-smoke> argunix-webhook-smoke> --- 2. wrong-secret webhook is rejected --- argunix-webhook-smoke> HMAC signature mismatch argunix-webhook-smoke> --- 3. unknown repo is rejected --- argunix-webhook-smoke> repo `stranger/elsewhere` is not configured in argunix argunix-webhook-smoke> --- 4. unknown forge URL path --- argunix-webhook-smoke> --- 5. ping event is acknowledged but creates no row --- argunix-webhook-smoke> --- DB shape --- argunix-webhook-smoke> ╭──────────────┬──────────────╮ argunix-webhook-smoke> │ slug │ forge │ argunix-webhook-smoke> ╞══════════════╪══════════════╡ argunix-webhook-smoke> │ myorg/myrepo │ github-myorg │ argunix-webhook-smoke> ╰──────────────┴──────────────╯ argunix-webhook-smoke> ╭─────────┬─────────┬──────────────────────────────────────────┬───────────────────╮ argunix-webhook-smoke> │ trigger │ git_ref │ sha │ status │ argunix-webhook-smoke> ╞═════════╪═════════╪══════════════════════════════════════════╪═══════════════════╡ argunix-webhook-smoke> │ push │ main │ 0123456789abcdef0123456789abcdef01234567 │ evaluation_failed │ argunix-webhook-smoke> ╰─────────┴─────────┴──────────────────────────────────────────┴───────────────────╯ argunix-webhook-smoke> --- daemon stderr (last 20 lines) --- argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.331954Z","level":"INFO","fields":{"message":"providers initialised","forges":1,"repos":1},"target":"argunix"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.664416Z","level":"INFO","fields":{"message":"webhook ensured","forge":"github-myorg","slug":"myorg/myrepo","target_url":"https://argunix.example.com/webhook/github","hook_id":"1"},"target":"argunix_web::auto_install"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.664445Z","level":"INFO","fields":{"message":"webhook auto-install pass complete","installed":1,"failed":0,"total":1},"target":"argunix_web::auto_install"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.688261Z","level":"INFO","fields":{"message":"argunix http server ready","local":"127.0.0.1:43723"},"target":"argunix"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.688406Z","level":"ERROR","fields":{"message":"control server exited with error","error":"binding /run/argunix/control.sock"},"target":"argunix::control"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.844696Z","level":"INFO","fields":{"message":"evaluation queued","repo_id":1,"eval_id":1,"slug":"myorg/myrepo","sha":"0123456789abcdef0123456789abcdef01234567"},"target":"argunix_web::webhook"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.844968Z","level":"INFO","fields":{"message":"worker picked up evaluation"},"target":"argunix::worker","span":{"eval_id":1,"name":"evaluation"},"spans":[{"eval_id":1,"name":"evaluation"}]} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.854934Z","level":"ERROR","fields":{"message":"evaluation failed in worker","error":"cloning myorg/myrepo at 0123456789abcdef0123456789abcdef01234567: spawning git: No such file or directory (os error 2)"},"target":"argunix::worker","span":{"eval_id":1,"name":"evaluation"},"spans":[{"eval_id":1,"name":"evaluation"}]} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.882966Z","level":"WARN","fields":{"message":"webhook rejected","forge_kind":"github","forge_name":"Some(\"github-myorg\")","slug":"Some(\"myorg/myrepo\")","status":401,"error":"HMAC signature mismatch"},"target":"argunix_web::webhook"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.909960Z","level":"WARN","fields":{"message":"webhook rejected","forge_kind":"github","forge_name":"None","slug":"Some(\"stranger/elsewhere\")","status":404,"error":"repo `stranger/elsewhere` is not configured in argunix"},"target":"argunix_web::webhook"} argunix-webhook-smoke> {"timestamp":"2026-07-14T18:47:06.921915Z","level":"WARN","fields":{"message":"webhook rejected","forge_kind":"gerrit","forge_name":"None","slug":"None","status":404,"error":"unknown forge kind in URL path: `gerrit`"},"target":"argunix_web::webhook"}