about summary refs log tree commit diff
path: root/pkgs/development/python-modules/githubkit/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/githubkit/default.nix')
-rw-r--r--pkgs/development/python-modules/githubkit/default.nix66
1 files changed, 59 insertions, 7 deletions
diff --git a/pkgs/development/python-modules/githubkit/default.nix b/pkgs/development/python-modules/githubkit/default.nix
index 85509528bf35b..8d8fd8cd6e32d 100644
--- a/pkgs/development/python-modules/githubkit/default.nix
+++ b/pkgs/development/python-modules/githubkit/default.nix
@@ -1,37 +1,89 @@
 { lib
+, anyio
 , buildPythonPackage
-, fetchPypi
-, poetry-core
+, fetchFromGitHub
+, hishel
 , httpx
+, poetry-core
 , pydantic
+, pyjwt
+, pytestCheckHook
+, pythonOlder
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.10.7";
+  version = "0.11.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-sKikL+761mBP7j+qugHKDQ0hVXT51FV8FYbB3ZJtweA=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "yanyongyu";
+    repo = "githubkit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-o7u/C9Ylw903Hat4xZdb0YYVtXKSu2WljD9uiLQeFIU=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=githubkit --cov-append --cov-report=term-missing" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
 
   propagatedBuildInputs = [
+    hishel
     httpx
     pydantic
     typing-extensions
   ];
 
-  pythonImportsCheck = [ "githubkit" ];
+  passthru.optional-dependencies = {
+    all = [
+      anyio
+      pyjwt
+    ];
+    jwt = [
+      pyjwt
+    ];
+    auth-app = [
+      pyjwt
+    ];
+    auth-oauth-device = [
+      anyio
+    ];
+    auth = [
+      anyio
+      pyjwt
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "githubkit"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_graphql"
+    "test_async_graphql"
+    "test_call"
+    "test_async_call"
+    "test_versioned_call"
+    "test_versioned_async_call"
+  ];
 
   meta = {
     description = "GitHub SDK for Python";
     homepage = "https://github.com/yanyongyu/githubkit";
+    changelog = "https://github.com/yanyongyu/githubkit/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kranzes ];
   };