Source code for gerrit.changes.changes

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Jialiang Shi
from gerrit.changes.change import GerritChange


[docs] class GerritChanges(object): def __init__(self, gerrit): self.gerrit = gerrit self.endpoint = "/changes"
[docs] def search(self, query, options=None, limit=25, skip=0): """ Queries changes visible to the caller. .. code-block:: python query = "is:open+owner:self+is:mergeable" result = client.changes.search(query=query, options=["LABELS"]) :param query: Query string, it can contain multiple search operators concatenated by '+' character :param options: List of options to fetch additional data about changes :param limit: Int value that allows to limit the number of changes to be included in the output results :param skip: Int value that allows to skip the given number of changes from the beginning of the list :return: """ params = { k: v for k, v in (("o", options), ("n", limit), ("S", skip)) if v is not None } return self.gerrit.get(self.endpoint + f"/?q={query}", params=params)
[docs] def get(self, id_, detailed=False, options=None): """ Retrieves a change. :param id_: change id :param detailed: boolean value, if True then retrieve a change with labels, detailed labels, detailed accounts, reviewer updates, and messages. :param options: List of options to fetch additional data about a change :return: """ endpoint = self.endpoint + f"/{id_}/" if detailed: endpoint += "detail" result = self.gerrit.get(endpoint, params={"o": options}) return GerritChange(json=result, gerrit=self.gerrit)
[docs] def create(self, input_): """ create a change .. code-block:: python input_ = { "project": "myProject", "subject": "Let's support 100% Gerrit workflow direct in browser", "branch": "stable", "topic": "create-change-in-browser", "status": "NEW" } result = client.changes.create(input_) :param input_: the ChangeInput entity, https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-input :return: """ result = self.gerrit.post( self.endpoint + "/", json=input_, headers=self.gerrit.default_headers ) return GerritChange(json=result, gerrit=self.gerrit)
[docs] def delete(self, id_): """ Deletes a change. :param id_: change id :return: """ self.gerrit.delete(self.endpoint + f"/{id_}")