leoxtc/jsm-tui

GitHub: leoxtc/jsm-tui

为 Jira Service Management 告警打造的终端 UI,让值班工程师可以完全通过键盘快速处理告警而无需打开浏览器。

Stars: 0 | Forks: 0

# jsm-tui 一个专为 Jira Service Management 告警设计的终端优先 UI,面向生活在 shell 中的值班工程师。 `jsm-tui` 专为键盘驱动的事件响应而设计:快速刷新、低视觉干扰,且最常用的操作始终只需按下一个键。 ## 功能特性 - 以紧凑表格形式列出未解决的告警 - 快速键盘工作流,支持确认、关闭和查看详情 - 可配置间隔的自动刷新 - 针对 确认/关闭 操作的乐观 UI 更新 - 告警详情模态框,包含可点击的 URL 和 runbook 快捷方式 - 专注于 JSM API 故障排查的基于文件的日志记录 列: - `Prio` - `Status` - `Age` - `Acked By` - `Message` ## 为什么终端用户喜欢它 - 键盘优先的 UX,极少依赖鼠标 - 简洁、高密度的布局,契合真实的值班工作流 - 快速反馈循环,无需切换上下文到浏览器标签页 - 易于通过 SSH/tmux 在远程主机上运行 ## 系统要求 - Python 3.11+ - Jira Service Management Ops API 访问权限 ## 快速开始 1. 创建并激活虚拟环境。 2. 安装该软件包。 3. 设置环境变量。 4. 运行应用程序。 ``` python -m venv .venv source .venv/bin/activate pip install -e . cp .env.example .env set -a; source .env; set +a jsm-tui ``` ## 操作控制 - `r`: 刷新告警 - `a`: 确认选中的告警 - `c`: 关闭选中的告警 - `v`: 查看选中告警的描述 - `enter` 或双击: 打开选中告警的详情 - `q`: 退出 在详情模态框中: - `o`: 打开 runbook (如果可用) - `d`, `esc`, `q`, 或 `v`: 关闭模态框 ## 环境变量 - `JSM_CLOUD_ID` (必填) - `JSM_API_EMAIL` + `JSM_API_TOKEN` (必填,除非使用 bearer token) - `JSM_BEARER_TOKEN` (可选的替代认证方式) - `JSM_PAGE_SIZE` (可选,默认 `100`,最大 `500`) - `JSM_REFRESH_INTERVAL_SECONDS` (可选,默认 `30`) - `JSM_LOG_LEVEL` (可选,默认 `INFO`) - `JSM_LOG_FILE` (可选,默认 `logs/jsm-tui.log`) - `JSM_LOG_HTTP_BODY` (可选,`true/false`,默认 `false`;记录截断后的 API 错误主体) ## 如何查找 `JSM_CLOUD_ID` 使用以下方法之一: 1. 通过 `curl` 从你的 Atlassian 站点获取: ``` curl -s https://.atlassian.net/_edge/tenant_info ``` 在 JSON 响应中查找 `cloudId` 值。 2. 从 Atlassian Admin URL 获取: - 打开 `https://admin.atlassian.com` - 选择你的组织/站点 - 在许多管理页面中,URL 包含 `/s//...` - 复制 `/s/` 之后的 UUID 值 ## 开发 ``` pip install -e .[dev] ruff check . mypy pytest ``` ## API 参考 - 告警 REST 文档: https://developer.atlassian.com/cloud/jira/service-desk-ops/rest/v2/api-group-alerts/ - OpenAPI 规范: https://dac-static.atlassian.com/cloud/jira/service-desk-ops/swagger.v3.json?_v=1.0.36
标签:Jira Service Management, JSM, Mutation, On-Call, Python, SSH, TUI, 事故处理, 低延迟, 可视化, 后端运维, 告警管理, 无后门, 终端用户界面, 网络调试, 自动化, 运维工具, 远程管理, 逆向工具, 键盘驱动