From 1accdca0b0da82538664c8765140267da0c28db4 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 27 Sep 2018 15:31:34 -0700 Subject: [PATCH 01/22] initial work on the PR trigger --- .../azure/cli/command_modules/acr/_format.py | 8 ++-- .../azure/cli/command_modules/acr/_params.py | 1 + .../azure/cli/command_modules/acr/task.py | 41 +++++++++++++++++-- src/command_modules/azure-cli-acr/setup.py | 2 +- .../azure-cli-appservice/setup.py | 2 +- 5 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index a8e700bbf2c..0b6d29deca0 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -214,7 +214,7 @@ def _build_format_group(item): ('TASK', _get_value(item, 'buildTask')), ('PLATFORM', _get_value(item, 'platform', 'osType')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'gitCommitTrigger'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'commitId'), _get_value(item, 'sourceTrigger', 'pullRequestId'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -226,7 +226,7 @@ def _run_format_group(item): ('TASK', _get_value(item, 'task')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'commitId'), _get_value(item, 'sourceTrigger', 'pullRequestId'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -257,9 +257,11 @@ def _get_value(item, *args): return ' ' -def _get_build_trigger(image_update_trigger, git_commit_trigger): +def _get_build_trigger(image_update_trigger, git_commit_trigger, git_pull_request_trigger): if git_commit_trigger.strip(): return 'Git Commit' + if git_pull_request_trigger.strip(): + return 'Git Pull Request' if image_update_trigger.strip(): return 'Image Update' return 'Manual' diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py index 79071923a80..6bc305913d9 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py @@ -207,6 +207,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements # Source Trigger parameters c.argument('source_trigger_name', help="The name of the source trigger.") c.argument('commit_trigger_enabled', help="Indicates whether the source control commit trigger is enabled.", arg_type=get_three_state_flag()) + c.argument('pull_request_trigger_enabled', help="Indicates whether the source control pull request trigger is enabled.", arg_type=get_three_state_flag()) c.argument('git_access_token', help="The access token used to access the source control provider.") c.argument('branch', help="The source control branch name.") c.argument('base_image_trigger_name', help="The name of the base image trigger.") diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 08886673f68..8f6a50cb0ec 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -66,6 +66,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals values=None, source_trigger_name='defaultSourceTriggerName', commit_trigger_enabled=True, + pull_request_trigger_enabled=False, branch='master', no_push=False, no_cache=False, @@ -77,8 +78,8 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_enabled=True, base_image_trigger_type='Runtime', resource_group_name=None): - if commit_trigger_enabled and not git_access_token: - raise CLIError("Commit trigger needs to be disabled [--commit-trigger-enabled False] " + if (commit_trigger_enabled or pull_request_trigger_enabled) and not git_access_token: + raise CLIError("Source control trigger needs to be disabled [--commit-trigger-enabled False --pull_request_trigger_enabled False] " "if no --git-access-token is provided.") if file.endswith(ALLOWED_TASK_FILE_TYPES): @@ -122,8 +123,42 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_trigger_events=[SourceTriggerEvent.commit.value], status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, name=source_trigger_name - ) + ), + SourceTrigger( + source_repository=SourceProperties( + source_control_type=source_control_type, + repository_url=context_path, + branch=branch, + source_control_auth_properties=AuthInfo( + token=git_access_token, + token_type=DEFAULT_TOKEN_TYPE, + scope='repo' + ) + ), + source_trigger_events=[SourceTriggerEvent.pullrequest.value], + status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, + name="foo" + ), ] + + # if pull_request_trigger_enabled: + # source_triggers = [ + # SourceTrigger( + # source_repository=SourceProperties( + # source_control_type=source_control_type, + # repository_url=context_path, + # branch=branch, + # source_control_auth_properties=AuthInfo( + # token=git_access_token, + # token_type=DEFAULT_TOKEN_TYPE, + # scope='repo' + # ) + # ), + # source_trigger_events=[SourceTriggerEvent.pullrequest.value, SourceTriggerEvent.commit.value] if commit_trigger_enabled else [SourceTriggerEvent.pullrequest.value], + # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, + # name=source_trigger_name + # ) + # ] base_image_trigger = None if base_image_trigger_enabled: diff --git a/src/command_modules/azure-cli-acr/setup.py b/src/command_modules/azure-cli-acr/setup.py index 01582c74e1b..adc34ef26b2 100644 --- a/src/command_modules/azure-cli-acr/setup.py +++ b/src/command_modules/azure-cli-acr/setup.py @@ -33,7 +33,7 @@ 'azure-cli-core', 'azure-mgmt-storage==2.0.0rc4', 'azure-storage-blob==1.3.1', - 'azure-mgmt-containerregistry==2.2.0', + 'azure-mgmt-containerregistry==2.3.0', ] with open('README.rst', 'r', encoding='utf-8') as f: diff --git a/src/command_modules/azure-cli-appservice/setup.py b/src/command_modules/azure-cli-appservice/setup.py index cd3b717c305..ef016bed38c 100644 --- a/src/command_modules/azure-cli-appservice/setup.py +++ b/src/command_modules/azure-cli-appservice/setup.py @@ -33,7 +33,7 @@ 'azure-cli-core', 'azure-mgmt-web==0.40.0', 'azure-mgmt-storage==2.0.0rc4', - 'azure-mgmt-containerregistry==2.2.0', + 'azure-mgmt-containerregistry==2.2.1', # v1.17 breaks on wildcard cert https://github.com/shazow/urllib3/issues/981 'urllib3[secure]>=1.18', 'xmltodict', From 20866b9a2283ae1f6731817ade9801060fc7d47b Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 5 Oct 2018 14:28:12 -0700 Subject: [PATCH 02/22] task create and update with PR trigger --- .../azure/cli/command_modules/acr/_format.py | 40 ++++-- .../azure/cli/command_modules/acr/task.py | 125 +++++++++++++----- 2 files changed, 124 insertions(+), 41 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index 0b6d29deca0..e96f036090c 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -199,9 +199,9 @@ def _task_format_group(item): ('Name', _get_value(item, 'name')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ('COMMIT TRIGGER', _get_value(item, 'trigger', 'sourceTriggers', 0, 'status')), + ('COMMIT TRIGGER', _get_statuses(item, 'trigger', 'sourceTriggers')), ('SOURCE REPOSITORY', _get_value(item, 'step', 'contextPath')), - ('BRANCH', _get_value(item, 'trigger', 'sourceTriggers', 0, 'sourceRepository', 'branch')), + ('BRANCH', _get_branches(item, 'trigger', 'sourceTriggers')), ('BASE IMAGE TRIGGER', _get_value(item, 'trigger', 'baseImageTrigger', 'baseImageTriggerType')), ('IMAGE NAMES', _get_value(item, 'step', 'imageNames')), ('PUSH ENABLED', _get_value(item, 'step', 'isPushEnabled')) @@ -214,7 +214,7 @@ def _build_format_group(item): ('TASK', _get_value(item, 'buildTask')), ('PLATFORM', _get_value(item, 'platform', 'osType')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'commitId'), _get_value(item, 'sourceTrigger', 'pullRequestId'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -226,7 +226,7 @@ def _run_format_group(item): ('TASK', _get_value(item, 'task')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'commitId'), _get_value(item, 'sourceTrigger', 'pullRequestId'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -256,17 +256,35 @@ def _get_value(item, *args): except (KeyError, TypeError, IndexError): return ' ' - -def _get_build_trigger(image_update_trigger, git_commit_trigger, git_pull_request_trigger): - if git_commit_trigger.strip(): - return 'Git Commit' - if git_pull_request_trigger.strip(): - return 'Git Pull Request' +def _get_statuses(item, *args): + """Get status of each source trigger. + :param dict item: The dict object + """ + statuses = [] + for arg in args: + item = item[arg] + for i in range(len(item)): + statuses.append(_get_value(item, i, 'status')) + return ','.join(statuses) + +def _get_branches(item, *args): + """Get branch of each source trigger. + :param dict item: The dict object + """ + branches = [] + for arg in args: + item = item[arg] + for i in range(len(item)): + branches.append(_get_value(item, i, 'sourceRepository', 'branch')) + return ','.join(branches) + +def _get_build_trigger(image_update_trigger, git_source_trigger): + if git_source_trigger.strip(): + return git_source_trigger if image_update_trigger.strip(): return 'Image Update' return 'Manual' - def _format_datetime(date_string): from dateutil.parser import parse try: diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 8f6a50cb0ec..0229f907628 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -64,9 +64,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals cpu=DEFAULT_CPU, timeout=DEFAULT_TIMEOUT_IN_SEC, values=None, - source_trigger_name='defaultSourceTriggerName', + source_trigger_name=None, commit_trigger_enabled=True, - pull_request_trigger_enabled=False, + pull_request_trigger_enabled=True, branch='master', no_push=False, no_cache=False, @@ -107,7 +107,14 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_control_type = SourceControlType.github.value source_triggers = None + pr_trigger = None + source_trigger_events_ = [] if commit_trigger_enabled: + source_trigger_events_.append(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled: + source_trigger_events_.append(SourceTriggerEvent.pullrequest.value) + #If source_trigger_events_ contains any event types we assume they are enabled. + if source_trigger_events_: source_triggers = [ SourceTrigger( source_repository=SourceProperties( @@ -120,28 +127,12 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals scope='repo' ) ), - source_trigger_events=[SourceTriggerEvent.commit.value], - status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, - name=source_trigger_name - ), - SourceTrigger( - source_repository=SourceProperties( - source_control_type=source_control_type, - repository_url=context_path, - branch=branch, - source_control_auth_properties=AuthInfo( - token=git_access_token, - token_type=DEFAULT_TOKEN_TYPE, - scope='repo' - ) - ), - source_trigger_events=[SourceTriggerEvent.pullrequest.value], - status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, - name="foo" - ), + source_trigger_events=[SourceTriggerEvent.commit, SourceTriggerEvent.pullrequest], + status=TriggerStatus.disabled.value if (not commit_trigger_enabled or not pull_request_trigger_enabled) else TriggerStatus.enabled.value, + name=source_trigger_name if source_trigger_name is not None else "TriggerOn_" + branch + ) ] - - # if pull_request_trigger_enabled: + # if commit_trigger_enabled: # source_triggers = [ # SourceTrigger( # source_repository=SourceProperties( @@ -154,11 +145,33 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals # scope='repo' # ) # ), - # source_trigger_events=[SourceTriggerEvent.pullrequest.value, SourceTriggerEvent.commit.value] if commit_trigger_enabled else [SourceTriggerEvent.pullrequest.value], - # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, + # source_trigger_events=[SourceTriggerEvent.commit.value], + # status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, # name=source_trigger_name # ) # ] + # if pull_request_trigger_enabled: + # pr_trigger = [ + # SourceTrigger( + # source_repository=SourceProperties( + # source_control_type=source_control_type, + # repository_url=context_path, + # branch=branch, + # source_control_auth_properties=AuthInfo( + # token=git_access_token, + # token_type=DEFAULT_TOKEN_TYPE, + # scope='repo' + # ) + # ), + # source_trigger_events=[SourceTriggerEvent.pullrequest.value], + # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, + # name="foo" + # ) + # ] + # if source_triggers is None: + # source_triggers = pr_trigger + # else: + # source_triggers.extend(pr_trigger) base_image_trigger = None if base_image_trigger_enabled: @@ -240,6 +253,8 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals timeout=None, context_path=None, commit_trigger_enabled=None, + pull_request_trigger_enabled=None, + source_trigger_name=None, git_access_token=None, branch=None, image_names=None, @@ -314,13 +329,17 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals # update trigger source_trigger_update_params = None base_image_trigger_update_params = None + pr_trigger_update = None if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger - if commit_trigger_enabled or source_triggers is not None: + if commit_trigger_enabled or pull_request_trigger_enabled or source_triggers is not None: + defaultSourceTriggerName = "TriggerOn_master" + existing_trigger = [trigger for trigger in source_triggers if trigger.name == + (source_trigger_name if source_trigger_name is not None else defaultSourceTriggerName)] status = None - if commit_trigger_enabled is not None: - status = TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value + if commit_trigger_enabled is not None or pull_request_trigger_enabled is not None: + status = TriggerStatus.enabled.value if (commit_trigger_enabled or pull_request_trigger_enabled) else TriggerStatus.disabled.value source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -332,11 +351,57 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals token_type=DEFAULT_TOKEN_TYPE ) ), - source_trigger_events=[SourceTriggerEvent.commit], + source_trigger_events=[SourceTriggerEvent.commit, SourceTriggerEvent.pullrequest], status=status, - name=source_triggers[0].name if source_triggers else "defaultBaseimageTriggerName" + name=source_trigger_name if source_trigger_name is not None else defaultSourceTriggerName ) ] + + # if commit_trigger_enabled or pull_request_trigger_enabled or source_triggers is not None: + # if commit_trigger_enabled is not None: + # if source_triggers is not None: + # event = [x for x in source_triggers if x.name == SourceTriggerEvent.commit] + # a = any(x.name == SourceTriggerEvent.commit for x in source_triggers) + # source_trigger_update_params = [ + # SourceTriggerUpdateParameters( + # source_repository=SourceUpdateParameters( + # source_control_type=source_control_type, + # repository_url=context_path, + # branch=branch, + # source_control_auth_properties=AuthInfoUpdateParameters( + # token=git_access_token, + # token_type=DEFAULT_TOKEN_TYPE + # ) + # ), + # source_trigger_events=[SourceTriggerEvent.commit], + # status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, + # name=event.name if source_triggers is not None else "defaultBaseimageTriggerName_Commit" + # ) + # ] + # if pull_request_trigger_enabled is not None: + # if source_triggers is not None: + # event = [x.name == SourceTriggerEvent.pullrequest for x in source_triggers] + # pr_trigger_update = [ + # SourceTriggerUpdateParameters( + # source_repository=SourceUpdateParameters( + # source_control_type=source_control_type, + # repository_url=context_path, + # branch=branch, + # source_control_auth_properties=AuthInfoUpdateParameters( + # token=git_access_token, + # token_type=DEFAULT_TOKEN_TYPE + # ) + # ), + # source_trigger_events=[SourceTriggerEvent.pullrequest], + # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, + # name=event + # ) + # ] + # if source_trigger_update_params is None: + # source_trigger_update_params = pr_trigger_update + # else: + # source_trigger_update_params.extend(pr_trigger_update) + if base_image_trigger_enabled or base_image_trigger is not None: status = None if base_image_trigger_enabled is not None: From 6b87f94a74764ef0dedea07324a501d265086082 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 5 Oct 2018 15:05:02 -0700 Subject: [PATCH 03/22] use one flag to enable commit and pr trigger events --- .../azure/cli/command_modules/acr/_params.py | 3 +- .../azure/cli/command_modules/acr/task.py | 114 ++---------------- 2 files changed, 10 insertions(+), 107 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py index 6bc305913d9..f39ba452c5b 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py @@ -206,8 +206,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements # Source Trigger parameters c.argument('source_trigger_name', help="The name of the source trigger.") - c.argument('commit_trigger_enabled', help="Indicates whether the source control commit trigger is enabled.", arg_type=get_three_state_flag()) - c.argument('pull_request_trigger_enabled', help="Indicates whether the source control pull request trigger is enabled.", arg_type=get_three_state_flag()) + c.argument('source_trigger_enabled', help="Indicates whether the source control commit and pull request triggers are enabled.", arg_type=get_three_state_flag()) c.argument('git_access_token', help="The access token used to access the source control provider.") c.argument('branch', help="The source control branch name.") c.argument('base_image_trigger_name', help="The name of the base image trigger.") diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 0229f907628..caf66b9a5f3 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -65,8 +65,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals timeout=DEFAULT_TIMEOUT_IN_SEC, values=None, source_trigger_name=None, - commit_trigger_enabled=True, - pull_request_trigger_enabled=True, + source_trigger_enabled=True, branch='master', no_push=False, no_cache=False, @@ -78,8 +77,8 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_enabled=True, base_image_trigger_type='Runtime', resource_group_name=None): - if (commit_trigger_enabled or pull_request_trigger_enabled) and not git_access_token: - raise CLIError("Source control trigger needs to be disabled [--commit-trigger-enabled False --pull_request_trigger_enabled False] " + if source_trigger_enabled and not git_access_token: + raise CLIError("Source control trigger needs to be disabled [--source_trigger_enabled False] " "if no --git-access-token is provided.") if file.endswith(ALLOWED_TASK_FILE_TYPES): @@ -107,14 +106,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_control_type = SourceControlType.github.value source_triggers = None - pr_trigger = None - source_trigger_events_ = [] - if commit_trigger_enabled: - source_trigger_events_.append(SourceTriggerEvent.commit.value) - if pull_request_trigger_enabled: - source_trigger_events_.append(SourceTriggerEvent.pullrequest.value) - #If source_trigger_events_ contains any event types we assume they are enabled. - if source_trigger_events_: + if source_trigger_enabled: source_triggers = [ SourceTrigger( source_repository=SourceProperties( @@ -128,50 +120,10 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals ) ), source_trigger_events=[SourceTriggerEvent.commit, SourceTriggerEvent.pullrequest], - status=TriggerStatus.disabled.value if (not commit_trigger_enabled or not pull_request_trigger_enabled) else TriggerStatus.enabled.value, + status=TriggerStatus.enabled.value if source_trigger_enabled else TriggerStatus.disabled.value, name=source_trigger_name if source_trigger_name is not None else "TriggerOn_" + branch ) ] - # if commit_trigger_enabled: - # source_triggers = [ - # SourceTrigger( - # source_repository=SourceProperties( - # source_control_type=source_control_type, - # repository_url=context_path, - # branch=branch, - # source_control_auth_properties=AuthInfo( - # token=git_access_token, - # token_type=DEFAULT_TOKEN_TYPE, - # scope='repo' - # ) - # ), - # source_trigger_events=[SourceTriggerEvent.commit.value], - # status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, - # name=source_trigger_name - # ) - # ] - # if pull_request_trigger_enabled: - # pr_trigger = [ - # SourceTrigger( - # source_repository=SourceProperties( - # source_control_type=source_control_type, - # repository_url=context_path, - # branch=branch, - # source_control_auth_properties=AuthInfo( - # token=git_access_token, - # token_type=DEFAULT_TOKEN_TYPE, - # scope='repo' - # ) - # ), - # source_trigger_events=[SourceTriggerEvent.pullrequest.value], - # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, - # name="foo" - # ) - # ] - # if source_triggers is None: - # source_triggers = pr_trigger - # else: - # source_triggers.extend(pr_trigger) base_image_trigger = None if base_image_trigger_enabled: @@ -252,8 +204,7 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals cpu=None, timeout=None, context_path=None, - commit_trigger_enabled=None, - pull_request_trigger_enabled=None, + source_trigger_enabled=None, source_trigger_name=None, git_access_token=None, branch=None, @@ -333,13 +284,11 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger - if commit_trigger_enabled or pull_request_trigger_enabled or source_triggers is not None: + if source_trigger_enabled or source_triggers is not None: defaultSourceTriggerName = "TriggerOn_master" - existing_trigger = [trigger for trigger in source_triggers if trigger.name == - (source_trigger_name if source_trigger_name is not None else defaultSourceTriggerName)] status = None - if commit_trigger_enabled is not None or pull_request_trigger_enabled is not None: - status = TriggerStatus.enabled.value if (commit_trigger_enabled or pull_request_trigger_enabled) else TriggerStatus.disabled.value + if source_trigger_enabled is not None: + status = TriggerStatus.enabled.value if source_trigger_enabled else TriggerStatus.disabled.value source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -357,51 +306,6 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals ) ] - # if commit_trigger_enabled or pull_request_trigger_enabled or source_triggers is not None: - # if commit_trigger_enabled is not None: - # if source_triggers is not None: - # event = [x for x in source_triggers if x.name == SourceTriggerEvent.commit] - # a = any(x.name == SourceTriggerEvent.commit for x in source_triggers) - # source_trigger_update_params = [ - # SourceTriggerUpdateParameters( - # source_repository=SourceUpdateParameters( - # source_control_type=source_control_type, - # repository_url=context_path, - # branch=branch, - # source_control_auth_properties=AuthInfoUpdateParameters( - # token=git_access_token, - # token_type=DEFAULT_TOKEN_TYPE - # ) - # ), - # source_trigger_events=[SourceTriggerEvent.commit], - # status=TriggerStatus.enabled.value if commit_trigger_enabled else TriggerStatus.disabled.value, - # name=event.name if source_triggers is not None else "defaultBaseimageTriggerName_Commit" - # ) - # ] - # if pull_request_trigger_enabled is not None: - # if source_triggers is not None: - # event = [x.name == SourceTriggerEvent.pullrequest for x in source_triggers] - # pr_trigger_update = [ - # SourceTriggerUpdateParameters( - # source_repository=SourceUpdateParameters( - # source_control_type=source_control_type, - # repository_url=context_path, - # branch=branch, - # source_control_auth_properties=AuthInfoUpdateParameters( - # token=git_access_token, - # token_type=DEFAULT_TOKEN_TYPE - # ) - # ), - # source_trigger_events=[SourceTriggerEvent.pullrequest], - # status=TriggerStatus.enabled.value if pull_request_trigger_enabled else TriggerStatus.disabled.value, - # name=event - # ) - # ] - # if source_trigger_update_params is None: - # source_trigger_update_params = pr_trigger_update - # else: - # source_trigger_update_params.extend(pr_trigger_update) - if base_image_trigger_enabled or base_image_trigger is not None: status = None if base_image_trigger_enabled is not None: From bdfd98d077d97c092094f29af0dc1795a78212f5 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 5 Oct 2018 15:41:37 -0700 Subject: [PATCH 04/22] nit fixes --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 1 - src/command_modules/azure-cli-appservice/setup.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index caf66b9a5f3..2037ae6fca1 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -280,7 +280,6 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals # update trigger source_trigger_update_params = None base_image_trigger_update_params = None - pr_trigger_update = None if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger diff --git a/src/command_modules/azure-cli-appservice/setup.py b/src/command_modules/azure-cli-appservice/setup.py index ef016bed38c..cd3b717c305 100644 --- a/src/command_modules/azure-cli-appservice/setup.py +++ b/src/command_modules/azure-cli-appservice/setup.py @@ -33,7 +33,7 @@ 'azure-cli-core', 'azure-mgmt-web==0.40.0', 'azure-mgmt-storage==2.0.0rc4', - 'azure-mgmt-containerregistry==2.2.1', + 'azure-mgmt-containerregistry==2.2.0', # v1.17 breaks on wildcard cert https://github.com/shazow/urllib3/issues/981 'urllib3[secure]>=1.18', 'xmltodict', From b0b3d469d881b9c9e14b65f73a81cf679468ccea Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Mon, 8 Oct 2018 13:26:06 -0700 Subject: [PATCH 05/22] Two event flags and only support one source trigger per task --- .../azure/cli/command_modules/acr/_format.py | 26 +---------- .../azure/cli/command_modules/acr/_params.py | 3 +- .../azure/cli/command_modules/acr/task.py | 45 ++++++++++++------- 3 files changed, 33 insertions(+), 41 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index e96f036090c..200947f2f46 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -199,9 +199,9 @@ def _task_format_group(item): ('Name', _get_value(item, 'name')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ('COMMIT TRIGGER', _get_statuses(item, 'trigger', 'sourceTriggers')), + ('COMMIT TRIGGER', _get_value(item, 'trigger', 'sourceTriggers', 0, 'status')), ('SOURCE REPOSITORY', _get_value(item, 'step', 'contextPath')), - ('BRANCH', _get_branches(item, 'trigger', 'sourceTriggers')), + ('BRANCH', _get_value(item, 'trigger', 'sourceTriggers', 0, 'sourceRepository', 'branch')), ('BASE IMAGE TRIGGER', _get_value(item, 'trigger', 'baseImageTrigger', 'baseImageTriggerType')), ('IMAGE NAMES', _get_value(item, 'step', 'imageNames')), ('PUSH ENABLED', _get_value(item, 'step', 'isPushEnabled')) @@ -256,28 +256,6 @@ def _get_value(item, *args): except (KeyError, TypeError, IndexError): return ' ' -def _get_statuses(item, *args): - """Get status of each source trigger. - :param dict item: The dict object - """ - statuses = [] - for arg in args: - item = item[arg] - for i in range(len(item)): - statuses.append(_get_value(item, i, 'status')) - return ','.join(statuses) - -def _get_branches(item, *args): - """Get branch of each source trigger. - :param dict item: The dict object - """ - branches = [] - for arg in args: - item = item[arg] - for i in range(len(item)): - branches.append(_get_value(item, i, 'sourceRepository', 'branch')) - return ','.join(branches) - def _get_build_trigger(image_update_trigger, git_source_trigger): if git_source_trigger.strip(): return git_source_trigger diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py index f39ba452c5b..6bc305913d9 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_params.py @@ -206,7 +206,8 @@ def load_arguments(self, _): # pylint: disable=too-many-statements # Source Trigger parameters c.argument('source_trigger_name', help="The name of the source trigger.") - c.argument('source_trigger_enabled', help="Indicates whether the source control commit and pull request triggers are enabled.", arg_type=get_three_state_flag()) + c.argument('commit_trigger_enabled', help="Indicates whether the source control commit trigger is enabled.", arg_type=get_three_state_flag()) + c.argument('pull_request_trigger_enabled', help="Indicates whether the source control pull request trigger is enabled.", arg_type=get_three_state_flag()) c.argument('git_access_token', help="The access token used to access the source control provider.") c.argument('branch', help="The source control branch name.") c.argument('base_image_trigger_name', help="The name of the base image trigger.") diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 2037ae6fca1..6e4b86f6938 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -65,7 +65,8 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals timeout=DEFAULT_TIMEOUT_IN_SEC, values=None, source_trigger_name=None, - source_trigger_enabled=True, + commit_trigger_enabled=None, + pull_request_trigger_enabled=None, branch='master', no_push=False, no_cache=False, @@ -77,9 +78,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_enabled=True, base_image_trigger_type='Runtime', resource_group_name=None): - if source_trigger_enabled and not git_access_token: - raise CLIError("Source control trigger needs to be disabled [--source_trigger_enabled False] " - "if no --git-access-token is provided.") + if (commit_trigger_enabled is not None or pull_request_trigger_enabled is not None) and not git_access_token: + raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or [--pull-request-trigger-enabled] " + "--git-access-token must be provided.") if file.endswith(ALLOWED_TASK_FILE_TYPES): step = FileTaskStep( @@ -106,7 +107,13 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_control_type = SourceControlType.github.value source_triggers = None - if source_trigger_enabled: + source_trigger_events_ = [] + if commit_trigger_enabled is not None: + source_trigger_events_.append(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled is not None: + source_trigger_events_.append(SourceTriggerEvent.pullrequest.value) + #If source_trigger_events_ contains any event types we assume they are enabled. + if source_trigger_events_: source_triggers = [ SourceTrigger( source_repository=SourceProperties( @@ -119,9 +126,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals scope='repo' ) ), - source_trigger_events=[SourceTriggerEvent.commit, SourceTriggerEvent.pullrequest], - status=TriggerStatus.enabled.value if source_trigger_enabled else TriggerStatus.disabled.value, - name=source_trigger_name if source_trigger_name is not None else "TriggerOn_" + branch + source_trigger_events=source_trigger_events_, + status=TriggerStatus.enabled.value if source_trigger_events_ else TriggerStatus.disabled.value, + name=source_trigger_name if source_trigger_name is not None else "defaultSourceTriggerName" ) ] @@ -204,7 +211,8 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals cpu=None, timeout=None, context_path=None, - source_trigger_enabled=None, + commit_trigger_enabled=None, + pull_request_trigger_enabled=None, source_trigger_name=None, git_access_token=None, branch=None, @@ -283,11 +291,16 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger - if source_trigger_enabled or source_triggers is not None: - defaultSourceTriggerName = "TriggerOn_master" - status = None - if source_trigger_enabled is not None: - status = TriggerStatus.enabled.value if source_trigger_enabled else TriggerStatus.disabled.value + if (commit_trigger_enabled or pull_request_trigger_enabled or source_triggers) is not None: + #using a set to prevent duplicate event types per trigger + _events = set() + if source_triggers: + _events = set(source_triggers[0].source_trigger_events) + if commit_trigger_enabled is not None: + _events.add(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled is not None: + _events.add(SourceTriggerEvent.pullrequest.value) + status = TriggerStatus.enabled.value if _events else None source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -299,9 +312,9 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals token_type=DEFAULT_TOKEN_TYPE ) ), - source_trigger_events=[SourceTriggerEvent.commit, SourceTriggerEvent.pullrequest], + source_trigger_events=_events if (commit_trigger_enabled or pull_request_trigger_enabled) else None, status=status, - name=source_trigger_name if source_trigger_name is not None else defaultSourceTriggerName + name=source_triggers[0].name if source_triggers else "defaultSourceTriggerName" ) ] From 94d0527029987bc2bb3f207fed5474b0e53d7d9b Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Mon, 8 Oct 2018 15:42:00 -0700 Subject: [PATCH 06/22] PR fixes --- .../azure/cli/command_modules/acr/task.py | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 6e4b86f6938..1603827c8a4 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -64,9 +64,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals cpu=DEFAULT_CPU, timeout=DEFAULT_TIMEOUT_IN_SEC, values=None, - source_trigger_name=None, - commit_trigger_enabled=None, - pull_request_trigger_enabled=None, + source_trigger_name='defaultSourceTriggerName', + commit_trigger_enabled=False, + pull_request_trigger_enabled=False, branch='master', no_push=False, no_cache=False, @@ -78,7 +78,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_enabled=True, base_image_trigger_type='Runtime', resource_group_name=None): - if (commit_trigger_enabled is not None or pull_request_trigger_enabled is not None) and not git_access_token: + if (commit_trigger_enabled or pull_request_trigger_enabled) and not git_access_token: raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or [--pull-request-trigger-enabled] " "--git-access-token must be provided.") @@ -107,13 +107,13 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_control_type = SourceControlType.github.value source_triggers = None - source_trigger_events_ = [] + source_trigger_events = [] if commit_trigger_enabled is not None: - source_trigger_events_.append(SourceTriggerEvent.commit.value) + source_trigger_events.append(SourceTriggerEvent.commit.value) if pull_request_trigger_enabled is not None: - source_trigger_events_.append(SourceTriggerEvent.pullrequest.value) - #If source_trigger_events_ contains any event types we assume they are enabled. - if source_trigger_events_: + source_trigger_events.append(SourceTriggerEvent.pullrequest.value) + #If source_trigger_events contains any event types we assume they are enabled. + if source_trigger_events: source_triggers = [ SourceTrigger( source_repository=SourceProperties( @@ -126,9 +126,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals scope='repo' ) ), - source_trigger_events=source_trigger_events_, - status=TriggerStatus.enabled.value if source_trigger_events_ else TriggerStatus.disabled.value, - name=source_trigger_name if source_trigger_name is not None else "defaultSourceTriggerName" + source_trigger_events=source_trigger_events, + status=TriggerStatus.enabled.value if source_trigger_events else TriggerStatus.disabled.value, + name=source_trigger_name ) ] @@ -211,9 +211,8 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals cpu=None, timeout=None, context_path=None, - commit_trigger_enabled=None, - pull_request_trigger_enabled=None, - source_trigger_name=None, + commit_trigger_enabled=False, + pull_request_trigger_enabled=False, git_access_token=None, branch=None, image_names=None, @@ -291,16 +290,16 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger - if (commit_trigger_enabled or pull_request_trigger_enabled or source_triggers) is not None: + if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers is not None: #using a set to prevent duplicate event types per trigger - _events = set() + source_trigger_events = set() if source_triggers: - _events = set(source_triggers[0].source_trigger_events) - if commit_trigger_enabled is not None: - _events.add(SourceTriggerEvent.commit.value) - if pull_request_trigger_enabled is not None: - _events.add(SourceTriggerEvent.pullrequest.value) - status = TriggerStatus.enabled.value if _events else None + source_trigger_events = set(source_triggers[0].source_trigger_events) + if commit_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.pullrequest.value) + status = TriggerStatus.enabled.value if source_trigger_events else None source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -312,7 +311,7 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals token_type=DEFAULT_TOKEN_TYPE ) ), - source_trigger_events=_events if (commit_trigger_enabled or pull_request_trigger_enabled) else None, + source_trigger_events=source_trigger_events if (commit_trigger_enabled or pull_request_trigger_enabled) else None, status=status, name=source_triggers[0].name if source_triggers else "defaultSourceTriggerName" ) From d2ddfb24b9f02d6522389757375656ec3fa33f7a Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Tue, 9 Oct 2018 10:20:17 -0700 Subject: [PATCH 07/22] allow empty event list when disabling all trigger events --- .../azure/cli/command_modules/acr/task.py | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 1603827c8a4..79669f7bc13 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -65,8 +65,8 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals timeout=DEFAULT_TIMEOUT_IN_SEC, values=None, source_trigger_name='defaultSourceTriggerName', - commit_trigger_enabled=False, - pull_request_trigger_enabled=False, + commit_trigger_enabled=True, + pull_request_trigger_enabled=True, branch='master', no_push=False, no_cache=False, @@ -108,9 +108,9 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_triggers = None source_trigger_events = [] - if commit_trigger_enabled is not None: + if commit_trigger_enabled: source_trigger_events.append(SourceTriggerEvent.commit.value) - if pull_request_trigger_enabled is not None: + if pull_request_trigger_enabled: source_trigger_events.append(SourceTriggerEvent.pullrequest.value) #If source_trigger_events contains any event types we assume they are enabled. if source_trigger_events: @@ -211,8 +211,8 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals cpu=None, timeout=None, context_path=None, - commit_trigger_enabled=False, - pull_request_trigger_enabled=False, + commit_trigger_enabled=None, + pull_request_trigger_enabled=None, git_access_token=None, branch=None, image_names=None, @@ -295,11 +295,18 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals source_trigger_events = set() if source_triggers: source_trigger_events = set(source_triggers[0].source_trigger_events) - if commit_trigger_enabled: - source_trigger_events.add(SourceTriggerEvent.commit.value) - if pull_request_trigger_enabled: - source_trigger_events.add(SourceTriggerEvent.pullrequest.value) - status = TriggerStatus.enabled.value if source_trigger_events else None + if commit_trigger_enabled is not None: + if commit_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.commit.value) + else: + if SourceTriggerEvent.commit.value in source_trigger_events: + source_trigger_events.remove(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled is not None: + if pull_request_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.pullrequest.value) + else: + if SourceTriggerEvent.pullrequest.value in source_trigger_events: + source_trigger_events.remove(SourceTriggerEvent.pullrequest.value) source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -311,8 +318,8 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals token_type=DEFAULT_TOKEN_TYPE ) ), - source_trigger_events=source_trigger_events if (commit_trigger_enabled or pull_request_trigger_enabled) else None, - status=status, + source_trigger_events=source_trigger_events, + status=TriggerStatus.enabled.value if source_trigger_events else TriggerStatus.disabled.value, name=source_triggers[0].name if source_triggers else "defaultSourceTriggerName" ) ] From 7ff22c258d23f978b284049f6a759236208b8304 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Tue, 9 Oct 2018 11:18:11 -0700 Subject: [PATCH 08/22] format fix --- .../azure-cli-acr/azure/cli/command_modules/acr/_format.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index 200947f2f46..0fbec319398 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -256,6 +256,7 @@ def _get_value(item, *args): except (KeyError, TypeError, IndexError): return ' ' + def _get_build_trigger(image_update_trigger, git_source_trigger): if git_source_trigger.strip(): return git_source_trigger @@ -263,6 +264,7 @@ def _get_build_trigger(image_update_trigger, git_source_trigger): return 'Image Update' return 'Manual' + def _format_datetime(date_string): from dateutil.parser import parse try: @@ -283,3 +285,4 @@ def _get_duration(start_time, finish_time): except ValueError: logger.debug("Unable to get duration with start_time '%s' and finish_time '%s'", start_time, finish_time) return ' ' + From 1eb7626cfbf7bbd8dbee61bcd2e6c46e40b8ef35 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Tue, 9 Oct 2018 14:59:06 -0700 Subject: [PATCH 09/22] do not clear event list in update, instead status disabled --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 79669f7bc13..4ccf2680665 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -295,6 +295,10 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals source_trigger_events = set() if source_triggers: source_trigger_events = set(source_triggers[0].source_trigger_events) + #if the previous trigger was disabled, clear the event list and + #re-add the events that the user wants enabled. + if source_triggers[0].status == TriggerStatus.disabled.value: + source_trigger_events.clear() if commit_trigger_enabled is not None: if commit_trigger_enabled: source_trigger_events.add(SourceTriggerEvent.commit.value) From 4961413dcc60025bc0f67cf71c44fc585f353b2e Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Tue, 9 Oct 2018 16:13:42 -0700 Subject: [PATCH 10/22] update task table --- .../azure-cli-acr/azure/cli/command_modules/acr/_format.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index 0fbec319398..f346ca9f091 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -199,7 +199,7 @@ def _task_format_group(item): ('Name', _get_value(item, 'name')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ('COMMIT TRIGGER', _get_value(item, 'trigger', 'sourceTriggers', 0, 'status')), + ('SOURCE TRIGGER', _get_value(item, 'trigger', 'sourceTriggers', 0, 'status')), ('SOURCE REPOSITORY', _get_value(item, 'step', 'contextPath')), ('BRANCH', _get_value(item, 'trigger', 'sourceTriggers', 0, 'sourceRepository', 'branch')), ('BASE IMAGE TRIGGER', _get_value(item, 'trigger', 'baseImageTrigger', 'baseImageTriggerType')), From a9988015a5a72e80bf4c5419aecd827ddf416270 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Tue, 9 Oct 2018 16:35:11 -0700 Subject: [PATCH 11/22] nit fix --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 4ccf2680665..cc313c52c8d 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -291,12 +291,10 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers is not None: - #using a set to prevent duplicate event types per trigger source_trigger_events = set() + #perform merge with server-side event list if source_triggers: source_trigger_events = set(source_triggers[0].source_trigger_events) - #if the previous trigger was disabled, clear the event list and - #re-add the events that the user wants enabled. if source_triggers[0].status == TriggerStatus.disabled.value: source_trigger_events.clear() if commit_trigger_enabled is not None: From d95e1cebed2614df7b9d5d01db9560997475b9bc Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Wed, 10 Oct 2018 11:31:31 -0700 Subject: [PATCH 12/22] bump cli event version --- src/command_modules/azure-cli-acr/HISTORY.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/command_modules/azure-cli-acr/HISTORY.rst b/src/command_modules/azure-cli-acr/HISTORY.rst index 0384a765f23..1420841240c 100644 --- a/src/command_modules/azure-cli-acr/HISTORY.rst +++ b/src/command_modules/azure-cli-acr/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +2.1.78 ++++++ +* Support commit and pull request git events for Task source trigger. + 2.1.7 +++++ * Fix an ACR Build encoding issue in Python2. From dbd7ceddff760e7efeb99453adaf076709810c5d Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Wed, 10 Oct 2018 12:02:12 -0700 Subject: [PATCH 13/22] nit fixes --- .../azure-cli-acr/azure/cli/command_modules/acr/_format.py | 1 - .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index f346ca9f091..7cb552e0553 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -285,4 +285,3 @@ def _get_duration(start_time, finish_time): except ValueError: logger.debug("Unable to get duration with start_time '%s' and finish_time '%s'", start_time, finish_time) return ' ' - diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index cc313c52c8d..abea098ae21 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -112,7 +112,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_trigger_events.append(SourceTriggerEvent.commit.value) if pull_request_trigger_enabled: source_trigger_events.append(SourceTriggerEvent.pullrequest.value) - #If source_trigger_events contains any event types we assume they are enabled. + # if source_trigger_events contains any event types we assume they are enabled. if source_trigger_events: source_triggers = [ SourceTrigger( @@ -292,7 +292,7 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals base_image_trigger = task.trigger.base_image_trigger if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers is not None: source_trigger_events = set() - #perform merge with server-side event list + # perform merge with server-side event list if source_triggers: source_trigger_events = set(source_triggers[0].source_trigger_events) if source_triggers[0].status == TriggerStatus.disabled.value: From e40a2a57937fb61cf45c1b9c9f291717aa8a655a Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 11:49:57 -0700 Subject: [PATCH 14/22] update ACR sdk version --- src/command_modules/azure-cli-acr/setup.py | 2 +- src/command_modules/azure-cli-appservice/setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command_modules/azure-cli-acr/setup.py b/src/command_modules/azure-cli-acr/setup.py index adc34ef26b2..0a321dfce23 100644 --- a/src/command_modules/azure-cli-acr/setup.py +++ b/src/command_modules/azure-cli-acr/setup.py @@ -14,7 +14,7 @@ logger.warn("Wheel is not available, disabling bdist_wheel hook") cmdclass = {} -VERSION = "2.1.7" +VERSION = "2.1.8" CLASSIFIERS = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', diff --git a/src/command_modules/azure-cli-appservice/setup.py b/src/command_modules/azure-cli-appservice/setup.py index cd3b717c305..d36064516c5 100644 --- a/src/command_modules/azure-cli-appservice/setup.py +++ b/src/command_modules/azure-cli-appservice/setup.py @@ -33,7 +33,7 @@ 'azure-cli-core', 'azure-mgmt-web==0.40.0', 'azure-mgmt-storage==2.0.0rc4', - 'azure-mgmt-containerregistry==2.2.0', + 'azure-mgmt-containerregistry==2.3.0', # v1.17 breaks on wildcard cert https://github.com/shazow/urllib3/issues/981 'urllib3[secure]>=1.18', 'xmltodict', From 4cf68da0705a4af8ce3b9fc7ad43210990328968 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 12:34:41 -0700 Subject: [PATCH 15/22] version fix --- src/command_modules/azure-cli-acr/HISTORY.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_modules/azure-cli-acr/HISTORY.rst b/src/command_modules/azure-cli-acr/HISTORY.rst index 1420841240c..cde785f703d 100644 --- a/src/command_modules/azure-cli-acr/HISTORY.rst +++ b/src/command_modules/azure-cli-acr/HISTORY.rst @@ -3,7 +3,7 @@ Release History =============== -2.1.78 +2.1.8 +++++ * Support commit and pull request git events for Task source trigger. From c7f2f567674ae2526ac20e4c9fc3f35b43ce74a8 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 12:50:51 -0700 Subject: [PATCH 16/22] update appservice version --- src/command_modules/azure-cli-appservice/HISTORY.rst | 4 ++++ src/command_modules/azure-cli-appservice/setup.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/command_modules/azure-cli-appservice/HISTORY.rst b/src/command_modules/azure-cli-appservice/HISTORY.rst index e08af786b2b..dbedf0e896d 100644 --- a/src/command_modules/azure-cli-appservice/HISTORY.rst +++ b/src/command_modules/azure-cli-appservice/HISTORY.rst @@ -2,6 +2,10 @@ Release History =============== +0.2.6 ++++++ +* support commit and pull request git events for ACR Task source trigger + 0.2.5 +++++ * az functionapp create supports creating a linux consumption plan type with a specific runtime diff --git a/src/command_modules/azure-cli-appservice/setup.py b/src/command_modules/azure-cli-appservice/setup.py index d36064516c5..ddcc8c083f6 100644 --- a/src/command_modules/azure-cli-appservice/setup.py +++ b/src/command_modules/azure-cli-appservice/setup.py @@ -14,7 +14,7 @@ logger.warn("Wheel is not available, disabling bdist_wheel hook") cmdclass = {} -VERSION = "0.2.5" +VERSION = "0.2.6" CLASSIFIERS = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', From e1def2d61ac28dfe2c60bd3898bf87b35454aadf Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 15:00:28 -0700 Subject: [PATCH 17/22] pylint fixes --- .../azure/cli/command_modules/acr/_format.py | 6 ++- .../azure/cli/command_modules/acr/task.py | 48 +++++++++++-------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index 7cb552e0553..378c4a4f4bc 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -214,7 +214,8 @@ def _build_format_group(item): ('TASK', _get_value(item, 'buildTask')), ('PLATFORM', _get_value(item, 'platform', 'osType')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'eventType'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), + _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -226,7 +227,8 @@ def _run_format_group(item): ('TASK', _get_value(item, 'task')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), _get_value(item, 'sourceTrigger', 'eventType'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), + _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index abea098ae21..a51da2c622e 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -79,8 +79,8 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_type='Runtime', resource_group_name=None): if (commit_trigger_enabled or pull_request_trigger_enabled) and not git_access_token: - raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or [--pull-request-trigger-enabled] " - "--git-access-token must be provided.") + raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or + "[--pull-request-trigger-enabled] --git-access-token must be provided.") if file.endswith(ALLOWED_TASK_FILE_TYPES): step = FileTaskStep( @@ -291,24 +291,9 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers is not None: - source_trigger_events = set() - # perform merge with server-side event list - if source_triggers: - source_trigger_events = set(source_triggers[0].source_trigger_events) - if source_triggers[0].status == TriggerStatus.disabled.value: - source_trigger_events.clear() - if commit_trigger_enabled is not None: - if commit_trigger_enabled: - source_trigger_events.add(SourceTriggerEvent.commit.value) - else: - if SourceTriggerEvent.commit.value in source_trigger_events: - source_trigger_events.remove(SourceTriggerEvent.commit.value) - if pull_request_trigger_enabled is not None: - if pull_request_trigger_enabled: - source_trigger_events.add(SourceTriggerEvent.pullrequest.value) - else: - if SourceTriggerEvent.pullrequest.value in source_trigger_events: - source_trigger_events.remove(SourceTriggerEvent.pullrequest.value) + source_trigger_events = _get_trigger_event_list(source_triggers, + commit_trigger_enabled, + pull_request_trigger_enabled) source_trigger_update_params = [ SourceTriggerUpdateParameters( source_repository=SourceUpdateParameters( @@ -512,3 +497,26 @@ def _get_list_runs_message(base_message, task_name=None, image=None): if image: base_message = "{} for image '{}'".format(base_message, image) return "{}.".format(base_message) + +def _get_trigger_event_list(source_triggers, + commit_trigger_enabled=None, + pull_request_trigger_enabled=None): + source_trigger_events = set() + # perform merge with server-side event list + if source_triggers: + source_trigger_events = set(source_triggers[0].source_trigger_events) + if source_triggers[0].status == TriggerStatus.disabled.value: + source_trigger_events.clear() + if commit_trigger_enabled is not None: + if commit_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.commit.value) + else: + if SourceTriggerEvent.commit.value in source_trigger_events: + source_trigger_events.remove(SourceTriggerEvent.commit.value) + if pull_request_trigger_enabled is not None: + if pull_request_trigger_enabled: + source_trigger_events.add(SourceTriggerEvent.pullrequest.value) + else: + if SourceTriggerEvent.pullrequest.value in source_trigger_events: + source_trigger_events.remove(SourceTriggerEvent.pullrequest.value) + return source_trigger_events From 1e1b43e52e5007a7d6aaf77287d6bd9fdee23ec3 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 15:34:08 -0700 Subject: [PATCH 18/22] pylint fixes --- .../azure-cli-acr/azure/cli/command_modules/acr/_format.py | 6 +++--- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py index 378c4a4f4bc..e8ceddc1abf 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_format.py @@ -215,7 +215,7 @@ def _build_format_group(item): ('PLATFORM', _get_value(item, 'platform', 'osType')), ('STATUS', _get_value(item, 'status')), ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), - _get_value(item, 'sourceTrigger', 'eventType'))), + _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) @@ -227,8 +227,8 @@ def _run_format_group(item): ('TASK', _get_value(item, 'task')), ('PLATFORM', _get_value(item, 'platform', 'os')), ('STATUS', _get_value(item, 'status')), - ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), - _get_value(item, 'sourceTrigger', 'eventType'))), + ("TRIGGER", _get_build_trigger(_get_value(item, 'imageUpdateTrigger'), + _get_value(item, 'sourceTrigger', 'eventType'))), ('STARTED', _format_datetime(_get_value(item, 'startTime'))), ('DURATION', _get_duration(_get_value(item, 'startTime'), _get_value(item, 'finishTime'))) ]) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index a51da2c622e..b1eb2ab4a4f 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -79,7 +79,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals base_image_trigger_type='Runtime', resource_group_name=None): if (commit_trigger_enabled or pull_request_trigger_enabled) and not git_access_token: - raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or + raise CLIError("If source control trigger is enabled [--commit-trigger-enabled] or " "[--pull-request-trigger-enabled] --git-access-token must be provided.") if file.endswith(ALLOWED_TASK_FILE_TYPES): From f1a380431fb255d126c376319e1c0dc4020b2486 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Thu, 18 Oct 2018 16:12:11 -0700 Subject: [PATCH 19/22] nit --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index b1eb2ab4a4f..0c231e7a9d7 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -112,7 +112,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals source_trigger_events.append(SourceTriggerEvent.commit.value) if pull_request_trigger_enabled: source_trigger_events.append(SourceTriggerEvent.pullrequest.value) - # if source_trigger_events contains any event types we assume they are enabled. + # if source_trigger_events contains any event types we assume they are enabled if source_trigger_events: source_triggers = [ SourceTrigger( From 41432b6963ac0a070d2460136b003fe80f959f96 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 19 Oct 2018 09:34:47 -0700 Subject: [PATCH 20/22] pylint fix --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 0c231e7a9d7..37ac6188120 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -498,6 +498,7 @@ def _get_list_runs_message(base_message, task_name=None, image=None): base_message = "{} for image '{}'".format(base_message, image) return "{}.".format(base_message) + def _get_trigger_event_list(source_triggers, commit_trigger_enabled=None, pull_request_trigger_enabled=None): From 7abc6f558276e586a23fcb48e2972807485979a1 Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 19 Oct 2018 12:45:14 -0700 Subject: [PATCH 21/22] respond to PR comments --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 2 +- src/command_modules/azure-cli-appservice/HISTORY.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index 37ac6188120..a64fe71f2f0 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -127,7 +127,7 @@ def acr_task_create(cmd, # pylint: disable=too-many-locals ) ), source_trigger_events=source_trigger_events, - status=TriggerStatus.enabled.value if source_trigger_events else TriggerStatus.disabled.value, + status=TriggerStatus.enabled.value, name=source_trigger_name ) ] diff --git a/src/command_modules/azure-cli-appservice/HISTORY.rst b/src/command_modules/azure-cli-appservice/HISTORY.rst index dbedf0e896d..567dcbcfe03 100644 --- a/src/command_modules/azure-cli-appservice/HISTORY.rst +++ b/src/command_modules/azure-cli-appservice/HISTORY.rst @@ -4,7 +4,7 @@ Release History =============== 0.2.6 +++++ -* support commit and pull request git events for ACR Task source trigger +* update ACR SDK 0.2.5 +++++ From 60059177b8f417f4c254695544f5b47baa8116bf Mon Sep 17 00:00:00 2001 From: Jeanine Burke Date: Fri, 19 Oct 2018 13:04:42 -0700 Subject: [PATCH 22/22] change from null to empty check --- .../azure-cli-acr/azure/cli/command_modules/acr/task.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py index a64fe71f2f0..d84606eb982 100644 --- a/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py +++ b/src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/task.py @@ -290,7 +290,7 @@ def acr_task_update(cmd, # pylint: disable=too-many-locals if task.trigger: source_triggers = task.trigger.source_triggers base_image_trigger = task.trigger.base_image_trigger - if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers is not None: + if (commit_trigger_enabled or pull_request_trigger_enabled) or source_triggers: source_trigger_events = _get_trigger_event_list(source_triggers, commit_trigger_enabled, pull_request_trigger_enabled)