nixos-config/pkgs/marge-bot/default.nix

76 lines
1.6 KiB
Nix

{
lib,
python3,
fetchFromGitLab,
fetchpatch,
git,
openssh,
nix-update-script,
}:
python3.pkgs.buildPythonApplication rec {
pname = "marge-bot";
version = "0.16.0";
pyproject = true;
src = fetchFromGitLab {
owner = "marge-org";
repo = "marge-bot";
rev = version;
hash = "sha256-UgdbeJegeTFP6YF6oMxAeQDI9AO2k6yk4WAFZ/Xspu8=";
};
patches = [
# TODO: remove when merged https://gitlab.com/marge-org/marge-bot/-/merge_requests/571
(fetchpatch {
url = "https://gitlab.com/marge-org/marge-bot/-/commit/7e9668b24455bcf9c99646853019a3e86505d850.patch";
hash = "sha256-n5zB3YmD7i6RmcO9XmHjWVdQHzeVuZUPOzY3+cA6NDk=";
})
./patches/wait-for-mr-update.patch
./patches/allow-self-merges.patch
];
nativeBuildInputs = [
python3.pkgs.setuptools
];
propagatedBuildInputs =
(with python3.pkgs; [
configargparse
maya
pyyaml
requests
python-gitlab
hatchling
])
++ [
git
openssh
];
nativeCheckInputs =
(with python3.pkgs; [
pytest-cov-stub
pytestCheckHook
pendulum
])
++ [
git
];
pythonImportsCheck = [ "marge" ];
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Merge bot for GitLab";
homepage = "https://gitlab.com/marge-org/marge-bot";
changelog = "https://gitlab.com/marge-org/marge-bot/-/blob/${src.rev}/CHANGELOG.md";
license = licenses.bsd3;
maintainers = with maintainers; [
bcdarwin
lelgenio
];
mainProgram = "marge.app";
};
}