README
🚀 分页Duty 服务器端
PagerDuty Server 是一个用于与PagerDuty API交互的Python客户端库,它能简化从PagerDuty获取数据的流程,并提供多种工具辅助处理和分析这些数据。
🚀 快速开始
PagerDuty Server 可帮助您轻松与PagerDuty API交互。以下是一些基本操作示例:
分页示例
获取所有事件的分页:
from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)
事件功能
列出事件
列出当前用户的团队中的所有事件:
incidents_list = incidents.list_incidents()
# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])
# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])
时间范围筛选
根据时间范围过滤事件:
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)
事件上下文
当 current_user_context=True 时,自动过滤与当前用户相关的团队和服务:
my_incidents = incidents.list_incidents(current_user_context=True)
团队功能
列出团队
获取所有团队:
teams = teams.list_teams()
for team in teams:
print(team.id)
服务功能
列出服务
列出特定团队的服务:
services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)
命令行工具
PagerDuty Server 提供了一个命令行界面(CLI)来执行常见任务。
安装 CLI
使用 pip 安装:
pip install pagerduty-mcp-server-cli
使用 CLI
列出所有事件:
pagerduty-server incidents list
获取特定事件的详细信息:
pagerduty-server incidents get --id INCIDENT-123
✨ 主要特性
- 分页:自动处理PagerDuty API的分页,使您可以轻松获取大量数据。
- 用户上下文:根据当前用户上下文过滤结果,提供更相关的数据。
- 多种资源支持:支持多种资源类型,包括事件、团队、服务和策略等。
📦 安装指南
使用 pip 安装:
pip install pagerduty-mcp-server
💻 使用示例
基础用法
以下是获取所有事件分页的基础代码示例:
from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)
高级用法
事件功能高级用法
# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])
# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])
# 根据时间范围过滤事件
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)
团队和服务功能高级用法
# 列出所有团队
teams = teams.list_teams()
for team in teams:
print(team.id)
# 列出特定团队的服务
services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)
命令行工具高级用法
# 列出所有事件
pagerduty-server incidents list
# 获取特定事件的详细信息
pagerduty-server incidents get --id INCIDENT-123
🔧 技术细节
用户上下文限制
- 当
current_user_context=True时,不能使用以下参数:user_idsteam_idsservice_ids
📚 详细文档
开发
安装依赖
使用 pip 安装开发依赖:
pip install -r requirements.txt
测试
运行单元测试:
pytest tests/
提交代码
遵循 Git Flow 工作流进行提交。
贡献指南
提交规范
遵循标准的提交规范,确保您的提交清晰且易于理解。
发布流程
使用 poetry 进行版本管理:
poetry lock --no-update && poetry install
文档编写
文档位于 docs/ 目录下,使用 Markdown 格式编写。
问题报告
遇到问题?在 GitHub Issues 中报告。
PagerDuty Server 是一个强大的工具,帮助您更高效地与PagerDuty API交互。希望这个文档能为您提供清晰的指导!
Scan to contact