devopsdriver 0.1.49__tar.gz → 0.1.51__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.
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/PKG-INFO +7 -6
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/README.md +2 -2
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/__init__.py +2 -1
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/clients.py +2 -0
- devopsdriver-0.1.51/devopsdriver/github/__init__.py +0 -0
- devopsdriver-0.1.51/devopsdriver/github/client.py +27 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/PKG-INFO +7 -6
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/SOURCES.txt +2 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/requires.txt +3 -2
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/pyproject.toml +4 -2
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_clients.py +2 -1
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/LICENSE +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/__init__.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/azureobject.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/__init__.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/build.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/__init__.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/log.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/pipeline.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/run.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/timestamp.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/__init__.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/wiql.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/dataobject.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/manage_settings.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/sendmail.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/settings.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/template.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/templates/manage_settings.txt.mako +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/dependency_links.txt +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/entry_points.txt +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/top_level.txt +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/setup.cfg +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_azureobject.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_build.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_build_client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline_client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline_run.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_timestamp.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_workitem_client.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_workitem_wiql.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_dataobject.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_manage_settings.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_sendmail.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_settings.py +0 -0
- {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_template.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devopsdriver
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.51
|
|
4
4
|
Summary: DevOps tools
|
|
5
5
|
Author-email: Marc Page <marcallenpage@gmail.com>
|
|
6
6
|
License: This is free and unencumbered software released into the public domain.
|
|
@@ -33,7 +33,7 @@ Project-URL: Documentation, https://github.com/marcpage/devops-driver
|
|
|
33
33
|
Project-URL: Repository, https://github.com/marcpage/devops-driver.git
|
|
34
34
|
Project-URL: Issues, https://github.com/marcpage/devops-driver/issues
|
|
35
35
|
Project-URL: Changelog, https://github.com/marcpage/devops-driver/releases
|
|
36
|
-
Keywords: azure,devops,jira,confluence,email,pipelines,tools
|
|
36
|
+
Keywords: azure,devops,jira,confluence,email,pipelines,tools,github
|
|
37
37
|
Classifier: Development Status :: 1 - Planning
|
|
38
38
|
Classifier: Environment :: Console
|
|
39
39
|
Classifier: Intended Audience :: Developers
|
|
@@ -46,11 +46,12 @@ Classifier: Topic :: Software Development
|
|
|
46
46
|
Requires-Python: >=3.10
|
|
47
47
|
Description-Content-Type: text/markdown
|
|
48
48
|
License-File: LICENSE
|
|
49
|
-
Requires-Dist: PyYAML==6.0.
|
|
49
|
+
Requires-Dist: PyYAML==6.0.3
|
|
50
50
|
Requires-Dist: keyring==25.6.0
|
|
51
|
-
Requires-Dist: setuptools==
|
|
51
|
+
Requires-Dist: setuptools==80.9.0
|
|
52
52
|
Requires-Dist: azure-devops==7.1.0b4
|
|
53
53
|
Requires-Dist: Mako==1.3.10
|
|
54
|
+
Requires-Dist: PyGithub==2.5.0
|
|
54
55
|
Provides-Extra: dev
|
|
55
56
|
Requires-Dist: black>=24.3.0; extra == "dev"
|
|
56
57
|
Requires-Dist: pylint>=3.1.0; extra == "dev"
|
|
@@ -63,7 +64,7 @@ Dynamic: license-file
|
|
|
63
64
|
# devops-driver
|
|
64
65
|
|
|
65
66
|

|
|
66
|
-
[](https://pypi.org/project/devopsdriver/0.1.51/)
|
|
67
68
|
[](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
|
|
68
69
|
[](https://github.com/marcpage/devops-driver/graphs/contributors)
|
|
69
70
|
[](http://makeapullrequest.com)
|
|
@@ -74,7 +75,7 @@ Dynamic: license-file
|
|
|
74
75
|
[](https://github.com/marcpage/devops-driver)
|
|
75
76
|
|
|
76
77
|
[](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
|
|
77
|
-
[](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
|
|
78
79
|
[](https://github.com/marcpage/devops-driver/issues)
|
|
79
80
|
[](https://github.com/marcpage/devops-driver/pulls)
|
|
80
81
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# devops-driver
|
|
2
2
|
|
|
3
3
|

|
|
4
|
-
[](https://pypi.org/project/devopsdriver/0.1.51/)
|
|
5
5
|
[](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
|
|
6
6
|
[](https://github.com/marcpage/devops-driver/graphs/contributors)
|
|
7
7
|
[](http://makeapullrequest.com)
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
[](https://github.com/marcpage/devops-driver)
|
|
13
13
|
|
|
14
14
|
[](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
|
|
15
|
-
[](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
|
|
16
16
|
[](https://github.com/marcpage/devops-driver/issues)
|
|
17
17
|
[](https://github.com/marcpage/devops-driver/pulls)
|
|
18
18
|
|
|
@@ -4,8 +4,9 @@ from .settings import Settings
|
|
|
4
4
|
from .sendmail import send_email
|
|
5
5
|
from .template import Template
|
|
6
6
|
from .azdo.clients import Azure
|
|
7
|
+
from .github.client import Github
|
|
7
8
|
|
|
8
9
|
|
|
9
|
-
__version__ = "0.1.
|
|
10
|
+
__version__ = "0.1.51"
|
|
10
11
|
__author__ = "Marc Page"
|
|
11
12
|
__credits__ = ""
|
|
@@ -53,6 +53,7 @@ class Azure: # pylint: disable=too-few-public-methods,too-many-instance-attribu
|
|
|
53
53
|
"core": self.connection.clients_v7_1.get_core_client,
|
|
54
54
|
"build": self.connection.clients_v7_1.get_build_client,
|
|
55
55
|
"identity": self.connection.clients_v7_1.get_identity_client,
|
|
56
|
+
"graph": self.connection.clients_v7_1.get_graph_client,
|
|
56
57
|
}
|
|
57
58
|
unsupported_clients = set(clients) - set(client_calls)
|
|
58
59
|
assert not unsupported_clients, f"{unsupported_clients} not supported"
|
|
@@ -63,6 +64,7 @@ class Azure: # pylint: disable=too-few-public-methods,too-many-instance-attribu
|
|
|
63
64
|
self.git = Azure._Client(Azure.__client("git", clients, client_calls))
|
|
64
65
|
self.build = BClient(Azure.__client("build", clients, client_calls))
|
|
65
66
|
self.identity = Azure._Client(Azure.__client("identity", clients, client_calls))
|
|
67
|
+
self.graph = Azure._Client(Azure.__client("graph", clients, client_calls))
|
|
66
68
|
|
|
67
69
|
@staticmethod
|
|
68
70
|
def __client(name: str, clients: dict, calls: dict) -> any:
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
"""Manages GitHub connection"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
from github import Github as Github_connection, Auth
|
|
7
|
+
|
|
8
|
+
from devopsdriver.settings import Settings
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Github:
|
|
12
|
+
"""Manages the GitHub connection"""
|
|
13
|
+
|
|
14
|
+
def __init__(self, settings: Settings):
|
|
15
|
+
self.settings: Settings = settings
|
|
16
|
+
self.connection: Github_connection | None = None
|
|
17
|
+
assert settings.get("github.token") is not None, "github.token not set"
|
|
18
|
+
|
|
19
|
+
def __enter__(self) -> Github_connection:
|
|
20
|
+
self.connection = Github_connection(
|
|
21
|
+
auth=Auth.Token(self.settings["github.token"])
|
|
22
|
+
)
|
|
23
|
+
return self.connection
|
|
24
|
+
|
|
25
|
+
def __exit__(self, exception_type, exception_value, exception_traceback):
|
|
26
|
+
if self.connection is not None:
|
|
27
|
+
self.connection.close()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devopsdriver
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.51
|
|
4
4
|
Summary: DevOps tools
|
|
5
5
|
Author-email: Marc Page <marcallenpage@gmail.com>
|
|
6
6
|
License: This is free and unencumbered software released into the public domain.
|
|
@@ -33,7 +33,7 @@ Project-URL: Documentation, https://github.com/marcpage/devops-driver
|
|
|
33
33
|
Project-URL: Repository, https://github.com/marcpage/devops-driver.git
|
|
34
34
|
Project-URL: Issues, https://github.com/marcpage/devops-driver/issues
|
|
35
35
|
Project-URL: Changelog, https://github.com/marcpage/devops-driver/releases
|
|
36
|
-
Keywords: azure,devops,jira,confluence,email,pipelines,tools
|
|
36
|
+
Keywords: azure,devops,jira,confluence,email,pipelines,tools,github
|
|
37
37
|
Classifier: Development Status :: 1 - Planning
|
|
38
38
|
Classifier: Environment :: Console
|
|
39
39
|
Classifier: Intended Audience :: Developers
|
|
@@ -46,11 +46,12 @@ Classifier: Topic :: Software Development
|
|
|
46
46
|
Requires-Python: >=3.10
|
|
47
47
|
Description-Content-Type: text/markdown
|
|
48
48
|
License-File: LICENSE
|
|
49
|
-
Requires-Dist: PyYAML==6.0.
|
|
49
|
+
Requires-Dist: PyYAML==6.0.3
|
|
50
50
|
Requires-Dist: keyring==25.6.0
|
|
51
|
-
Requires-Dist: setuptools==
|
|
51
|
+
Requires-Dist: setuptools==80.9.0
|
|
52
52
|
Requires-Dist: azure-devops==7.1.0b4
|
|
53
53
|
Requires-Dist: Mako==1.3.10
|
|
54
|
+
Requires-Dist: PyGithub==2.5.0
|
|
54
55
|
Provides-Extra: dev
|
|
55
56
|
Requires-Dist: black>=24.3.0; extra == "dev"
|
|
56
57
|
Requires-Dist: pylint>=3.1.0; extra == "dev"
|
|
@@ -63,7 +64,7 @@ Dynamic: license-file
|
|
|
63
64
|
# devops-driver
|
|
64
65
|
|
|
65
66
|

|
|
66
|
-
[](https://pypi.org/project/devopsdriver/0.1.51/)
|
|
67
68
|
[](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
|
|
68
69
|
[](https://github.com/marcpage/devops-driver/graphs/contributors)
|
|
69
70
|
[](http://makeapullrequest.com)
|
|
@@ -74,7 +75,7 @@ Dynamic: license-file
|
|
|
74
75
|
[](https://github.com/marcpage/devops-driver)
|
|
75
76
|
|
|
76
77
|
[](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
|
|
77
|
-
[](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
|
|
78
79
|
[](https://github.com/marcpage/devops-driver/issues)
|
|
79
80
|
[](https://github.com/marcpage/devops-driver/pulls)
|
|
80
81
|
|
|
@@ -28,6 +28,8 @@ devopsdriver/azdo/pipeline/run.py
|
|
|
28
28
|
devopsdriver/azdo/workitem/__init__.py
|
|
29
29
|
devopsdriver/azdo/workitem/client.py
|
|
30
30
|
devopsdriver/azdo/workitem/wiql.py
|
|
31
|
+
devopsdriver/github/__init__.py
|
|
32
|
+
devopsdriver/github/client.py
|
|
31
33
|
devopsdriver/templates/manage_settings.txt.mako
|
|
32
34
|
tests/test_azure_azureobject.py
|
|
33
35
|
tests/test_azure_build.py
|
|
@@ -6,11 +6,12 @@ license = { file = "LICENSE" }
|
|
|
6
6
|
dynamic = ["version"]
|
|
7
7
|
requires-python = ">= 3.10"
|
|
8
8
|
dependencies = [
|
|
9
|
-
"PyYAML==6.0.
|
|
9
|
+
"PyYAML==6.0.3",
|
|
10
10
|
"keyring==25.6.0",
|
|
11
|
-
"setuptools==
|
|
11
|
+
"setuptools==80.9.0", # neded for azure-devops to use 7.1 API
|
|
12
12
|
"azure-devops==7.1.0b4",
|
|
13
13
|
"Mako==1.3.10",
|
|
14
|
+
"PyGithub==2.5.0",
|
|
14
15
|
]
|
|
15
16
|
keywords = [
|
|
16
17
|
"azure",
|
|
@@ -20,6 +21,7 @@ keywords = [
|
|
|
20
21
|
"email",
|
|
21
22
|
"pipelines",
|
|
22
23
|
"tools",
|
|
24
|
+
"github",
|
|
23
25
|
]
|
|
24
26
|
classifiers = [
|
|
25
27
|
"Development Status :: 1 - Planning",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
"""
|
|
4
|
+
"""test azure client logic"""
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
from tempfile import TemporaryDirectory
|
|
@@ -32,6 +32,7 @@ class MockConnection: # pylint: disable=too-few-public-methods
|
|
|
32
32
|
"get_core_client",
|
|
33
33
|
"get_build_client",
|
|
34
34
|
"get_identity_client",
|
|
35
|
+
"get_graph_client",
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
def __getattr__(self, name: str) -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|