Sawmills/pdctl

GitHub: Sawmills/pdctl

pdctl 是一个 PagerDuty 命令行客户端,让待命工程师直接从终端快速查询、确认、解决和重新分配事件,同时提供待命日程、服务状态和升级策略的管理能力。

Stars: 0 | Forks: 0

# pdctl [![CI](https://github.com/sawmills/pdctl/actions/workflows/ci.yml/badge.svg)](https://github.com/sawmills/pdctl/actions/workflows/ci.yml) `pdctl` 是一个 PagerDuty CLI,专为需要从终端快速响应事件的待命工程师设计。 ## 安装 ### Homebrew ``` brew install sawmills/tap/pdctl ``` ### 手动安装 从 [Releases](https://github.com/sawmills/pdctl/releases) 页面下载适合您平台的最新二进制文件。 1. 解压归档文件。 2. 将 `pdctl` 二进制文件移动到您的 `PATH` 目录中(例如 `/usr/local/bin`)。 ## 配置 `pdctl` 需要 PagerDuty API token 进行身份验证。您可以在您的 [PagerDuty 账户设置](https://support.pagerduty.com/docs/api-access-reviews#section-generate-a-user-level-rest-api-key)中生成一个。 设置 `PAGERDUTY_TOKEN` 环境变量: ``` export PAGERDUTY_TOKEN="your-token-here" ``` ## 使用说明 ``` pdctl [--json] ``` ### 命令 #### 身份验证 - `pdctl whoami`:显示当前认证用户。 #### 事件 - `pdctl incident list`:列出事件。 - 选项:`--status`、`--service`、`--urgency`、`--limit`、`--since`、`--until`。 - 示例:`pdctl incident list --status triggered,acknowledged --urgency high` - 带时间范围的示例:`pdctl incident list --since 2024-01-01 --until 2024-01-31` - `pdctl incident view `:查看事件详情。 - `pdctl incident ack `:确认事件。 - `pdctl incident resolve `:解决事件。 - `pdctl incident note -m "message"`:为事件添加备注。 - `pdctl incident reassign --to `:重新分配事件。 #### 待命与日程安排 - `pdctl oncall list`:列出当前待命用户。 - 选项:`--schedule`、`--limit`。 - `pdctl schedule list`:列出所有日程安排。 - `pdctl schedule view `:查看日程安排详情。 #### 服务 - `pdctl service list`:列出服务。 - 选项:`--limit`。 - `pdctl service status`:显示服务状态摘要。 #### 用户 - `pdctl user list`:列出用户。 - 选项:`--limit`。 #### 升级策略 - `pdctl ep list`:列出升级策略。 - 选项:`--limit`。 ### JSON 输出 所有命令均支持 `--json` 标志以输出机器可读格式: ``` pdctl --json incident list ``` ## Shell 自动补全 为您首选的 shell 生成自动补全。Zsh 自动补全包含对 ID(事件、服务、日程安排、用户、升级策略)的动态补全功能,它会从您的 PagerDuty 账户中获取真实数据。 ### Bash ``` pdctl completion bash > /usr/local/etc/bash_completion.d/pdctl ``` ### Zsh ``` pdctl completion zsh > /usr/local/share/zsh/site-functions/_pdctl ``` ### Fish ``` pdctl completion fish > ~/.config/fish/completions/pdctl.fish ``` ### 动态补全 安装 Zsh 自动补全后,您可以使用 Tab 补全: - 事件 ID:`pdctl incident view ` 会显示带有标题的近期事件 - 服务 ID:`pdctl incident list --service=` 会显示可用服务 - 日程安排 ID:`pdctl schedule view ` 或 `pdctl oncall list --schedule=` - 用户/策略 ID:`pdctl incident reassign --to=` 会显示用户和升级策略 ## Raycast 扩展 我们提供了一个配套的 Raycast 扩展,方便您从菜单栏快速管理事件。 ### 功能 - **列出事件**:按状态、紧急程度和服务搜索和筛选事件 - **快捷操作**:确认、解决、添加备注和重新分配事件 - **待命状态**:查看当前的待命日程安排 - **菜单栏小部件**:一目了然地查看活跃事件数量,并带有快捷操作 ### 安装 Raycast 扩展位于 `raycast-pdctl/` 目录中。 ``` cd raycast-pdctl npm install npm run dev ``` 这会将扩展注册到 Raycast。首次使用时,系统会提示您配置 PagerDuty 子域名。 ### 配置 该扩展使用与 CLI 相同的 `PAGERDUTY_TOKEN` 环境变量。请确保在您的 shell profile 中设置了该变量,以便 Raycast 能够访问。
标签:IT运维, PagerDuty, Socks5代理, 效率工具, 日志审计, 自动化攻击