-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Summary
Add Slack as a supported DevOps tool in the CLI. Slack is the dominant workplace messaging platform, and its DevLake plugin collects channel message data useful for measuring communication patterns, incident response coordination, and team collaboration metrics.
Upstream Plugin
slack in incubator-devlake/backend/plugins/slack/
| Property | Value |
|---|---|
| Plugin slug | slack |
| Auth | AccessToken (OAuth access token) |
| Scope type | Channels (SlackChannel) |
| Scope ID field | id |
| Default endpoint | https://open.slack.cn/open-apis/ |
| Remote-scope API | Yes — lists and searches channels with cursor-based pagination |
| 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 — Slack uses AccessToken, compatible with current auth model.
Changes
- Add
ConnectionDefforslackinconnectionRegistry:Endpoint: "https://open.slack.cn/open-apis/"SupportsTest: trueTokenPrompt: "Slack Bot/User OAuth token"EnvVarNames: []string{"SLACK_TOKEN", "SLACK_BOT_TOKEN"}EnvFileKeys: []string{"SLACK_TOKEN", "SLACK_BOT_TOKEN"}ScopeIDField: "id"ScopeFunc: scopeSlackHandler
- Implement
scopeSlackHandler:- Use
client.ListRemoteScopes("slack", connID, "", "")to list channels - Use
client.SearchRemoteScopes("slack", connID, search, ...)for search - Let user select channels interactively
- PUT selected channels as scopes
- Use
- Set
Available: true
Acceptance Criteria
-
gh devlake configure connection add --plugin slackcreates a Slack connection - Slack appears in interactive plugin picker
- Slack scopes list channels 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