mirror of
https://github.com/actions/container-toolkit-action.git
synced 2025-12-10 03:46:47 +00:00
Compare commits
131 Commits
ncalteen/l
...
b28adb08ed
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b28adb08ed | ||
|
|
f16088b6aa | ||
|
|
c20cb04b9c | ||
|
|
1737bd0eab | ||
|
|
4dbc3a0bca | ||
|
|
f154fd8ca8 | ||
|
|
79f2797cc9 | ||
|
|
47acca1a7e | ||
|
|
125211a817 | ||
|
|
70093e44c6 | ||
|
|
6857485db2 | ||
|
|
d82b016aa9 | ||
|
|
0028352ab1 | ||
|
|
165b17fef6 | ||
|
|
a683f57972 | ||
|
|
c4aa04e1b8 | ||
|
|
25686ebf2d | ||
|
|
ac85fea2d5 | ||
|
|
330b916291 | ||
|
|
66a532d780 | ||
|
|
484e326ac8 | ||
|
|
0ed5d71443 | ||
|
|
ba0bf2aa31 | ||
|
|
93cdbded92 | ||
|
|
4a943628e7 | ||
|
|
58998239b8 | ||
|
|
0cd6116f31 | ||
|
|
f619c6a86e | ||
|
|
e0e4e460d7 | ||
|
|
9efd1838c6 | ||
|
|
e7b9482ca4 | ||
|
|
86210eaa8c | ||
|
|
df7866751a | ||
|
|
d8c987a250 | ||
|
|
fcab3db023 | ||
|
|
879372df78 | ||
|
|
c0d2d64dd4 | ||
|
|
65daf41866 | ||
|
|
fc67dcb8f2 | ||
|
|
b22d837f9d | ||
|
|
a11965f190 | ||
|
|
cde2c43f51 | ||
|
|
b54d2b4c87 | ||
|
|
42ae1a5ee3 | ||
|
|
30d149dcc2 | ||
|
|
853aefde6b | ||
|
|
ba0f10d3f2 | ||
|
|
ca4bb56a35 | ||
|
|
f932b9f672 | ||
|
|
781063ba4c | ||
|
|
26af3fcfde | ||
|
|
08a63f0608 | ||
|
|
99a28c5a5f | ||
|
|
e9fec9e125 | ||
|
|
2c8b1f55e5 | ||
|
|
2169697fbb | ||
|
|
dee4c188a0 | ||
|
|
32fed5eb7c | ||
|
|
6498ee0b2c | ||
|
|
b643d56925 | ||
|
|
b38fcb91b3 | ||
|
|
34570ae239 | ||
|
|
48fd1afccb | ||
|
|
fb6dde3856 | ||
|
|
0577a40da5 | ||
|
|
395e79fa16 | ||
|
|
4cb2c8f313 | ||
|
|
d5d2afe430 | ||
|
|
3487b2e9e5 | ||
|
|
acc3a91b76 | ||
|
|
6c19ea8e89 | ||
|
|
9e321d1ba7 | ||
|
|
8ea59aea4e | ||
|
|
8a8135aae8 | ||
|
|
d046fdeaa4 | ||
|
|
96743bee34 | ||
|
|
d471a8cef0 | ||
|
|
b8df79a881 | ||
|
|
7ec49319d2 | ||
|
|
fc6fc3d3ed | ||
|
|
62aa99430c | ||
|
|
23ac352315 | ||
|
|
a935fb1be8 | ||
|
|
3c7eea5474 | ||
|
|
b1af1bd1e1 | ||
|
|
79c247c54e | ||
|
|
bd79eab97a | ||
|
|
1bf3c5880b | ||
|
|
aaa083f2e6 | ||
|
|
0b8f55cf04 | ||
|
|
318f0e4a00 | ||
|
|
450368e1ab | ||
|
|
0ec7e41d27 | ||
|
|
3a3ae3ddc7 | ||
|
|
170cc5fc6b | ||
|
|
2ef30c78c6 | ||
|
|
fcedcbd378 | ||
|
|
933735232d | ||
|
|
cbfd4d3111 | ||
|
|
6b9fa32273 | ||
|
|
dd69c50d35 | ||
|
|
24f692d0ea | ||
|
|
fbd6cf1b48 | ||
|
|
139ebe2b1f | ||
|
|
9167f5ab61 | ||
|
|
f30d22bf39 | ||
|
|
b7aba0c1fc | ||
|
|
c8b96cb63f | ||
|
|
aa5b3cb439 | ||
|
|
354d4bf5fa | ||
|
|
7e44b1d38f | ||
|
|
819bea4962 | ||
|
|
90644ac3d4 | ||
|
|
f296f18ea8 | ||
|
|
8f8550fc79 | ||
|
|
119021e748 | ||
|
|
3d4c12956c | ||
|
|
35d5ca4f2a | ||
|
|
4d8ca7170e | ||
|
|
e673f91a85 | ||
|
|
3f2255e9fb | ||
|
|
9827eb0010 | ||
|
|
99f9a31c4d | ||
|
|
9ce7163245 | ||
|
|
297cea90e9 | ||
|
|
a177e377a7 | ||
|
|
3713382762 | ||
|
|
5392a22a02 | ||
|
|
51229fc0f1 | ||
|
|
f11fa9c1a4 | ||
|
|
873e099138 |
@@ -1,7 +0,0 @@
|
||||
quiet: true
|
||||
skip-check:
|
||||
- CKV_GHA_7
|
||||
# Ensure that HEALTHCHECK instructions have been added to container images
|
||||
- CKV_DOCKER_2
|
||||
# Ensure that a user for the container has been created
|
||||
- CKV_DOCKER_3
|
||||
10
.checkov.yml
Normal file
10
.checkov.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
# See: https://www.checkov.io/1.Welcome/Quick%20Start.html
|
||||
|
||||
compact: true
|
||||
quiet: true
|
||||
skip-path:
|
||||
- coverage
|
||||
- node_modules
|
||||
skip-check:
|
||||
- CKV_DOCKER_2
|
||||
- CKV_DOCKER_3
|
||||
@@ -38,6 +38,6 @@
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
|
||||
"ghcr.io/devcontainers/features/github-cli:1": {},
|
||||
"ghcr.io/devcontainers-contrib/features/prettier:1": {}
|
||||
"ghcr.io/devcontainers-community/npm-features/prettier:1": {}
|
||||
}
|
||||
}
|
||||
|
||||
131
.github/copilot-instructions.md
vendored
Normal file
131
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
# Copilot Instructions
|
||||
|
||||
This GitHub Action is written in TypeScript and transpiled to JavaScript. The
|
||||
transpiled JavaScript is invoked from within a Docker container. Both the
|
||||
TypeScript sources and the **generated** JavaScript code are contained in this
|
||||
repository. The TypeScript sources are contained in the `src` directory and the
|
||||
JavaScript code is contained in the `dist` directory. A GitHub Actions workflow
|
||||
checks that the JavaScript code in `dist` is up-to-date. Therefore, you should
|
||||
not review any changes to the contents of the `dist` folder and it is expected
|
||||
that the JavaScript code in `dist` closely mirrors the TypeScript code it is
|
||||
generated from.
|
||||
|
||||
## Repository Structure
|
||||
|
||||
| Path | Description |
|
||||
| -------------------- | ----------------------------------- |
|
||||
| `__fixtures__/` | Unit Test Fixtures |
|
||||
| `__tests__/` | Unit Tests |
|
||||
| `.devcontainer/` | Development Container Configuration |
|
||||
| `.github/` | GitHub Configuration |
|
||||
| `.licenses/` | License Information |
|
||||
| `.vscode/` | Visual Studio Code Configuration |
|
||||
| `badges/` | Badges for readme |
|
||||
| `dist/` | Generated JavaScript Code |
|
||||
| `src/` | TypeScript Source Code |
|
||||
| `.licensed.yml` | Licensed Configuration |
|
||||
| `.markdown-lint.yml` | Markdown Linter Configuration |
|
||||
| `.node-version` | Node.js Version Configuration |
|
||||
| `.prettierrc.yml` | Prettier Formatter Configuration |
|
||||
| `.yaml-lint.yml` | YAML Linter Configuration |
|
||||
| `action.yml` | GitHub Action Metadata |
|
||||
| `CODEOWNERS` | Code Owners File |
|
||||
| `Dockerfile` | Dockerfile for the Action |
|
||||
| `eslint.config.mjs` | ESLint Configuration |
|
||||
| `jest.config.js` | Jest Configuration |
|
||||
| `LICENSE` | License File |
|
||||
| `package.json` | NPM Package Configuration |
|
||||
| `README.md` | Project Documentation |
|
||||
| `rollup.config.ts` | Rollup Bundler Configuration |
|
||||
| `tsconfig.json` | TypeScript Configuration |
|
||||
|
||||
## Environment Setup
|
||||
|
||||
Install dependencies by running:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
Ensure all unit tests pass by running:
|
||||
|
||||
```bash
|
||||
npm run test
|
||||
```
|
||||
|
||||
Unit tests should exist in the `__tests__` directory. They are powered by
|
||||
`jest`. Fixtures should be placed in the `__fixtures__` directory.
|
||||
|
||||
## Bundling
|
||||
|
||||
Any time files in the `src` directory are changed, you should run the following
|
||||
command to bundle the TypeScript code into JavaScript:
|
||||
|
||||
```bash
|
||||
npm run bundle
|
||||
```
|
||||
|
||||
## General Coding Guidelines
|
||||
|
||||
- Follow standard TypeScript and JavaScript coding conventions and best
|
||||
practices
|
||||
- Changes should maintain consistency with existing patterns and style
|
||||
- Document changes clearly and thoroughly, including updates to existing
|
||||
comments when appropriate
|
||||
- Do not include basic, unnecessary comments that simply restate what the code
|
||||
is doing (focus on explaining _why_, not _what_)
|
||||
- Use consistent error handling patterns throughout the codebase
|
||||
- Use TypeScript's type system to ensure type safety and clarity
|
||||
- Keep functions focused and manageable
|
||||
- Use descriptive variable and function names that clearly convey their purpose
|
||||
- Use JSDoc comments to document functions, classes, and complex logic
|
||||
- After doing any refactoring, ensure to run `npm run test` to ensure that all
|
||||
tests still pass and coverage requirements are met
|
||||
- When suggesting code changes, always opt for the most maintainable approach.
|
||||
Try your best to keep the code clean and follow "Don't Repeat Yourself" (DRY)
|
||||
principles
|
||||
- Avoid unnecessary complexity and always consider the long-term maintainability
|
||||
of the code
|
||||
- When writing unit tests, try to consider edge cases as well as the main path
|
||||
of success. This will help ensure that the code is robust and can handle
|
||||
unexpected inputs or situations
|
||||
- Use the `@actions/core` package for logging over `console` to ensure
|
||||
compatibility with GitHub Actions logging features
|
||||
|
||||
### Versioning
|
||||
|
||||
GitHub Actions are versioned using branch and tag names. Please ensure the
|
||||
version in the project's `package.json` is updated to reflect the changes made
|
||||
in the codebase. The version should follow
|
||||
[Semantic Versioning](https://semver.org/) principles.
|
||||
|
||||
## Pull Request Guidelines
|
||||
|
||||
When creating a pull request (PR), please ensure that:
|
||||
|
||||
- Keep changes focused and minimal (avoid large changes, or consider breaking
|
||||
them into separate, smaller PRs)
|
||||
- Formatting checks pass
|
||||
- Linting checks pass
|
||||
- Unit tests pass and coverage requirements are met
|
||||
- The action has been transpiled to JavaScript and the `dist` directory is
|
||||
up-to-date with the latest changes in the `src` directory
|
||||
- If necessary, the `README.md` file is updated to reflect any changes in
|
||||
functionality or usage
|
||||
|
||||
The body of the PR should include:
|
||||
|
||||
- A summary of the changes
|
||||
- A special note of any changes to dependencies
|
||||
- A link to any relevant issues or discussions
|
||||
- Any additional context that may be helpful for reviewers
|
||||
|
||||
## Code Review Guidelines
|
||||
|
||||
When performing a code review, please follow these guidelines:
|
||||
|
||||
- If there are changes that modify the functionality/usage of the action,
|
||||
validate that there are changes in the `README.md` file that document the new
|
||||
or modified functionality
|
||||
34
.github/prompts/create-release-notes.prompt.md
vendored
Normal file
34
.github/prompts/create-release-notes.prompt.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
# Create Release Notes
|
||||
|
||||
You are an expert technical writer tasked with creating release notes for
|
||||
updates to this repository. Your specific task is to generate release notes that
|
||||
are clear, concise, and useful for developers and users of the project.
|
||||
|
||||
## Guidelines
|
||||
|
||||
Ensure you adhere to the following guidelines when creating release notes:
|
||||
|
||||
- Use a clear and consistent format for the release notes
|
||||
- Include a summary of the changes made in the release
|
||||
- Highlight any new features, improvements, or bugfixes
|
||||
- If applicable, include instructions for upgrading or migrating to the new
|
||||
version
|
||||
- Use technical language that is appropriate for the audience, but avoid jargon
|
||||
that may not be understood by all users
|
||||
- Ensure that the release notes are easy to read and navigate
|
||||
- Include relevant issue or PR numbers where applicable
|
||||
- Use proper Markdown formatting
|
||||
- Use code blocks for commands, configuration examples, or code changes
|
||||
- Use note and warning callouts for important information
|
||||
|
||||
## Versioning
|
||||
|
||||
GitHub Actions are versioned using branch and tag names. The version in the
|
||||
project's `package.json` should reflect the changes made in the codebase and
|
||||
follow [Semantic Versioning](https://semver.org/) principles. Depending on the
|
||||
nature of the changes, please make sure to adjust the release notes accordingly:
|
||||
|
||||
- For **major** changes, include a detailed description of the breaking changes
|
||||
and how users can adapt to them
|
||||
- For **minor** changes, highlight new features and improvements
|
||||
- For **patch** changes, focus on bugfixes and minor improvements
|
||||
84
.github/prompts/unit-test.prompt.md
vendored
Normal file
84
.github/prompts/unit-test.prompt.md
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Create Unit Test(s)
|
||||
|
||||
You are an expert software engineer tasked with creating unit tests for the
|
||||
repository. Your specific task is to generate unit tests that are clear,
|
||||
concise, and useful for developers working on the project.
|
||||
|
||||
## Guidelines
|
||||
|
||||
Ensure you adhere to the following guidelines when creating unit tests:
|
||||
|
||||
- Use a clear and consistent format for the unit tests
|
||||
- Include a summary of the functionality being tested
|
||||
- Use descriptive test names that clearly convey their purpose
|
||||
- Ensure tests cover both the main path of success and edge cases
|
||||
- Use proper assertions to validate the expected outcomes
|
||||
- Use `jest` for writing and running tests
|
||||
- Place unit tests in the `__tests__` directory
|
||||
- Use fixtures for any necessary test data, placed in the `__fixtures__`
|
||||
directory
|
||||
|
||||
## Example
|
||||
|
||||
Use the following as an example of how to structure your unit tests:
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* Unit tests for the action's main functionality, src/main.ts
|
||||
*/
|
||||
import { jest } from '@jest/globals'
|
||||
import * as core from '../__fixtures__/core.js'
|
||||
import { wait } from '../__fixtures__/wait.js'
|
||||
|
||||
// Mocks should be declared before the module being tested is imported.
|
||||
jest.unstable_mockModule('@actions/core', () => core)
|
||||
jest.unstable_mockModule('../src/wait.js', () => ({ wait }))
|
||||
|
||||
// The module being tested should be imported dynamically. This ensures that the
|
||||
// mocks are used in place of any actual dependencies.
|
||||
const { run } = await import('../src/main.js')
|
||||
|
||||
describe('main.ts', () => {
|
||||
beforeEach(() => {
|
||||
// Set the action's inputs as return values from core.getInput().
|
||||
core.getInput.mockImplementation(() => '500')
|
||||
|
||||
// Mock the wait function so that it does not actually wait.
|
||||
wait.mockImplementation(() => Promise.resolve('done!'))
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks()
|
||||
})
|
||||
|
||||
it('Sets the time output', async () => {
|
||||
await run()
|
||||
|
||||
// Verify the time output was set.
|
||||
expect(core.setOutput).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
'time',
|
||||
// Simple regex to match a time string in the format HH:MM:SS.
|
||||
expect.stringMatching(/^\d{2}:\d{2}:\d{2}/)
|
||||
)
|
||||
})
|
||||
|
||||
it('Sets a failed status', async () => {
|
||||
// Clear the getInput mock and return an invalid value.
|
||||
core.getInput.mockClear().mockReturnValueOnce('this is not a number')
|
||||
|
||||
// Clear the wait mock and return a rejected promise.
|
||||
wait
|
||||
.mockClear()
|
||||
.mockRejectedValueOnce(new Error('milliseconds is not a number'))
|
||||
|
||||
await run()
|
||||
|
||||
// Verify that the action was marked as failed.
|
||||
expect(core.setFailed).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
'milliseconds is not a number'
|
||||
)
|
||||
})
|
||||
})
|
||||
```
|
||||
10
.github/workflows/check-dist.yml
vendored
10
.github/workflows/check-dist.yml
vendored
@@ -26,25 +26,21 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checkout the repository.
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Setup Node.js using the version specified in `.node-version`.
|
||||
- name: Setup Node.js
|
||||
id: setup-node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: .node-version
|
||||
cache: npm
|
||||
|
||||
# Install dependencies using `npm ci`.
|
||||
- name: Install Dependencies
|
||||
id: install
|
||||
run: npm ci
|
||||
|
||||
# Build the `dist/` directory.
|
||||
- name: Build dist/ Directory
|
||||
id: build
|
||||
run: npm run bundle
|
||||
@@ -70,7 +66,7 @@ jobs:
|
||||
- if: ${{ failure() && steps.diff.outcome == 'failure' }}
|
||||
name: Upload Artifact
|
||||
id: upload
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
|
||||
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@@ -19,11 +19,11 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Node.js
|
||||
id: setup-node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: .node-version
|
||||
cache: npm
|
||||
@@ -61,7 +61,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Docker BuildX
|
||||
id: setup-buildx
|
||||
@@ -94,7 +94,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Test Local Action
|
||||
id: test-action
|
||||
|
||||
36
.github/workflows/codeql-analysis.yml
vendored
36
.github/workflows/codeql-analysis.yml
vendored
@@ -1,10 +1,10 @@
|
||||
name: CodeQL
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
schedule:
|
||||
@@ -12,6 +12,7 @@ on:
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
checks: write
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
@@ -24,42 +25,25 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language:
|
||||
- TypeScript
|
||||
- typescript
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
id: initialize
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
config-file: .github/codeql/codeql-config.yml
|
||||
languages: ${{ matrix.language }}
|
||||
config-file: ./.github/codeql/codeql-config.yml
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
source-root: src
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
id: autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
id: analyze
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
|
||||
74
.github/workflows/licensed.yml
vendored
Normal file
74
.github/workflows/licensed.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
# This workflow checks the statuses of cached dependencies used in this action
|
||||
# with the help of the Licensed tool. If any licenses are invalid or missing,
|
||||
# this workflow will fail. See: https://github.com/licensee/licensed
|
||||
|
||||
name: Licensed
|
||||
|
||||
on:
|
||||
# Uncomment the below lines to run this workflow on pull requests and pushes
|
||||
# to the default branch. This is useful for checking licenses before merging
|
||||
# changes into the default branch.
|
||||
# pull_request:
|
||||
# branches:
|
||||
# - main
|
||||
# push:
|
||||
# branches:
|
||||
# - main
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
licensed:
|
||||
name: Check Licenses
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Node.js
|
||||
id: setup-node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: .node-version
|
||||
cache: npm
|
||||
|
||||
- name: Install Dependencies
|
||||
id: npm-ci
|
||||
run: npm ci
|
||||
|
||||
- name: Setup Ruby
|
||||
id: setup-ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ruby
|
||||
|
||||
- uses: licensee/setup-licensed@v1.3.2
|
||||
with:
|
||||
version: 4.x
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# If this is a workflow_dispatch event, update the cached licenses.
|
||||
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
name: Update Licenses
|
||||
id: update-licenses
|
||||
run: licensed cache
|
||||
|
||||
# Then, commit the updated licenses to the repository.
|
||||
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
name: Commit Licenses
|
||||
id: commit-licenses
|
||||
run: |
|
||||
git config --local user.email "licensed-ci@users.noreply.github.com"
|
||||
git config --local user.name "licensed-ci"
|
||||
git add .
|
||||
git commit -m "Auto-update license files"
|
||||
git push
|
||||
|
||||
# Last, check the status of the cached licenses.
|
||||
- name: Check Licenses
|
||||
id: check-licenses
|
||||
run: licensed status
|
||||
16
.github/workflows/linter.yml
vendored
16
.github/workflows/linter.yml
vendored
@@ -24,36 +24,36 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checkout the repository.
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# Setup Node.js using the version specified in `.node-version`.
|
||||
- name: Setup Node.js
|
||||
id: setup-node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: .node-version
|
||||
cache: npm
|
||||
|
||||
# Install dependencies using `npm ci`.
|
||||
- name: Install Dependencies
|
||||
id: install
|
||||
run: npm ci
|
||||
|
||||
# Lint the codebase using the `super-linter/super-linter` action.
|
||||
- name: Lint Codebase
|
||||
id: super-linter
|
||||
uses: super-linter/super-linter/slim@v7
|
||||
uses: super-linter/super-linter/slim@v8
|
||||
env:
|
||||
CHECKOV_FILE_NAME: .checkov.yml
|
||||
DEFAULT_BRANCH: main
|
||||
FILTER_REGEX_EXCLUDE: dist/**/*
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
LINTER_RULES_PATH: ${{ github.workspace }}
|
||||
LINTER_RULES_PATH: .
|
||||
VALIDATE_ALL_CODEBASE: true
|
||||
VALIDATE_BIOME_FORMAT: false
|
||||
VALIDATE_BIOME_LINT: false
|
||||
VALIDATE_GITHUB_ACTIONS_ZIZMOR: false
|
||||
VALIDATE_JAVASCRIPT_ES: false
|
||||
VALIDATE_JAVASCRIPT_STANDARD: false
|
||||
VALIDATE_JSCPD: false
|
||||
|
||||
18
.licensed.yml
Normal file
18
.licensed.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
# See: https://github.com/licensee/licensed/blob/main/docs/configuration.md
|
||||
|
||||
sources:
|
||||
npm: true
|
||||
|
||||
allowed:
|
||||
- apache-2.0
|
||||
- bsd-2-clause
|
||||
- bsd-3-clause
|
||||
- isc
|
||||
- mit
|
||||
- cc0-1.0
|
||||
- other
|
||||
|
||||
ignored:
|
||||
npm:
|
||||
# Used by Rollup.js when building in GitHub Actions
|
||||
- '@rollup/rollup-linux-x64-gnu'
|
||||
@@ -1 +1 @@
|
||||
20.9.0
|
||||
20.18.1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.DS_Store
|
||||
.licenses/
|
||||
dist/
|
||||
node_modules/
|
||||
coverage/
|
||||
|
||||
2
.trivyignore
Normal file
2
.trivyignore
Normal file
@@ -0,0 +1,2 @@
|
||||
AVD-DS-0002
|
||||
AVD-DS-0026
|
||||
9
.vscode/mcp.json
vendored
Normal file
9
.vscode/mcp.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"servers": {
|
||||
"github": {
|
||||
"url": "https://api.githubcopilot.com/mcp/",
|
||||
"type": "http"
|
||||
}
|
||||
},
|
||||
"inputs": []
|
||||
}
|
||||
15
.vscode/settings.json
vendored
Normal file
15
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"github.copilot.chat.reviewSelection.instructions": [
|
||||
{
|
||||
"text": "Review the code changes carefully before accepting them."
|
||||
}
|
||||
],
|
||||
"github.copilot.chat.commitMessageGeneration.instructions": [
|
||||
{
|
||||
"text": "Use conventional commit message format."
|
||||
}
|
||||
],
|
||||
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
|
||||
{ "text": "Always include a list of key changes." }
|
||||
]
|
||||
}
|
||||
@@ -10,3 +10,5 @@ rules:
|
||||
max: 80
|
||||
allow-non-breakable-words: true
|
||||
allow-non-breakable-inline-mappings: true
|
||||
ignore:
|
||||
- .licenses/
|
||||
|
||||
76
README.md
76
README.md
@@ -1,9 +1,10 @@
|
||||
# Create a Container Action with the GitHub Actions Toolkit
|
||||
|
||||
[](https://github.com/super-linter/super-linter)
|
||||

|
||||
[](https://github.com/actions/container-toolkit-action/actions/workflows/check-dist.yml)
|
||||

|
||||
[](./badges/coverage.svg)
|
||||
[](https://github.com/actions/container-toolkit-action/actions/workflows/codeql-analysis.yml)
|
||||
[](./badges/coverage.svg)
|
||||
|
||||
Use this template to bootstrap the creation of a container action with the
|
||||
GitHub Actions toolkit. :rocket:
|
||||
@@ -38,10 +39,16 @@ need to perform some initial setup steps before you can develop your action.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> You'll need to have reasonably modern versions of
|
||||
> You'll need to have a reasonably modern version of
|
||||
> [Node.js](https://nodejs.org) and
|
||||
> [Docker](https://www.docker.com/get-started/) handy (e.g. Node.js v20+ and
|
||||
> docker engine v20+).
|
||||
> [Docker](https://www.docker.com/get-started/) handy (Node.js v20.x or later
|
||||
> and Docker engine v20+ or later should work!). If you are using a version
|
||||
> manager like [`nodenv`](https://github.com/nodenv/nodenv) or
|
||||
> [`fnm`](https://github.com/Schniz/fnm), this template has a `.node-version`
|
||||
> file at the root of the repository that can be used to automatically switch to
|
||||
> the correct version when you `cd` into the repository. Additionally, this
|
||||
> `.node-version` file is used by GitHub Actions in any `actions/setup-node`
|
||||
> actions.
|
||||
|
||||
1. :hammer_and_wrench: Install the dependencies
|
||||
|
||||
@@ -194,14 +201,10 @@ So, what are you waiting for? Go ahead and start customizing your action!
|
||||
npm run all
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> This step is important! It will run [`ncc`](https://github.com/vercel/ncc)
|
||||
> to build the final JavaScript action code with all dependencies included.
|
||||
> If you do not run this step, your action will not work correctly when it is
|
||||
> used in a workflow. This step also includes the `--license` option for
|
||||
> `ncc`, which will create a license file for all of the production node
|
||||
> modules used in your project.
|
||||
> This step is important! It will run [`rollup`](https://rollupjs.org/) to
|
||||
> build the final JavaScript action code with all dependencies included. If
|
||||
> you do not run this step, your action will not work correctly when it is
|
||||
> used in a workflow.
|
||||
|
||||
1. Commit your changes
|
||||
|
||||
@@ -222,7 +225,7 @@ So, what are you waiting for? Go ahead and start customizing your action!
|
||||
Your action is now published! :rocket:
|
||||
|
||||
For information about versioning your action, see
|
||||
[Versioning](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)
|
||||
[Versioning](https://github.com/actions/toolkit/blob/main/docs/action-versioning.md)
|
||||
in the GitHub Actions toolkit.
|
||||
|
||||
## Validate the Action
|
||||
@@ -279,3 +282,48 @@ steps:
|
||||
id: output
|
||||
run: echo "${{ steps.test-action.outputs.time }}"
|
||||
```
|
||||
|
||||
## Dependency License Management
|
||||
|
||||
This template includes a GitHub Actions workflow,
|
||||
[`licensed.yml`](./.github/workflows/licensed.yml), that uses
|
||||
[Licensed](https://github.com/licensee/licensed) to check for dependencies with
|
||||
missing or non-compliant licenses. This workflow is initially disabled. To
|
||||
enable the workflow, follow the below steps.
|
||||
|
||||
1. Open [`licensed.yml`](./.github/workflows/licensed.yml)
|
||||
1. Uncomment the following lines:
|
||||
|
||||
```yaml
|
||||
# pull_request:
|
||||
# branches:
|
||||
# - main
|
||||
# push:
|
||||
# branches:
|
||||
# - main
|
||||
```
|
||||
|
||||
1. Save and commit the changes
|
||||
|
||||
Once complete, this workflow will run any time a pull request is created or
|
||||
changes pushed directly to `main`. If the workflow detects any dependencies with
|
||||
missing or non-compliant licenses, it will fail the workflow and provide details
|
||||
on the issue(s) found.
|
||||
|
||||
### Updating Licenses
|
||||
|
||||
Whenever you install or update dependencies, you can use the Licensed CLI to
|
||||
update the licenses database. To install Licensed, see the project's
|
||||
[Readme](https://github.com/licensee/licensed?tab=readme-ov-file#installation).
|
||||
|
||||
To update the cached licenses, run the following command:
|
||||
|
||||
```bash
|
||||
licensed cache
|
||||
```
|
||||
|
||||
To check the status of cached licenses, run the following command:
|
||||
|
||||
```bash
|
||||
licensed status
|
||||
```
|
||||
|
||||
15
action.yml
15
action.yml
@@ -1,18 +1,23 @@
|
||||
name: 'The name of your action here'
|
||||
description: 'Provide a description here'
|
||||
author: 'Your name or organization here'
|
||||
name: The name of your action here
|
||||
description: Provide a description here
|
||||
author: Your name or organization here
|
||||
|
||||
# Add your action's branding here. This will appear on the GitHub Marketplace.
|
||||
branding:
|
||||
icon: heart
|
||||
color: red
|
||||
|
||||
# Define your inputs here.
|
||||
inputs:
|
||||
milliseconds:
|
||||
description: 'Your input description here'
|
||||
description: Your input description here
|
||||
required: true
|
||||
default: '1000'
|
||||
|
||||
# Define your outputs here.
|
||||
outputs:
|
||||
time:
|
||||
description: 'Your output description here'
|
||||
description: Your output description here
|
||||
|
||||
runs:
|
||||
using: docker
|
||||
|
||||
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="106" height="20" role="img" aria-label="Coverage: 100%"><title>Coverage: 100%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="106" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="63" height="20" fill="#555"/><rect x="63" width="43" height="20" fill="#4c1"/><rect width="106" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">Coverage</text><text x="325" y="140" transform="scale(.1)" fill="#fff" textLength="530">Coverage</text><text aria-hidden="true" x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">100%</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="330">100%</text></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="106" height="20" role="img" aria-label="Coverage: 100%"><title>Coverage: 100%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="106" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="63" height="20" fill="#555"/><rect x="63" width="43" height="20" fill="#4c1"/><rect width="106" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">Coverage</text><text x="325" y="140" transform="scale(.1)" fill="#fff" textLength="530">Coverage</text><text aria-hidden="true" x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">100%</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="330">100%</text></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
1
dist/index.d.ts
generated
vendored
1
dist/index.d.ts
generated
vendored
@@ -1 +0,0 @@
|
||||
export {};
|
||||
130
dist/index.js
generated
vendored
130
dist/index.js
generated
vendored
@@ -1,7 +1,7 @@
|
||||
import require$$0 from 'os';
|
||||
import require$$0$1 from 'crypto';
|
||||
import require$$1 from 'fs';
|
||||
import require$$1$5 from 'path';
|
||||
import require$$1$4 from 'path';
|
||||
import require$$2 from 'http';
|
||||
import require$$3 from 'https';
|
||||
import require$$0$4 from 'net';
|
||||
@@ -13,18 +13,16 @@ import require$$0$5 from 'stream';
|
||||
import require$$7 from 'buffer';
|
||||
import require$$8 from 'querystring';
|
||||
import require$$14 from 'stream/web';
|
||||
import require$$0$7 from 'node:stream';
|
||||
import require$$1$2 from 'node:util';
|
||||
import require$$0$6 from 'node:events';
|
||||
import require$$0$8 from 'worker_threads';
|
||||
import { createRequire } from 'node:module';
|
||||
import require$$0$6 from 'worker_threads';
|
||||
import require$$2$1 from 'perf_hooks';
|
||||
import require$$5 from 'util/types';
|
||||
import require$$4$1 from 'async_hooks';
|
||||
import require$$1$3 from 'console';
|
||||
import require$$1$4 from 'url';
|
||||
import require$$1$2 from 'console';
|
||||
import require$$1$3 from 'url';
|
||||
import require$$3$1 from 'zlib';
|
||||
import require$$6 from 'string_decoder';
|
||||
import require$$0$9 from 'diagnostics_channel';
|
||||
import require$$0$7 from 'diagnostics_channel';
|
||||
import require$$2$2 from 'child_process';
|
||||
import require$$6$1 from 'timers';
|
||||
|
||||
@@ -1720,6 +1718,15 @@ function requireTimers () {
|
||||
|
||||
var main = {exports: {}};
|
||||
|
||||
const require$3 = createRequire(import.meta.url);
|
||||
function __require$2() { return require$3("node:stream"); }
|
||||
|
||||
const require$2 = createRequire(import.meta.url);
|
||||
function __require$1() { return require$2("node:util"); }
|
||||
|
||||
const require$1 = createRequire(import.meta.url);
|
||||
function __require() { return require$1("node:events"); }
|
||||
|
||||
var sbmh;
|
||||
var hasRequiredSbmh;
|
||||
|
||||
@@ -1753,8 +1760,8 @@ function requireSbmh () {
|
||||
* Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation
|
||||
* by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool
|
||||
*/
|
||||
const EventEmitter = require$$0$6.EventEmitter;
|
||||
const inherits = require$$1$2.inherits;
|
||||
const EventEmitter = __require().EventEmitter;
|
||||
const inherits = __require$1().inherits;
|
||||
|
||||
function SBMH (needle) {
|
||||
if (typeof needle === 'string') {
|
||||
@@ -1963,8 +1970,8 @@ function requirePartStream () {
|
||||
if (hasRequiredPartStream) return PartStream_1;
|
||||
hasRequiredPartStream = 1;
|
||||
|
||||
const inherits = require$$1$2.inherits;
|
||||
const ReadableStream = require$$0$7.Readable;
|
||||
const inherits = __require$1().inherits;
|
||||
const ReadableStream = __require$2().Readable;
|
||||
|
||||
function PartStream (opts) {
|
||||
ReadableStream.call(this, opts);
|
||||
@@ -2008,8 +2015,8 @@ function requireHeaderParser () {
|
||||
if (hasRequiredHeaderParser) return HeaderParser_1;
|
||||
hasRequiredHeaderParser = 1;
|
||||
|
||||
const EventEmitter = require$$0$6.EventEmitter;
|
||||
const inherits = require$$1$2.inherits;
|
||||
const EventEmitter = __require().EventEmitter;
|
||||
const inherits = __require$1().inherits;
|
||||
const getLimit = requireGetLimit();
|
||||
|
||||
const StreamSearch = requireSbmh();
|
||||
@@ -2116,8 +2123,8 @@ function requireDicer () {
|
||||
if (hasRequiredDicer) return Dicer_1;
|
||||
hasRequiredDicer = 1;
|
||||
|
||||
const WritableStream = require$$0$7.Writable;
|
||||
const inherits = require$$1$2.inherits;
|
||||
const WritableStream = __require$2().Writable;
|
||||
const inherits = __require$1().inherits;
|
||||
|
||||
const StreamSearch = requireSbmh();
|
||||
|
||||
@@ -2693,8 +2700,8 @@ function requireMultipart () {
|
||||
// * support limits.fieldNameSize
|
||||
// -- this will require modifications to utils.parseParams
|
||||
|
||||
const { Readable } = require$$0$7;
|
||||
const { inherits } = require$$1$2;
|
||||
const { Readable } = __require$2();
|
||||
const { inherits } = __require$1();
|
||||
|
||||
const Dicer = requireDicer();
|
||||
|
||||
@@ -3259,8 +3266,8 @@ function requireMain () {
|
||||
if (hasRequiredMain) return main.exports;
|
||||
hasRequiredMain = 1;
|
||||
|
||||
const WritableStream = require$$0$7.Writable;
|
||||
const { inherits } = require$$1$2;
|
||||
const WritableStream = __require$2().Writable;
|
||||
const { inherits } = __require$1();
|
||||
const Dicer = requireDicer();
|
||||
|
||||
const MultipartParser = requireMultipart();
|
||||
@@ -3352,7 +3359,7 @@ function requireConstants$3 () {
|
||||
if (hasRequiredConstants$3) return constants$3;
|
||||
hasRequiredConstants$3 = 1;
|
||||
|
||||
const { MessageChannel, receiveMessageOnPort } = require$$0$8;
|
||||
const { MessageChannel, receiveMessageOnPort } = require$$0$6;
|
||||
|
||||
const corsSafeListedMethods = ['GET', 'HEAD', 'POST'];
|
||||
const corsSafeListedMethodsSet = new Set(corsSafeListedMethods);
|
||||
@@ -11492,6 +11499,20 @@ function requirePool () {
|
||||
? { ...options.interceptors }
|
||||
: undefined;
|
||||
this[kFactory] = factory;
|
||||
|
||||
this.on('connectionError', (origin, targets, error) => {
|
||||
// If a connection error occurs, we remove the client from the pool,
|
||||
// and emit a connectionError event. They will not be re-used.
|
||||
// Fixes https://github.com/nodejs/undici/issues/3895
|
||||
for (const target of targets) {
|
||||
// Do not use kRemoveClient here, as it will close the client,
|
||||
// but the client cannot be closed in this state.
|
||||
const idx = this[kClients].indexOf(target);
|
||||
if (idx !== -1) {
|
||||
this[kClients].splice(idx, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
[kGetDispatcher] () {
|
||||
@@ -14094,7 +14115,7 @@ function requirePendingInterceptorsFormatter () {
|
||||
hasRequiredPendingInterceptorsFormatter = 1;
|
||||
|
||||
const { Transform } = require$$0$5;
|
||||
const { Console } = require$$1$3;
|
||||
const { Console } = require$$1$2;
|
||||
|
||||
/**
|
||||
* Gets the output of `console.table(…)` as a string.
|
||||
@@ -14321,7 +14342,7 @@ function requireProxyAgent () {
|
||||
hasRequiredProxyAgent = 1;
|
||||
|
||||
const { kProxy, kClose, kDestroy, kInterceptors } = requireSymbols$4();
|
||||
const { URL } = require$$1$4;
|
||||
const { URL } = require$$1$3;
|
||||
const Agent = requireAgent();
|
||||
const Pool = requirePool();
|
||||
const DispatcherBase = requireDispatcherBase();
|
||||
@@ -14953,6 +14974,7 @@ function requireHeaders () {
|
||||
isValidHeaderName,
|
||||
isValidHeaderValue
|
||||
} = requireUtil$5();
|
||||
const util = require$$0$2;
|
||||
const { webidl } = requireWebidl();
|
||||
const assert = require$$0$3;
|
||||
|
||||
@@ -15499,6 +15521,9 @@ function requireHeaders () {
|
||||
[Symbol.toStringTag]: {
|
||||
value: 'Headers',
|
||||
configurable: true
|
||||
},
|
||||
[util.inspect.custom]: {
|
||||
enumerable: false
|
||||
}
|
||||
});
|
||||
|
||||
@@ -21388,9 +21413,10 @@ function requireUtil$1 () {
|
||||
if (hasRequiredUtil$1) return util$1;
|
||||
hasRequiredUtil$1 = 1;
|
||||
|
||||
const assert = require$$0$3;
|
||||
const { kHeadersList } = requireSymbols$4();
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function isCTLExcludingHtab (value) {
|
||||
if (value.length === 0) {
|
||||
return false
|
||||
@@ -21651,31 +21677,13 @@ function requireUtil$1 () {
|
||||
return out.join('; ')
|
||||
}
|
||||
|
||||
let kHeadersListNode;
|
||||
|
||||
function getHeadersList (headers) {
|
||||
if (headers[kHeadersList]) {
|
||||
return headers[kHeadersList]
|
||||
}
|
||||
|
||||
if (!kHeadersListNode) {
|
||||
kHeadersListNode = Object.getOwnPropertySymbols(headers).find(
|
||||
(symbol) => symbol.description === 'headers list'
|
||||
);
|
||||
|
||||
assert(kHeadersListNode, 'Headers cannot be parsed');
|
||||
}
|
||||
|
||||
const headersList = headers[kHeadersListNode];
|
||||
assert(headersList);
|
||||
|
||||
return headersList
|
||||
}
|
||||
|
||||
util$1 = {
|
||||
isCTLExcludingHtab,
|
||||
stringify,
|
||||
getHeadersList
|
||||
validateCookieName,
|
||||
validateCookiePath,
|
||||
validateCookieValue,
|
||||
toIMFDate,
|
||||
stringify
|
||||
};
|
||||
return util$1;
|
||||
}
|
||||
@@ -22013,7 +22021,7 @@ function requireCookies () {
|
||||
hasRequiredCookies = 1;
|
||||
|
||||
const { parseSetCookie } = requireParse();
|
||||
const { stringify, getHeadersList } = requireUtil$1();
|
||||
const { stringify } = requireUtil$1();
|
||||
const { webidl } = requireWebidl();
|
||||
const { Headers } = requireHeaders();
|
||||
|
||||
@@ -22089,14 +22097,13 @@ function requireCookies () {
|
||||
|
||||
webidl.brandCheck(headers, Headers, { strict: false });
|
||||
|
||||
const cookies = getHeadersList(headers).cookies;
|
||||
const cookies = headers.getSetCookie();
|
||||
|
||||
if (!cookies) {
|
||||
return []
|
||||
}
|
||||
|
||||
// In older versions of undici, cookies is a list of name:value.
|
||||
return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))
|
||||
return cookies.map((pair) => parseSetCookie(pair))
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -22285,7 +22292,7 @@ function requireEvents () {
|
||||
|
||||
const { webidl } = requireWebidl();
|
||||
const { kEnumerableProperty } = requireUtil$6();
|
||||
const { MessagePort } = require$$0$8;
|
||||
const { MessagePort } = require$$0$6;
|
||||
|
||||
/**
|
||||
* @see https://html.spec.whatwg.org/multipage/comms.html#messageevent
|
||||
@@ -22802,7 +22809,7 @@ function requireConnection () {
|
||||
if (hasRequiredConnection) return connection;
|
||||
hasRequiredConnection = 1;
|
||||
|
||||
const diagnosticsChannel = require$$0$9;
|
||||
const diagnosticsChannel = require$$0$7;
|
||||
const { uid, states } = requireConstants();
|
||||
const {
|
||||
kReadyState,
|
||||
@@ -23183,7 +23190,7 @@ function requireReceiver () {
|
||||
hasRequiredReceiver = 1;
|
||||
|
||||
const { Writable } = require$$0$5;
|
||||
const diagnosticsChannel = require$$0$9;
|
||||
const diagnosticsChannel = require$$0$7;
|
||||
const { parserStates, opcodes, states, emptyBuffer } = requireConstants();
|
||||
const { kReadyState, kSentClose, kResponse, kReceivedClose } = requireSymbols();
|
||||
const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = requireUtil();
|
||||
@@ -25506,7 +25513,7 @@ function requirePathUtils () {
|
||||
};
|
||||
Object.defineProperty(pathUtils, "__esModule", { value: true });
|
||||
pathUtils.toPlatformPath = pathUtils.toWin32Path = pathUtils.toPosixPath = void 0;
|
||||
const path = __importStar(require$$1$5);
|
||||
const path = __importStar(require$$1$4);
|
||||
/**
|
||||
* toPosixPath converts the given path to the posix form. On Windows, \\ will be
|
||||
* replaced with /.
|
||||
@@ -25593,7 +25600,7 @@ function requireIoUtil () {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;
|
||||
const fs = __importStar(require$$1);
|
||||
const path = __importStar(require$$1$5);
|
||||
const path = __importStar(require$$1$4);
|
||||
_a = fs.promises
|
||||
// export const {open} = 'fs'
|
||||
, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
|
||||
@@ -25783,7 +25790,7 @@ function requireIo () {
|
||||
Object.defineProperty(io, "__esModule", { value: true });
|
||||
io.findInPath = io.which = io.mkdirP = io.rmRF = io.mv = io.cp = void 0;
|
||||
const assert_1 = require$$0$3;
|
||||
const path = __importStar(require$$1$5);
|
||||
const path = __importStar(require$$1$4);
|
||||
const ioUtil = __importStar(requireIoUtil());
|
||||
/**
|
||||
* Copies a file or folder.
|
||||
@@ -26091,7 +26098,7 @@ function requireToolrunner () {
|
||||
const os = __importStar(require$$0);
|
||||
const events = __importStar(require$$4);
|
||||
const child = __importStar(require$$2$2);
|
||||
const path = __importStar(require$$1$5);
|
||||
const path = __importStar(require$$1$4);
|
||||
const io = __importStar(requireIo());
|
||||
const ioUtil = __importStar(requireIoUtil());
|
||||
const timers_1 = require$$6$1;
|
||||
@@ -26935,7 +26942,7 @@ function requireCore () {
|
||||
const file_command_1 = requireFileCommand();
|
||||
const utils_1 = requireUtils$1();
|
||||
const os = __importStar(require$$0);
|
||||
const path = __importStar(require$$1$5);
|
||||
const path = __importStar(require$$1$4);
|
||||
const oidc_utils_1 = requireOidcUtils();
|
||||
/**
|
||||
* The code to exit an action
|
||||
@@ -27290,4 +27297,3 @@ async function run() {
|
||||
*/
|
||||
/* istanbul ignore next */
|
||||
run();
|
||||
//# sourceMappingURL=index.js.map
|
||||
|
||||
1
dist/index.js.map
generated
vendored
1
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
6
dist/main.d.ts
generated
vendored
6
dist/main.d.ts
generated
vendored
@@ -1,6 +0,0 @@
|
||||
/**
|
||||
* The main function for the action.
|
||||
*
|
||||
* @returns Resolves when the action is complete.
|
||||
*/
|
||||
export declare function run(): Promise<void>;
|
||||
7
dist/wait.d.ts
generated
vendored
7
dist/wait.d.ts
generated
vendored
@@ -1,7 +0,0 @@
|
||||
/**
|
||||
* Waits for a number of milliseconds.
|
||||
*
|
||||
* @param milliseconds The number of milliseconds to wait.
|
||||
* @returns Resolves with 'done!' after the wait is over.
|
||||
*/
|
||||
export declare function wait(milliseconds: number): Promise<string>;
|
||||
@@ -9,13 +9,9 @@ import _import from 'eslint-plugin-import'
|
||||
import jest from 'eslint-plugin-jest'
|
||||
import prettier from 'eslint-plugin-prettier'
|
||||
import globals from 'globals'
|
||||
import path from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = path.dirname(__filename)
|
||||
const compat = new FlatCompat({
|
||||
baseDirectory: __dirname,
|
||||
baseDirectory: import.meta.dirname,
|
||||
recommendedConfig: js.configs.recommended,
|
||||
allConfig: js.configs.all
|
||||
})
|
||||
@@ -52,8 +48,16 @@ export default [
|
||||
sourceType: 'module',
|
||||
|
||||
parserOptions: {
|
||||
project: ['tsconfig.eslint.json'],
|
||||
tsconfigRootDir: '.'
|
||||
projectService: {
|
||||
allowDefaultProject: [
|
||||
'__fixtures__/*.ts',
|
||||
'__tests__/*.ts',
|
||||
'eslint.config.mjs',
|
||||
'jest.config.js',
|
||||
'rollup.config.ts'
|
||||
]
|
||||
},
|
||||
tsconfigRootDir: import.meta.dirname
|
||||
}
|
||||
},
|
||||
|
||||
@@ -61,7 +65,7 @@ export default [
|
||||
'import/resolver': {
|
||||
typescript: {
|
||||
alwaysTryTypes: true,
|
||||
project: 'tsconfig.eslint.json'
|
||||
project: 'tsconfig.json'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -31,7 +31,7 @@ export default {
|
||||
'^.+\\.ts$': [
|
||||
'ts-jest',
|
||||
{
|
||||
tsconfig: 'tsconfig.eslint.json',
|
||||
tsconfig: 'tsconfig.json',
|
||||
useESM: true
|
||||
}
|
||||
]
|
||||
|
||||
4201
package-lock.json
generated
4201
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
45
package.json
45
package.json
@@ -40,33 +40,34 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/github": "^6.0.0"
|
||||
"@actions/github": "^6.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/compat": "^1.2.6",
|
||||
"@jest/globals": "^29.7.0",
|
||||
"@rollup/plugin-commonjs": "^28.0.2",
|
||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||
"@rollup/plugin-typescript": "^12.1.2",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/node": "^22.13.1",
|
||||
"@typescript-eslint/eslint-plugin": "^8.24.0",
|
||||
"@typescript-eslint/parser": "^8.24.0",
|
||||
"eslint": "^9.20.1",
|
||||
"eslint-config-prettier": "^10.0.1",
|
||||
"eslint-import-resolver-typescript": "^3.7.0",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jest": "^28.11.0",
|
||||
"eslint-plugin-prettier": "^5.2.3",
|
||||
"jest": "^29.7.0",
|
||||
"@eslint/compat": "^1.4.0",
|
||||
"@jest/globals": "^30.2.0",
|
||||
"@rollup/plugin-commonjs": "^28.0.9",
|
||||
"@rollup/plugin-node-resolve": "^16.0.3",
|
||||
"@rollup/plugin-typescript": "^12.3.0",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^24.9.1",
|
||||
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
||||
"@typescript-eslint/parser": "^8.39.0",
|
||||
"eslint": "^9.38.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-import-resolver-typescript": "^4.4.4",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-jest": "^29.0.1",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"globals": "^16.4.0",
|
||||
"jest": "^30.2.0",
|
||||
"make-coverage-badge": "^1.2.0",
|
||||
"prettier": "^3.5.0",
|
||||
"prettier-eslint": "^16.3.0",
|
||||
"rollup": "^4.34.6",
|
||||
"ts-jest": "^29.2.5",
|
||||
"prettier": "^3.6.2",
|
||||
"prettier-eslint": "^16.4.2",
|
||||
"rollup": "^4.52.5",
|
||||
"ts-jest": "^29.4.5",
|
||||
"ts-jest-resolver": "^2.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.7.3"
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-linux-x64-gnu": "*"
|
||||
|
||||
@@ -10,9 +10,9 @@ const config = {
|
||||
esModule: true,
|
||||
file: 'dist/index.js',
|
||||
format: 'es',
|
||||
sourcemap: true
|
||||
sourcemap: false
|
||||
},
|
||||
plugins: [typescript(), nodeResolve(), commonjs()]
|
||||
plugins: [typescript(), nodeResolve({ preferBuiltins: true }), commonjs()]
|
||||
}
|
||||
|
||||
export default config
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"compilerOptions": {
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"declaration": true,
|
||||
"declarationMap": false,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"lib": ["ES2022"],
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"newLine": "lf",
|
||||
"noImplicitAny": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": false,
|
||||
"pretty": true,
|
||||
"resolveJsonModule": true,
|
||||
"sourceMap": true,
|
||||
"strict": true,
|
||||
"strictNullChecks": true,
|
||||
"target": "ES2022"
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": "./tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"noEmit": true
|
||||
},
|
||||
"exclude": ["dist", "node_modules"],
|
||||
"include": [
|
||||
"__fixtures__",
|
||||
"__tests__",
|
||||
"src",
|
||||
"eslint.config.mjs",
|
||||
"jest.config.js",
|
||||
"rollup.config.ts"
|
||||
]
|
||||
}
|
||||
@@ -1,10 +1,26 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": "./tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"declaration": false,
|
||||
"declarationMap": false,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"isolatedModules": true,
|
||||
"lib": ["ES2022"],
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"outDir": "./dist"
|
||||
"newLine": "lf",
|
||||
"noImplicitAny": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": false,
|
||||
"outDir": "./dist",
|
||||
"pretty": true,
|
||||
"resolveJsonModule": true,
|
||||
"sourceMap": false,
|
||||
"strict": true,
|
||||
"strictNullChecks": true,
|
||||
"target": "ES2022"
|
||||
},
|
||||
"exclude": ["__fixtures__", "__tests__", "coverage", "dist", "node_modules"],
|
||||
"include": ["src"]
|
||||
|
||||
Reference in New Issue
Block a user