{"id":13617500,"url":"https://github.com/cats-oss/cujira","last_synced_at":"2025-05-03T15:32:44.051Z","repository":{"id":63906749,"uuid":"137871056","full_name":"cats-oss/cujira","owner":"cats-oss","description":"🐳 cujira is a command line tool that makes easy to show issue list from Jira.","archived":false,"fork":false,"pushed_at":"2018-10-11T06:17:53.000Z","size":2254,"stargazers_count":48,"open_issues_count":1,"forks_count":2,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-24T04:07:38.648Z","etag":null,"topics":["jira-cli","swift","swift-package-manager"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cats-oss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-19T09:39:08.000Z","updated_at":"2023-01-10T12:29:58.000Z","dependencies_parsed_at":"2022-11-28T22:48:22.631Z","dependency_job_id":null,"html_url":"https://github.com/cats-oss/cujira","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats-oss%2Fcujira","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats-oss%2Fcujira/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats-oss%2Fcujira/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats-oss%2Fcujira/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cats-oss","download_url":"https://codeload.github.com/cats-oss/cujira/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252211471,"owners_count":21712401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jira-cli","swift","swift-package-manager"],"created_at":"2024-08-01T20:01:42.756Z","updated_at":"2025-05-03T15:32:43.103Z","avatar_url":"https://github.com/cats-oss.png","language":"Swift","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# Command Utility JIRA\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./Images/cujira_logo.png\" alt=\"cujira\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://swift.org/package-manager\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/SPM-compatible-brightgreen.svg?style=flat\" alt=\"SPM\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/yonaskolb/Mint\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Mint-compatible-brightgreen.svg?style=flat\" alt=\"Mint\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/cats-oss/cujira/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/cats-oss/cujira.svg\" alt=\"Git Version\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/cats-oss/cujira/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-lightgray.svg\" alt=\"license\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://developer.apple.com/swift/\"\u003e\n    \u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/Swift-4.0%20%7C%204.1%20%7C%204.2-orange.svg\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Installation\n\nClone this repository and run `install.sh`.\n\n```\n$ git clone https://github.com/cats-oss/cujira.git\n$ cd cujira\n$ ./install.sh\n```\n\n## Usage\n\n### 1. Register `domain`, `username` and `apikey`.\n\n- domain is `https://[ HERE ].atlassian.net`.\n- username is your email that registered Jira.\n- apikey can get from [https://id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens).\n\nPlease execute those 3 commands.\n\n```\n$ cujira register domain XXX\n```\n\n```\n$ cujira register username XXX\n```\n\n```\n$ cujira register apikey XXX\n```\n\nIn addition, you can check registered information with `cujira register info`.\n\n### 2. Check ProjectID (or BoardID) and Add `Project Alias`.\n\nYou can check ProjectID (or BoardID) with `cujira list board` that shown all boards of your Jira domain.\n\n```\n$ cujira list board\n\nResults:\n\n\tid: 1\n\tname: cujira Development\n\tproject - id: 10001\n\tproject - name: cujira\n\n\tid: 2\n\tname: cujira Bug Fix\n\tproject - id: 10002\n\tproject - name: cujira (Bug)\n```\n\nAfter checking ProjectID, add Project alias with `cujira alias project add`.\n\n```\n$ cujira alias project add cujira-bug --project-id 10002\n```\n\nIn addition, you can check registered project alias with `cujira alias project list`.\n\n```\n$ cujira alias project list\n\n    name: cujira-bug, projectID: 10002, boardID: 2\n```\n\n### 3. Get project issues with `today`, `yyyy/mm/dd` or `SPRINT_NAME`.\n\nIf you want to get today's issues of project, below command can show them.\n\n```\n$ cujira issue search cujira-bug today\nJQL: project = 10002 AND created \u003e= startOfDay()\n\nSummary: All command responses are `Great Scott!!`.\nURL: https://XXX.atlassian.net/browse/BUG-1985\nIssueType: Critical Bug\nStatus: Open\nUser: doc-emmett-brown\n\nSummary: Command usages is a little strange.\nURL: https://XXX.atlassian.net/browse/BUG-1986\nIssueType: Bug\nStatus: Open\nUser: --\n```\n\nIf you want to get issues with `SPRINT_NAME`, check sprints with `cujira list sprint`.\n\n```\n$ cujira list sprint --alias cujira-bug\n\nResults:\n\n\tid: 5\n\tname: Sprint 1\n\tstartDate: 2018/06/02\n\tendDate: 2018/06/07\n\n\tid: 8\n\tname: Sprint 2\n\tstartDate: 2018/06/08\n\tendDate: --\n```\n\nAfter checking sprint name, you can get issues with `cujira issue search cujira-bug \"Sprint 2\"`.\n\n### Additional Usage for getting Issues.\n\n`cujira issue search` has some options.\n\n```\nOptions:\n\n    --issus-type [ISSUE_TYPE]\n        ... Filter issues with a issueType.\n    --label [ISSUE_LABEL]\n        ... Filter issues with a issue label.\n    --status [STATUS_NAME]\n        ... Filter issues with a issue status.\n    --assigned [USER_NAME]\n        ... Filter issues with a user who has assigned.\n    --epic-link [EPIC_LINK]\n        ... Filter issues with a epic link.\n    --aggregate\n        ... Show every options issue counts.\n    --all-issues\n        ... Print all issues to ignore options. (This option is only available to use `--aggreegate`)\n    --output-json\n        ... Print results as JSON format.\n```\n\nYou can get aggregation of issues.\n\n```\n$ cujira issue search cujira-bug today --issue-type \"Critical Bug\" --aggregate\nJQL: project = 10002 AND created \u003e= startOfDay()\n\nSummary: All command responses are `Great Scott!!`.\nURL: https://XXX.atlassian.net/browse/BUG-1985\nIssueType: Critical Bug\nStatus: Open\nUser: doc-emmett-brown\n\nNumber of Issues: 2\nNumber of Critical Bug: 1\n```\n\n### Combination Usage with other scripts.\n\n`cujira issue search` command has `--output-json` option.\nIt makes easily to handle cujira response in other scripts.\nThis is `node.js` sample code.\n\n```javascript\n// sample.js\nvar exec = require('child_process').exec;\n\nvar COMMAND = 'cujira issue search cujira-bug today --issue-type \\\"Critical Bug\\\" --aggregate --output-json';\n\nexec(COMMAND, function(error, stdout, stderr) {\n    var aggregations = JSON.parse(stdout);\n\n    aggregations.forEach(aggregation =\u003e {\n        console.log('name: ' + aggregation.name);\n        console.log('count: ' + aggregation.count);\n        aggregation.issueResults.forEach(issueResult =\u003e {\n            console.log('\\tid: ' + issueResult.issue.id);\n        });\n    });\n});\n```\n\n```\n$ node sample.js\nname: Issues\ncount: 2\n  id 19851026\n  id 20151021\nname: Critical Bug\ncount: 1\n\tid 19851026\nname: Matched Issues\ncount: 1\n\tid 19851026\n```\n\n### Environment Variables\n\nYou can run `cujira` with environment variables.\n\n```\n$ env CUJIRA_USER_NAME=\"XXX\" CUJIRA_API_KEY=\"XXX\" CUJIRA_DOMAIN=\"XXX\" cujira\n```\n\n## Development\n\n- Xcode 9.2 or greater\n- Swift 4.0.3 or greater\n\n## Special Thanks\n\nThanks to [@skskeeee](https://github.com/skskeeee), [my handwriting logo](./Images/cujira_original.jpg) has become a great logo!\n\n## License\n\ncujira is available under the MIT license. See the [LICENSE file](https://github.com/cats-oss/cujira/blob/master/README.md) for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcats-oss%2Fcujira","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcats-oss%2Fcujira","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcats-oss%2Fcujira/lists"}