Merge pull request #142 from coreos-inc/githubdelfix

Allow GitHub triggers to be removed if OAuth token is invalid
This commit is contained in:
Jimmy Zelinskie 2015-06-17 13:27:27 -04:00
commit 2d6c0eadb1

View file

@ -333,22 +333,30 @@ class BitbucketBuildTrigger(BuildTriggerHandler):
def deactivate(self): def deactivate(self):
config = self.config config = self.config
hook_id = config.pop('hook_id', None)
deploy_key_id = config.pop('deploy_key_id', None)
try:
repository = self._get_repository_client() repository = self._get_repository_client()
# Remove the webhook link. # Remove the webhook link.
(result, _, err_msg) = repository.services().delete(config['hook_id']) if hook_id is not None:
(result, _, err_msg) = repository.services().delete(hook_id)
if not result: if not result:
msg = 'Unable to remove webhook from repository: %s' % err_msg msg = 'Unable to remove webhook from repository: %s' % err_msg
raise TriggerDeactivationException(msg) raise TriggerDeactivationException(msg)
# Remove the public key. # Remove the public key.
(result, _, err_msg) = repository.deploykeys().delete(config['deploy_key_id']) if deploy_key_id is not None:
(result, _, err_msg) = repository.deploykeys().delete(deploy_key_id)
if not result: if not result:
msg = 'Unable to remove deploy key from repository: %s' % err_msg msg = 'Unable to remove deploy key from repository: %s' % err_msg
raise TriggerDeactivationException(msg) raise TriggerDeactivationException(msg)
except GitHubBadCredentialsException:
config.pop('hook_id', None) msg = ('Unable to remove trigger as credentials are invalid. ' +
config.pop('deploy_key_id', None) 'Please manually remove the webhook and deploy key.')
raise TriggerDeactivationException(msg)
return config return config