Skip to content

Jira plugin support #87

@ewega

Description

@ewega

Summary

Add Jira as a supported DevOps tool in the CLI. Jira is the most popular issue tracker globally (~75% enterprise adoption), providing change lead time and issue resolution data for DORA metrics.

Upstream Plugin

jira in incubator-devlake/backend/plugins/jira/

Property Value
Plugin slug jira
Auth MultiAuth (AccessToken for Jira Cloud, BasicAuth for Jira Server)
Scope type Boards (BoardId uint64)
Scope ID field boardId
Default endpoint User-provided (e.g., https://your-domain.atlassian.net/)
Remote-scope API Yes
Connection test Yes

Dependencies

Blocked by:

Changes

  • Add ConnectionDef for jira in connectionRegistry:
    • AuthMethod: "AccessToken" (Jira Cloud; BasicAuth for Server can be added later)
    • Endpoint: "" (user must provide)
    • SupportsTest: true
    • TokenPrompt: "Jira API Token"
    • EnvVarNames: []string{"JIRA_TOKEN", "JIRA_API_TOKEN"}
    • EnvFileKeys: []string{"JIRA_TOKEN", "JIRA_API_TOKEN"}
    • ScopeIDField: "boardId"
    • ScopeFunc: scopeJiraHandler
  • Implement scopeJiraHandler:
    • Use client.ListRemoteScopes("jira", connID, "", "") to list boards
    • Let user select boards interactively or via --board-ids flag
    • PUT selected boards as scopes
  • Add JiraBoardScope struct (or build dynamically from remote-scope data)
  • Set Available: true

Acceptance Criteria

  • gh devlake configure connection add --plugin jira --endpoint https://mysite.atlassian.net creates a Jira connection
  • Jira appears in interactive plugin picker
  • Jira scopes list boards for selection
  • Connection test works against Jira API
  • go build ./..., go test ./..., go vet ./... pass

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions