Support the RFC 5987 filename* field in the content-disposition header. This allows us to correctly download files and artifacts with Chinese/Japanese/Korean (among other) characters in their name.
Support uploading single un-archived files (not zipped). Direct uploads are only supported for artifacts version 7+ (based on the major version of actions/upload-artifact). Callers must pass the skipArchive option to uploadArtifact. Only single files can be uploaded at a time right now. Default behavior should remain unchanged if skipArchive = false. When skipArchive = true, the name of the file is used as the name of the artifact for consistency with the downloads: you upload artifact.txt, you download artifact.txt.
Support downloading non-zip artifacts. Zipped artifacts will be decompressed automatically (with an optional override). Un-zipped artifacts will be downloaded as-is.
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/artifact)) | [`^1.1.2` → `^6.0.0`](https://renovatebot.com/diffs/npm/@actions%2fartifact/1.1.3/6.2.1) |  |  |
---
### Release Notes
<details>
<summary>actions/toolkit (@​actions/artifact)</summary>
### [`v6.2.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#621)
- Support the RFC 5987 `filename*` field in the `content-disposition` header. This allows us to correctly download files and artifacts with Chinese/Japanese/Korean (among other) characters in their name.
### [`v6.2.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#620)
- Support uploading single un-archived files (not zipped). Direct uploads are only supported for artifacts version 7+ (based on the major version of `actions/upload-artifact`). Callers must pass the `skipArchive` option to `uploadArtifact`. Only single files can be uploaded at a time right now. Default behavior should remain unchanged if `skipArchive = false`. When `skipArchive = true`, the name of the file is used as the name of the artifact for consistency with the downloads: you upload `artifact.txt`, you download `artifact.txt`.
### [`v6.1.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#610)
- Support downloading non-zip artifacts. Zipped artifacts will be decompressed automatically (with an optional override). Un-zipped artifacts will be downloaded as-is.
### [`v6.0.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#600)
- **Breaking change**: Package is now ESM-only
- CommonJS consumers must use dynamic `import()` instead of `require()`
### [`v5.0.3`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#503)
- Bump `@actions/http-client` to `3.0.2`
### [`v5.0.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#501)
- Fix Node.js 24 punycode deprecation warning by updating `@azure/storage-blob` from `^12.15.0` to `^12.29.1` [#​2211](https://github.com/actions/toolkit/pull/2211)
- Removed direct `@azure/core-http` dependency (now uses `@azure/core-rest-pipeline` via storage-blob)
### [`v5.0.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#500)
- Dependency updates for Node.js 24 runtime support
- Update `@actions/core` to v2
- Update `@actions/http-client` to v3
### [`v4.0.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#400)
- Add support for Node 24 [#​2110](https://github.com/actions/toolkit/pull/2110)
- Fix: artifact pagination bugs and configurable artifact count limits [#​2165](https://github.com/actions/toolkit/pull/2165)
- Fix: reject the promise on timeout [#​2124](https://github.com/actions/toolkit/pull/2124)
- Update dependency versions
### [`v2.3.2`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#232)
- Added masking for Shared Access Signature (SAS) artifact URLs [#​1982](https://github.com/actions/toolkit/pull/1982)
- Change hash to digest for consistent terminology across runner logs [#​1991](https://github.com/actions/toolkit/pull/1991)
### [`v2.3.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#231)
- Fix comment typo on expectedHash. [#​1986](https://github.com/actions/toolkit/pull/1986)
### [`v2.3.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#230)
- Allow ArtifactClient to perform digest comparisons, if supplied. [#​1975](https://github.com/actions/toolkit/pull/1975)
### [`v2.2.2`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#222)
- Default concurrency to 5 for uploading artifacts [#​1962](https://github.com/actions/toolkit/pull/1962)
### [`v2.2.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#221)
- Add `ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY` and `ACTIONS_ARTIFACT_UPLOAD_TIMEOUT_MS` environment variables [#​1928](https://github.com/actions/toolkit/pull/1928)
### [`v2.2.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#220)
- Return artifact digest on upload [#​1896](https://github.com/actions/toolkit/pull/1896)
### [`v2.1.11`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#2111)
- Fixed a bug with relative symlinks resolution [#​1844](https://github.com/actions/toolkit/pull/1844)
- Use native `crypto` [#​1815](https://github.com/actions/toolkit/pull/1815)
### [`v2.1.10`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#2110)
- Fixed a regression with symlinks not being automatically resolved [#​1830](https://github.com/actions/toolkit/pull/1830)
- Fixed a regression with chunk timeout [#​1786](https://github.com/actions/toolkit/pull/1786)
### [`v2.1.9`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#219)
- Fixed artifact upload chunk timeout logic [#​1774](https://github.com/actions/toolkit/pull/1774)
- Use lazy stream to prevent issues with open file limits [#​1771](https://github.com/actions/toolkit/pull/1771)
### [`v2.1.8`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#218)
- Allows `*.localhost` domains for hostname checks for local development.
### [`v2.1.7`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#217)
- Update unzip-stream dependency and reverted to using `unzip.Extract()`
### [`v2.1.6`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#216)
- Will retry on invalid request responses.
### [`v2.1.5`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#215)
- Bumped `archiver` dependency to 7.0.1
### [`v2.1.4`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#214)
- Adds info-level logging for zip extraction
### [`v2.1.3`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#213)
- Fixes a bug in the extract logic updated in 2.1.2
### [`v2.1.2`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#212)
- Updated the stream extract functionality to use `unzip.Parse()` instead of `unzip.Extract()` for greater control of unzipping artifacts
### [`v2.1.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#2111)
- Fixed a bug with relative symlinks resolution [#​1844](https://github.com/actions/toolkit/pull/1844)
- Use native `crypto` [#​1815](https://github.com/actions/toolkit/pull/1815)
### [`v2.1.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#210)
- Added `ArtifactClient#deleteArtifact` to delete artifacts by name [#​1626](https://github.com/actions/toolkit/pull/1626)
- Update error messaging to be more useful [#​1628](https://github.com/actions/toolkit/pull/1628)
### [`v2.0.1`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#201)
- Patch to fix transient request timeouts [actions/download-artifact#249](https://github.com/actions/download-artifact/issues/249)
### [`v2.0.0`](https://github.com/actions/toolkit/blob/HEAD/packages/artifact/RELEASES.md#200)
- Major release. Supports new Artifact backend for improved speed, reliability and behavior.
- Numerous API changes, [some breaking](./README.md#breaking-changes).
- [Blog post with more info](https://github.blog/2024-02-12-get-started-with-v4-of-github-actions-artifacts/)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "on monday,on friday"
- Automerge
- At any time (no schedule defined)
🚦 **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 [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjE3OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWF0aW9uIiwibnBtIl19-->
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: package.json
Command failed: npm run build
Error: export 'create' (imported as 'create') was not found in '@actions/artifact' (possible exports: ArtifactNotFoundError, DefaultArtifactClient, FilesNotFoundError, GHESNotSupportedError, InvalidResponseError, NetworkError, UsageError, default)
at /tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:23:2001849
at /tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:23:389111
at _done (eval at create (/tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:21:81694), <anonymous>:9:1)
at eval (eval at create (/tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:21:81694), <anonymous>:34:22)
### ⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
##### File name: package.json
```
Command failed: npm run build
Error: export 'create' (imported as 'create') was not found in '@actions/artifact' (possible exports: ArtifactNotFoundError, DefaultArtifactClient, FilesNotFoundError, GHESNotSupportedError, InvalidResponseError, NetworkError, UsageError, default)
at /tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:23:2001849
at /tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:23:389111
at _done (eval at create (/tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:21:81694), <anonymous>:9:1)
at eval (eval at create (/tmp/renovate/repos/gitea/Screeps/screeps-deploy-action/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:21:81694), <anonymous>:34:22)
```
The PR updates @actions/artifact from v1 to v6. However, according to the GitHub Actions Artifacts v4+ documentation, the API underwent breaking changes. Specifically, the create() function and the uploadArtifact method have been replaced by a class-based approach (or changed exports) and new method signatures.
Currently, the code in monitor.js attempts to use the old v1-style API which leads to a build failure as reported by Renovate: export 'create' (imported as 'create') was not found in '@actions/artifact'
Summary
Critical: The PR is currently broken. The @actions/artifact v6 library does not export create. You must initialize new DefaultArtifactClient() and use the updated uploadArtifact signature (which now only takes 3 arguments: name, files, and options).
Testing: No changes to tests were included. Recommend adding a unit test or integration test that mocks the artifact client to ensure compatibility with v4+ API.
Improvement: None.
Nitpick: None.
The PR updates `@actions/artifact` from v1 to v6. However, according to the [GitHub Actions Artifacts v4+ documentation](https://github.com/actions/toolkit/tree/main/packages/artifact), the API underwent breaking changes. Specifically, the `create()` function and the `uploadArtifact` method have been replaced by a class-based approach (or changed exports) and new method signatures.
Currently, the code in `monitor.js` attempts to use the old v1-style API which leads to a build failure as reported by Renovate:
`export 'create' (imported as 'create') was not found in '@actions/artifact'`
### Summary
* **Critical:** The PR is currently broken. The `@actions/artifact` v6 library does not export `create`. You must initialize `new DefaultArtifactClient()` and use the updated `uploadArtifact` signature (which now only takes 3 arguments: name, files, and options).
* **Testing:** No changes to tests were included. Recommend adding a unit test or integration test that mocks the artifact client to ensure compatibility with v4+ API.
* **Improvement:** None.
* **Nitpick:** None.
The `@actions/artifact` v6 package no longer exports a `create` function. You should use `DefaultArtifactClient` instead:
```javascript
import { DefaultArtifactClient } from "@actions/artifact";
// ...
const client = new DefaultArtifactClient();
```
The uploadArtifact method signature changed in v4. It no longer accepts rootDirectory as a separate positional argument. The new signature is: uploadArtifact(name, files, options)
The `uploadArtifact` method signature changed in v4. It no longer accepts `rootDirectory` as a separate positional argument. The new signature is:
`uploadArtifact(name, files, options)`
See: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/migration-guide.md
Critical: The PR as currently submitted is broken. The upgrade from @actions/artifact v1 to v6 is a major breaking change. Renovate's automated build failed because the create export used in monitor.js has been removed in favor of the DefaultArtifactClient class. Additionally, the uploadArtifact method signature has changed significantly.
Testing: No new tests were provided. Automated CI/CD (Renovate) correctly caught the build failure.
Improvement: The code needs to be refactored to use the new DefaultArtifactClient from v6.
Nitpick: None.
Detailed migration guide for the author: @actions/artifact v6 moved to a class-based system.
Replace import { create } from "@actions/artifact" with import { DefaultArtifactClient } from "@actions/artifact".
Instantiate the client: const client = new DefaultArtifactClient().
Update the call to uploadArtifact. In v6, the signature is uploadArtifact(name, files, rootDirectory, options). Note that it returns an object containing an id and size now.
I am requesting changes because the current state prevents the action from being built or executed.
**Summary**
* **Critical:** The PR as currently submitted is broken. The upgrade from `@actions/artifact` v1 to v6 is a major breaking change. Renovate's automated build failed because the `create` export used in `monitor.js` has been removed in favor of the `DefaultArtifactClient` class. Additionally, the `uploadArtifact` method signature has changed significantly.
* **Testing:** No new tests were provided. Automated CI/CD (Renovate) correctly caught the build failure.
* **Improvement:** The code needs to be refactored to use the new `DefaultArtifactClient` from v6.
* **Nitpick:** None.
Detailed migration guide for the author:
`@actions/artifact` v6 moved to a class-based system.
1. Replace `import { create } from "@actions/artifact"` with `import { DefaultArtifactClient } from "@actions/artifact"`.
2. Instantiate the client: `const client = new DefaultArtifactClient()`.
3. Update the call to `uploadArtifact`. In v6, the signature is `uploadArtifact(name, files, rootDirectory, options)`. Note that it returns an object containing an `id` and `size` now.
I am requesting changes because the current state prevents the action from being built or executed.
This `create()` function no longer exists in `@actions/artifact` v6.
Based on the [v2+ migration guide](https://github.com/actions/toolkit/blob/main/packages/artifact/docs/v2-migration.md) (which corresponds to the package versioning used here), you should use:
```javascript
import { DefaultArtifactClient } from '@actions/artifact'
const client = new DefaultArtifactClient()
```
Ensure rootDirectory is the absolute path that should be used as the base for the files in the artifact.
The `uploadArtifact` method signature and behavior changed. In v6, it is part of the `DefaultArtifactClient` class.
The parameters are:
`uploadArtifact(name: string, files: string[], rootDirectory: string, options?: UploadOptions)`
Ensure `rootDirectory` is the absolute path that should be used as the base for the files in the artifact.
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 6.x releases. But if you manually upgrade to 6.x then Renovate will re-enable minor and patch updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
### Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for *any* future `6.x` releases. But if you manually upgrade to `6.x` then Renovate will re-enable `minor` and `patch` updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
Pull request closed
This pull request cannot be reopened because the branch was deleted.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^1.1.2→^6.0.0Release Notes
actions/toolkit (@actions/artifact)
v6.2.1filename*field in thecontent-dispositionheader. This allows us to correctly download files and artifacts with Chinese/Japanese/Korean (among other) characters in their name.v6.2.0actions/upload-artifact). Callers must pass theskipArchiveoption touploadArtifact. Only single files can be uploaded at a time right now. Default behavior should remain unchanged ifskipArchive = false. WhenskipArchive = true, the name of the file is used as the name of the artifact for consistency with the downloads: you uploadartifact.txt, you downloadartifact.txt.v6.1.0v6.0.0import()instead ofrequire()v5.0.3@actions/http-clientto3.0.2v5.0.1@azure/storage-blobfrom^12.15.0to^12.29.1#2211@azure/core-httpdependency (now uses@azure/core-rest-pipelinevia storage-blob)v5.0.0@actions/coreto v2@actions/http-clientto v3v4.0.0v2.3.2v2.3.1v2.3.0v2.2.2v2.2.1ACTIONS_ARTIFACT_UPLOAD_CONCURRENCYandACTIONS_ARTIFACT_UPLOAD_TIMEOUT_MSenvironment variables #1928v2.2.0v2.1.11crypto#1815v2.1.10v2.1.9v2.1.8*.localhostdomains for hostname checks for local development.v2.1.7unzip.Extract()v2.1.6v2.1.5archiverdependency to 7.0.1v2.1.4v2.1.3v2.1.2unzip.Parse()instead ofunzip.Extract()for greater control of unzipping artifactsv2.1.1crypto#1815v2.1.0ArtifactClient#deleteArtifactto delete artifacts by name #1626v2.0.1v2.0.0Major release. Supports new Artifact backend for improved speed, reliability and behavior.
Numerous API changes, some breaking.
Blog post with more info
Configuration
📅 Schedule: (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.
This PR has been generated by Mend Renovate.
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
File name: package.json
The PR updates
@actions/artifactfrom v1 to v6. However, according to the GitHub Actions Artifacts v4+ documentation, the API underwent breaking changes. Specifically, thecreate()function and theuploadArtifactmethod have been replaced by a class-based approach (or changed exports) and new method signatures.Currently, the code in
monitor.jsattempts to use the old v1-style API which leads to a build failure as reported by Renovate:export 'create' (imported as 'create') was not found in '@actions/artifact'Summary
@actions/artifactv6 library does not exportcreate. You must initializenew DefaultArtifactClient()and use the updateduploadArtifactsignature (which now only takes 3 arguments: name, files, and options).@@ -131,5 +131,5 @@* @param {string} filePath - Absolute path of the file to upload* @param {string} [artifactName="screeps-console-log"] - Artifact display name* @returns {Promise<void>}*/export async function uploadLogArtifact(The
@actions/artifactv6 package no longer exports acreatefunction. You should useDefaultArtifactClientinstead:@@ -134,5 +134,5 @@*/export async function uploadLogArtifact(filePath,artifactName = "screeps-console-log",) {The
uploadArtifactmethod signature changed in v4. It no longer acceptsrootDirectoryas a separate positional argument. The new signature is:uploadArtifact(name, files, options)See: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/migration-guide.md
Summary
@actions/artifactv1 to v6 is a major breaking change. Renovate's automated build failed because thecreateexport used inmonitor.jshas been removed in favor of theDefaultArtifactClientclass. Additionally, theuploadArtifactmethod signature has changed significantly.DefaultArtifactClientfrom v6.Detailed migration guide for the author:
@actions/artifactv6 moved to a class-based system.import { create } from "@actions/artifact"withimport { DefaultArtifactClient } from "@actions/artifact".const client = new DefaultArtifactClient().uploadArtifact. In v6, the signature isuploadArtifact(name, files, rootDirectory, options). Note that it returns an object containing anidandsizenow.I am requesting changes because the current state prevents the action from being built or executed.
@@ -204,5 +204,5 @@if (allStdout.length > 0) {if (logToFile) {stdoutBuffer.push(...allStdout);} else {allStdout.forEach((l) => outputMultiline(l, "info"));This
create()function no longer exists in@actions/artifactv6.Based on the v2+ migration guide (which corresponds to the package versioning used here), you should use:
@@ -206,5 +206,5 @@stdoutBuffer.push(...allStdout);} else {allStdout.forEach((l) => outputMultiline(l, "info"));}}The
uploadArtifactmethod signature and behavior changed. In v6, it is part of theDefaultArtifactClientclass.The parameters are:
uploadArtifact(name: string, files: string[], rootDirectory: string, options?: UploadOptions)Ensure
rootDirectoryis the absolute path that should be used as the base for the files in the artifact.Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future
6.xreleases. But if you manually upgrade to6.xthen Renovate will re-enableminorandpatchupdates automatically.If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
Pull request closed