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 = gerrit.changes.create(input_) :param input_: the ChangeInput entity, https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-input :return: """ endpoint = "/changes/" base_url = self.gerrit.get_endpoint_url(endpoint) response = self.gerrit.requester.post( base_url, json=input_, headers=self.gerrit.default_headers ) result = self.gerrit.decode_response(response) return GerritChange.parse(result, gerrit=self.gerrit)
def create_change(self, input_): """ Create Change for review. support this method since v3.3.0 .. code-block:: python input_ = { "subject": "Let's support 100% Gerrit workflow direct in browser", "branch": "stable", "topic": "create-change-in-browser", "status": "NEW" } project = gerrit.projects.get('myproject') result = project.create_change(input_) :param input_: :return: """ version = self.gerrit.version if parse(version) < parse("3.3.0"): raise UnsupportMethod("The server does not support this method") endpoint = "/projects/%s/create.change" % self.id base_url = self.gerrit.get_endpoint_url(endpoint) response = self.gerrit.requester.post( base_url, json=input_, headers=self.gerrit.default_headers) result = self.gerrit.decode_response(response) return GerritChange.parse(result, gerrit=self.gerrit)
def search(self, query): """ Queries changes visible to the caller. :return: """ endpoint = "/changes/?%s" % query response = self.gerrit.requester.get(self.gerrit.get_endpoint_url(endpoint)) result = self.gerrit.decode_response(response) return GerritChange.parse_list(result, gerrit=self.gerrit)
def get(self, id_): """ Retrieves a change. :param id_: change id :return: """ endpoint = "/changes/%s" % id_ response = self.gerrit.requester.get(self.gerrit.get_endpoint_url(endpoint)) result = self.gerrit.decode_response(response) return GerritChange.parse(result, gerrit=self.gerrit)
def create_access_rights_change(self, input_): """ Sets access rights for the project using the diff schema provided by ProjectAccessInput This takes the same input as Update Access Rights, but creates a pending change for review. Like Create Change, it returns a ChangeInfo entity describing the resulting change. https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#create-access-change :param input_: the ProjectAccessInput entity, https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#project-access-input :return: """ endpoint = "/projects/%s/access:review" % self.id base_url = self.gerrit.get_endpoint_url(endpoint) response = self.gerrit.requester.put( base_url, json=input_, headers=self.gerrit.default_headers) result = self.gerrit.decode_response(response) return GerritChange.parse(result, gerrit=self.gerrit)