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.
Files changed (50) hide show
  1. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/PKG-INFO +7 -6
  2. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/README.md +2 -2
  3. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/__init__.py +2 -1
  4. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/clients.py +2 -0
  5. devopsdriver-0.1.51/devopsdriver/github/__init__.py +0 -0
  6. devopsdriver-0.1.51/devopsdriver/github/client.py +27 -0
  7. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/PKG-INFO +7 -6
  8. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/SOURCES.txt +2 -0
  9. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/requires.txt +3 -2
  10. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/pyproject.toml +4 -2
  11. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_clients.py +2 -1
  12. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/LICENSE +0 -0
  13. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/__init__.py +0 -0
  14. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/azureobject.py +0 -0
  15. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/__init__.py +0 -0
  16. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/build.py +0 -0
  17. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/builds/client.py +0 -0
  18. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/__init__.py +0 -0
  19. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/client.py +0 -0
  20. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/log.py +0 -0
  21. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/pipeline.py +0 -0
  22. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/pipeline/run.py +0 -0
  23. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/timestamp.py +0 -0
  24. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/__init__.py +0 -0
  25. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/client.py +0 -0
  26. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/azdo/workitem/wiql.py +0 -0
  27. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/dataobject.py +0 -0
  28. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/manage_settings.py +0 -0
  29. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/sendmail.py +0 -0
  30. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/settings.py +0 -0
  31. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/template.py +0 -0
  32. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver/templates/manage_settings.txt.mako +0 -0
  33. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/dependency_links.txt +0 -0
  34. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/entry_points.txt +0 -0
  35. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/devopsdriver.egg-info/top_level.txt +0 -0
  36. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/setup.cfg +0 -0
  37. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_azureobject.py +0 -0
  38. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_build.py +0 -0
  39. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_build_client.py +0 -0
  40. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline.py +0 -0
  41. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline_client.py +0 -0
  42. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_pipeline_run.py +0 -0
  43. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_timestamp.py +0 -0
  44. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_workitem_client.py +0 -0
  45. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_azure_workitem_wiql.py +0 -0
  46. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_dataobject.py +0 -0
  47. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_manage_settings.py +0 -0
  48. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_sendmail.py +0 -0
  49. {devopsdriver-0.1.49 → devopsdriver-0.1.51}/tests/test_settings.py +0 -0
  50. {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.49
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.2
49
+ Requires-Dist: PyYAML==6.0.3
50
50
  Requires-Dist: keyring==25.6.0
51
- Requires-Dist: setuptools==75.8.0
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
  ![status sheild](https://img.shields.io/static/v1?label=status&message=beta&color=blue&style=plastic)
66
- [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.49&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.49/)
67
+ [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.51&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.51/)
67
68
  [![GitHub](https://img.shields.io/github/license/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
68
69
  [![GitHub contributors](https://img.shields.io/github/contributors/marcpage/devops-driver?style=flat)](https://github.com/marcpage/devops-driver/graphs/contributors)
69
70
  [![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
@@ -74,7 +75,7 @@ Dynamic: license-file
74
75
  [![size sheild](https://img.shields.io/github/languages/code-size/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver)
75
76
 
76
77
  [![example workflow](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml/badge.svg)](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
77
- [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=99%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
78
+ [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=98%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
78
79
  [![issues sheild](https://img.shields.io/github/issues-raw/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver/issues)
79
80
  [![GitHub pull requests](https://img.shields.io/github/issues-pr/marcpage/devops-driver?style=flat)](https://github.com/marcpage/devops-driver/pulls)
80
81
 
@@ -1,7 +1,7 @@
1
1
  # devops-driver
2
2
 
3
3
  ![status sheild](https://img.shields.io/static/v1?label=status&message=beta&color=blue&style=plastic)
4
- [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.49&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.49/)
4
+ [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.51&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.51/)
5
5
  [![GitHub](https://img.shields.io/github/license/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
6
6
  [![GitHub contributors](https://img.shields.io/github/contributors/marcpage/devops-driver?style=flat)](https://github.com/marcpage/devops-driver/graphs/contributors)
7
7
  [![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
@@ -12,7 +12,7 @@
12
12
  [![size sheild](https://img.shields.io/github/languages/code-size/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver)
13
13
 
14
14
  [![example workflow](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml/badge.svg)](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
15
- [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=99%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
15
+ [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=98%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
16
16
  [![issues sheild](https://img.shields.io/github/issues-raw/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver/issues)
17
17
  [![GitHub pull requests](https://img.shields.io/github/issues-pr/marcpage/devops-driver?style=flat)](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.49"
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.49
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.2
49
+ Requires-Dist: PyYAML==6.0.3
50
50
  Requires-Dist: keyring==25.6.0
51
- Requires-Dist: setuptools==75.8.0
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
  ![status sheild](https://img.shields.io/static/v1?label=status&message=beta&color=blue&style=plastic)
66
- [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.49&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.49/)
67
+ [![status sheild](https://img.shields.io/static/v1?label=released&message=v0.1.51&color=active&style=plastic)](https://pypi.org/project/devopsdriver/0.1.51/)
67
68
  [![GitHub](https://img.shields.io/github/license/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver?tab=Unlicense-1-ov-file#readme)
68
69
  [![GitHub contributors](https://img.shields.io/github/contributors/marcpage/devops-driver?style=flat)](https://github.com/marcpage/devops-driver/graphs/contributors)
69
70
  [![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
@@ -74,7 +75,7 @@ Dynamic: license-file
74
75
  [![size sheild](https://img.shields.io/github/languages/code-size/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver)
75
76
 
76
77
  [![example workflow](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml/badge.svg)](https://github.com/marcpage/devops-driver/actions/workflows/pr.yml)
77
- [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=99%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
78
+ [![status sheild](https://img.shields.io/static/v1?label=test+coverage&message=98%&color=active&style=plastic)](https://github.com/marcpage/devops-driver/blob/main/Makefile#L4)
78
79
  [![issues sheild](https://img.shields.io/github/issues-raw/marcpage/devops-driver?style=plastic)](https://github.com/marcpage/devops-driver/issues)
79
80
  [![GitHub pull requests](https://img.shields.io/github/issues-pr/marcpage/devops-driver?style=flat)](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
@@ -1,8 +1,9 @@
1
- PyYAML==6.0.2
1
+ PyYAML==6.0.3
2
2
  keyring==25.6.0
3
- setuptools==75.8.0
3
+ setuptools==80.9.0
4
4
  azure-devops==7.1.0b4
5
5
  Mako==1.3.10
6
+ PyGithub==2.5.0
6
7
 
7
8
  [dev]
8
9
  black>=24.3.0
@@ -6,11 +6,12 @@ license = { file = "LICENSE" }
6
6
  dynamic = ["version"]
7
7
  requires-python = ">= 3.10"
8
8
  dependencies = [
9
- "PyYAML==6.0.2",
9
+ "PyYAML==6.0.3",
10
10
  "keyring==25.6.0",
11
- "setuptools==75.8.0", # neded for azure-devops to use 7.1 API
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
- """ test azure client logic """
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