week06
This commit is contained in:
295
env/lib/python3.12/site-packages/gitlab/v4/objects/integrations.py
vendored
Normal file
295
env/lib/python3.12/site-packages/gitlab/v4/objects/integrations.py
vendored
Normal file
@ -0,0 +1,295 @@
|
||||
"""
|
||||
GitLab API:
|
||||
https://docs.gitlab.com/ee/api/integrations.html
|
||||
"""
|
||||
|
||||
from typing import Any, cast, List, Union
|
||||
|
||||
from gitlab import cli
|
||||
from gitlab.base import RESTManager, RESTObject
|
||||
from gitlab.mixins import (
|
||||
DeleteMixin,
|
||||
GetMixin,
|
||||
ListMixin,
|
||||
ObjectDeleteMixin,
|
||||
SaveMixin,
|
||||
UpdateMixin,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"ProjectIntegration",
|
||||
"ProjectIntegrationManager",
|
||||
"ProjectService",
|
||||
"ProjectServiceManager",
|
||||
]
|
||||
|
||||
|
||||
class ProjectIntegration(SaveMixin, ObjectDeleteMixin, RESTObject):
|
||||
_id_attr = "slug"
|
||||
|
||||
|
||||
class ProjectIntegrationManager(
|
||||
GetMixin, UpdateMixin, DeleteMixin, ListMixin, RESTManager
|
||||
):
|
||||
_path = "/projects/{project_id}/integrations"
|
||||
_from_parent_attrs = {"project_id": "id"}
|
||||
_obj_cls = ProjectIntegration
|
||||
|
||||
_service_attrs = {
|
||||
"asana": (("api_key",), ("restrict_to_branch", "push_events")),
|
||||
"assembla": (("token",), ("subdomain", "push_events")),
|
||||
"bamboo": (
|
||||
("bamboo_url", "build_key", "username", "password"),
|
||||
("push_events",),
|
||||
),
|
||||
"bugzilla": (
|
||||
("new_issue_url", "issues_url", "project_url"),
|
||||
("description", "title", "push_events"),
|
||||
),
|
||||
"buildkite": (
|
||||
("token", "project_url"),
|
||||
("enable_ssl_verification", "push_events"),
|
||||
),
|
||||
"campfire": (("token",), ("subdomain", "room", "push_events")),
|
||||
"circuit": (
|
||||
("webhook",),
|
||||
(
|
||||
"notify_only_broken_pipelines",
|
||||
"branches_to_be_notified",
|
||||
"push_events",
|
||||
"issues_events",
|
||||
"confidential_issues_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
"note_events",
|
||||
"confidential_note_events",
|
||||
"pipeline_events",
|
||||
"wiki_page_events",
|
||||
),
|
||||
),
|
||||
"custom-issue-tracker": (
|
||||
("new_issue_url", "issues_url", "project_url"),
|
||||
("description", "title", "push_events"),
|
||||
),
|
||||
"drone-ci": (
|
||||
("token", "drone_url"),
|
||||
(
|
||||
"enable_ssl_verification",
|
||||
"push_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
),
|
||||
),
|
||||
"emails-on-push": (
|
||||
("recipients",),
|
||||
(
|
||||
"disable_diffs",
|
||||
"send_from_committer_email",
|
||||
"push_events",
|
||||
"tag_push_events",
|
||||
"branches_to_be_notified",
|
||||
),
|
||||
),
|
||||
"pipelines-email": (
|
||||
("recipients",),
|
||||
(
|
||||
"add_pusher",
|
||||
"notify_only_broken_builds",
|
||||
"branches_to_be_notified",
|
||||
"notify_only_default_branch",
|
||||
"pipeline_events",
|
||||
),
|
||||
),
|
||||
"external-wiki": (("external_wiki_url",), ()),
|
||||
"flowdock": (("token",), ("push_events",)),
|
||||
"github": (("token", "repository_url"), ("static_context",)),
|
||||
"hangouts-chat": (
|
||||
("webhook",),
|
||||
(
|
||||
"notify_only_broken_pipelines",
|
||||
"notify_only_default_branch",
|
||||
"branches_to_be_notified",
|
||||
"push_events",
|
||||
"issues_events",
|
||||
"confidential_issues_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
"note_events",
|
||||
"confidential_note_events",
|
||||
"pipeline_events",
|
||||
"wiki_page_events",
|
||||
),
|
||||
),
|
||||
"hipchat": (
|
||||
("token",),
|
||||
(
|
||||
"color",
|
||||
"notify",
|
||||
"room",
|
||||
"api_version",
|
||||
"server",
|
||||
"push_events",
|
||||
"issues_events",
|
||||
"confidential_issues_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
"note_events",
|
||||
"confidential_note_events",
|
||||
"pipeline_events",
|
||||
),
|
||||
),
|
||||
"irker": (
|
||||
("recipients",),
|
||||
(
|
||||
"default_irc_uri",
|
||||
"server_port",
|
||||
"server_host",
|
||||
"colorize_messages",
|
||||
"push_events",
|
||||
),
|
||||
),
|
||||
"jira": (
|
||||
(
|
||||
"url",
|
||||
"username",
|
||||
"password",
|
||||
),
|
||||
(
|
||||
"api_url",
|
||||
"active",
|
||||
"jira_issue_transition_id",
|
||||
"commit_events",
|
||||
"merge_requests_events",
|
||||
"comment_on_event_enabled",
|
||||
),
|
||||
),
|
||||
"slack-slash-commands": (("token",), ()),
|
||||
"mattermost-slash-commands": (("token",), ("username",)),
|
||||
"packagist": (
|
||||
("username", "token"),
|
||||
("server", "push_events", "merge_requests_events", "tag_push_events"),
|
||||
),
|
||||
"mattermost": (
|
||||
("webhook",),
|
||||
(
|
||||
"username",
|
||||
"channel",
|
||||
"notify_only_broken_pipelines",
|
||||
"notify_only_default_branch",
|
||||
"branches_to_be_notified",
|
||||
"push_events",
|
||||
"issues_events",
|
||||
"confidential_issues_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
"note_events",
|
||||
"confidential_note_events",
|
||||
"pipeline_events",
|
||||
"wiki_page_events",
|
||||
"push_channel",
|
||||
"issue_channel",
|
||||
"confidential_issue_channel",
|
||||
"merge_request_channel",
|
||||
"note_channel",
|
||||
"confidential_note_channel",
|
||||
"tag_push_channel",
|
||||
"pipeline_channel",
|
||||
"wiki_page_channel",
|
||||
),
|
||||
),
|
||||
"pivotaltracker": (("token",), ("restrict_to_branch", "push_events")),
|
||||
"prometheus": (("api_url",), ()),
|
||||
"pushover": (
|
||||
("api_key", "user_key", "priority"),
|
||||
("device", "sound", "push_events"),
|
||||
),
|
||||
"redmine": (
|
||||
("new_issue_url", "project_url", "issues_url"),
|
||||
("description", "push_events"),
|
||||
),
|
||||
"slack": (
|
||||
("webhook",),
|
||||
(
|
||||
"username",
|
||||
"channel",
|
||||
"notify_only_broken_pipelines",
|
||||
"notify_only_default_branch",
|
||||
"branches_to_be_notified",
|
||||
"commit_events",
|
||||
"confidential_issue_channel",
|
||||
"confidential_issues_events",
|
||||
"confidential_note_channel",
|
||||
"confidential_note_events",
|
||||
"deployment_channel",
|
||||
"deployment_events",
|
||||
"issue_channel",
|
||||
"issues_events",
|
||||
"job_events",
|
||||
"merge_request_channel",
|
||||
"merge_requests_events",
|
||||
"note_channel",
|
||||
"note_events",
|
||||
"pipeline_channel",
|
||||
"pipeline_events",
|
||||
"push_channel",
|
||||
"push_events",
|
||||
"tag_push_channel",
|
||||
"tag_push_events",
|
||||
"wiki_page_channel",
|
||||
"wiki_page_events",
|
||||
),
|
||||
),
|
||||
"microsoft-teams": (
|
||||
("webhook",),
|
||||
(
|
||||
"notify_only_broken_pipelines",
|
||||
"notify_only_default_branch",
|
||||
"branches_to_be_notified",
|
||||
"push_events",
|
||||
"issues_events",
|
||||
"confidential_issues_events",
|
||||
"merge_requests_events",
|
||||
"tag_push_events",
|
||||
"note_events",
|
||||
"confidential_note_events",
|
||||
"pipeline_events",
|
||||
"wiki_page_events",
|
||||
),
|
||||
),
|
||||
"teamcity": (
|
||||
("teamcity_url", "build_type", "username", "password"),
|
||||
("push_events",),
|
||||
),
|
||||
"jenkins": (("jenkins_url", "project_name"), ("username", "password")),
|
||||
"mock-ci": (("mock_service_url",), ()),
|
||||
"youtrack": (("issues_url", "project_url"), ("description", "push_events")),
|
||||
}
|
||||
|
||||
def get(
|
||||
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
|
||||
) -> ProjectIntegration:
|
||||
return cast(ProjectIntegration, super().get(id=id, lazy=lazy, **kwargs))
|
||||
|
||||
@cli.register_custom_action(
|
||||
cls_names=("ProjectIntegrationManager", "ProjectServiceManager")
|
||||
)
|
||||
def available(self) -> List[str]:
|
||||
"""List the services known by python-gitlab.
|
||||
|
||||
Returns:
|
||||
The list of service code names.
|
||||
"""
|
||||
return list(self._service_attrs.keys())
|
||||
|
||||
|
||||
class ProjectService(ProjectIntegration):
|
||||
pass
|
||||
|
||||
|
||||
class ProjectServiceManager(ProjectIntegrationManager):
|
||||
_obj_cls = ProjectService
|
||||
|
||||
def get(
|
||||
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
|
||||
) -> ProjectService:
|
||||
return cast(ProjectService, super().get(id=id, lazy=lazy, **kwargs))
|
Reference in New Issue
Block a user