Sawmills/pdctl
GitHub: Sawmills/pdctl
pdctl 是一个 PagerDuty 命令行客户端,让待命工程师直接从终端快速查询、确认、解决和重新分配事件,同时提供待命日程、服务状态和升级策略的管理能力。
Stars: 0 | Forks: 0
# pdctl
[](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代理, 效率工具, 日志审计, 自动化攻击