Skip to content

A Slack plugin that watches channels for messages about JIRA and acts accordingly

License

Notifications You must be signed in to change notification settings

maliKobo/slack-jira-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slack JIRA Plugin

This fork is not actively maintained any more. Please use https://github.com/rakutenjeff/slack-jira-plugin instead.

JIRA integration with slack.

It does the following:

  1. Automatically append a link to a message whenever there is a mention of a JIRA issue in the message

Usage

git clone https://github.com/gsingers/slack-jira-plugin.git
cd slack-jira-plugin
npm install

Write your own configuration file (config-example.js) is a good starting point for building your own.

var slackbot = require('./lib/bot');

var config = {
    showIssueDetails: true,
      showDetailsByDefault: true,//if true, you don't need the '+' to get details
      bot_name: "jira",//Provide the name to post under
      token: 'XXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXXX', // https://api.slack.com/web
      jira_urls: {
        // DEFAULT NODE IS REQUIRED.
        "DEFAULT": {url: "https://default.jira.server/browse/"},
        // These should match projects from the projects property where you want to use a configuration other than the default
        "SOLR": {
          url: "https://issues.apache.org/jira/browse/",
          jira: {
            user: 'username', // be sure to use the username, not the user email
            password: 'password',
            host: 'hostname',
            protocol: 'https',
            port: 443,
            version: '2',
            verbose: true,
            strictSSL: true
          }
        },
        "GRANT": {url:"http://grant.jira.server/jira/browse/"}
      },
      search_cmd: "search",
      //Since search results can be verbose, you may not want to muddy the channel
      search_output_chan: "C02U1L9KZ",//if the value is "this", then the current channel will be used, else the name of a channel
      projects: ["REPLACE", "ME", "WITH", "YOUR", "PROJECT", "NAMES", "GRANT", "SOLR"],
      post: true,
      verbose: true,
      emoji: ":jira:", // be sure to upload your custom emoji in slack
      link_separator: ", ",// use \n if you want new lines
      error_channel: '' //the id of the channel to send low level log errors.  If not defined, will use the current channel
};

//DO NOT EDIT BELOW HERE
var slackbot = new slackbot.Bot(config);
slackbot.run();

Save this to a file in the root of the project then run your bot with:

node your-config-file, eg.: node config-gsingers

This will launch the bot in your terminal based on provided configuration.

Configuration

  • token: Your Slack API token, get your token at https://api.slack.com/
  • jira_urls: A mapping of JIRA project names to the URL that can display that JIRA issue, i.e. SOLR -> https://issues.apache.org/jira/browse/
  • projects: A list of JIRA project names, as in SOLR, MAHOUT, LUCENE
  • post: If true, then post a new msg, else update the current one
  • verbose: print logging info
  • emoji: The emoji to use for the bot. You may need to create a JIRA emoji for the current one to work, else replace w/ your favorite slack emoji
  • link_separator: The text to use to separate links in the response.

TODO:

  • Deeper integration w/ the JIRA API
  • Optionally restrict to certain config'd channels

About

A Slack plugin that watches channels for messages about JIRA and acts accordingly

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%