Command Utility JIRA(命令行工具 JIRA)

cujira

SPM Mint Git Version license Platform

安装

克隆此仓库并运行 install.sh

$ git clone https://github.com/cats-oss/cujira.git
$ cd cujira
$ ./install.sh

用法

1. 注册 domain, usernameapikey

请执行这 3 个命令。

$ cujira register domain XXX
$ cujira register username XXX
$ cujira register apikey XXX

另外,您可以使用 cujira register info 查看已注册的信息。

2. 检查 ProjectID (或 BoardID) 并添加 Project Alias (项目别名)。

您可以使用 cujira list board 来查看 ProjectID (或 BoardID),它会显示您 Jira 域中的所有看板。

$ cujira list board

Results:

	id: 1
	name: cujira Development
	project - id: 10001
	project - name: cujira

	id: 2
	name: cujira Bug Fix
	project - id: 10002
	project - name: cujira (Bug)

检查 ProjectID 后,使用 cujira alias project add 添加项目别名。

$ cujira alias project add cujira-bug --project-id 10002

另外,您可以使用 cujira alias project list 查看已注册的项目别名。

$ cujira alias project list

    name: cujira-bug, projectID: 10002, boardID: 2

3. 使用 today, yyyy/mm/ddSPRINT_NAME 获取项目问题。

如果您想获取今天项目的问题,可以使用以下命令:

$ cujira issue search cujira-bug today
JQL: project = 10002 AND created >= startOfDay()

Summary: All command responses are `Great Scott!!`.
URL: https://XXX.atlassian.net/browse/BUG-1985
IssueType: Critical Bug
Status: Open
User: doc-emmett-brown

Summary: Command usages is a little strange.
URL: https://XXX.atlassian.net/browse/BUG-1986
IssueType: Bug
Status: Open
User: --

如果您想使用 SPRINT_NAME 获取问题,请使用 cujira list sprint 查看 sprints。

$ cujira list sprint --alias cujira-bug

Results:

	id: 5
	name: Sprint 1
	startDate: 2018/06/02
	endDate: 2018/06/07

	id: 8
	name: Sprint 2
	startDate: 2018/06/08
	endDate: --

在检查 sprint 名称后,您可以使用 cujira issue search cujira-bug "Sprint 2" 获取问题。

获取问题的其他用法。

cujira issue search 命令有一些选项。

Options:

    --issus-type [ISSUE_TYPE]
        ... Filter issues with a issueType.
    --label [ISSUE_LABEL]
        ... Filter issues with a issue label.
    --status [STATUS_NAME]
        ... Filter issues with a issue status.
    --assigned [USER_NAME]
        ... Filter issues with a user who has assigned.
    --epic-link [EPIC_LINK]
        ... Filter issues with a epic link.
    --aggregate
        ... Show every options issue counts.
    --all-issues
        ... Print all issues to ignore options. (This option is only available to use `--aggreegate`)
    --output-json
        ... Print results as JSON format.

您可以获得问题的聚合结果。

$ cujira issue search cujira-bug today --issue-type "Critical Bug" --aggregate
JQL: project = 10002 AND created >= startOfDay()

Summary: All command responses are `Great Scott!!`.
URL: https://XXX.atlassian.net/browse/BUG-1985
IssueType: Critical Bug
Status: Open
User: doc-emmett-brown

Number of Issues: 2
Number of Critical Bug: 1

与其他脚本的组合使用。

cujira issue search 命令有 --output-json 选项。它使得在其他脚本中轻松处理 cujira 响应成为可能。这是一个 node.js 示例代码。

// sample.js
var exec = require('child_process').exec;

var COMMAND = 'cujira issue search cujira-bug today --issue-type \"Critical Bug\" --aggregate --output-json';

exec(COMMAND, function(error, stdout, stderr) {
    var aggregations = JSON.parse(stdout);

    aggregations.forEach(aggregation => {
        console.log('name: ' + aggregation.name);
        console.log('count: ' + aggregation.count);
        aggregation.issueResults.forEach(issueResult => {
            console.log('\tid: ' + issueResult.issue.id);
        });
    });
});
$ node sample.js
name: Issues
count: 2
  id 19851026
  id 20151021
name: Critical Bug
count: 1
	id 19851026
name: Matched Issues
count: 1
	id 19851026

环境变量

您可以使用环境变量运行 cujira

$ env CUJIRA_USER_NAME="XXX" CUJIRA_API_KEY="XXX" CUJIRA_DOMAIN="XXX" cujira

开发

特别感谢

感谢 @skskeeee我的手写logo 变成了非常棒的 logo!

许可

cujira 使用 MIT 许可。有关更多信息,请参阅 LICENSE 文件