these 4 derivations will be built: /nix/store/5dv9z84y546y350vwl9lj380q0l023x7-fake-forge.py.drv /nix/store/sna43iky684v3bn13bc3za7pnmb2l9im-argunix-test-github-token.drv /nix/store/lgdj53z5mbxzb4h27lg3993jws8w7a1b-argunix.yaml.template.drv /nix/store/v5dmvmd170h9j9j5k74b4482sn2mxbaz-argunix-webhook-smoke.drv these 24 paths will be fetched (2.7 MiB download, 22.4 MiB unpacked): /nix/store/ni3mcvikdjzaq2h0jx3k0xds57z0y2r5-curl-8.20.0-dev /nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47 /nix/store/zmvllxxx62iys7vpyg020rni3v29bcxi-gnu-config-2024-01-01 /nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1 /nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35 /nix/store/0jmxsxyi7p5bkgsw4bmz75aq5pbyvpfq-krb5-1.22.1 /nix/store/qidq70m0r1a5nlgcn6chy0dgv26wcv7n-krb5-1.22.1-dev /nix/store/a24v7pir7l3m3qi16cpi1cy44vp7bkjy-libidn2-2.3.8-bin /nix/store/3mlpll6vwrcqsxrjsav5p8j9a87qpd26-libidn2-2.3.8-dev /nix/store/917vph597cgj077kid16zsz05gds1rh2-libpsl-0.21.5-dev /nix/store/f2sddp362lwkvfqx9jvnhvxs2ckypmph-libssh2-1.11.1-dev /nix/store/9826qlvqrlx17g370kzj83f1l1xafy4n-python3.13-cbor2-5.8.0 /nix/store/d7f1iz87hgm7a0v0m6kh9pz4akzbs4yb-python3.13-colorama-0.4.6 /nix/store/sx7k2qfz2hp98c8fzzk3yjrgbz0ln9jn-python3.13-python-dateutil-2.9.0.post0 /nix/store/2rj8nmv4izhy7axlph49cjif3lbizj3v-python3.13-rich-argparse-1.7.2 /nix/store/78spbk1i2cdjsv9f6lnbnlxw515xr9nl-python3.13-ruamel-base-1.0.0 /nix/store/4l09nq8mjnwyir7fhbs63hbbapaxmsjw-python3.13-ruamel-yaml-0.19.1 /nix/store/ih0fnn1g3vjpy9k9vz12icjnpypry4dy-python3.13-ruamel-yaml-clib-0.2.15 /nix/store/n15xkpcwi9g157qnixycm8w1gsfw7mgz-python3.13-six-1.17.0 /nix/store/50vayp8bxwhg6122vi92jwjwhmarbclc-python3.13-tomlkit-0.12.5 /nix/store/qr7682063l1hp1fdlv0iqc0zsg41x3ax-python3.13-u-msgpack-python-2.8.0 /nix/store/sj35jpb46baybxa54h60j4pv0s3avrjw-remarshal-0.17.1 /nix/store/81ff57hcs8gjlnaqqhbilzxsvb5pfzaa-stdenv-linux /nix/store/xknj6c33cc197s60ry0i69vdkmaizrs1-update-autotools-gnu-config-scripts-hook argunix.yaml.template> structuredAttrs is enabled argunix-webhook-smoke> daemon listening on 127.0.0.1:39825 argunix-webhook-smoke> webhook secret: 39613764316466636365313233366338383161353030383761333963396366373033373830643866336362633361336366336663393931343533353035653564 (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> slug|forge argunix-webhook-smoke> myorg/myrepo|github-myorg argunix-webhook-smoke> trigger|git_ref|sha|status argunix-webhook-smoke> push|main|0123456789abcdef0123456789abcdef01234567|evaluation_failed argunix-webhook-smoke> /build/.attr-0l2nkwhif96f51f4amnlf414lhl4rv9vh8iffyp431v6s28gsr90: line 136: 13 Killed argunix serve --config "$workdir/argunix.yaml" --listen "127.0.0.1:0" > daemon.stdout 2> daemon.stderr argunix-webhook-smoke> --- daemon stderr (last 20 lines) --- argunix-webhook-smoke> {"timestamp":"2026-06-10T14:05:47.388347Z","level":"INFO","fields":{"message":"providers initialised","forges":1,"repos":1},"target":"argunix"} argunix-webhook-smoke> {"timestamp":"2026-06-10T14:05:47.545068Z","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-06-10T14:05:47.545087Z","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-06-10T14:05:47.546109Z","level":"INFO","fields":{"message":"argunix http server ready","local":"127.0.0.1:39825"},"target":"argunix"} argunix-webhook-smoke> {"timestamp":"2026-06-10T14:05:47.546109Z","level":"ERROR","fields":{"message":"control server exited with error","error":"binding /run/argunix/control.sock"},"target":"argunix::control"} argunix-webhook-smoke> {"timestamp":"2026-06-10T14:05:47.628208Z","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-06-10T14:05:47.628292Z","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-06-10T14:05:47.631730Z","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-06-10T14:05:47.639345Z","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-06-10T14:05:47.650572Z","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-06-10T14:05:47.657260Z","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"}