diff --git a/recipes/README.recipes.md b/recipes/README.recipes.md index 9687841df..892af34a3 100644 --- a/recipes/README.recipes.md +++ b/recipes/README.recipes.md @@ -255,7 +255,7 @@ Module for interact with Gerrit endpoints Wrapper for easy calling of gerrit_utils steps. -— **def [abandon\_change](/recipes/recipe_modules/gerrit/api.py#257)(self, host, change, message=None, name=None, step_test_data=None):** +— **def [abandon\_change](/recipes/recipe_modules/gerrit/api.py#260)(self, host, change, message=None, name=None, step_test_data=None):** — **def [call\_raw\_api](/recipes/recipe_modules/gerrit/api.py#31)(self, host, path, method=None, body=None, accept_statuses=None, name=None, \*\*kwargs):** @@ -271,14 +271,14 @@ Creates a new branch from given project and commit Returns: The ref of the branch created -— **def [create\_gerrit\_tag](/recipes/recipe_modules/gerrit/api.py#79)(self, host, project, tag, commit, \*\*kwargs):** +— **def [create\_gerrit\_tag](/recipes/recipe_modules/gerrit/api.py#82)(self, host, project, tag, commit, \*\*kwargs):** Creates a new tag at the given commit. Returns: The ref of the tag created. -— **def [get\_change\_description](/recipes/recipe_modules/gerrit/api.py#118)(self, host, change, patchset, timeout=None, step_test_data=None):** +— **def [get\_change\_description](/recipes/recipe_modules/gerrit/api.py#121)(self, host, change, patchset, timeout=None, step_test_data=None):** Gets the description for a given CL and patchset. @@ -290,7 +290,7 @@ Args: Returns: The description corresponding to given CL and patchset. -— **def [get\_changes](/recipes/recipe_modules/gerrit/api.py#178)(self, host, query_params, start=None, limit=None, o_params=None, step_test_data=None, \*\*kwargs):** +— **def [get\_changes](/recipes/recipe_modules/gerrit/api.py#181)(self, host, query_params, start=None, limit=None, o_params=None, step_test_data=None, \*\*kwargs):** Queries changes for the given host. @@ -309,14 +309,14 @@ Returns: A list of change dicts as documented here: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-changes -— **def [get\_gerrit\_branch](/recipes/recipe_modules/gerrit/api.py#100)(self, host, project, branch, \*\*kwargs):** +— **def [get\_gerrit\_branch](/recipes/recipe_modules/gerrit/api.py#103)(self, host, project, branch, \*\*kwargs):** Gets a branch from given project and commit Returns: The revision of the branch -— **def [get\_related\_changes](/recipes/recipe_modules/gerrit/api.py#221)(self, host, change, revision='current', step_test_data=None):** +— **def [get\_related\_changes](/recipes/recipe_modules/gerrit/api.py#224)(self, host, change, revision='current', step_test_data=None):** Queries related changes for a given host, change, and revision. @@ -335,7 +335,7 @@ Returns: A related changes dictionary as documented here: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#related-changes-info -— **def [get\_revision\_info](/recipes/recipe_modules/gerrit/api.py#137)(self, host, change, patchset, timeout=None, step_test_data=None):** +— **def [get\_revision\_info](/recipes/recipe_modules/gerrit/api.py#140)(self, host, change, patchset, timeout=None, step_test_data=None):** Returns the info for a given patchset of a given change. @@ -348,11 +348,11 @@ Returns: A dict for the target revision as documented here: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-changes -— **def [move\_changes](/recipes/recipe_modules/gerrit/api.py#295)(self, host, project, from_branch, to_branch, step_test_data=None):** +— **def [move\_changes](/recipes/recipe_modules/gerrit/api.py#298)(self, host, project, from_branch, to_branch, step_test_data=None):** -— **def [set\_change\_label](/recipes/recipe_modules/gerrit/api.py#277)(self, host, change, label_name, label_value, name=None, step_test_data=None):** +— **def [set\_change\_label](/recipes/recipe_modules/gerrit/api.py#280)(self, host, change, label_name, label_value, name=None, step_test_data=None):** -— **def [update\_files](/recipes/recipe_modules/gerrit/api.py#319)(self, host, project, branch, new_contents_by_file_path, commit_msg, params=frozenset(['status=NEW']), cc_list=frozenset([]), submit=False, submit_later=False, step_test_data_create_change=None, step_test_data_submit_change=None):** +— **def [update\_files](/recipes/recipe_modules/gerrit/api.py#322)(self, host, project, branch, new_contents_by_file_path, commit_msg, params=frozenset(['status=NEW']), cc_list=frozenset([]), submit=False, submit_later=False, step_test_data_create_change=None, step_test_data_submit_change=None):** Update a set of files by creating and submitting a Gerrit CL. diff --git a/recipes/recipe_modules/gerrit/api.py b/recipes/recipe_modules/gerrit/api.py index 95f67c514..11764a570 100644 --- a/recipes/recipe_modules/gerrit/api.py +++ b/recipes/recipe_modules/gerrit/api.py @@ -71,6 +71,9 @@ class GerritApi(recipe_api.RecipeApi): '--commit', commit, '--json_file', self.m.json.output() ] + allow_existent_branch = kwargs.pop('allow_existent_branch', False) + if allow_existent_branch: + args.append('--allow-existent-branch') step_name = 'create_gerrit_branch (%s %s)' % (project, branch) step_result = self(step_name, args, **kwargs) ref = step_result.json.output.get('ref') diff --git a/recipes/recipe_modules/gerrit/examples/full.expected/basic.json b/recipes/recipe_modules/gerrit/examples/full.expected/basic.json index d429d9e39..ed2d3588e 100644 --- a/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +++ b/recipes/recipe_modules/gerrit/examples/full.expected/basic.json @@ -13,7 +13,8 @@ "--commit", "67ebf73496383c6777035e374d2d664009e2aa5c", "--json_file", - "/path/to/tmp/json" + "/path/to/tmp/json", + "--allow-existent-branch" ], "env": { "PATH": ":RECIPE_REPO[depot_tools]" diff --git a/recipes/recipe_modules/gerrit/examples/full.py b/recipes/recipe_modules/gerrit/examples/full.py index bc1519b87..f297c67b0 100644 --- a/recipes/recipe_modules/gerrit/examples/full.py +++ b/recipes/recipe_modules/gerrit/examples/full.py @@ -17,7 +17,11 @@ def RunSteps(api): branch = 'test' commit = '67ebf73496383c6777035e374d2d664009e2aa5c' - data = api.gerrit.create_gerrit_branch(host, project, branch, commit) + data = api.gerrit.create_gerrit_branch(host, + project, + branch, + commit, + allow_existent_branch=True) assert data == 'refs/heads/test' data = api.gerrit.get_gerrit_branch(host, project, 'main')