dsh-tool-jira
开发工具 活跃维护

dsh-tool-jira

LJH-snow/dsh-tool-jira

作为Cordis工具生态插件,可无缝集成至现有开发工作流,支持在统一操作界面内完成Jira工单的查询、状态同步、批量处理等全流程操作,无需跨平台切换即可高效完成工单管理。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
35 KB
仓库大小
26 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:LJH-snow/dsh-tool-jira
git clone https://github.com/LJH-snow/dsh-tool-jira.git
git clone git@github.com:LJH-snow/dsh-tool-jira.git
README.md main

dsh-tool-jira

English | 中文

A Cordis tool plugin that gives DeepSeek Harness (dsh) Jira issue management capabilities. Agents can search JQL queries, find users, inspect projects, issue types, and priorities, create and update tickets, add comments, and move issues through workflow transitions.

It follows the official "everything is a plugin" architecture with ctx.tools.register(defineTool(...)) and the adding-a-tool contract.

Install

Install directly from GitHub:

npm install github:LJH-snow/dsh-tool-jira

Or from a local checkout:

git clone https://github.com/LJH-snow/dsh-tool-jira
cd dsh-tool-jira
npm install && npm run build
npm install /path/to/dsh-tool-jira

Requires @deepseek-ai/cordis (^4.0.1) and @deepseek-ai/dsh-tools (^0.1.0-rc.6) as peer dependencies, provided by the host dsh runtime.

Configuration

Load the plugin in a dsh composition config (cordis.yml):

- name: 'github:LJH-snow/dsh-tool-jira'
  config:
    baseUrl: 'https://your-domain.atlassian.net'   # required
    email: 'user@example.com'                       # required for Cloud API token auth
    apiToken: 'xxx'                                 # Atlassian API token or PAT
    timeoutMs: 15000                                # optional, default 15000

Full example: examples/cordis.yml.

Security: the first version requires credentials for every tool because Jira instances are usually access-controlled and write operations can modify tickets. Use an API token or PAT with the minimum permissions needed, and never commit it.

Tools

Tool Description Credentials
jira_search_issues Search issues with JQL, up to 100 results yes
jira_search_my_issues Search issues assigned to the authenticated user yes
jira_get_issue Get issue details including ADF description text yes
jira_create_issue Create an issue with summary, type, description, labels, priority, and assignee yes
jira_update_issue Update summary, description, labels, priority, or assignee yes
jira_add_issue_comment Add a comment to an issue yes
jira_list_issue_comments List issue comments, newest first yes
jira_list_transitions List workflow transitions available for an issue yes
jira_transition_issue Move an issue through a workflow transition yes
jira_list_projects List projects visible to the authenticated user yes
jira_get_project Get project details including description, lead, type, style, and archived state yes
jira_list_issue_types List issue types visible to the authenticated user, including subtask flags yes
jira_list_priorities List priorities with descriptions and status color yes
jira_search_users Search users by display name, username, or email to get Atlassian account ids yes
jira_get_user Get one user by account id, including display name, email, active state, and time zone yes

Behavior Contract

  • Missing credentials return canonical business values: read tools return { authenticated: false, ... }, write tools return { ok: false, reason } or { created: false, reason }.
  • Missing issue, project, or user maps to { found: false }.
  • Write validation failures (400, 404, 422) map to { ok: false, reason } or { created: false, reason }.
  • Infrastructure errors such as invalid credentials (401), forbidden access (403), or rate limiting (429) throw.
  • Every request forwards exec.signal and uses a configurable timeout (default 15 seconds).

Development

npm install
npm run typecheck
npm test
npm run build

See DEVELOPMENT.md for the architecture and test coverage.

License

MIT