Skip to content

v5.1.0 #379

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: CI

on:
push:
branches:
- '**' # Runs on all branch pushes
tags-ignore:
- '**' # Ignore all tag pushes
repository_dispatch:
types: [ pr-approved ]

Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Jira.js changelog

## 5.1.0

- Version 2 Client
- Add `UserNavProperties` API group
- Add `ProjectTemplates` API group
- Add `IssueCustomFieldAssociations` API group
- `IssueSearch.searchForIssuesUsingJql` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearch` instead
- `IssueSearch.searchForIssuesUsingJqlPost` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearchPost` instead
- `IssueSearch.searchForIssuesIds` deprecated
- Add `projectIds` property to `IssueFields.getFieldsPaginated` method
- Version 3 Client
- Add `UserNavProperties` API group
- Add `ProjectTemplates` API group
- Add `IssueCustomFieldAssociations` API group
- `IssueSearch.searchForIssuesUsingJql` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearch` instead
- `IssueSearch.searchForIssuesUsingJqlPost` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearchPost` instead
- `IssueSearch.searchForIssuesIds` deprecated
- Add `projectIds` property to `IssueFields.getFieldsPaginated` method
- Add `submitBulkUnwatch`, `submitBulkWatch` methods to `IssueBulkOperations` API group

## 5.0.0

- Added ESM (ECMAScript Modules) support
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ Available groups:
- [issues](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues)
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-attachments/#api-group-issue-attachments)
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comments/#api-group-issue-comments)
- [issueCustomFieldAssociations](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-custom-field-associations/#api-group-issue-custom-field-associations)
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comment-properties/#api-group-issue-comment-properties)
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-fields/#api-group-issue-fields)
Expand Down Expand Up @@ -266,6 +267,7 @@ Available groups:
- [plans](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-plans/#api-group-plans)
- [prioritySchemes](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-priority-schemes/#api-group-priority-schemes)
- [projects](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-projects/#api-group-projects)
- [projectTemplates](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-templates/#api-group-project-templates)
- [projectAvatars](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-avatars/#api-group-project-avatars)
- [projectCategories](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-categories/#api-group-project-categories)
- [projectClassificationLevels](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-classification-levels/#api-group-project-classification-levels)
Expand All @@ -290,6 +292,7 @@ Available groups:
- [teamsInPlan](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-teams-in-plan/#api-group-teams-in-plan)
- [timeTracking](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-time-tracking/#api-group-time-tracking)
- [uiModificationsApps](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-ui-modifications--apps-/#api-group-ui-modifications--apps-)
- [userNavProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-other-operations/#api-group-other-operations)
- [users](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-users/#api-group-users)
- [userProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-user-properties/#api-group-user-properties)
- [userSearch](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-user-search/#api-group-user-search)
Expand Down Expand Up @@ -325,6 +328,7 @@ Available groups:
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-attachments/#api-group-issue-attachments)
- [issueBulkOperations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-bulk-operations/#api-group-issue-bulk-operations)
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-group-issue-comments)
- [issueCustomFieldAssociations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-associations/#api-group-issue-custom-field-associations)
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comment-properties/#api-group-issue-comment-properties)
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-fields/#api-group-issue-fields)
Expand Down Expand Up @@ -364,6 +368,7 @@ Available groups:
- [plans](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-plans/#api-group-plans)
- [prioritySchemes](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-priority-schemes/#api-group-priority-schemes)
- [projects](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-group-projects)
- [projectTemplates](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-templates/#api-group-project-templates)
- [projectAvatars](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-avatars/#api-group-project-avatars)
- [projectCategories](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-categories/#api-group-project-categories)
- [projectClassificationLevels](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-classification-levels/#api-group-project-classification-levels)
Expand All @@ -389,6 +394,7 @@ Available groups:
- [timeTracking](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-time-tracking/#api-group-time-tracking)
- [uiModificationsApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-ui-modifications--apps-/#api-group-ui-modifications--apps-)
- [users](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-group-users)
- [userNavProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-other-operations/#api-group-other-operations)
- [userProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-user-properties/#api-group-user-properties)
- [userSearch](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-user-search/#api-group-user-search)
- [webhooks](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-webhooks/#api-group-webhooks)
Expand Down
58 changes: 48 additions & 10 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,62 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import { defineConfig } from "eslint/config";
import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import { defineConfig } from 'eslint/config';
import stylisticJs from '@stylistic/eslint-plugin-js';
import stylisticTs from '@stylistic/eslint-plugin-ts';

export default defineConfig([
{ files: ["**/*.{js,mjs,cjs,ts}"], plugins: { js }, extends: ["js/recommended"] },
{ files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
{ files: ['**/*.{js,mjs,cjs,ts}'], plugins: { js }, extends: ['js/recommended'] },
{ files: ['**/*.{js,mjs,cjs,ts}'], languageOptions: { globals: { ...globals.browser, ...globals.node } } },
tseslint.configs.recommended,
{
languageOptions: {
parserOptions: {
project: './tsconfig.lint.json',
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
plugins: {
'@stylistic/js': stylisticJs,
'@stylistic/ts': stylisticTs,
},
rules: {
'@stylistic/ts/indent': ['error', 2],
'@stylistic/js/no-trailing-spaces': 'error',
'@stylistic/ts/indent': ['error', 2],
'@stylistic/ts/lines-between-class-members': [
'error',
'always',
{
exceptAfterOverload: true,
exceptAfterSingleLine: true,
},
],
'@stylistic/ts/padding-line-between-statements': [
'error',
// Return statements
{ blankLine: 'always', prev: '*', next: 'return' },
// Import statements
{ blankLine: 'always', prev: 'import', next: '*' },
{ blankLine: 'any', prev: 'import', next: 'import' },
],
'@stylistic/ts/quotes': ['error', 'single'],
'@typescript-eslint/no-empty-object-type': 'off', // todo fix it
}
}
'@stylistic/ts/semi': ['error', 'always'],
'@typescript-eslint/consistent-type-imports': [
'error',
{
prefer: 'type-imports',
fixStyle: 'separate-type-imports',
},
],
'@typescript-eslint/no-empty-object-type': 'off',
'@typescript-eslint/no-redundant-type-constituents': 'off', // todo fix it
'@typescript-eslint/no-unnecessary-condition': 'error', // todo fix it
'@typescript-eslint/no-unsafe-argument': 'off', // todo fix it
'@typescript-eslint/no-unsafe-assignment': 'off', // todo fix it
'@typescript-eslint/no-unsafe-call': 'off', // todo fix it
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/prefer-optional-chain': 'error',
},
},
]);
23 changes: 15 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "jira.js",
"version": "5.0.0",
"version": "5.1.0",
"description": "A comprehensive JavaScript/TypeScript library designed for both Node.JS and browsers, facilitating seamless interaction with the Atlassian Jira API.",
"repository": "https://github.com/MrRefactoring/jira.js.git",
"homepage": "https://mrrefactoring.github.io/jira.js",
Expand Down Expand Up @@ -47,9 +47,8 @@
"build:src": "rollup -c rollup.config.ts --configPlugin typescript",
"build:tests": "tsc --project tests/tsconfig.json",
"prettier": "prettier --write src",
"lint": "pnpm run lint:tests && pnpm run lint:examples && pnpm run lint:src:agile && pnpm run lint:src:clients && pnpm run lint:src:services && pnpm run lint:src:version2 && pnpm run lint:src:version3 && pnpm run lint:src:files",
"lint": "pnpm run lint:tests && pnpm run lint:src:agile && pnpm run lint:src:clients && pnpm run lint:src:services && pnpm run lint:src:version2 && pnpm run lint:src:version3 && pnpm run lint:src:files",
"lint:tests": "pnpm run lint:base tests",
"lint:examples": "pnpm run lint:base examples",
"lint:src:agile": "pnpm run lint:base src/agile",
"lint:src:clients": "pnpm run lint:base src/clients",
"lint:src:services": "pnpm run lint:base src/services",
Expand All @@ -58,12 +57,12 @@
"lint:src:serviceDesk": "pnpm run lint:base src/serviceDesk",
"lint:src:files": "pnpm run lint:base src/*.ts",
"lint:base": "eslint --ext .ts",
"lint:fix": "pnpm run lint:tests --fix && pnpm run lint:examples --fix && pnpm run lint:src:agile --fix && pnpm run lint:src:clients --fix && pnpm run lint:src:services --fix && pnpm run lint:src:version2 --fix && pnpm run lint:src:version3 --fix && pnpm run lint:src:serviceDesk --fix && pnpm run lint:src:files --fix",
"lint:fix": "pnpm run lint:tests --fix && pnpm run lint:src:agile --fix && pnpm run lint:src:clients --fix && pnpm run lint:src:services --fix && pnpm run lint:src:version2 --fix && pnpm run lint:src:version3 --fix && pnpm run lint:src:serviceDesk --fix && pnpm run lint:src:files --fix",
"doc": "typedoc --name \"Jira.js - Jira Cloud API library\" --out docs ./src/index.ts --favicon https://bad37fb3-cb50-4e0b-9035-a3e09e8afb3b.selstorage.ru/jira.js%2Ffavicon.svg",
"test": "pnpm run build:tests && pnpm run test:unit && pnpm run test:integration",
"test:unit": "vitest run tests/unit --minWorkers=1 --maxWorkers=8 --sequence.concurrent",
"test:integration": "vitest run tests/integration --bail=1 --no-file-parallelism --max-concurrency 1 -c vitest.config.mts --hookTimeout 100000 --testTimeout 100000",
"replace:all": "pnpm run replace:permissions:version2 && pnpm run replace:permissions:version3 && pnpm run replace:pagination:version2 && pnpm run replace:pagination:version3 && pnpm run replace:async:version2 && pnpm run replace:async:version3 && pnpm run replace:expansion:version2 && pnpm run replace:expansion:version3 && pnpm run replace:ordering:version2 && pnpm run replace:ordering:version3 && pnpm run replace:groupMember:version2 && pnpm run replace:workflowPaginated:version2 && pnpm run replace:attachment:serviceDesk && pnpm run replace:priority:version3 && pnpm run replace:projectAvatar:version3 && pnpm run replace:issueType:version3",
"replace:all": "pnpm run replace:fixExpansionMarkup && pnpm run replace:permissions:version2 && pnpm run replace:permissions:version3 && pnpm run replace:pagination:version2 && pnpm run replace:pagination:version3 && pnpm run replace:async:version2 && pnpm run replace:async:version3 && pnpm run replace:expansion:version2 && pnpm run replace:expansion:version3 && pnpm run replace:ordering:version2 && pnpm run replace:ordering:version3 && pnpm run replace:groupMember:version2 && pnpm run replace:workflowPaginated:version2 && pnpm run replace:attachment:serviceDesk && pnpm run replace:priority:version3 && pnpm run replace:projectAvatar:version3 && pnpm run replace:issueType:version3 && pnpm run replace:issueType:version2 && pnpm run replace:projectAvatar:version2 && pnpm run replace:priority:version2 && pnpm run replace:projectCreate:agile && pnpm run replace:filterCreate:agile",
"replace:permissions:version2": "grep -rl \"(#permissions)\" ./src/version2 | xargs sed -i '' 's/(#permissions)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/intro\\/#permissions)/g'",
"replace:permissions:version3": "grep -rl \"(#permissions)\" ./src/version3 | xargs sed -i '' 's/(#permissions)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/intro\\/#permissions)/g'",
"replace:pagination:version2": "grep -rl \"(#pagination)\" ./src/version2 | xargs sed -i '' 's/(#pagination)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/intro\\/#pagination)/g'",
Expand All @@ -80,15 +79,23 @@
"replace:priority:version3": "grep -rl \"(#api-rest-api-3-priority-id-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-priority-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-issue-priorities\\/#api-rest-api-3-priority-id-put)/g'",
"replace:projectAvatar:version3": "grep -rl \"(#api-rest-api-3-project-projectIdOrKey-avatar-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-project-projectIdOrKey-avatar-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-project-avatars\\/#api-rest-api-3-project-projectidorkey-avatar-put)/g'",
"replace:issueType:version3": "grep -rl \"(#api-rest-api-3-issuetype-id-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-issuetype-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-issue-types\\/#api-rest-api-3-issuetype-id-put)/g'",
"code:formatting": "pnpm run replace:all && pnpm run prettier && pnpm run lint:fix"
"replace:issueType:version2": "grep -rl \"(#api-rest-api-2-issuetype-id-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-issuetype-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-issue-types\\/#api-rest-api-2-issuetype-id-put)/g'",
"replace:projectAvatar:version2": "grep -rl \"(#api-rest-api-2-project-projectIdOrKey-avatar-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-project-projectIdOrKey-avatar-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-project-avatars\\/#api-rest-api-2-project-projectidorkey-avatar-put)/g'",
"replace:priority:version2": "grep -rl \"(#api-rest-api-2-priority-id-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-priority-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-issue-priorities\\/#api-rest-api-2-priority-id-put)/g'",
"replace:projectCreate:agile": "grep -rl \"(#api-rest-api-3-project-post)\" ./src/agile | xargs sed -i '' 's/(#api-rest-api-3-project-post)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-projects\\/#api-rest-api-3-project-post)/g'",
"replace:filterCreate:agile": "grep -rl \"(#api-rest-api-3-filter-post)\" ./src/agile | xargs sed -i '' 's/(#api-rest-api-3-filter-post)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-filters\\/#api-rest-api-3-filter-post)/g'",
"replace:fixExpansionMarkup": "grep -rl \"(em>#expansion)\" ./src | xargs sed -i '' 's/(em>#expansion)/(#expansion)/g'",
"replace:fixCodeBlockSemicolons": "grep -rl '```;' ./src | xargs sed -i '' 's/```;/```/g'",
"code:formatting": "pnpm run replace:all && pnpm run prettier && pnpm run lint:fix && pnpm run replace:fixCodeBlockSemicolons"
},
"dependencies": {
"axios": "^1.9.0",
"mime": "^4.0.7",
"zod": "^3.24.3"
},
"devDependencies": {
"@eslint/js": "^9.25.1",
"@eslint/js": "^9.26.0",
"@rollup/plugin-alias": "^5.1.1",
"@rollup/plugin-commonjs": "^28.0.3",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-typescript": "^12.1.2",
Expand All @@ -97,7 +104,7 @@
"@types/node": "^20.17.32",
"@types/sinon": "^17.0.4",
"dotenv": "^16.5.0",
"eslint": "^9.25.1",
"eslint": "^9.26.0",
"globals": "^16.0.0",
"prettier": "^3.5.3",
"prettier-plugin-jsdoc": "^1.3.2",
Expand Down
Loading
Loading