diff options
author | Ben Hutchings <ben.hutchings@codethink.co.uk> | 2020-05-15 14:26:15 +0100 |
---|---|---|
committer | Ben Hutchings <ben.hutchings@codethink.co.uk> | 2020-06-01 17:13:19 +0100 |
commit | b8d097d9c8a45b9e862cad2f24a63282943b75a7 (patch) | |
tree | acf421d363d11ce14e90d3e60d98314cceaad14a /lorrycontroller | |
parent | a096f26c5359de75e9999dbbbafc0281e2b15549 (diff) | |
download | lorry-controller-b8d097d9c8a45b9e862cad2f24a63282943b75a7.tar.gz |
GerritDownstream: Pass default branch and description to create-project
Lorry's account on Gerrit might not be permitted to change these
attributes later, so include them in the create-project command.
Closes #7.
Diffstat (limited to 'lorrycontroller')
-rw-r--r-- | lorrycontroller/gerrit.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/lorrycontroller/gerrit.py b/lorrycontroller/gerrit.py index 475ef08..629d00d 100644 --- a/lorrycontroller/gerrit.py +++ b/lorrycontroller/gerrit.py @@ -74,20 +74,24 @@ class GerritDownstream(hosts.DownstreamHost): if self._has_project(name): logging.info('Project %s exists in local Gerrit already.', name) - else: - self._ssh_command.run(['gerrit', 'create-project', - '-p', self._parent_project, - name]) - logging.info('Created %s project in local Gerrit.', name) - # We can only set this metadata if we're the owner of the - # repository. For now, ignore failures. - try: + # We can only set this metadata if we're the owner of the + # repository. For now, ignore failures. + try: + if 'head' in metadata: + self._ssh_command.run(['gerrit', 'set-head', name, + '--new-head', metadata['head']]) + if 'description' in metadata: + self._ssh_command.run(['gerrit', 'set-project', name, + '-d', metadata['description']]) + except cliapp.AppException: + pass + else: + create_args = ['gerrit', 'create-project', name, + '-p', self._parent_project] if 'head' in metadata: - self._ssh_command.run(['gerrit', 'set-head', name, - '--new-head', metadata['head']]) + create_args.extend(['-b', metadata['head']]) if 'description' in metadata: - self._ssh_command.run(['gerrit', 'set-project', name, - '-d', metadata['description']]) - except cliapp.AppException: - pass + create_args.extend(['-d', metadata['description']]) + self._ssh_command.run(create_args) + logging.info('Created %s project in local Gerrit.', name) |