# HG changeset patch # User Marcin Kuzminski # Date 2018-02-15 22:24:23 # Node ID 2d4f0f93dd13f1ac4159d4ce4cf1f6bcebd232e0 # Parent dd15af208c62354b6f7fe067ea6dcc68a1e8a943 events: expose shadow repo build url. diff --git a/rhodecode/events/pullrequest.py b/rhodecode/events/pullrequest.py --- a/rhodecode/events/pullrequest.py +++ b/rhodecode/events/pullrequest.py @@ -56,6 +56,8 @@ class PullRequestEvent(RepoEvent): self.pullrequest, request=self.request), 'permalink_url': PullRequestModel().get_url( self.pullrequest, request=self.request, permalink=True), + 'shadow_url': PullRequestModel().get_shadow_clone_url( + self.pullrequest, request=self.request), 'status': self.pullrequest.calculated_review_status(), 'commits': commits, } diff --git a/rhodecode/integrations/types/base.py b/rhodecode/integrations/types/base.py --- a/rhodecode/integrations/types/base.py +++ b/rhodecode/integrations/types/base.py @@ -132,6 +132,7 @@ CI_URL_VARS = [ # pr events vars 'pull_request_id', 'pull_request_url', + 'pull_request_shadow_url', # user who triggers the call 'username', diff --git a/rhodecode/integrations/types/webhook.py b/rhodecode/integrations/types/webhook.py --- a/rhodecode/integrations/types/webhook.py +++ b/rhodecode/integrations/types/webhook.py @@ -56,6 +56,7 @@ WEBHOOK_URL_VARS = [ # pr events vars 'pull_request_id', 'pull_request_url', + 'pull_request_shadow_url', # user who triggers the call 'username', @@ -156,7 +157,8 @@ class WebhookHandler(object): 'register webhook call(%s) to url %s', event, url) url = string.Template(url).safe_substitute( pull_request_id=data['pullrequest']['pull_request_id'], - pull_request_url=data['pullrequest']['url']) + pull_request_url=data['pullrequest']['url'], + pull_request_shadow_url=data['pullrequest']['shadow_url'],) return [(url, self.secret_token, self.headers, data)] def __call__(self, event, data): @@ -365,6 +367,7 @@ def post_to_webhook(url_calls, settings) rhodecode.__version__) } # updated below with custom ones, allows override + auth = get_auth(settings) for url, token, headers, data in url_calls: req_session = requests.Session() req_session.mount( # retry max N times @@ -375,7 +378,6 @@ def post_to_webhook(url_calls, settings) headers = headers or {} call_headers.update(headers) - auth = get_auth(settings) log.debug('calling Webhook with method: %s, and auth:%s', call_method, auth) diff --git a/rhodecode/model/pull_request.py b/rhodecode/model/pull_request.py --- a/rhodecode/model/pull_request.py +++ b/rhodecode/model/pull_request.py @@ -1063,7 +1063,7 @@ class PullRequestModel(BaseModel): repo_name=safe_str(pull_request.target_repo.repo_name), pull_request_id=pull_request.pull_request_id,) - def get_shadow_clone_url(self, pull_request): + def get_shadow_clone_url(self, pull_request, request=None): """ Returns qualified url pointing to the shadow repository. If this pull request is closed there is no shadow repository and ``None`` will be @@ -1072,7 +1072,7 @@ class PullRequestModel(BaseModel): if pull_request.is_closed(): return None else: - pr_url = urllib.unquote(self.get_url(pull_request)) + pr_url = urllib.unquote(self.get_url(pull_request, request=request)) return safe_unicode('{pr_url}/repository'.format(pr_url=pr_url)) def notify_reviewers(self, pull_request, reviewers_ids):