slack-integration

Slack integration

Usage no npm install needed!

<script type="module">
  import slackIntegration from 'https://cdn.skypack.dev/slack-integration';
</script>

README

Slack integration for NodeJS

Package for sending slack messages and retrieving Git repository's user info.

This package is not compiled to ES5 and therefore requires Promise, and async/await support.

Installation

npm i slack-integration

Setup

Do not share Slack token in public code repositories.

Generate legacy API token here for your Slack team: https://api.slack.com/custom-integrations/legacy-tokens

Then initialize this package's exported class with generated token as first argument:

import Slack from 'slack-integration';

const token = 'XXXXXX';
const slackIntegration = new Slack(token);

Once initialized, you can access following methods:

send(message: Object): Promise

This methods allows you send a message in your Slack workspace.

See https://api.slack.com/methods/chat.postMessage for arguments and result response.

Example:

slackIntegration.send({
    channel: 'channel id here',
    as_user: false,
    username: 'Your Slack',
    text: 'Hello, its me!',
})
    .then((result) => console.log(result))
    .catch((err) => console.error(err));

getCurrentGitUser(): Promise

This methods returns Promise, when resolved, an object with keys: "name", and "email" are returned.

On error, it will be rejected.

It runs following commands in the working directory:

git config user.name
git config user.email

Example:

slackIntegration.getCurrentGitUser()
    .then((result) => console.log(result)) // { name: 'Git user name', email: 'Git user email' }
    .catch((err) => console.error(err));

getUsers(): Promise

This methods returns a list of found users in your Slack workspace.

See https://api.slack.com/methods/users.list for more information on response.

Example:

slackIntegration.getUsers()
    .then((result) => console.log(result))
    .catch((err) => console.error(err));

findUser(properties: Object): Promise

You can search your Slack workspack users by following properties object:

{
    "email": "search-this-email@email.com",
    "name": "or find this user with such name"
}

It tries to search by both, whatever it finds first, will be user that will be resolved.

Example:

slackIntegration.findUser({
    email: 'some-slace-workspace-user@email.com',
})
    .then((result) => console.log(result))
    .catch((err) => console.error(err));

Contributions & Issues

Contributions are welcome. Please clearly explain the purpose of the PR and follow the current style.

Issues can be resolved quickest if they are descriptive and include both a reduced test case and a set of steps to reproduce.

Licence

The slack-integration library is copyright © Genert Org and licensed for use under the MIT License (MIT).

Please see MIT License for more information.