swarmauri_toolkit_github 0.6.1.dev18__tar.gz → 0.7.0.dev3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,19 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: swarmauri_toolkit_github
3
- Version: 0.6.1.dev18
3
+ Version: 0.7.0.dev3
4
4
  Summary: Github Toolkit
5
5
  License: Apache-2.0
6
6
  Author: Jacob Stewart
7
7
  Author-email: jacob@swarmauri.com
8
8
  Requires-Python: >=3.10,<3.13
9
9
  Classifier: License :: OSI Approved :: Apache Software License
10
- Classifier: Programming Language :: Python :: 3
11
10
  Classifier: Programming Language :: Python :: 3.10
12
11
  Classifier: Programming Language :: Python :: 3.11
13
12
  Classifier: Programming Language :: Python :: 3.12
14
- Requires-Dist: pygithub (>=2.4.0,<3.0.0)
15
- Requires-Dist: swarmauri_base (>=0.6.1.dev16,<0.7.0)
16
- Requires-Dist: swarmauri_core (>=0.6.1.dev16,<0.7.0)
17
- Requires-Dist: swarmauri_standard (>=0.6.1.dev3,<0.7.0)
18
- Project-URL: Repository, http://github.com/swarmauri/swarmauri-sdk
13
+ Requires-Dist: pygithub (>=2.4.0)
14
+ Requires-Dist: swarmauri_base
15
+ Requires-Dist: swarmauri_core
16
+ Requires-Dist: swarmauri_standard
19
17
  Description-Content-Type: text/markdown
20
18
 
21
19
  ![Swarmauri Logo](https://res.cloudinary.com/dbjmpekvl/image/upload/v1730099724/Swarmauri-logo-lockup-2048x757_hww01w.png)
@@ -1,67 +1,73 @@
1
- [tool.poetry]
1
+ [project]
2
2
  name = "swarmauri_toolkit_github"
3
- version = "0.6.1.dev18"
3
+ version = "0.7.0.dev3"
4
4
  description = "Github Toolkit"
5
- authors = ["Jacob Stewart <jacob@swarmauri.com>"]
6
5
  license = "Apache-2.0"
7
6
  readme = "README.md"
8
7
  repository = "http://github.com/swarmauri/swarmauri-sdk"
8
+ requires-python = ">=3.10,<3.13"
9
9
  classifiers = [
10
10
  "License :: OSI Approved :: Apache Software License",
11
11
  "Programming Language :: Python :: 3.10",
12
12
  "Programming Language :: Python :: 3.11",
13
- "Programming Language :: Python :: 3.12"
13
+ "Programming Language :: Python :: 3.12",
14
+ ]
15
+ authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
16
+ dependencies = [
17
+ "pygithub>=2.4.0",
18
+ "swarmauri_core",
19
+ "swarmauri_base",
20
+ "swarmauri_standard",
14
21
  ]
15
22
 
16
- [tool.poetry.dependencies]
17
- python = ">=3.10,<3.13"
18
-
19
- # Swarmauri
20
- swarmauri_core = {version = "^0.6.1.dev16"}
21
- swarmauri_base = {version = "^0.6.1.dev16"}
22
- swarmauri_standard = {version = "^0.6.1.dev3"}
23
-
24
- # Dependencies
25
- pygithub = "^2.4.0"
26
-
27
-
28
-
29
- [tool.poetry.group.dev.dependencies]
30
- flake8 = "^7.0"
31
- pytest = "^8.0"
32
- pytest-asyncio = ">=0.24.0"
33
- pytest-xdist = "^3.6.1"
34
- pytest-json-report = "^1.5.0"
35
- python-dotenv = "*"
36
- requests = "^2.32.3"
37
-
38
- [build-system]
39
- requires = ["poetry-core>=1.0.0"]
40
- build-backend = "poetry.core.masonry.api"
23
+ [tool.uv.sources]
24
+ swarmauri_core = { workspace = true }
25
+ swarmauri_base = { workspace = true }
26
+ swarmauri_standard = { workspace = true }
41
27
 
42
28
  [tool.pytest.ini_options]
43
29
  norecursedirs = ["combined", "scripts"]
44
-
45
30
  markers = [
46
31
  "test: standard test",
47
32
  "unit: Unit tests",
48
- "integration: Integration tests",
33
+ "i9n: Integration tests",
34
+ "r8n: Regression tests",
35
+ "timeout: mark test to timeout after X seconds",
36
+ "xpass: Expected passes",
37
+ "xfail: Expected failures",
49
38
  "acceptance: Acceptance tests",
50
- "experimental: Experimental tests"
51
39
  ]
40
+ timeout = 300
52
41
  log_cli = true
53
42
  log_cli_level = "INFO"
54
43
  log_cli_format = "%(asctime)s [%(levelname)s] %(message)s"
55
44
  log_cli_date_format = "%Y-%m-%d %H:%M:%S"
56
45
  asyncio_default_fixture_loop_scope = "function"
57
46
 
58
- [tool.poetry.plugins."swarmauri.tools"]
47
+ [tool.project.entry-points."swarmauri.tools"]
59
48
  GithubBranchTool = "swarmauri_toolkit_github.GithubBranchTool:GithubBranchTool"
60
49
  GithubCommitTool = "swarmauri_toolkit_github.GithubCommitTool:GithubCommitTool"
61
50
  GithubIssueTool = "swarmauri_toolkit_github.GithubIssueTool:GithubIssueTool"
62
51
  GithubPRTool = "swarmauri_toolkit_github.GithubPRTool:GithubPRTool"
63
52
  GithubRepoTool = "swarmauri_toolkit_github.GithubRepoTool:GithubRepoTool"
64
53
 
65
- [tool.poetry.plugins."swarmauri.toolkits"]
54
+ [tool.project.entry-points."swarmauri.toolkits"]
66
55
  GithubToolkit = "swarmauri_toolkit_github.GithubToolkit:GithubToolkit"
67
56
 
57
+
58
+ [build-system]
59
+ requires = ["poetry-core>=1.0.0"]
60
+ build-backend = "poetry.core.masonry.api"
61
+
62
+ [dependency-groups]
63
+ dev = [
64
+ "pytest>=8.0",
65
+ "pytest-asyncio>=0.24.0",
66
+ "pytest-xdist>=3.6.1",
67
+ "pytest-json-report>=1.5.0",
68
+ "python-dotenv",
69
+ "requests>=2.32.3",
70
+ "flake8>=7.0",
71
+ "pytest-timeout>=2.3.1",
72
+ "ruff>=0.9.9",
73
+ ]
@@ -2,7 +2,7 @@
2
2
 
3
3
  from github import Github, GithubException
4
4
  from typing import List, Dict, Literal, Any
5
- from swarmauri_core.ComponentBase import ComponentBase
5
+ from swarmauri_base.ComponentBase import ComponentBase
6
6
  from pydantic import Field, ConfigDict
7
7
  from swarmauri_base.tools.ToolBase import ToolBase
8
8
  from swarmauri_standard.tools.Parameter import Parameter
@@ -15,25 +15,25 @@ class GithubBranchTool(ToolBase):
15
15
  default_factory=lambda: [
16
16
  Parameter(
17
17
  name="action",
18
- type="string",
18
+ input_type="string",
19
19
  description="The action to perform on the GitHub API, e.g., 'create_repo', 'delete_repo', 'create_issue', etc.",
20
20
  required=True,
21
21
  ),
22
22
  Parameter(
23
23
  name="repo_name",
24
- type="string",
24
+ input_type="string",
25
25
  description="The full name of the repository to interact with, e.g. 'owner/repository'.",
26
26
  required=True,
27
27
  ),
28
28
  Parameter(
29
29
  name="branch_name",
30
- type="string",
30
+ input_type="string",
31
31
  description="The name of the branch to interact with.",
32
32
  required=False,
33
33
  ),
34
34
  Parameter(
35
35
  name="source_branch",
36
- type="string",
36
+ input_type="string",
37
37
  description="The name of the source branch to create a branch from.",
38
38
  required=False,
39
39
  ),
@@ -1,6 +1,6 @@
1
1
  from github import Github, GithubException
2
2
  from typing import List, Dict, Literal, Any
3
- from swarmauri_core.ComponentBase import ComponentBase
3
+ from swarmauri_base.ComponentBase import ComponentBase
4
4
  from pydantic import Field, ConfigDict
5
5
  from swarmauri_base.tools.ToolBase import ToolBase
6
6
  from swarmauri_standard.tools.Parameter import Parameter
@@ -13,55 +13,55 @@ class GithubCommitTool(ToolBase):
13
13
  default_factory=lambda: [
14
14
  Parameter(
15
15
  name="action",
16
- type="string",
16
+ input_type="string",
17
17
  description="The action to perform on the GitHub API, e.g., 'create_repo', 'delete_repo', 'create_issue', etc.",
18
18
  required=True,
19
19
  ),
20
20
  Parameter(
21
21
  name="repo_name",
22
- type="string",
22
+ input_type="string",
23
23
  description="The full name of the repository to interact with, e.g. 'owner/repository'.",
24
24
  required=True,
25
25
  ),
26
26
  Parameter(
27
27
  name="file_path",
28
- type="string",
28
+ input_type="string",
29
29
  description="The path to the file in the repository, e.g. 'path/to/file.txt'.",
30
30
  required=False,
31
31
  ),
32
32
  Parameter(
33
33
  name="message",
34
- type="string",
34
+ input_type="string",
35
35
  description=".",
36
36
  required=False,
37
37
  ),
38
38
  Parameter(
39
39
  name="content",
40
- type="string",
40
+ input_type="string",
41
41
  description="The name of the branch to interact with.",
42
42
  required=False,
43
43
  ),
44
44
  Parameter(
45
45
  name="branch_name",
46
- type="string",
46
+ input_type="string",
47
47
  description="The name of the branch to interact with.",
48
48
  required=False,
49
49
  ),
50
50
  Parameter(
51
51
  name="sha",
52
- type="string",
52
+ input_type="string",
53
53
  description="The sha of the commit to interact with.",
54
54
  required=False,
55
55
  ),
56
56
  Parameter(
57
57
  name="base",
58
- type="string",
58
+ input_type="string",
59
59
  description="The base of the commit to interact with.",
60
60
  required=False,
61
61
  ),
62
62
  Parameter(
63
63
  name="head",
64
- type="string",
64
+ input_type="string",
65
65
  description="The head of the commit to interact with.",
66
66
  required=False,
67
67
  ),
@@ -1,6 +1,6 @@
1
1
  from github import Github, GithubException
2
2
  from typing import List, Dict, Literal, Any
3
- from swarmauri_core.ComponentBase import ComponentBase
3
+ from swarmauri_base.ComponentBase import ComponentBase
4
4
  from pydantic import Field, ConfigDict
5
5
  from swarmauri_base.tools.ToolBase import ToolBase
6
6
  from swarmauri_standard.tools.Parameter import Parameter
@@ -13,31 +13,31 @@ class GithubIssueTool(ToolBase):
13
13
  default_factory=lambda: [
14
14
  Parameter(
15
15
  name="action",
16
- type="string",
16
+ input_type="string",
17
17
  description="The action to perform on the GitHub API, e.g., 'create_issue', 'delete_issue', 'close_issue', 'list_issues', 'get_issue'",
18
18
  required=True,
19
19
  ),
20
20
  Parameter(
21
21
  name="repo_name",
22
- type="string",
22
+ input_type="string",
23
23
  description="The full name of the repository to interact with, e.g. 'owner/repository'.",
24
24
  required=False,
25
25
  ),
26
26
  Parameter(
27
27
  name="title",
28
- type="string",
28
+ input_type="string",
29
29
  description="Title of the issue to create",
30
30
  required=False,
31
31
  ),
32
32
  Parameter(
33
33
  name="body",
34
- type="string",
34
+ input_type="string",
35
35
  description="Body of the issue to create",
36
36
  required=False,
37
37
  ),
38
38
  Parameter(
39
39
  name="issue_number",
40
- type="integer",
40
+ input_type="integer",
41
41
  description="The number of the issue to interact with.",
42
42
  required=False,
43
43
  ),
@@ -1,7 +1,7 @@
1
1
  from github import Github, GithubException
2
2
  from typing import List, Dict, Literal, Any
3
3
  from pydantic import Field, ConfigDict
4
- from swarmauri_core.ComponentBase import ComponentBase
4
+ from swarmauri_base.ComponentBase import ComponentBase
5
5
  from swarmauri_base.tools.ToolBase import ToolBase
6
6
  from swarmauri_standard.tools.Parameter import Parameter
7
7
 
@@ -13,43 +13,43 @@ class GithubPRTool(ToolBase):
13
13
  default_factory=lambda: [
14
14
  Parameter(
15
15
  name="action",
16
- type="string",
16
+ input_type="string",
17
17
  description="The action to perform on the GitHub API, e.g., 'create_pull', 'merge_pull', 'close_pull', 'get_pull', 'list_pulls' etc.",
18
18
  required=True,
19
19
  ),
20
20
  Parameter(
21
21
  name="repo_name",
22
- type="string",
22
+ input_type="string",
23
23
  description="The full name of the repository to interact with, e.g. 'owner/repository'.",
24
24
  required=False,
25
25
  ),
26
26
  Parameter(
27
27
  name="pull_number",
28
- type="integer",
28
+ input_type="integer",
29
29
  description="The number of the pull request to interact with.",
30
30
  required=False,
31
31
  ),
32
32
  Parameter(
33
33
  name="title",
34
- type="string",
34
+ input_type="string",
35
35
  description="The title of the pull request to create.",
36
36
  required=False,
37
37
  ),
38
38
  Parameter(
39
39
  name="head",
40
- type="string",
40
+ input_type="string",
41
41
  description="The head branch with your changes",
42
42
  required=False,
43
43
  ),
44
44
  Parameter(
45
45
  name="base",
46
- type="string",
46
+ input_type="string",
47
47
  description="The base branch you're merging into, typically 'main' or 'master'",
48
48
  required=False,
49
49
  ),
50
50
  Parameter(
51
51
  name="body",
52
- type="string",
52
+ input_type="string",
53
53
  description="The description of the pull request to create.",
54
54
  required=False,
55
55
  ),
@@ -1,6 +1,6 @@
1
1
  from github import Github, GithubException
2
2
  from typing import List, Dict, Literal, Any
3
- from swarmauri_core.ComponentBase import ComponentBase
3
+ from swarmauri_base.ComponentBase import ComponentBase
4
4
  from pydantic import Field, ConfigDict
5
5
  from swarmauri_base.tools.ToolBase import ToolBase
6
6
  from swarmauri_standard.tools.Parameter import Parameter
@@ -13,19 +13,19 @@ class GithubRepoTool(ToolBase):
13
13
  default_factory=lambda: [
14
14
  Parameter(
15
15
  name="action",
16
- type="string",
16
+ input_type="string",
17
17
  description="The action to perform on the GitHub API, e.g., 'create_repo', 'delete_repo', 'update_repo', and 'get_repo'",
18
18
  required=True,
19
19
  ),
20
20
  Parameter(
21
21
  name="repo_name",
22
- type="string",
22
+ input_type="string",
23
23
  description="The full name of the repository to interact with, e.g. 'owner/repository'.",
24
24
  required=False,
25
25
  ),
26
26
  Parameter(
27
27
  name="file_path",
28
- type="string",
28
+ input_type="string",
29
29
  description="The path to the file in the repository, e.g. 'path/to/file.txt'.",
30
30
  required=False,
31
31
  ),
@@ -1,15 +1,14 @@
1
1
  from typing import Literal, Optional
2
2
 
3
- from swarmauri_core.ComponentBase import ComponentBase
4
-
3
+ from dotenv import load_dotenv
4
+ from swarmauri_base.ComponentBase import ComponentBase
5
5
  from swarmauri_base.toolkits.ToolkitBase import ToolkitBase
6
- from swarmauri_toolkit_github.GithubRepoTool import GithubRepoTool
7
- from swarmauri_toolkit_github.GithubIssueTool import GithubIssueTool
8
- from swarmauri_toolkit_github.GithubPRTool import GithubPRTool
6
+
9
7
  from swarmauri_toolkit_github.GithubBranchTool import GithubBranchTool
10
8
  from swarmauri_toolkit_github.GithubCommitTool import GithubCommitTool
11
-
12
- from dotenv import load_dotenv
9
+ from swarmauri_toolkit_github.GithubIssueTool import GithubIssueTool
10
+ from swarmauri_toolkit_github.GithubPRTool import GithubPRTool
11
+ from swarmauri_toolkit_github.GithubRepoTool import GithubRepoTool
13
12
 
14
13
  load_dotenv()
15
14
 
@@ -35,7 +34,7 @@ class GithubToolkit(ToolkitBase):
35
34
 
36
35
  self.github_repo_tool = GithubRepoTool(api_token=self.api_token)
37
36
  self.github_issue_tool = GithubIssueTool(api_token=self.api_token)
38
- self.github_pr_tool = GithubPRTool(api_token=self.token)
37
+ self.github_pr_tool = GithubPRTool(api_token=self.api_token)
39
38
  self.github_branch_tool = GithubBranchTool(api_token=self.api_token)
40
39
  self.github_commit_tool = GithubCommitTool(api_token=self.api_token)
41
40