This botkit-based slackbot allows your team to use a slack instance as a single entry point to various useful tools
- GitHub
- Jenkins
- Jira
It contains also lots of functions ... some more useful than others !
- Vacations / Sick leave tracking : use the bot to request vacations, and authorized members can validate or reject them
- Games for coffee breaks: Quizz and Trivia ( If you are a nazi, you can of course deactivate them )
Feel free to contribute :)
-
GENERAL
- help : Provide help for lamanul bot
-
GITHUB
- members : List members of GIT_ORG
- pull requests : List open pull requests of GIT_ORG/GIT_MAIN_REPO
- search code CODE : Search in GIT_MAIN_REPO code (ex: search code Membership_m )
- search doc KEYWORDS : Search in GIT_ORG doc (ex: search doc Installation pre-requisites )
- repos : List repos of GIT_ORG
- teams : List teams of GIT_ORG
-
JENKINS
- jobs : List all jenkins jobs of JENKINS_MAIN_VIEW
- running jobs : List all currently running jobs
- build JOB_NAME : Launch a build for the job name specified ( ex: build DXCO4SF-1150-TST-DevRootOrg )
-
JIRA
- current sprint : List open issues of the current sprint
- issues of @USER : List open issues of a user
- my issues : List your open issues
-
ABSENCES / VACATIONS / SICK LEAVE
- absences (optional) @USER : List current and future absences
- past absences (optional) @USER : Display past absences
- my absences : List current and future absences
- my past absences : Display past absences
- add absences validator @USER : Adds an absence validator
- remove absences validator @USER : Removes an absence validator
-
MISC
- tell EXPRESSION : Retrieves value corresponding to expression (stored using remember command )
- learn EXPRESSION=VALUE : Stores value corresponding to expression
- start quizz : Launch an interactive quizz in the channel ( https://opentdb.com database )
- start trivia : Launch an interactive trivia in the channel ( http://jservice.io database )
-
Create a new app on https://api.slack.com/
-
Interactive components: https://YOURAPPNAME.herokuapp.com/slack/receive (can be done after next step)
-
OAuth & Permissions
-
Callback URL: https://YOURAPPNAME.herokuapp.com/oauth (can be done after next step)
-
Permission scopes:
- bot
- channels:write
- chat:write:bot
- incoming-webhook
- users:read
- users:read.email
- users.profile:read
-
-
-
Activate bot user
-
Free heroku dyno will be fine
-
Define the following environment variable in Heroku app
-
SLACK / BOTKIT / STORAGE
- MY_HOST : Your app current host (ex: https://YOURAPPNAME.herokuapp.com )
- token: Slack bot token ( ex: dfh54dg56hf46ggh64fg56gh564fg46fh)
- CLIENT_ID : Slack App client Id (ex: 424298597.3788425242061)
- CLIENT_SECRET : Slack App client secret (ex: 54575272754f2bb0468105513e60)
- PORT : Your bot port (ex: 8765)
- MONGOLAB_URI : URI of a mongo database (ex: mongodb://someuser:somepassword@ds2514444.mlab.com:55260/slackbot-lelamanul )
- You can use mlab.com free 500mb database if you do not have a mongodb database
-
GitHub
- GIT_USERNAME : Your github username ( ex: nvuillam )
- GIT_PASSWORD : Your github password or token ( ex: dfdgdhgh6d46fg4h6fgfg6 )
- GIT_ORG : Your main github organization (ex: Omnichannel-for-Salesforce )
- GIT_MAIN_REPO : Your main github repository , containing source code. ( ex: DXCO4SF_Sources )
-
Jenkins
- JENKINS_HOST : Your jenkins instance host ( ex: jenkins.mydomain.com:8080 )
- JENKINS_USERNAME : Your jenkins username (ex: nvuillam )
- JENKINS_PASSWORD : Your jenkins password or token ( ex: df46d4h6fg4h6fg4h6fg6 )
- JENKINS_MAIN_VIEW : Your Jenkins main view ( ex: DXC-OmniChannel-for-Salesforce )
-
Jira
- JIRA_HOST : Your JIRA instance host ( ex: jira.mydomain.com )
- JIRA_USERNAME : Your JIRA username ( ex: nvuillam )
- JIRA_PASSWORD : Your JIRA password or token ( ex: dffgdg5dfg5df5g5 )
- JIRA_MAIN_PROJECT_NAME : Your JIRA main project name ( ex: Cloud IRM )
-
Miscellaneous
- ACTIVATE_QUIZZ : Activate quizz & trivia commands
-
Email notifications
- ABSENCES_SENDER_EMAIL_SERVICE : Email service for nodemailer package
- ABSENCES_SENDER_EMAIL_ADDRESS : Email address sending the mails
- ABSENCES_SENDER_EMAIL_USERNAME : Username for mailing service ( if not set, ABSENCES_SENDER_EMAIL_ADDRESS will be used )
- ABSENCES_SENDER_EMAIL_PASSWORD : Password token for E-mail service
-
- Open https://YOURAPPNAME.herokuapp.com/login in a web browser