From 8b550cfe1082352810283c4490bca724f1a7b31c Mon Sep 17 00:00:00 2001 From: Lilac Date: Fri, 16 Oct 2026 00:10:59 -0400 Subject: [PATCH] inline hooks.json --- flake.nix | 43 +++++++++++++++++++++++++++++++++++++++---- hooks.json | 41 ----------------------------------------- 2 files changed, 39 insertions(+), 45 deletions(-) delete mode 100644 hooks.json diff --git a/flake.nix b/flake.nix index c92680a..960135f 100644 --- a/flake.nix +++ b/flake.nix @@ -80,10 +80,45 @@ (builtins.readFile ./pigeon.sh); }; - hooks = pkgs.writeText "pigeon-hooks.json" - (builtins.replaceStrings [ "@nq@" "@pigeon@" ] - [ "${pkgs.nq}/bin/nq" "${pigeon}/bin/pigeon" ] - (builtins.readFile ./hooks.json)); + hooks = pkgs.writeText "pigeon-hooks.json" (builtins.toJSON [ + { + id = "release"; + execute-command = "${pkgs.nq}/bin/nq"; + include-command-output-in-response = false; + pass-arguments-to-command = [ + { source = "string"; name = "${pigeon}/bin/pigeon"; } + { source = "payload"; name = "project.id"; } + { source = "payload"; name = "project.namespace"; } + { source = "payload"; name = "project.name"; } + { source = "payload"; name = "commit.id"; } + { source = "payload"; name = "tag"; } + { source = "payload"; name = "created_at"; } + ]; + trigger-rule.and = [ + { + match = { + type = "value"; + parameter = { source = "header"; name = "X-Gitlab-Event"; }; + value = "Release Hook"; + }; + } + { + match = { + type = "value"; + parameter = { source = "payload"; name = "action"; }; + value = "create"; + }; + } + { + match = { + type = "value"; + parameter = { source = "header"; name = "X-Gitlab-Token"; }; + value = "{{ getenv `PIGEON_GITLAB_SECRET` | js }}"; + }; + } + ]; + } + ]); pigeon-webhook = pkgs.writeShellApplication { name = "pigeon-webhook"; diff --git a/hooks.json b/hooks.json deleted file mode 100644 index e0320c7..0000000 --- a/hooks.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - { - "id": "release", - "execute-command": "@nq@", - "include-command-output-in-response": false, - "pass-arguments-to-command": [ - { "source": "string", "name": "@pigeon@" }, - { "source": "payload", "name": "project.id" }, - { "source": "payload", "name": "project.namespace" }, - { "source": "payload", "name": "project.name" }, - { "source": "payload", "name": "commit.id" }, - { "source": "payload", "name": "tag" }, - { "source": "payload", "name": "created_at" } - ], - "trigger-rule": { - "and": [ - { - "match": { - "type": "value", - "parameter": { "source": "header", "name": "X-Gitlab-Event" }, - "value": "Release Hook" - } - }, - { - "match": { - "type": "value", - "parameter": { "source": "payload", "name": "action" }, - "value": "create" - } - }, - { - "match": { - "type": "value", - "parameter": { "source": "header", "name": "X-Gitlab-Token" }, - "value": "{{ getenv `PIGEON_GITLAB_SECRET` | js }}" - } - } - ] - } - } -]