diff options
author | John L. Villalovos <john@sodarock.com> | 2021-06-12 15:05:36 -0700 |
---|---|---|
committer | John L. Villalovos <john@sodarock.com> | 2021-09-07 08:19:39 -0700 |
commit | c9b5d3bac8f7c1f779dd57653f718dd0fac4db4b (patch) | |
tree | 925700991c94a5a71797d6992b97c5b90ed74089 /gitlab/v4/objects/projects.py | |
parent | b8a47bae3342400a411fb9bf4bef3c15ba91c98e (diff) | |
download | gitlab-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/projects.py')
-rw-r--r-- | gitlab/v4/objects/projects.py | 76 |
1 files changed, 65 insertions, 11 deletions
diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index ee7aca8..71d4564 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -110,29 +110,88 @@ class GroupProjectManager(ListMixin, RESTManager): class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTObject): _short_print_attr = "path" + + access_tokens: ProjectAccessTokenManager + accessrequests: ProjectAccessRequestManager + additionalstatistics: ProjectAdditionalStatisticsManager + approvalrules: ProjectApprovalRuleManager + approvals: ProjectApprovalManager + audit_events: ProjectAuditEventManager + badges: ProjectBadgeManager + boards: ProjectBoardManager + branches: ProjectBranchManager + clusters: ProjectClusterManager + commits: ProjectCommitManager + customattributes: ProjectCustomAttributeManager + deployments: ProjectDeploymentManager + deploytokens: ProjectDeployTokenManager + environments: ProjectEnvironmentManager + events: ProjectEventManager + exports: ProjectExportManager + files: ProjectFileManager + forks: "ProjectForkManager" + generic_packages: GenericPackageManager + hooks: ProjectHookManager + imports: ProjectImportManager + issues: ProjectIssueManager + issues_statistics: ProjectIssuesStatisticsManager + issuesstatistics: ProjectIssuesStatisticsManager + jobs: ProjectJobManager + keys: ProjectKeyManager + labels: ProjectLabelManager + members: ProjectMemberManager + members_all: ProjectMemberAllManager + mergerequests: ProjectMergeRequestManager + milestones: ProjectMilestoneManager + notes: ProjectNoteManager + notificationsettings: ProjectNotificationSettingsManager + packages: ProjectPackageManager + pagesdomains: ProjectPagesDomainManager + pipelines: ProjectPipelineManager + pipelineschedules: ProjectPipelineScheduleManager + protectedbranches: ProjectProtectedBranchManager + protectedtags: ProjectProtectedTagManager + pushrules: ProjectPushRulesManager + releases: ProjectReleaseManager + remote_mirrors: "ProjectRemoteMirrorManager" + repositories: ProjectRegistryRepositoryManager + runners: ProjectRunnerManager + services: ProjectServiceManager + snippets: ProjectSnippetManager + tags: ProjectTagManager + triggers: ProjectTriggerManager + users: ProjectUserManager + variables: ProjectVariableManager + wikis: ProjectWikiManager + _managers = ( ("access_tokens", "ProjectAccessTokenManager"), ("accessrequests", "ProjectAccessRequestManager"), - ("approvals", "ProjectApprovalManager"), + ("additionalstatistics", "ProjectAdditionalStatisticsManager"), ("approvalrules", "ProjectApprovalRuleManager"), + ("approvals", "ProjectApprovalManager"), + ("audit_events", "ProjectAuditEventManager"), ("badges", "ProjectBadgeManager"), ("boards", "ProjectBoardManager"), ("branches", "ProjectBranchManager"), - ("jobs", "ProjectJobManager"), + ("clusters", "ProjectClusterManager"), ("commits", "ProjectCommitManager"), ("customattributes", "ProjectCustomAttributeManager"), ("deployments", "ProjectDeploymentManager"), + ("deploytokens", "ProjectDeployTokenManager"), ("environments", "ProjectEnvironmentManager"), ("events", "ProjectEventManager"), - ("audit_events", "ProjectAuditEventManager"), ("exports", "ProjectExportManager"), ("files", "ProjectFileManager"), ("forks", "ProjectForkManager"), ("generic_packages", "GenericPackageManager"), ("hooks", "ProjectHookManager"), - ("keys", "ProjectKeyManager"), ("imports", "ProjectImportManager"), ("issues", "ProjectIssueManager"), + ("issues_statistics", "ProjectIssuesStatisticsManager"), + ("issuesstatistics", "ProjectIssuesStatisticsManager"), # Deprecated + ("jobs", "ProjectJobManager"), + ("keys", "ProjectKeyManager"), ("labels", "ProjectLabelManager"), ("members", "ProjectMemberManager"), ("members_all", "ProjectMemberAllManager"), @@ -143,9 +202,9 @@ class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTO ("packages", "ProjectPackageManager"), ("pagesdomains", "ProjectPagesDomainManager"), ("pipelines", "ProjectPipelineManager"), + ("pipelineschedules", "ProjectPipelineScheduleManager"), ("protectedbranches", "ProjectProtectedBranchManager"), ("protectedtags", "ProjectProtectedTagManager"), - ("pipelineschedules", "ProjectPipelineScheduleManager"), ("pushrules", "ProjectPushRulesManager"), ("releases", "ProjectReleaseManager"), ("remote_mirrors", "ProjectRemoteMirrorManager"), @@ -154,15 +213,10 @@ class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTO ("services", "ProjectServiceManager"), ("snippets", "ProjectSnippetManager"), ("tags", "ProjectTagManager"), - ("users", "ProjectUserManager"), ("triggers", "ProjectTriggerManager"), + ("users", "ProjectUserManager"), ("variables", "ProjectVariableManager"), ("wikis", "ProjectWikiManager"), - ("clusters", "ProjectClusterManager"), - ("additionalstatistics", "ProjectAdditionalStatisticsManager"), - ("issues_statistics", "ProjectIssuesStatisticsManager"), - ("issuesstatistics", "ProjectIssuesStatisticsManager"), # Deprecated - ("deploytokens", "ProjectDeployTokenManager"), ) @cli.register_custom_action("Project", ("forked_from_id",)) |