mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	integrations: Add initial categories to our integrations page.
This commit is contained in:
		@@ -34,12 +34,21 @@ features for writing and configuring integrations efficiently.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
CATEGORIES = {
 | 
			
		||||
    'customer_support': _('Customer support'),
 | 
			
		||||
    'analytics': _('Analytics'),
 | 
			
		||||
    'email': _('Email'),
 | 
			
		||||
    'project_management': _('Project management'),
 | 
			
		||||
    'version_control': _('Version control'),
 | 
			
		||||
    'bots': _('Bots'),
 | 
			
		||||
    'continuous_integration': _('Continuous integration'),
 | 
			
		||||
    'customer_support': _('Customer support'),
 | 
			
		||||
    'deployment': _('Deployment'),
 | 
			
		||||
    'communication': _('Communication'),
 | 
			
		||||
    'file_management': _('File management'),
 | 
			
		||||
    'financial': _('Financial and payments'),
 | 
			
		||||
    'hr': _('HR'),
 | 
			
		||||
    'marketing': _('Marketing'),
 | 
			
		||||
    'misc': _('Miscellaneous'),
 | 
			
		||||
    'monitoring': _('Monitoring and error reporting'),
 | 
			
		||||
    'project_management': _('Project management'),
 | 
			
		||||
    'productivity': _('Productivity'),
 | 
			
		||||
    'version_control': _('Version control'),
 | 
			
		||||
}  # type: Dict[str, str]
 | 
			
		||||
 | 
			
		||||
class Integration(object):
 | 
			
		||||
@@ -186,39 +195,39 @@ class GithubIntegration(WebhookIntegration):
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
WEBHOOK_INTEGRATIONS = [
 | 
			
		||||
    WebhookIntegration('airbrake', ['analytics']),
 | 
			
		||||
    WebhookIntegration('appfollow', ['analytics'], display_name='AppFollow'),
 | 
			
		||||
    WebhookIntegration('beanstalk', ['analytics']),
 | 
			
		||||
    WebhookIntegration('basecamp', ['analytics']),
 | 
			
		||||
    WebhookIntegration('airbrake', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('appfollow', ['customer_support'], display_name='AppFollow'),
 | 
			
		||||
    WebhookIntegration('beanstalk', ['version_control']),
 | 
			
		||||
    WebhookIntegration('basecamp', ['project_management']),
 | 
			
		||||
    WebhookIntegration(
 | 
			
		||||
        'bitbucket2',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['version_control'],
 | 
			
		||||
        logo='static/images/integrations/logos/bitbucket.svg',
 | 
			
		||||
        display_name='Bitbucket',
 | 
			
		||||
        stream_name='bitbucket'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration(
 | 
			
		||||
        'bitbucket',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['version_control'],
 | 
			
		||||
        display_name='Bitbucket',
 | 
			
		||||
        secondary_line_text='(Enterprise)',
 | 
			
		||||
        stream_name='commits'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration('circleci', ['continuous_integration'], display_name='CircleCI'),
 | 
			
		||||
    WebhookIntegration('codeship', ['analytics']),
 | 
			
		||||
    WebhookIntegration('crashlytics', ['analytics']),
 | 
			
		||||
    WebhookIntegration('delighted', ['analytics'], display_name='Delighted'),
 | 
			
		||||
    WebhookIntegration('codeship', ['continuous_integration', 'deployment']),
 | 
			
		||||
    WebhookIntegration('crashlytics', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('delighted', ['customer_support', 'marketing'], display_name='Delighted'),
 | 
			
		||||
    WebhookIntegration(
 | 
			
		||||
        'deskdotcom',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['customer_support'],
 | 
			
		||||
        logo='static/images/integrations/logos/deskcom.png',
 | 
			
		||||
        display_name='Desk.com',
 | 
			
		||||
        stream_name='desk'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration('freshdesk', ['analytics']),
 | 
			
		||||
    WebhookIntegration('freshdesk', ['customer_support']),
 | 
			
		||||
    GithubIntegration(
 | 
			
		||||
        'github',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['version_control'],
 | 
			
		||||
        function='zerver.webhooks.github.view.api_github_landing',
 | 
			
		||||
        display_name='GitHub',
 | 
			
		||||
        secondary_line_text='(deprecated)',
 | 
			
		||||
@@ -226,89 +235,92 @@ WEBHOOK_INTEGRATIONS = [
 | 
			
		||||
    ),
 | 
			
		||||
    GithubIntegration(
 | 
			
		||||
        'github_webhook',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['version_control'],
 | 
			
		||||
        display_name='GitHub',
 | 
			
		||||
        logo='static/images/integrations/logos/github.svg',
 | 
			
		||||
        secondary_line_text='(webhook)',
 | 
			
		||||
        function='zerver.webhooks.github_webhook.view.api_github_webhook',
 | 
			
		||||
        stream_name='github'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration('gitlab', ['analytics'], display_name='GitLab'),
 | 
			
		||||
    WebhookIntegration('gogs', ['analytics']),
 | 
			
		||||
    WebhookIntegration('gosquared', ['analytics'], display_name='GoSquared'),
 | 
			
		||||
    WebhookIntegration('greenhouse', ['analytics'], display_name='Greenhouse'),
 | 
			
		||||
    WebhookIntegration('hellosign', ['analytics'], display_name='HelloSign'),
 | 
			
		||||
    WebhookIntegration('helloworld', ['analytics'], display_name='Hello World'),
 | 
			
		||||
    WebhookIntegration('heroku', ['analytics'], display_name='Heroku'),
 | 
			
		||||
    WebhookIntegration('homeassistant', ['analytics'], display_name='Home Assistant'),
 | 
			
		||||
    WebhookIntegration('gitlab', ['version_control'], display_name='GitLab'),
 | 
			
		||||
    WebhookIntegration('gogs', ['version_control']),
 | 
			
		||||
    WebhookIntegration('gosquared', ['analytics', 'marketing'], display_name='GoSquared'),
 | 
			
		||||
    WebhookIntegration('greenhouse', ['hr'], display_name='Greenhouse'),
 | 
			
		||||
    WebhookIntegration('hellosign', ['file_management', 'hr'], display_name='HelloSign'),
 | 
			
		||||
    WebhookIntegration('helloworld', ['misc'], display_name='Hello World'),
 | 
			
		||||
    WebhookIntegration('heroku', ['deployment'], display_name='Heroku'),
 | 
			
		||||
    WebhookIntegration('homeassistant', ['misc'], display_name='Home Assistant'),
 | 
			
		||||
    WebhookIntegration(
 | 
			
		||||
        'ifttt',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['misc'],
 | 
			
		||||
        function='zerver.webhooks.ifttt.view.api_iftt_app_webhook',
 | 
			
		||||
        display_name='IFTTT'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration('jira', ['analytics'], secondary_line_text='(hosted or v5.2+)', display_name='JIRA'),
 | 
			
		||||
    WebhookIntegration('librato', ['analytics']),
 | 
			
		||||
    WebhookIntegration('mention', ['analytics'], display_name='Mention'),
 | 
			
		||||
    WebhookIntegration('newrelic', ['analytics'], display_name='New Relic'),
 | 
			
		||||
    WebhookIntegration('pagerduty', ['analytics']),
 | 
			
		||||
    WebhookIntegration('papertrail', ['analytics']),
 | 
			
		||||
    WebhookIntegration('pingdom', ['analytics']),
 | 
			
		||||
    WebhookIntegration('pivotal', ['analytics'], display_name='Pivotal Tracker'),
 | 
			
		||||
    WebhookIntegration('semaphore', ['analytics'], stream_name='builds'),
 | 
			
		||||
    WebhookIntegration('sentry', ['analytics']),
 | 
			
		||||
    WebhookIntegration('slack', ['analytics']),
 | 
			
		||||
    WebhookIntegration('solano', ['analytics'], display_name='Solano Labs'),
 | 
			
		||||
    WebhookIntegration('splunk', ['analytics'], display_name='Splunk'),
 | 
			
		||||
    WebhookIntegration('stripe', ['analytics'], display_name='Stripe'),
 | 
			
		||||
    WebhookIntegration('taiga', ['analytics']),
 | 
			
		||||
    WebhookIntegration('teamcity', ['analytics']),
 | 
			
		||||
    WebhookIntegration('transifex', ['analytics']),
 | 
			
		||||
    WebhookIntegration('travis', ['analytics'], display_name='Travis CI'),
 | 
			
		||||
    WebhookIntegration('trello', ['analytics'], secondary_line_text='(webhook)'),
 | 
			
		||||
    WebhookIntegration('updown', ['analytics']),
 | 
			
		||||
    WebhookIntegration('jira', ['project_management'],
 | 
			
		||||
                       secondary_line_text='(hosted or v5.2+)', display_name='JIRA'),
 | 
			
		||||
    WebhookIntegration('librato', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('mention', ['marketing'], display_name='Mention'),
 | 
			
		||||
    WebhookIntegration('newrelic', ['analytics', 'monitoring'], display_name='New Relic'),
 | 
			
		||||
    WebhookIntegration('pagerduty', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('papertrail', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('pingdom', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('pivotal', ['project_management'], display_name='Pivotal Tracker'),
 | 
			
		||||
    WebhookIntegration('semaphore', ['continuous_integration', 'deployment'], stream_name='builds'),
 | 
			
		||||
    WebhookIntegration('sentry', ['monitoring']),
 | 
			
		||||
    WebhookIntegration('slack', ['communication']),
 | 
			
		||||
    WebhookIntegration('solano', ['continuous_integration'], display_name='Solano Labs'),
 | 
			
		||||
    WebhookIntegration('splunk', ['monitoring'], display_name='Splunk'),
 | 
			
		||||
    WebhookIntegration('stripe', ['financial'], display_name='Stripe'),
 | 
			
		||||
    WebhookIntegration('taiga', ['project_management']),
 | 
			
		||||
    WebhookIntegration('teamcity', ['continuous_integration']),
 | 
			
		||||
    WebhookIntegration('transifex', ['misc']),
 | 
			
		||||
    WebhookIntegration('travis', ['continuous_integration'], display_name='Travis CI'),
 | 
			
		||||
    WebhookIntegration('trello', ['project_management'], secondary_line_text='(webhook)'),
 | 
			
		||||
    WebhookIntegration('updown', ['monitoring']),
 | 
			
		||||
    WebhookIntegration(
 | 
			
		||||
        'yo',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['communication'],
 | 
			
		||||
        function='zerver.webhooks.yo.view.api_yo_app_webhook',
 | 
			
		||||
        display_name='Yo App'
 | 
			
		||||
    ),
 | 
			
		||||
    WebhookIntegration('wordpress', ['analytics'], display_name='WordPress'),
 | 
			
		||||
    WebhookIntegration('zapier', ['analytics']),
 | 
			
		||||
    WebhookIntegration('zendesk', ['analytics'])
 | 
			
		||||
    WebhookIntegration('wordpress', ['marketing'], display_name='WordPress'),
 | 
			
		||||
    WebhookIntegration('zapier', ['misc']),
 | 
			
		||||
    WebhookIntegration('zendesk', ['customer_support'])
 | 
			
		||||
]  # type: List[WebhookIntegration]
 | 
			
		||||
 | 
			
		||||
INTEGRATIONS = {
 | 
			
		||||
    'asana': Integration('asana', 'asana', ['analytics'], doc='zerver/integrations/asana.md'),
 | 
			
		||||
    'asana': Integration('asana', 'asana', ['project_management'], doc='zerver/integrations/asana.md'),
 | 
			
		||||
    'capistrano': Integration(
 | 
			
		||||
        'capistrano',
 | 
			
		||||
        'capistrano',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['deployment'],
 | 
			
		||||
        display_name='Capistrano',
 | 
			
		||||
        doc='zerver/integrations/capistrano.md'
 | 
			
		||||
    ),
 | 
			
		||||
    'codebase': Integration('codebase', 'codebase', ['analytics'], doc='zerver/integrations/codebase.md'),
 | 
			
		||||
    'email': EmailIntegration('email', 'email', ['analytics'], doc='zerver/integrations/email.md'),
 | 
			
		||||
    'git': Integration('git', 'git', ['analytics'], doc='zerver/integrations/git.md'),
 | 
			
		||||
    'codebase': Integration('codebase', 'codebase', ['version_control'],
 | 
			
		||||
                            doc='zerver/integrations/codebase.md'),
 | 
			
		||||
    'email': EmailIntegration('email', 'email', ['communication'],
 | 
			
		||||
                              doc='zerver/integrations/email.md'),
 | 
			
		||||
    'git': Integration('git', 'git', ['version_control'], doc='zerver/integrations/git.md'),
 | 
			
		||||
    'google-calendar': Integration(
 | 
			
		||||
        'google-calendar',
 | 
			
		||||
        'google-calendar',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['productivity'],
 | 
			
		||||
        display_name='Google Calendar',
 | 
			
		||||
        doc='zerver/integrations/google-calendar.md'
 | 
			
		||||
    ),
 | 
			
		||||
    'hubot': Integration('hubot', 'hubot', ['analytics'], doc='zerver/integrations/hubot.md'),
 | 
			
		||||
    'hubot': Integration('hubot', 'hubot', ['bots'], doc='zerver/integrations/hubot.md'),
 | 
			
		||||
    'jenkins': Integration(
 | 
			
		||||
        'jenkins',
 | 
			
		||||
        'jenkins',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['continuous_integration'],
 | 
			
		||||
        secondary_line_text='(or Hudson)',
 | 
			
		||||
        doc='zerver/integrations/jenkins.md'
 | 
			
		||||
    ),
 | 
			
		||||
    'jira-plugin': Integration(
 | 
			
		||||
        'jira-plugin',
 | 
			
		||||
        'jira-plugin',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['project_management'],
 | 
			
		||||
        logo='static/images/integrations/logos/jira.svg',
 | 
			
		||||
        secondary_line_text='(locally installed)',
 | 
			
		||||
        display_name='JIRA',
 | 
			
		||||
@@ -318,50 +330,55 @@ INTEGRATIONS = {
 | 
			
		||||
    'mercurial': Integration(
 | 
			
		||||
        'mercurial',
 | 
			
		||||
        'mercurial',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['version_control'],
 | 
			
		||||
        display_name='Mercurial (hg)',
 | 
			
		||||
        doc='zerver/integrations/mercurial.md',
 | 
			
		||||
        stream_name='commits',
 | 
			
		||||
    ),
 | 
			
		||||
    'nagios': Integration('nagios', 'nagios', ['analytics'], doc='zerver/integrations/nagios.md'),
 | 
			
		||||
    'nagios': Integration('nagios', 'nagios', ['monitoring'], doc='zerver/integrations/nagios.md'),
 | 
			
		||||
    'openshift': Integration(
 | 
			
		||||
        'openshift',
 | 
			
		||||
        'openshift',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['deployment'],
 | 
			
		||||
        display_name='OpenShift',
 | 
			
		||||
        doc='zerver/integrations/openshift.md',
 | 
			
		||||
        stream_name='deployments',
 | 
			
		||||
    ),
 | 
			
		||||
    'perforce': Integration('perforce', 'perforce', ['analytics'], doc='zerver/integrations/perforce.md'),
 | 
			
		||||
    'phabricator': Integration('phabricator', 'phabricator', ['analytics'], doc='zerver/integrations/phabricator.md'),
 | 
			
		||||
    'puppet': Integration('puppet', 'puppet', ['analytics'], doc='zerver/integrations/puppet.md'),
 | 
			
		||||
    'redmine': Integration('redmine', 'redmine', ['analytics'], doc='zerver/integrations/redmine.md'),
 | 
			
		||||
    'rss': Integration('rss', 'rss', ['analytics'], display_name='RSS', doc='zerver/integrations/rss.md'),
 | 
			
		||||
    'svn': Integration('svn', 'svn', ['analytics'], doc='zerver/integrations/svn.md'),
 | 
			
		||||
    'trac': Integration('trac', 'trac', ['analytics'], doc='zerver/integrations/trac.md'),
 | 
			
		||||
    'perforce': Integration('perforce', 'perforce', ['version_control'],
 | 
			
		||||
                            doc='zerver/integrations/perforce.md'),
 | 
			
		||||
    'phabricator': Integration('phabricator', 'version_control', ['analytics'],
 | 
			
		||||
                               doc='zerver/integrations/phabricator.md'),
 | 
			
		||||
    'puppet': Integration('puppet', 'puppet', ['deployment'], doc='zerver/integrations/puppet.md'),
 | 
			
		||||
    'redmine': Integration('redmine', 'redmine', ['project_management'], doc='zerver/integrations/redmine.md'),
 | 
			
		||||
    'rss': Integration('rss', 'rss', ['communication'], display_name='RSS', doc='zerver/integrations/rss.md'),
 | 
			
		||||
    'svn': Integration('svn', 'svn', ['version_control'], doc='zerver/integrations/svn.md'),
 | 
			
		||||
    'trac': Integration('trac', 'trac', ['project_management'], doc='zerver/integrations/trac.md'),
 | 
			
		||||
    'trello-plugin': Integration(
 | 
			
		||||
        'trello-plugin',
 | 
			
		||||
        'trello-plugin',
 | 
			
		||||
        ['analytics'],
 | 
			
		||||
        ['project_management'],
 | 
			
		||||
        logo='static/images/integrations/logos/trello.svg',
 | 
			
		||||
        secondary_line_text='(legacy)',
 | 
			
		||||
        display_name='Trello',
 | 
			
		||||
        doc='zerver/integrations/trello-plugin.md',
 | 
			
		||||
        stream_name='trello',
 | 
			
		||||
    ),
 | 
			
		||||
    'twitter': Integration('twitter', 'twitter', ['analytics'], doc='zerver/integrations/twitter.md'),
 | 
			
		||||
    'twitter': Integration('twitter', 'twitter', ['customer_support', 'marketing'],
 | 
			
		||||
                           doc='zerver/integrations/twitter.md'),
 | 
			
		||||
}  # type: Dict[str, Integration]
 | 
			
		||||
 | 
			
		||||
HUBOT_LOZENGES = {
 | 
			
		||||
    'assembla': HubotLozenge('assembla', ['analytics']),
 | 
			
		||||
    'bonusly': HubotLozenge('bonusly', ['analytics']),
 | 
			
		||||
    'chartbeat': HubotLozenge('chartbeat', ['analytics']),
 | 
			
		||||
    'darksky': HubotLozenge('darksky', ['analytics'], display_name='Dark Sky', logo_alt='Dark Sky logo'),
 | 
			
		||||
    'hangouts': HubotLozenge('google-hangouts', ['analytics'], display_name="Hangouts"),
 | 
			
		||||
    'instagram': HubotLozenge('instagram', ['analytics'], logo='static/images/integrations/logos/instagram.png'),
 | 
			
		||||
    'mailchimp': HubotLozenge('mailchimp', ['analytics'], display_name='MailChimp', logo_alt='MailChimp logo'),
 | 
			
		||||
    'translate': HubotLozenge('google-translate', ['analytics'], display_name="Translate", logo_alt='Google Translate logo'),
 | 
			
		||||
    'youtube': HubotLozenge('youtube', ['analytics'], display_name='YouTube', logo_alt='YouTube logo')
 | 
			
		||||
    'assembla': HubotLozenge('assembla', ['project_management', 'version_control']),
 | 
			
		||||
    'bonusly': HubotLozenge('bonusly', ['hr']),
 | 
			
		||||
    'chartbeat': HubotLozenge('chartbeat', ['marketing']),
 | 
			
		||||
    'darksky': HubotLozenge('darksky', ['misc'], display_name='Dark Sky', logo_alt='Dark Sky logo'),
 | 
			
		||||
    'hangouts': HubotLozenge('google-hangouts', ['communication'], display_name="Hangouts"),
 | 
			
		||||
    'instagram': HubotLozenge('instagram', ['misc'], logo='static/images/integrations/logos/instagram.png'),
 | 
			
		||||
    'mailchimp': HubotLozenge('mailchimp', ['communication', 'marketing'],
 | 
			
		||||
                              display_name='MailChimp', logo_alt='MailChimp logo'),
 | 
			
		||||
    'translate': HubotLozenge('google-translate', ['misc'],
 | 
			
		||||
                              display_name="Translate", logo_alt='Google Translate logo'),
 | 
			
		||||
    'youtube': HubotLozenge('youtube', ['misc'], display_name='YouTube', logo_alt='YouTube logo')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for integration in WEBHOOK_INTEGRATIONS:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user