核心功能与用法
slack-automator 是一款基于 Bash 的 Slack 自动化 CLI 工具,通过 Incoming Webhooks 实现消息推送、频道通知、定时任务与模板管理。核心功能包括:
- 消息发送:
send发送普通文本,notify定向推送到指定频道,format支持多种 Slack mrkdwn 格式(粗体、代码块、列表等)。 - 模板系统:
template save创建带{{variable}}占位符的模板,template use实时替换变量发送,适合 CI/CD 流水线复用。 - 定时任务:
schedule add支持 HH:MM 简写或完整 cron 表达式,任务存储于本地 JSON,需配合系统 cron 实现触发。 - 数据管理:
history查看最近 20 条发送记录,stats统计成功率与操作分布,export支持 JSON/CSV/TXT 导出。 - 配置管理:
config设置默认频道、用户名、emoji 图标,webhook URL 本地存储并部分脱敏展示。
显著优点
1. 零依赖轻量化:仅依赖 bash 4.0+、curl 与 python3(用于 JSON 解析),无需复杂运行时。
2. 模板化工作流:预定义部署、告警等模板,减少重复命令编写,提升 CI/CD 集成效率。
3. 完整审计能力:本地持久化历史记录与统计,便于故障排查与合规审查。
4. 灵活调度:支持 cron 表达式与简易时间格式,满足周期性通知需求。
潜在局限与风险
- Webhook 单点依赖:仅支持 Incoming Webhooks,无法使用 Slack API 的完整功能(如搜索、频道管理、权限控制)。
- 定时任务需外部触发:
schedule仅持久化配置,不内置守护进程,必须依赖系统 cron 或手动触发。 - 本地明文存储:
~/.slack-automator/config.json以明文保存 webhook URL,若设备失陷存在泄露风险。 - 无原生 OAuth:不支持 Slack 的 OAuth 权限体系,无法动态切换工作区或细粒度授权。
适合人群
- DevOps/运维工程师:用于部署通知、监控告警的自动化推送。
- 小型技术团队:无需复杂 Bot 开发,快速实现 Slack 集成。
- CI/CD 流水线使用者:通过模板变量实现环境动态注入。
常规风险
- Webhook URL 泄露:URL 具备发送权限,泄露后可能被滥用 spam。
- 定时任务配置错误:cron 表达式语法错误可能导致任务未触发或高频误发。
- 网络依赖:Slack 服务不可用或网络隔离时消息发送失败,需配合重试机制。