【发布时间】:2017-05-26 11:18:24
【问题描述】:
我已通过 slash commands 将 Jenkins 中的部署从 slack 自动化。
我需要提供permission for slash commands 或将斜杠命令访问权限仅限于特定用户(即)频道中的某些成员可以使用/deploy_dev 部署开发环境,但他们不应该能够部署到登台和生产环境。
【问题讨论】:
我已通过 slash commands 将 Jenkins 中的部署从 slack 自动化。
我需要提供permission for slash commands 或将斜杠命令访问权限仅限于特定用户(即)频道中的某些成员可以使用/deploy_dev 部署开发环境,但他们不应该能够部署到登台和生产环境。
【问题讨论】:
为了限制对自定义斜杠命令的访问,只需检查哪个用户在您的脚本中调用了斜杠命令,然后执行该命令或拒绝它(并回复适当的消息)。
Slack 始终在请求中提供用户 ID 和用户名,以便您的脚本中提供这些信息。 Slack 的命令请求见下例:(来自official documentation)
token=gIkuvaNzQIHg97ATvDxqgjtO
team_id=T0001
team_domain=example
enterprise_id=E0001
enterprise_name=Globular%20Construct%20Inc
channel_id=C2147483705
channel_name=test
user_id=U2147483697
user_name=Steve
command=/weather
text=94070
response_url=https://hooks.slack.com/commands/1234/5678
为了管理谁可以访问,我建议使用私人频道,这样如果用户想要执行特定的斜杠命令,他就必须是特定私人频道的成员。您可以调用groups.info 来获取脚本中私人频道所有成员的用户ID。
请注意,斜线命令始终可供所有用户访问,并且 Slack 中没有全局配置选项,它允许您授予对特定斜线命令的访问权限。因此,您必须在脚本中执行此操作,如上所述。
【讨论】: