Add a new integration for Slack.

Review Request #8372 — Created Aug. 31, 2016 and submitted

Information

rbintegrations
master
6817a6b...

Reviewers

This adds a new Review Board 3.0-compatible integration for Slack. This
is built upon the original rbslack extension, but enhances the message
sent to Slack to include additional information, such as the first file
attachment on a review request (or newest one on an update), the
description on a review request, change description on updates,
body_top/first comment text on reviews/replies, trophies, and more.

This new integration takes advantage of the new conditions support in
Review Board 3.0 to allow admins to create multiple custom Slack
configurations, meaning that one server can post to different Slack
channels or even Slack teams, depending on whatever criteria they
choose.

Unit tests were added that cover all the ways we might send a message,
ensuring we won't unexpectedly break as things evolve.

Unit tests pass.

Tested every type of message manually.


Description From Last Updated

I know this isn't part of this patch, but there's a typo here - "serivce" -> "service".

mike_conleymike_conley

Col: 80 E501 line too long (80 > 79 characters)

reviewbotreviewbot

Docstring.

brenniebrennie

This can be a tuple.

brenniebrennie

The title should be localized.

daviddavid

The title should be localized.

daviddavid

Needs a trailing comma

daviddavid

Mark for localization?

daviddavid
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
  2. rbintegrations/slack/tests.py (Diff revision 1)
     
     
    Show all issues
    Col: 80
     E501 line too long (80 > 79 characters)
    
  3. 
      
mike_conley
  1. 
      
  2. rbintegrations/extension.py (Diff revision 1)
     
     
    Show all issues

    I know this isn't part of this patch, but there's a typo here - "serivce" -> "service".

  3. 
      
chipx86
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
  2. 
      
brennie
  1. 
      
  2. rbintegrations/extension.py (Diff revision 2)
     
     

    Shouldnt this have been an add? did it get added mistakenly beforehand?

  3. rbintegrations/slack/forms.py (Diff revision 2)
     
     
    Show all issues

    Docstring.

  4. rbintegrations/slack/integration.py (Diff revision 2)
     
     
    Show all issues

    This can be a tuple.

  5. 
      
chipx86
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
  2. 
      
david
  1. 
      
  2. rbintegrations/slack/forms.py (Diff revision 3)
     
     
    Show all issues

    The title should be localized.

  3. rbintegrations/slack/forms.py (Diff revision 3)
     
     
    Show all issues

    The title should be localized.

  4. rbintegrations/slack/integration.py (Diff revision 3)
     
     
    Show all issues

    Needs a trailing comma

  5. 
      
chipx86
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbintegrations/slack/tests.py
        rbintegrations/extension.py
        rbintegrations/testing/testcases.py
        rbintegrations/slack/forms.py
        rbintegrations/slack/integration.py
    
    Ignored Files:
        rbintegrations/static/images/slack/icon@2x.png
        rbintegrations/testing/__init__.py
        rbintegrations/slack/__init__.py
        rbintegrations/static/images/slack/icon.png
    
    
  2. 
      
david
  1. 
      
  2. rbintegrations/extension.py (Diff revision 4)
     
     
     
     
    Show all issues

    Mark for localization?

  3. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (c463b43)