fix(resolve-extends): add import attribute for JSON config files#4551
Merged
escapedcat merged 2 commits intoconventional-changelog:masterfrom Sep 30, 2025
macieklamberski:master
Merged
fix(resolve-extends): add import attribute for JSON config files#4551escapedcat merged 2 commits intoconventional-changelog:masterfrom macieklamberski:master
escapedcat merged 2 commits intoconventional-changelog:masterfrom
macieklamberski:master
Conversation
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
JounQin
reviewed
Sep 26, 2025
Contributor
Author
|
@JounQin I have replaced previous solution with |
82936c9
into
conventional-changelog:master
21 of 22 checks passed
This was referenced Sep 30, 2025
immxmmi
pushed a commit
to immxmmi/gitea-helm-actions
that referenced
this pull request
Apr 20, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [commitlint/commitlint](https://github.com/conventional-changelog/commitlint) | container | major | `19.9.1` -> `20.1.0` | --- ### Release Notes <details> <summary>conventional-changelog/commitlint (commitlint/commitlint)</summary> ### [`v20.1.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2010-2025-09-30) [Compare Source](conventional-changelog/commitlint@v20.0.0...v20.1.0) ##### Bug Fixes - **resolve-extends:** add import attribute for JSON config files ([#​4551](conventional-changelog/commitlint#4551)) ([82936c9](conventional-changelog/commitlint@82936c9)) ##### Features - **config-pnpm-scopes:** allow global scope ([#​4553](conventional-changelog/commitlint#4553)) ([e571970](conventional-changelog/commitlint@e571970)) ### [`v20.0.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2000-2025-09-25) [Compare Source](conventional-changelog/commitlint@v19.9.1...v20.0.0) ##### Bug Fixes - update dependency tar-fs to v3.1.1 \[security] ([#​4550](conventional-changelog/commitlint#4550)) ([273a43e](conventional-changelog/commitlint@273a43e)) - feat(rules)!: make body-max-line-length ignore lines with URLs ([#​4486](conventional-changelog/commitlint#4486)) ([2f37a88](conventional-changelog/commitlint@2f37a88)), closes [#​4486](conventional-changelog/commitlint#4486) ##### BREAKING CHANGES - when lines contain URLs exceeding the maximum line length `body-max-line-length` will be ignored #### [19.9.1](conventional-changelog/commitlint@v19.9.0...v19.9.1) (2025-08-29) ##### Bug Fixes - add TypeScript support and configuration for pnpm scopes ([#​4544](conventional-changelog/commitlint#4544)) ([ea75778](conventional-changelog/commitlint@ea75778)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Only on Sunday and Saturday ( * * * * 0,6 ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xOC4xIiwidXBkYXRlZEluVmVyIjoiNDEuMTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsia2luZC9kZXBlbmRlbmN5Il19--> Reviewed-on: https://gitea.com/gitea/helm-actions/pulls/70 Reviewed-by: DaanSelen <daanselen@noreply.gitea.com> Co-authored-by: Renovate Bot <renovate-bot@gitea.com> Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes
ERR_IMPORT_ATTRIBUTE_MISSINGerror when extending JSON configuration files in Node.js ESM environments. This issue prevents users from using JSON-based commitlint configurations that extend other configs.I had this problem recently, also found an existing issue #3970 reporting the same problem.
Modified the
dynamicImportfunction in@commitlint/resolve-extendsto detect JSON files and add the appropriate import attribute syntax based on the Node.js version:{ assert: { type: "json" } }(import assertion syntax){ with: { type: "json" } }(import attribute syntax)This ensures backward compatibility across all supported Node.js versions while using the correct syntax for each version. The distinction is important because:
assert) were the initial implementation available in Node.js 16.15+with) became the standard and replaced assertions in Node.js 22+assertsyntax entirelySource: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
Motivation and Context
When trying to extend a JSON configuration file, Node.js throws
ERR_IMPORT_ATTRIBUTE_MISSINGbecause JSON imports in ESM require import attributes to specify the module type. This affects commitlint v19+ when working with JSON config files.Closes #3970
How Has This Been Tested?
Before Fix (Error Case)
npm installecho "feat: add something" | npx commitlintERR_IMPORT_ATTRIBUTE_MISSINGerror ❌After Fix (Working Case)
Clone the fix from: https://github.com/macieklamberski/commitlint
Build the packages:
npm install && npm run buildLink the updated packages:
In the cloned example project (https://github.com/macieklamberski/commitlint-json):
Run commitlint with JSON config - no error occurs ✅
Types of changes
Checklist: