initial commit
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
{ pkgs }:
|
||||
|
||||
let
|
||||
hooks = pkgs.writeText "pigeon-hooks.json" (builtins.toJSON [{
|
||||
id = "release";
|
||||
execute-command = "{./pigeon.sh}";
|
||||
include-command-output-in-response = false;
|
||||
pass-arguments-to-command = [
|
||||
{ source = "payload"; name = "project.git_http_url"; }
|
||||
{ source = "payload"; name = "project.id"; }
|
||||
{ source = "payload"; name = "tag"; }
|
||||
{ source = "payload"; name = "commit.id"; }
|
||||
];
|
||||
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_TOKEN` | js }}";
|
||||
};
|
||||
}
|
||||
];
|
||||
}]);
|
||||
in
|
||||
pkgs.writeShellApplication {
|
||||
name = "pigeon";
|
||||
runtimeInputs = [ pkgs.webhook ];
|
||||
text = ''
|
||||
: ''${PIGEON_GITLAB_TOKEN:?}
|
||||
exec webhook -hooks ${hooks} -template -port "''${PIGEON_PORT:-9000}" -verbose
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user