Evan Harmon - Memex

Slack

Slack is a cloud-based team communication platform developed by Slack Technologies, which since 2020 is owned by Salesforce. Slack has freemium and paid subscription gives access to functionalities such as text messaging, file and media sharing, voice and video calls, and group chat for team collaboration.
wikipedia:: Slack (software)
url:: Slack

/commands

  • https://slack.com/help/articles/201259356-use-built-in-slash-commands
  • /collapse
  • /expand
  • /me
    • Display italicized text, e.g. /me does a dance will display as does a dance
  • /remind [@someone or #channel] to [What] [When]
  • /remind list
  • /shrug [your message]
    • Appends ¯\_(ツ)_/¯ to the end of your message
  • /star*
    • Star the current channel or conversation
  • /who
  • /status
  • /giphy someText
    • loads a gif based on that text - you can choose and shuffle through suggestions

Slack Integration

GitLab

Slack App

Needs to be enabled per project.
I think each user needs to be authenticated. Or they can do it via adding the app on their own.

  • slash commands
    • can run GitLab pipelines
    • can deploy
    **Available commands**The following commands are available for this chatops integration:/gitlab [project name or alias] issue show <id>  
    /gitlab [project name or alias] issue new <title> **`⇧ Shift`**+**`↵ Enter`** <description>  
    /gitlab [project name or alias] issue search <your query>  
    /gitlab [project name or alias] issue move <issue_id> (to)? <project_path>  
    /gitlab [project name or alias] issue close <id>  
    /gitlab [project name or alias] issue comment <id> **`⇧ Shift`**+**`↵ Enter`** <comment>  
    /gitlab [project name or alias] deploy <environment> to <target-environment>  
    /gitlab [project name or alias] run <command> <arguments>If available, the `run` command is used for running GitLab CI jobs  
    defined in this project's `.gitlab-ci.yml` file. For example, if a  
    job called "help" is defined you can run it like so:`/gitlab [project name or alias] run help`
    

Slack Notificaitons via Webhook

Looks like if you add an org level slack integration for a slack channel, but want to add a separate webhook for a specific repo, the gitlab integration settings require you to only choose one webhook, so the repo webhook settings are exclusionary to the org level webhook I think.

What I Wrote for Revlogical

Integration with GitLab

Slack notifications were setup via this documentation - Slack notifications service | GitLab - in which GitLab notifies Slack via a webhook either at the organization or project level.

Slack notifiicaitons to it-crowd channel

To make coordinating Merge Requests and rebasing easier, the it-crowd channel is currently configured to be notified whenever there is a new Merge Request that is also labeled as ready-for-review in the poss project.

Slack gitlab channel

Most GitLab activity for RevLogical, like issues and merge requests, should get pushed to this channel. However, to implement project-specific Slack settings (e.g., to notify a specific Slack channel of specified GitLab events), those project-specific settings appear to take precedence over the organization-level Slack settings. So this makes organization-wide Slack notifications mutually exclusive with project-specific settings. I.e., setting up a project-specific webhook for Slack to only notify on merge requests, (like the poss repo is setup for the it-crowd Slack channel) excludes that project's activities from the organization-wide webhook connected to the gitlab channel. There doesn't appear to be a way around this based on how Slack and GitLab are integrated. But we can always add a new webhook for any other GitLab projects we want custom settings for.

Slack GitLab App

The Slack App for GitLab appears to mainly just enable slash commands.

Slack Slash commands let you perform actions on GitLab directly in Slack. E.g., create a new GitLab issue or run a GitLab CI/CD job. I believe each user needs to enable the GitLab app in Slack if they want to use it. Then they can run commands like /gitlab poss run build:web, although I think more configuration is needed to run jobs from Slack.

Slack
Interactive graph
On this page
Slack
/commands
Slack Integration
GitLab
Slack App
Slack Notificaitons via Webhook
What I Wrote for Revlogical
Integration with GitLab
Slack notifiicaitons to it-crowd channel
Slack gitlab channel
Slack GitLab App