085.md 8.3 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
# Mattermost slash commands

> 原文:[https://docs.gitlab.com/ee/user/project/integrations/mattermost_slash_commands.html](https://docs.gitlab.com/ee/user/project/integrations/mattermost_slash_commands.html)

*   [Prerequisites](#prerequisites)
*   [Automated configuration](#automated-configuration)
*   [Manual configuration](#manual-configuration)
    *   [Step 1\. Enable custom slash commands in Mattermost](#step-1-enable-custom-slash-commands-in-mattermost)
    *   [Step 2\. Open the Mattermost slash commands service in GitLab](#step-2-open-the-mattermost-slash-commands-service-in-gitlab)
    *   [Step 3\. Create a new custom slash command in Mattermost](#step-3-create-a-new-custom-slash-command-in-mattermost)
    *   [Step 4\. Copy the Mattermost token into the Mattermost slash command service](#step-4-copy-the-mattermost-token-into-the-mattermost-slash-command-service)
*   [Authorizing Mattermost to interact with GitLab](#authorizing-mattermost-to-interact-with-gitlab)
*   [Available slash commands](#available-slash-commands)
*   [Permissions](#permissions)
*   [Troubleshooting](#troubleshooting)
*   [Further reading](#further-reading)

# Mattermost slash commands[](#mattermost-slash-commands "Permalink")

在 GitLab 8.14 中引入

Mattermost 命令为用户提供了一个额外的界面,可以在聊天环境中执行常见操作. 例如,这使得一个问题一经在 Mattermost 中讨论后就可以创建.

GitLab 还可以将事件(例如, `issue created` )作为通知发送到 Mattermost. 这是单独配置的[Mattermost Notifications Service](mattermost.html) .

## Prerequisites[](#prerequisites "Permalink")

需要 Mattermost 3.4 及更高版本.

如果您安装了 Omnibus GitLab 软件包,则其中已包含 Mattermost. 您所要做的就是配置它. 在[Omnibus GitLab Mattermost 文档中](https://docs.gitlab.com/omnibus/gitlab-mattermost/)阅读更多[内容](https://docs.gitlab.com/omnibus/gitlab-mattermost/) .

## Automated configuration[](#automated-configuration "Permalink")

如果 Mattermost 与 GitLab 安装在同一服务器上,则 GitLab 可以为您完成配置过程.

转到项目上的 Mattermost Slash Command 服务,然后单击"添加到 Mattermost"按钮.

## Manual configuration[](#manual-configuration "Permalink")

配置由两部分组成. 首先,您需要在 Mattermost 中启用斜杠命令,然后在 GitLab 中启用该服务.

### Step 1\. Enable custom slash commands in Mattermost[](#step-1-enable-custom-slash-commands-in-mattermost "Permalink")

仅在使用源代码安装时才需要执行此步骤,Omnibus 安装将使用正确的设置进行预配置.

在 Mattermost 中要做的第一件事是从管理员控制台启用自定义斜杠命令.

1.  使用具有管理员权限的帐户登录并导航至系统控制台.

    [![Mattermost go to console](img/e9fe43924bd4226e7b819104bcc8b8c1.png)](img/mattermost_goto_console.png)

2.  单击" **自定义集成"**并将" **启用自定义斜杠命令"** ," **启用自定义集成以覆盖用户名** "和" **覆盖自定义集成以覆盖个人资料图片图标"设置**为 true.

    [![Mattermost console](img/75ffde23ab0100e58532632d19b84db0.png)](img/mattermost_console_integrations.png)

3.  点击底部的**保存** ,保存更改.

### Step 2\. Open the Mattermost slash commands service in GitLab[](#step-2-open-the-mattermost-slash-commands-service-in-gitlab "Permalink")

1.  打开 GitLab 的新标签,转到项目的" [集成"页面,](overview.html#accessing-integrations)然后选择**Mattermost 命令**服务进行配置. 将出现一个屏幕,其中包含您需要在 Mattermost 中复制的所有值,如下一步所述. 使窗口保持打开状态.

    **注意:** GitLab 将为"最重要的设置"建议一些值. 原样复制粘贴的唯一要求是**请求 URL** ,所有其他都只是建议.

    [![Mattermost setup instructions](img/801adc20d157f18e08adbd379180f3c7.png)](img/mattermost_config_help.png)

2.  继续下一步,并在 Mattermost 中使用上述值创建斜线命令.

### Step 3\. Create a new custom slash command in Mattermost[](#step-3-create-a-new-custom-slash-command-in-mattermost "Permalink")

现在,您已在 Mattermost 中启用了自定义斜杠命令并在 GitLab 中打开了 Mattermost 斜杠命令服务,是时候将这些值复制到新的斜杠命令中了.

1.  回到 Mattermost,在团队页面设置下,您应该看到**Integrations**选项.

    [![Mattermost team integrations](img/d7b5490ec5cb26ce71f19d5c56f003f3.png)](img/mattermost_team_integrations.png)

2.  转到**Slash Commands**集成,然后单击**Add Slash Command**按钮添加一个新的.

    [![Mattermost add command](img/3694fc45636610ba5fb4e24d7a9eb3b9.png)](img/mattermost_add_slash_command.png)

3.  按照[步骤 2 中的说明](#step-2-open-the-mattermost-slash-commands-service-in-gitlab)填写自定义命令的选项.

    **注意:**如果计划连接多个项目,请选择一个与项目相关的斜杠命令触发词,例如`/gitlab-project-name`或什至`/project-name` . 仅在将单个项目连接到 Mattermost 团队时才使用`/gitlab` .

    [![Mattermost add command configuration](img/1fdfdef058a3092e25352089de97fee6.png)](img/mattermost_slash_command_configuration.png)

4.  设置所有值之后,复制令牌(我们将在下面使用它)并单击**完成** .

    [![Mattermost slash command token](img/41571e3a155c671e6ff9f259f20fdeed.png)](img/mattermost_slash_command_token.png)

### Step 4\. Copy the Mattermost token into the Mattermost slash command service[](#step-4-copy-the-mattermost-token-into-the-mattermost-slash-command-service "Permalink")

1.  在 GitLab 中,粘贴您在上一步中复制的最重要的令牌,并确保启用了**活动**切换.

    [![Mattermost copy token to GitLab](img/07c2c84efb64460dfa2373f1f75645ab.png)](img/mattermost_gitlab_token.png)

2.  单击**保存更改**以使更改生效.

现在,您已设置为在 Mattermost 中开始使用与您配置的 GitLab 项目对话的斜杠命令.

## Authorizing Mattermost to interact with GitLab[](#authorizing-mattermost-to-interact-with-gitlab "Permalink")

用户首次与新创建的斜杠命令进行交互时,Mattermost 将触发授权过程.

[![Mattermost bot authorize](img/6e17896087b8446f53400a1c8d39c0d6.png)](img/mattermost_bot_auth.png)

这会将您的 Mattermost 用户与 GitLab 用户连接起来. 您可以在个人资料页面的" **聊天"**下看到所有授权的聊天帐户.

授权过程完成后,您可以使用 Mattermost 命令开始与 GitLab 进行交互.

## Available slash commands[](#available-slash-commands "Permalink")

可用的斜杠命令是:

| Command | Description | Example |
| --- | --- | --- |
| `/ <trigger>发出新的<title> `⇧Shift` + `↵输入` <description>` | 在与`<trigger>`绑定的项目中创建一个新问题. `<description>`是可选的. | `/gitlab issue new We need to change the homepage` |
| `/<trigger> issue show <issue-number>` | 显示与`<trigger>`绑定的项目中 ID 为`<issue-number>` . | `/gitlab issue show 42` |
| `/ <触发>将<环境>部署到<环境>` | 开始从一个环境部署到另一环境的 CI 作业,例如`staging``production` . CI / CD 必须[正确配置](../../../ci/yaml/README.html) . | `/gitlab deploy staging to production` |

要查看与 GitLab 交互的可用命令列表,请输入触发词,然后输入`help` . 示例: `/gitlab help`

[![Mattermost bot available commands](img/0c549416181d6e18eb1dd34825b00425.png)](img/mattermost_bot_available_commands.png)

## Permissions[](#permissions "Permalink")

运行[可用命令](#available-slash-commands)[权限](../../permissions.html#project-members-permissions)源自[您对项目](../../permissions.html#project-members-permissions)[权限](../../permissions.html#project-members-permissions) .

## Troubleshooting[](#troubleshooting "Permalink")

如果未触发某个事件,请确认您使用的频道是公开频道,因为 Mattermost Webhooks 无法访问私有频道.

如果需要专用频道,则可以在 Mattermost 中编辑 Webhook 的频道并选择一个专用频道. 无法将不同的通道用于不同类型的通知-所有事件都将发送到指定的通道.

## Further reading[](#further-reading "Permalink")

*   [Mattermost slash commands documentation](https://docs.mattermost.com/developer/slash-commands.html)
*   [Omnibus GitLab Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/)