1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 click,
7 deepmerge,
8 pyyaml,
9 rich,
10 pygments,
11 llm,
12 llm-git,
13 pytestCheckHook,
14 pytest-cov-stub,
15 pytest-asyncio,
16 pytest-httpx,
17 writableTmpDirAsHomeHook,
18}:
19
20buildPythonPackage rec {
21 pname = "llm-git";
22 version = "0.2.2";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "OttoAllmendinger";
27 repo = "llm-git";
28 tag = "v${version}";
29 hash = "sha256-LcIsJPQgZ4gj2t7sSa0Wu35WHWYyquZZTS/UxojH+XU=";
30 };
31
32 build-system = [
33 setuptools
34 ];
35
36 dependencies = [
37 click
38 deepmerge
39 llm
40 pyyaml
41 rich
42 pygments
43 ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 pytest-cov-stub
48 writableTmpDirAsHomeHook
49 ];
50
51 pythonImportsCheck = [ "llm_git" ];
52
53 passthru.tests = llm.mkPluginTest llm-git;
54
55 meta = {
56 description = "AI-powered Git commands for the LLM CLI tool";
57 homepage = "https://github.com/OttoAllmendinger/llm-git";
58 changelog = "https://github.com/OttoAllmendinger/llm-git/releases/tag/${version}/CHANGELOG.md";
59 license = lib.licenses.asl20;
60 maintainers = with lib.maintainers; [ philiptaron ];
61 };
62}