lib/integrations: Add stream_name attribute to Integration.

Instead of using the name of the integration as a recommended
stream name in its documentation, the Integration object now
has a dedicated attribute stream_name to explicitly specify a
recommended stream name for when it is different than the name
of the integration itself.
This commit is contained in:
Eeshan Garg
2017-06-12 18:55:30 -02:30
committed by Tim Abbott
parent b74cc576ae
commit db09913f38
2 changed files with 31 additions and 25 deletions

View File

@@ -32,8 +32,9 @@ class Integration(object):
DEFAULT_LOGO_STATIC_PATH_PNG = 'static/images/integrations/logos/{name}.png'
DEFAULT_LOGO_STATIC_PATH_SVG = 'static/images/integrations/logos/{name}.svg'
def __init__(self, name, client_name, logo=None, secondary_line_text=None, display_name=None, doc=None):
# type: (str, str, Optional[str], Optional[str], Optional[str], Optional[str]) -> None
def __init__(self, name, client_name, logo=None, secondary_line_text=None,
display_name=None, doc=None, stream_name=None):
# type: (str, str, Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]) -> None
self.name = name
self.client_name = client_name
self.secondary_line_text = secondary_line_text
@@ -51,6 +52,10 @@ class Integration(object):
display_name = name.title()
self.display_name = display_name
if stream_name is None:
stream_name = self.name
self.stream_name = stream_name
def is_enabled(self):
# type: () -> bool
return True
@@ -82,11 +87,11 @@ class WebhookIntegration(Integration):
DEFAULT_DOC_PATH = '{name}/doc.{ext}'
def __init__(self, name, client_name=None, logo=None, secondary_line_text=None,
function=None, url=None, display_name=None, doc=None):
# type: (str, Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]) -> None
function=None, url=None, display_name=None, doc=None, stream_name=None):
# type: (str, Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]) -> None
if client_name is None:
client_name = self.DEFAULT_CLIENT_NAME.format(name=name.title())
super(WebhookIntegration, self).__init__(name, client_name, logo, secondary_line_text, display_name)
super(WebhookIntegration, self).__init__(name, client_name, logo, secondary_line_text, display_name, stream_name=stream_name)
if function is None:
function = self.DEFAULT_FUNCTION_PATH.format(name=name)
@@ -135,13 +140,13 @@ class GithubIntegration(WebhookIntegration):
We want to have one generic url with dispatch function for github service and github webhook.
"""
def __init__(self, name, client_name=None, logo=None, secondary_line_text=None,
function=None, url=None, display_name=None, doc=None):
# type: (str, Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]) -> None
function=None, url=None, display_name=None, doc=None, stream_name=None):
# type: (str, Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]) -> None
url = self.DEFAULT_URL.format(name='github')
super(GithubIntegration, self).__init__(
name, client_name, logo, secondary_line_text,
function, url, display_name, doc)
function, url, display_name, doc, stream_name)
@property
def url_object(self):
@@ -153,7 +158,12 @@ WEBHOOK_INTEGRATIONS = [
WebhookIntegration('appfollow', display_name='AppFollow'),
WebhookIntegration('beanstalk'),
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',
stream_name='bitbucket'
),
WebhookIntegration('bitbucket', display_name='Bitbucket', secondary_line_text='(Enterprise)'),
WebhookIntegration('circleci', display_name='CircleCI'),
WebhookIntegration('codeship'),