-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Summary
Add PagerDuty as a supported DevOps tool in the CLI. PagerDuty is the leading incident management platform, critical for DORA MTTR (Mean Time To Restore) metrics.
Upstream Plugin
pagerduty in incubator-devlake/backend/plugins/pagerduty/
| Property | Value |
|---|---|
| Plugin slug | pagerduty |
| Auth | AccessToken (custom header: Authorization: Token token=<token>) |
| Scope type | Services (Id string) |
| Scope ID field | id |
| Default endpoint | https://api.pagerduty.com/ |
| Remote-scope API | Yes |
| Connection test | Yes |
Dependencies
Blocked by:
- Generic scope ID extraction and remote-scope API client #86 — Scope ID extraction (needs
ScopeIDField)
Not blocked by #85 — PagerDuty uses AccessToken, compatible with current auth model. The custom header format (Token token=) is handled by the DevLake backend, not the CLI.
Changes
- Add
ConnectionDefforpagerdutyinconnectionRegistry:Endpoint: "https://api.pagerduty.com/"SupportsTest: trueTokenPrompt: "PagerDuty API key"EnvVarNames: []string{"PAGERDUTY_TOKEN", "PAGERDUTY_API_KEY"}EnvFileKeys: []string{"PAGERDUTY_TOKEN", "PAGERDUTY_API_KEY"}ScopeIDField: "id"ScopeFunc: scopePagerDutyHandler
- Implement
scopePagerDutyHandler:- Use
client.ListRemoteScopes("pagerduty", connID, "", "")to list services - Let user select services interactively
- PUT selected services as scopes
- Use
- Set
Available: true
Acceptance Criteria
-
gh devlake configure connection add --plugin pagerdutycreates a PagerDuty connection - PagerDuty appears in interactive plugin picker
- PagerDuty scopes list services for selection
- Connection test works
-
go build ./...,go test ./...,go vet ./...pass
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request