Source code for gerrit.projects.webhooks

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Jialiang Shi
from gerrit.utils.gerritbase import GerritBase


[docs] class GerritProjectWebHook(GerritBase): def __init__(self, name: str, project: str, gerrit): self.name = name self.project = project self.gerrit = gerrit self.endpoint = ( f"/config/server/webhooks~projects/{self.project}/remotes/{self.name}" ) super().__init__(self) def __str__(self): return self.name
[docs] def delete(self): """ Delete a webhook for a project. :return: """ self.gerrit.delete(self.endpoint)
[docs] class GerritProjectWebHooks: def __init__(self, project, gerrit): self.project = project self.gerrit = gerrit self.endpoint = f"/config/server/webhooks~projects/{self.project}/remotes"
[docs] def list(self): """ List existing webhooks for a project. :return: """ result = self.gerrit.get(self.endpoint + "/") return result
[docs] def create(self, name, input_): """ Create or update a webhook for a project. .. code-block:: python input_ = { "url": "https://foo.org/gerrit-events", "maxTries": "3", "sslVerify": "true" } project = client.projects.get('myproject') new_webhook = project.webhooks.create('test', input_) :param name: the webhook name :param input_: the RemoteInfo entity :return: """ result = self.gerrit.put( self.endpoint + f"/{name}", json=input_, headers=self.gerrit.default_headers ) return result
[docs] def get(self, name): """ Get information about one webhook. :param name: the webhook name :return: """ result = self.gerrit.get(self.endpoint + f"/{name}") name = result.get("name") return GerritProjectWebHook(name=name, project=self.project, gerrit=self.gerrit)
[docs] def delete(self, name): """ Delete a webhook for a project. :param name: the webhook name :return: """ self.gerrit.delete(self.endpoint + f"/{name}")