summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects/pipelines.py
diff options
context:
space:
mode:
authorJohn L. Villalovos <john@sodarock.com>2021-06-12 15:05:36 -0700
committerJohn L. Villalovos <john@sodarock.com>2021-09-07 08:19:39 -0700
commitc9b5d3bac8f7c1f779dd57653f718dd0fac4db4b (patch)
tree925700991c94a5a71797d6992b97c5b90ed74089 /gitlab/v4/objects/pipelines.py
parentb8a47bae3342400a411fb9bf4bef3c15ba91c98e (diff)
downloadgitlab-c9b5d3bac8f7c1f779dd57653f718dd0fac4db4b.tar.gz
chore: improve type-hinting for managers
The 'managers' are dynamically created. This unfortunately means that we don't have any type-hints for them and so editors which understand type-hints won't know that they are valid attributes. * Add the type-hints for the managers we define. * Add a unit test that makes sure that the type-hints and the '_managers' attribute are kept in sync with each other. * Add unit test that makes sure specified managers in '_managers' have a name ending in 'Managers' to keep with current convention. * Make RESTObject._managers always present with a default value of None. * Fix a type-issue revealed now that mypy knows what the type is
Diffstat (limited to 'gitlab/v4/objects/pipelines.py')
-rw-r--r--gitlab/v4/objects/pipelines.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/gitlab/v4/objects/pipelines.py b/gitlab/v4/objects/pipelines.py
index 5118e78..bf41ce1 100644
--- a/gitlab/v4/objects/pipelines.py
+++ b/gitlab/v4/objects/pipelines.py
@@ -74,11 +74,15 @@ class ProjectMergeRequestPipelineManager(CreateMixin, ListMixin, RESTManager):
class ProjectPipeline(RefreshMixin, ObjectDeleteMixin, RESTObject):
+ bridges: "ProjectPipelineBridgeManager"
+ jobs: "ProjectPipelineJobManager"
+ test_report: "ProjectPipelineTestReportManager"
+ variables: "ProjectPipelineVariableManager"
_managers = (
- ("jobs", "ProjectPipelineJobManager"),
("bridges", "ProjectPipelineBridgeManager"),
- ("variables", "ProjectPipelineVariableManager"),
+ ("jobs", "ProjectPipelineJobManager"),
("test_report", "ProjectPipelineTestReportManager"),
+ ("variables", "ProjectPipelineVariableManager"),
)
@cli.register_custom_action("ProjectPipeline")
@@ -199,6 +203,7 @@ class ProjectPipelineScheduleVariableManager(
class ProjectPipelineSchedule(SaveMixin, ObjectDeleteMixin, RESTObject):
+ variables: ProjectPipelineScheduleVariableManager
_managers = (("variables", "ProjectPipelineScheduleVariableManager"),)
@cli.register_custom_action("ProjectPipelineSchedule")