forked from M-Labs/nix-scripts
wrap mattermost-github-integration with uwsgi, add to nixbld
This commit is contained in:
parent
2365add996
commit
c0601e0f65
@ -218,6 +218,24 @@ ACTION=="add", SUBSYSTEM=="tty", \
|
|||||||
locations."~ /api/v[0-9]+/(users/)?websocket$".proxyPass = "http://127.0.0.1:8065";
|
locations."~ /api/v[0-9]+/(users/)?websocket$".proxyPass = "http://127.0.0.1:8065";
|
||||||
locations."~ /api/v[0-9]+/(users/)?websocket$".proxyWebsockets = true;
|
locations."~ /api/v[0-9]+/(users/)?websocket$".proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
|
"hooks.m-labs.hk" = {
|
||||||
|
extraConfig = ''
|
||||||
|
location / {
|
||||||
|
include ${pkgs.nginx}/conf/uwsgi_params;
|
||||||
|
uwsgi_pass unix:${config.services.uwsgi.runDir}/uwsgi.sock;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.uwsgi = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "python3" ];
|
||||||
|
instance = {
|
||||||
|
type = "emperor";
|
||||||
|
vassals = {
|
||||||
|
mattermostgithub = import ./mattermost-github-integration/uwsgi-config.nix { inherit config pkgs; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
{ fetchFromGitHub, python3Packages }:
|
|
||||||
with python3Packages;
|
|
||||||
|
|
||||||
let
|
|
||||||
config = builtins.toFile "config.py" ''
|
|
||||||
USERNAME = "Github"
|
|
||||||
ICON_URL = ""
|
|
||||||
|
|
||||||
# Repository settings
|
|
||||||
MATTERMOST_WEBHOOK_URLS = {
|
|
||||||
'default' : ("yourdomain.org/hooks/hookid", "off-topic"),
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ignore specified event actions
|
|
||||||
GITHUB_IGNORE_ACTIONS = {
|
|
||||||
"pull_request": ["synchronize"]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ignore events from specified users
|
|
||||||
IGNORE_USERS = {
|
|
||||||
"someuser": ["push"],
|
|
||||||
"anotheruser": ["push", "create"]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Redirect events to different channels
|
|
||||||
REDIRECT_EVENTS = {
|
|
||||||
"push": "commits"
|
|
||||||
}
|
|
||||||
SECRET = ""
|
|
||||||
SHOW_AVATARS = True
|
|
||||||
SERVER = {
|
|
||||||
'hook': "/",
|
|
||||||
'address': "0.0.0.0",
|
|
||||||
'port': 5000,
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
|
|
||||||
buildPythonApplication rec {
|
|
||||||
pname = "mattermost-github-integration";
|
|
||||||
version = "0.0.0-unstable";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "softdevteam";
|
|
||||||
repo = "mattermost-github-integration";
|
|
||||||
rev = "master";
|
|
||||||
sha256 = "1hfvjaxjhliy8sv9j3616fkdwd2jqhfsj9ai7ggx88zhxknrfx85";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
appdirs
|
|
||||||
click
|
|
||||||
flask
|
|
||||||
itsdangerous
|
|
||||||
jinja2
|
|
||||||
markupsafe
|
|
||||||
olefile
|
|
||||||
packaging
|
|
||||||
pillow
|
|
||||||
pyparsing
|
|
||||||
requests
|
|
||||||
six
|
|
||||||
werkzeug
|
|
||||||
];
|
|
||||||
checkInputs = [
|
|
||||||
pytest
|
|
||||||
];
|
|
||||||
preBuild = ''
|
|
||||||
cp ${config} mattermostgithub/config.py
|
|
||||||
'';
|
|
||||||
postInstall = ''
|
|
||||||
mkdir $out/bin
|
|
||||||
echo "#!#{python}/bin/python" > $out/bin/server
|
|
||||||
cat server.py >> $out/bin/server
|
|
||||||
chmod a+x $out/bin/server
|
|
||||||
'';
|
|
||||||
doCheck = true;
|
|
||||||
}
|
|
25
nixbld-etc-nixos/mattermost-github-integration/config.py
Normal file
25
nixbld-etc-nixos/mattermost-github-integration/config.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
USERNAME = "Github"
|
||||||
|
ICON_URL = ""
|
||||||
|
|
||||||
|
# Repository settings
|
||||||
|
MATTERMOST_WEBHOOK_URLS = {
|
||||||
|
'default' : ("chat.m-labs.hk/hooks/hookid", "town-square"),
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ignore specified event actions
|
||||||
|
GITHUB_IGNORE_ACTIONS = {
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ignore events from specified users
|
||||||
|
IGNORE_USERS = {
|
||||||
|
}
|
||||||
|
|
||||||
|
# Redirect events to different channels
|
||||||
|
REDIRECT_EVENTS = {
|
||||||
|
}
|
||||||
|
|
||||||
|
SECRET = ""
|
||||||
|
SHOW_AVATARS = True
|
||||||
|
SERVER = {
|
||||||
|
'hook': "/mattermost-github",
|
||||||
|
}
|
32
nixbld-etc-nixos/mattermost-github-integration/pkg.nix
Normal file
32
nixbld-etc-nixos/mattermost-github-integration/pkg.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ fetchFromGitHub, python3Packages }:
|
||||||
|
with python3Packages;
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "mattermost-github-integration";
|
||||||
|
version = "0.0.0-unstable";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "softdevteam";
|
||||||
|
repo = "mattermost-github-integration";
|
||||||
|
rev = "master";
|
||||||
|
sha256 = "1hfvjaxjhliy8sv9j3616fkdwd2jqhfsj9ai7ggx88zhxknrfx85";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
appdirs
|
||||||
|
click
|
||||||
|
flask
|
||||||
|
itsdangerous
|
||||||
|
jinja2
|
||||||
|
markupsafe
|
||||||
|
olefile
|
||||||
|
packaging
|
||||||
|
pillow
|
||||||
|
pyparsing
|
||||||
|
requests
|
||||||
|
six
|
||||||
|
werkzeug
|
||||||
|
];
|
||||||
|
checkInputs = [
|
||||||
|
pytest
|
||||||
|
];
|
||||||
|
doCheck = true;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{ config, pkgs }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pkg = pkgs.callPackage ./pkg.nix {};
|
||||||
|
in {
|
||||||
|
type = "normal";
|
||||||
|
pythonPackages = self: [ pkg ];
|
||||||
|
module = "mattermostgithub:app";
|
||||||
|
env = [
|
||||||
|
"MGI_CONFIG_FILE=${./config.py}"
|
||||||
|
];
|
||||||
|
socket = "${config.services.uwsgi.runDir}/uwsgi.sock";
|
||||||
|
# allow access from nginx
|
||||||
|
chmod-socket = 666;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user