Mattermost Solutions for GitLab: Deep integration to ship software faster 

Around the world, thousands of DevSecOps teams are shipping software faster and more reliably by integrating Mattermost with their self-hosted GitLab deployments. When combined, these platforms connect developer toolchains with real-time communications, audio calling, screen sharing and collaborative workflows. 

We’re excited to announce “Mattermost Solutions for GitLab” to make it easier than ever for more teams to realize the benefits of an integrated platform that delivers: 

  • Control of Collaboration: Information remains within one secure, easy-to-use system
  • Reduced Risk and Error Rates: Document, share, and operationalize team expertise
  • Increased Operational Productivity: Automate repeatable processes and customize notifications

The solution has three components: 

  1. Integrated deployment and management: Turnkey Mattermost deployment, upgrades, and management via GitLab Omnibus 
  2. Out-of-the-box GitLab functionality: Real-time alerting about merge requests, issues, pipelines, and deployment for your GitLab projects with bi-directional control via in-channel tooling
  3. Platform for custom actions: Deep extensibility via incoming and outgoing webhooks, slash commands, notifications, playbooks, and plugins

If you’re using GitLab at your organization, your teams are already equipped with everything needed to use Mattermost for secure collaboration. How can you take advantage of this untapped potential? Let’s turn the key.

1. Integrated Mattermost and GitLab Deployment

Mattermost is one of a handful of tools included in the official GitLab Linux package, aka GitLab Omnibus. That means spinning up a Mattermost workspace from the GitLab package instantly delivers connections and configuration without extra work.
Follow the instructions here to enable Mattermost for your GitLab deployment in just two simple steps. Otherwise, if you don’t already have GitLab deployed, you can do so by following the instructions here first.

Terminal showing a new GitLab installation

After you follow those steps and run sudo gitlab-ctl reconfigure, you’ll see logs indicating that GitLab is initializing the Mattermost instance.

Terminal showing the GitLab Omnibus output during Mattermost initialization

After a few moments, you can navigate in your browser to the hostname you previously configured in your DNS for the Mattermost instance.

Login screen for Mattermost

GitLab Mattermost is now enabled for your organization. Depending on the size, goals, and workflows of your organization and its projects on GitLab, you can enable additional integrations to deeply connect the two deployments with minimal effort.

2. GitLab Plugin

 The Mattermost GitLab plugin lets you easily configure and use key release management processes. To get started with the Mattermost GitLab plugin, watch the “Mattermost GitLab Plugin Setup” chapter in the video below.

For the same step-by-step tutorial in documentation form, follow this link. Once you complete those steps, you’re ready to dive into the capabilities of a tightly-integrated GitLab and Mattermost deployment. To see the full possibilities with a Mattermost Enterprise license, let’s highlight some of the latest and greatest features and workflows in the next section.

3. Custom DevSecOps Command Center 

Mattermost is designed to be a command center for an organization’s work, giving cross-functional teams insight, control, and quick access to the information they need for a given project at a given moment. For example, when a software release team is rolling out a new deployment, they can trigger a pipeline build with a single click on a task in Mattermost, see feedback on the status of that build in subscribed channels, automatically resolve tasks based on trigger phrases, receive alerts from monitoring tools, and best of all, automatically push any part of that wealth of data to other teams and stakeholders within Mattermost.

Mattermost channel and release playbook checklist screen showing GitLab plugin

All of this comes together via configuration of your workspace using slash commands, webhooks, markdown templates, and custom integrations with other tools to bring the right information to the right people. 

For any GitLab project, navigate to Settings -> Integrations and under Add an integration you’ll see two options for Mattermost: Mattermost notifications and Mattermost slash commands. Let’s look at setting up Mattermost notifications first.

Mattermost notifications

On your Mattermost instance, click the top-left menu icon, then Integrations. Create an incoming webhook to post on your desired channel (or leave it configured for any channel) and copy the provided URL. You can use this webhook URL to set up Mattermost notifications back in GitLab, filtered for various events, including pushes, issues, and merge requests. Using just one webhook, you can route different notifications from one project to different channels by entering different channel names for each event type. For more information, refer to the GitLab documentation here.

Mattermost notification fields on GitLab

Mattermost slash commands

Configuring per-project slash commands from GitLab is even simpler! Just click the Add to Mattermost button when it’s presented.

Mattermost slash command fields on GitLab

You will be directed to a page where you can set the slash command trigger word to let you interact with this GitLab project from Mattermost.

Slash command confirmation screen on GitLab

Check out the official documentation to learn more about the slash commands provided by GitLab, and run /gitlab help in Mattermost for additional pointers.

Help message output from GitLab plugin on Mattermost

Learn more about GitLab Solutions on Mattermost

When a team is in the flow, it’s disruptive to shift to another tool, another interface, and spend a dozen clicks to perform a simple task. In this year’s developer survey, we learned that 71% of technical teams face productivity challenges because of the context switching caused by fragmented tools.   Bringing GitLab and Mattermost together creates a central hub for your technical team’s work, ensuring that everyone directly receives precisely the information they need without context switching.

GitLab plugin on Mattermost

If you’d like to learn more about using Mattermost and GitLab to streamline your release management processes, watch our recently recorded webinar. Prefer a hands-on approach? Check out the quickest way to integrate Mattermost into your GitLab release pipeline to get a taste of how Mattermost and GitLab work better together. 

Read more about:

gitlab open source

Andrew Zigler is a developer advocate at Mattermost and public speaker at the intersection of AI and open source technologies. After studying Classics at The University of Texas at Austin and later teaching English in Japan, he continues to champion career and technical education for his audience.