integrations: Remove deprecated Stash integration.

This commit is contained in:
Cynthia Lin 2017-04-17 22:15:48 -07:00 committed by Tim Abbott
parent a267c61cdd
commit ef2ff9f9a0
10 changed files with 0 additions and 145 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@ -146,12 +146,6 @@ WEBHOOK_INTEGRATIONS = [
WebhookIntegration('basecamp'), WebhookIntegration('basecamp'),
WebhookIntegration('bitbucket2', logo='static/images/integrations/logos/bitbucket.svg', display_name='Bitbucket'), WebhookIntegration('bitbucket2', logo='static/images/integrations/logos/bitbucket.svg', display_name='Bitbucket'),
WebhookIntegration('bitbucket', display_name='Bitbucket', secondary_line_text='(Enterprise)'), WebhookIntegration('bitbucket', display_name='Bitbucket', secondary_line_text='(Enterprise)'),
WebhookIntegration(
'stash',
display_name='Bitbucket Server',
secondary_line_text='(Stash)',
logo='static/images/integrations/logos/bitbucket.svg'
),
WebhookIntegration('circleci', display_name='CircleCI'), WebhookIntegration('circleci', display_name='CircleCI'),
WebhookIntegration('codeship'), WebhookIntegration('codeship'),
WebhookIntegration('crashlytics'), WebhookIntegration('crashlytics'),

View File

@ -1,68 +0,0 @@
<h4>Stash</h4>
<p>
See what the team is committing to Stash right in Zulip with the Zulip
Stash plugin!
</p>
<p>
First, create the stream you'd like to use for Stash notifications, and
subscribe all interested parties to this stream. We recommend the
name <code>commits</code>.
</p>
<p>Next, on your {{ settings_html|safe }}, create a Stash bot.</p>
<p>Then:</p>
<ol>
<li>
<p>
Visit the Settings page for the Project that you'd like to generate
Zulip notifications. Click the "Hooks" option in the left sidebar, and
click "Add Hook" on the resulting page. Click the "Search for hook
plugins" link:
</p>
<img class="screenshot" src="/static/images/integrations/stash/001.png"/>
</li>
<li>
<p>
On the search results page, look for and install the "Post-Receive
WebHook for Stash" plugin:
</p>
<img class="screenshot" src="/static/images/integrations/stash/002.png"/>
</li>
<li>
<p>
Return to the Settings page for this Project and click the "Hooks"
option in the left sidebar. The newly-installed post-receive webhook
plugin is now listed in the "Post-receive" hooks section. Click the
edit icon next to the hook to configure it:
</p>
<img class="screenshot" src="/static/images/integrations/stash/003.png"/>
</li>
<li>
<p>
Supply the following webhook URL, replacing the bot email address,
bot API key, and Zulip stream with the appropriate
information. <b>Note:</b> the <code>@</code>-sign in the bot e-mail
address must be escaped to <code>%40</code>:
</p>
<p>
<code>{{ external_uri_scheme }}<font color="#00A26F">stash-bot%40example.com</font>:<font color="#00A26F">api_key</font>@{{ external_api_path_subdomain }}/v1/external/stash?stream=<font color="#00A26F">commits</font></code>
</p>
<img class="screenshot" src="/static/images/integrations/stash/004.png"/>
</li>
</ol>
<p>
<b>Congratulations! You're done!</b><br/> When you push to Stash, the
team can see these updates in real time in Zulip:
</p>
<img class="screenshot" src="/static/images/integrations/stash/005.png"/>

View File

@ -1,27 +0,0 @@
# -*- coding: utf-8 -*-
from typing import Text
from zerver.lib.test_classes import WebhookTestCase
class StashHookTests(WebhookTestCase):
STREAM_NAME = 'stash'
URL_TEMPLATE = u"/api/v1/external/stash?stream={stream}"
def test_stash_message(self):
# type: () -> None
"""
Messages are generated by Stash on a `git push`.
The subject describes the repo and Stash "project". The
content describes the commits pushed.
"""
expected_subject = u"Secret project/Operation unicorn: master"
expected_message = """`f259e90` was pushed to **master** in **Secret project/Operation unicorn** with:
* `f259e90`: Updating poms ..."""
self.send_and_test_stream_message('push', expected_subject, expected_message,
content_type="application/x-www-form-urlencoded",
**self.api_auth(self.TEST_USER_EMAIL))
def get_body(self, fixture_name):
# type: (Text) -> Text
return self.fixture_data("stash", fixture_name, file_type="json")

View File

@ -1,44 +0,0 @@
# Webhooks for external integrations.
from __future__ import absolute_import
from django.http import HttpRequest, HttpResponse
from django.utils.translation import ugettext as _
from zerver.models import get_client
from zerver.lib.actions import check_send_message
from zerver.lib.response import json_success, json_error
from zerver.decorator import REQ, has_request_variables, authenticated_rest_api_view
from zerver.models import UserProfile
import ujson
from typing import Any, Dict, Text
@authenticated_rest_api_view(is_webhook=True)
@has_request_variables
def api_stash_webhook(request, user_profile, payload=REQ(argument_type='body'),
stream=REQ(default='commits')):
# type: (HttpRequest, UserProfile, Dict[str, Any], Text) -> HttpResponse
# We don't get who did the push, or we'd try to report that.
try:
repo_name = payload["repository"]["name"]
project_name = payload["repository"]["project"]["name"]
branch_name = payload["refChanges"][0]["refId"].split("/")[-1]
commit_entries = payload["changesets"]["values"]
commits = [(entry["toCommit"]["displayId"],
entry["toCommit"]["message"].split("\n")[0]) for
entry in commit_entries]
head_ref = commit_entries[-1]["toCommit"]["displayId"]
except KeyError as e:
return json_error(_("Missing key %s in JSON") % (str(e),))
subject = "%s/%s: %s" % (project_name, repo_name, branch_name)
content = "`%s` was pushed to **%s** in **%s/%s** with:\n\n" % (
head_ref, branch_name, project_name, repo_name)
content += "\n".join("* `%s`: %s" % (
commit[0], commit[1]) for commit in commits)
check_send_message(user_profile, get_client("ZulipStashWebhook"), "stream",
[stream], subject, content)
return json_success()