mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-21 00:01:08 +00:00
gitlab_project_variable - use find_project() for graceful error handling (#11878)
* gitlab_project_variable - use find_project() for consistent error handling Replace the bare projects.get() call in GitlabProjectVariables.get_project() with find_project() from module_utils/gitlab, which all other GitLab modules already use. This ensures a graceful fail_json (with a clear error message) when the project is not found, rather than an unhandled GitlabGetError propagating as a module traceback. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * Add changelog fragment for PR 11878 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * minor adjustment in f-string --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
bugfixes:
|
||||
- gitlab_project_variable - use ``find_project()`` from module utils for project lookup, consistent
|
||||
with all other GitLab modules in the collection
|
||||
(https://github.com/ansible-collections/community.general/issues/3157,
|
||||
https://github.com/ansible-collections/community.general/pull/11878).
|
||||
@@ -240,6 +240,7 @@ from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible_collections.community.general.plugins.module_utils.gitlab import (
|
||||
auth_argument_spec,
|
||||
filter_returned_variables,
|
||||
find_project,
|
||||
gitlab_authentication,
|
||||
list_all_kwargs,
|
||||
vars_to_variables,
|
||||
@@ -249,11 +250,14 @@ from ansible_collections.community.general.plugins.module_utils.gitlab import (
|
||||
class GitlabProjectVariables:
|
||||
def __init__(self, module, gitlab_instance):
|
||||
self.repo = gitlab_instance
|
||||
self.project = self.get_project(module.params["project"])
|
||||
self._module = module
|
||||
self.project = self.get_project(module.params["project"])
|
||||
|
||||
def get_project(self, project_name):
|
||||
return self.repo.projects.get(project_name)
|
||||
project = find_project(self.repo, project_name)
|
||||
if project is None:
|
||||
self._module.fail_json(msg=f"Project {project_name} not found or insufficient permissions.")
|
||||
return project
|
||||
|
||||
def list_all_project_variables(self):
|
||||
return list(self.project.variables.list(**list_all_kwargs))
|
||||
|
||||
Reference in New Issue
Block a user