2025-07-31 10:35:11 +00:00
|
|
|
module code.forgejo.org/forgejo/runner/v9
|
2022-04-27 17:45:53 +08:00
|
|
|
|
2025-05-02 16:12:37 +00:00
|
|
|
go 1.23.0
|
2024-12-04 10:12:38 +01:00
|
|
|
|
2025-07-09 08:09:38 +00:00
|
|
|
toolchain go1.23.11
|
2022-04-27 17:45:53 +08:00
|
|
|
|
|
|
|
require (
|
2025-07-03 16:55:53 +00:00
|
|
|
code.forgejo.org/forgejo/actions-proto v0.5.1
|
2025-01-09 00:02:03 +00:00
|
|
|
connectrpc.com/connect v1.18.1
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/Masterminds/semver v1.5.0
|
2025-03-25 07:27:50 +00:00
|
|
|
github.com/avast/retry-go/v4 v4.6.1
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/containerd/errdefs v0.3.0
|
|
|
|
github.com/creack/pty v1.1.24
|
|
|
|
github.com/distribution/reference v0.6.0
|
|
|
|
github.com/docker/cli v28.2.2+incompatible
|
2025-07-31 08:38:03 +00:00
|
|
|
github.com/docker/docker v28.3.3+incompatible
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/docker/go-connections v0.5.0
|
2025-08-02 17:29:04 +00:00
|
|
|
github.com/go-git/go-billy/v5 v5.6.2
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/go-git/go-git/v5 v5.13.1
|
|
|
|
github.com/gobwas/glob v0.2.3
|
2024-08-13 13:23:36 +00:00
|
|
|
github.com/google/uuid v1.6.0
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/imdario/mergo v0.3.16
|
2023-03-17 09:45:46 +08:00
|
|
|
github.com/joho/godotenv v1.5.1
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/julienschmidt/httprouter v1.3.0
|
|
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
2024-03-11 18:32:49 +07:00
|
|
|
github.com/mattn/go-isatty v0.0.20
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/moby/go-archive v0.1.0
|
|
|
|
github.com/moby/patternmatcher v0.6.0
|
2025-08-02 18:44:09 +00:00
|
|
|
github.com/opencontainers/image-spec v1.1.1
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/opencontainers/selinux v1.11.0
|
|
|
|
github.com/pkg/errors v0.9.1
|
Update module github.com/rhysd/actionlint to v1.7.7 (#791)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) | `v1.6.27` -> `v1.7.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>rhysd/actionlint (github.com/rhysd/actionlint)</summary>
### [`v1.7.7`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v177---2025-01-19)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.6...v1.7.7)
- Support runner labels for [Linux arm64 hosted runners](https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/). ([#​503](https://github.com/rhysd/actionlint/issues/503), [#​504](https://github.com/rhysd/actionlint/issues/504), thanks [@​martincostello](https://github.com/martincostello))
- `ubuntu-24.04-arm`
- `ubuntu-22.04-arm`
- Update Go dependencies to the latest.
- Update the popular actions data set to the latest.
- Add Linux arm64 job to the CI workflow. Now actionlint is tested on the platform. ([#​507](https://github.com/rhysd/actionlint/issues/507), thanks [@​cclauss](https://github.com/cclauss))
\[Changes]\[v1.7.7]
<a id="v1.7.6"></a>
### [`v1.7.6`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v176---2025-01-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.5...v1.7.6)
- Using contexts at specific workflow keys is incorrectly reported as not allowed. Affected workflow keys are as follows. ([#​495](https://github.com/rhysd/actionlint/issues/495), [#​497](https://github.com/rhysd/actionlint/issues/497), [#​498](https://github.com/rhysd/actionlint/issues/498), [#​500](https://github.com/rhysd/actionlint/issues/500))
- `jobs.<job_id>.steps.with.args`
- `jobs.<job_id>.steps.with.entrypoint`
- `jobs.<job_id>.services.<service_id>.env`
- Update Go dependencies to the latest.
\[Changes]\[v1.7.6]
<a id="v1.7.5"></a>
### [`v1.7.5`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v175---2024-12-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.4...v1.7.5)
- Strictly check available contexts in `${{ }}` placeholders following the ['Context availability' table](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#context-availability) in the official document.
- For example, `jobs.<job_id>.defaults.run.shell` allows `env` context but `shell` workflow keys in other places allow no context.
```yaml
defaults:
run:
```
### ERROR: No context is available here
```
shell: ${{ env.SHELL }}
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
```
### OK: 'env' context is available here
```
shell: ${{ env.SHELL }}
steps:
- run: echo hello
```
### ERROR: No context is available here
````
shell: ${{ env.SHELL}}
```
````
- Check a string literal passed to `fromJSON()` call. This pattern is [popular](https://github.com/search?q=fromJSON%28%27+lang%3Ayaml\&type=code) to create array or object constants because GitHub Actions does not provide the literal syntax for them. See the [document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#contexts-and-built-in-functions) for more details. ([#​464](https://github.com/rhysd/actionlint/issues/464))
```yaml
jobs:
test:
```
### ERROR: Key 'mac' does not exist in the object returned by the fromJSON()
```
runs-on: ${{ fromJSON('{"win":"windows-latest","linux":"ubuntul-latest"}')['mac'] }}
steps:
- run: echo This is a special branch!
```
### ERROR: Broken JSON string passed to fromJSON.
```
if: contains(fromJSON('["main","release","dev"'), github.ref_name)
```
````
- Allow passing command arguments to `-shellcheck` argument. ([#​483](https://github.com/rhysd/actionlint/issues/483), thanks [@​anuraaga](https://github.com/anuraaga))
- This is useful when you want to use alternative build of shellcheck like [go-shellcheck](https://github.com/wasilibs/go-shellcheck/).
```sh
actionlint -shellcheck="go run github.com/wasilibs/go-shellcheck/cmd/shellcheck@latest"
```
- Support undocumented `repository_visibility`, `artifact_cache_size_limit`, `step_summary`, `output`, `state` properties in `github` context. ([#​489](https://github.com/rhysd/actionlint/issues/489), thanks [@​rasa](https://github.com/rasa) for adding `repository_visibility` property)
- Remove `macos-12` runner label from known labels because it was [dropped](https://github.com/actions/runner-images/issues/10721) from GitHub-hosted runners on Dec. 3 and is no longer available.
- Add `windows-2025` runner label to the known labels. The runner is in [public preview](https://github.blog/changelog/2024-12-19-windows-server-2025-is-now-in-public-preview/). ([#​491](https://github.com/rhysd/actionlint/issues/491), thanks [@​ericcornelissen](https://github.com/ericcornelissen))
- Add `black` to the list of colors for `branding.color` action metadata. ([#​485](https://github.com/rhysd/actionlint/issues/485), thanks [@​eifinger](https://github.com/eifinger))
- Add `table` to the list of icons for `branding.icon` action metadata.
- Fix parsing escaped `{` in `format()` function call's first argument.
- Fix the incorrect `join()` function overload. `join(s1: string, s2: string)` was wrongly accepted.
- Update popular actions data set to the latest.
- Add `download-artifact/v3-node20` to the data set. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Fix missing the `reviewdog/action-hadolint@v1` action input. ([#​487](https://github.com/rhysd/actionlint/issues/487), thanks [@​mi-wada](https://github.com/mi-wada))
- Link to the documents of the stable version in actionlint `man` page and `-help` output.
- Refactor `LintStdin()` API example and some unit tests. ([#​472](https://github.com/rhysd/actionlint/issues/472), [#​475](https://github.com/rhysd/actionlint/issues/475), thanks [@​alexandear](https://github.com/alexandear))
- Improve the configuration example in `actionlint.yaml` document to explain glob patterns for `paths`. ([#​481](https://github.com/rhysd/actionlint/issues/481))
[Changes][v1.7.5]
<a id="v1.7.4"></a>
````
### [`v1.7.4`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v174---2024-11-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.3...v1.7.4)
- Disallow the usage of popular actions that run on `node16` runner. The `node16` runner [will reach the end of life on November 12](https://github.blog/changelog/2024-09-25-end-of-life-for-actions-node16/).
- In case of the error, please update your actions to the latest version so that they run on the latest `node20` runner.
- If you're using self-hosted runner and you cannot upgrade your runner to `node20` soon, please consider to ignore the error by the `paths` configuration described below.
- If you're using `actions/upload-artifact@v3` and `actions/download-artifact@v3` on GHES, please replace them with `actions/upload-artifact@v3-node20` and `actions/download-artifact@v3-node20`. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Provide the configuration for ignoring errors by regular expressions in `actionlint.yml` (or `actionlint.yaml`). Please see the [document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/config.md) for more details. ([#​217](https://github.com/rhysd/actionlint/issues/217), [#​342](https://github.com/rhysd/actionlint/issues/342))
- The `paths` is a mapping from the file path glob pattern to the corresponding configuration. The `ignore` configuration is a list of regular expressions to match error messages (similar to the `-ignore` command line option).
```yaml
paths:
```
### This pattern matches any YAML file under the '.github/workflows/' directory.
```
.github/workflows/**/*.yaml:
ignore:
```
### Ignore the specific error from shellcheck
```
- 'shellcheck reported issue in this script: SC2086:.+'
```
### This pattern only matches '.github/workflows/release.yaml' file.
```
.github/workflows/release.yaml:
ignore:
```
### Ignore errors from the old runner check. This may be useful for (outdated) self-hosted runner environment.
````
- 'the runner of ".+" action is too old to run on GitHub Actions'
```
````
- This configuration was not implemented initially because I wanted to keep the configuration as minimal as possible. However, due to several requests for it, the configuration has now been added.
- Untrusted inputs check is safely skipped inside specific function calls. ([#​459](https://github.com/rhysd/actionlint/issues/459), thanks [@​IlyaGulya](https://github.com/IlyaGulya))
- For example, the following step contains the untrusted input `github.head_ref`, but it is safe because it's passed to the `contains()` argument.
```yaml
- run: echo "is_release_branch=${{ contains(github.head_ref, 'release') }}" >> "$GITHUB_OUTPUT"
```
- For more details, please read the [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#untrusted-inputs).
- Recognize `gcr.io` and `gcr.dev` as the correct container registry hosts. ([#​463](https://github.com/rhysd/actionlint/issues/463), thanks [@​takaidohigasi](https://github.com/takaidohigasi))
- Note that it is recommended explicitly specifying the scheme like `docker://gcr.io/...`.
- Remove `macos-x.0` runner labels which are no longer available. ([#​452](https://github.com/rhysd/actionlint/issues/452))
- Disable shellcheck [`SC2043`](https://www.shellcheck.net/wiki/SC2043) rule because it can cause false positives on checking `run:`. ([#​355](https://github.com/rhysd/actionlint/issues/355))
- The [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#check-shellcheck-integ) was updated as well. ([#​466](https://github.com/rhysd/actionlint/issues/466), thanks [@​risu729](https://github.com/risu729))
- Fix the error message was not deterministic when detecting cycles in `needs` dependencies.
- Fix the check for `format()` function was not applied when the function name contains upper case like `Format()`. Note that function names in `${{ }}` placeholders are case-insensitive.
- Update the popular actions data set to the latest.
- This includes the [new `ref` and `commit` outputs](https://github.com/actions/checkout/pull/1180) of `actions/checkout`.
- Add [`actions/cache/save`](https://github.com/actions/cache/tree/main/save) and [`actions/cache/restore`](https://github.com/actions/cache/tree/main/restore) to the popular actions data set.
- Links in the [README.md](https://github.com/rhysd/actionlint/blob/main/README.md) now point to the document of the latest version tag instead of HEAD of `main` branch.
- Add [`Linter.LintStdin`](https://pkg.go.dev/github.com/rhysd/actionlint#Linter.LintStdin) method dedicated to linting STDIN instead of handling STDIN in `Command`.
- (Dev) Add new [`check-checks` script](https://github.com/rhysd/actionlint/tree/main/scripts/check-checks) to maintain the ['Checks' document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md). It automatically updates the outputs and playground links for example inputs in the document. It also checks the document is up-to-date on CI. Please read the [document](https://github.com/rhysd/actionlint/blob/main/scripts/check-checks/README.md) for more details.
[Documentation](https://github.com/rhysd/actionlint/tree/v1.7.4/docs)
\[Changes]\[v1.7.4]
<a id="v1.7.3"></a>
### [`v1.7.3`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v173---2024-09-29)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.2...v1.7.3)
- Remove `macos-11` runner labels because [macOS 11 runner was dropped on 6/28/2024](https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/#macos-11-deprecation-and-removal). ([#​451](https://github.com/rhysd/actionlint/issues/451), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Support `macos-15`, `macos-15-large`, and `macos-15-xlarge` runner labels. The macOS 15 runner is not globally available yet, but [they are available in beta](https://github.com/actions/runner-images?tab=readme-ov-file#available-images). ([#​453](https://github.com/rhysd/actionlint/issues/453), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Release artifact includes checksums for the released binaries. The file name is `actionlint_{version}_checksums.txt`. ([#​449](https://github.com/rhysd/actionlint/issues/449))
- For example, the checksums for v1.7.3 can be found [here](https://github.com/rhysd/actionlint/releases/download/v1.7.3/actionlint_1.7.3_checksums.txt).
- Fix `download-path` output is missing in `actions/download-artifact@v3` action. ([#​442](https://github.com/rhysd/actionlint/issues/442))
- Note that the latest version `actions/download-artifact@v4` was not affected by this issue.
- Support Go 1.23.
[Documentation](https://github.com/rhysd/actionlint/blob/v1.7.3/docs/checks.md)
\[Changes]\[v1.7.3]
<a id="v1.7.2"></a>
### [`v1.7.2`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v172---2024-09-23)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.1...v1.7.2)
- Fix child processes to run in parallel.
- Update the popular actions data set to the latest. ([#​442](https://github.com/rhysd/actionlint/issues/442), [#​445](https://github.com/rhysd/actionlint/issues/445), [#​446](https://github.com/rhysd/actionlint/issues/446), [#​447](https://github.com/rhysd/actionlint/issues/447), thanks [@​maikelvdh](https://github.com/maikelvdh))
- Add support for checking branch filters on [`merge_group` event](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#merge_group). ([#​448](https://github.com/rhysd/actionlint/issues/448), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- [The playground](https://rhysd.github.io/actionlint/) now supports both light and dark modes and automatically applies the system's theme.
- Fix releasing a failure on making a new winget package. ([#​438](https://github.com/rhysd/actionlint/issues/438), thanks [@​vedantmgoyal9](https://github.com/vedantmgoyal9))
\[Changes]\[v1.7.2]
<a id="v1.7.1"></a>
### [`v1.7.1`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v171---2024-05-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.0...v1.7.1)
- Support `ubuntu-24.04` runner label, which was [recently introduced as beta](https://github.blog/changelog/2024-05-14-github-hosted-runners-public-beta-of-ubuntu-24-04-is-now-available/). ([#​425](https://github.com/rhysd/actionlint/issues/425), thanks [@​bitcoin-tools](https://github.com/bitcoin-tools))
- Remove the support for `macos-10` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/).
- Remove the support for `windows-2016` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2021-10-19-github-actions-the-windows-2016-runner-image-will-be-removed-from-github-hosted-runners-on-march-15-2022/).
- Document URLs used in help output and links in the playground prefer specific version tag rather than `main` branch. For example,
- Before: https://github.com/rhysd/actionlint/tree/main/docs
- After: https://github.com/rhysd/actionlint/tree/v1.7.1/docs
- Fix actionlint wrongly reports an error when using `ghcr.io` or `docker.io` at `image` field of action metadata file of Docker action without `docker://` scheme. ([#​428](https://github.com/rhysd/actionlint/issues/428))
```yaml
runs:
using: 'docker'
```
### This should be OK
```
image: 'ghcr.io/user/repo:latest'
```
```
- Fix checking `preactjs/compressed-size-action@v2` usage caused a false positive. ([#​422](https://github.com/rhysd/actionlint/issues/422))
- Fix an error message when invalid escaping is found in globs.
- The design of the [playground page](https://rhysd.github.io/actionlint/) is overhauled following the upgrade of bulma package to v1.
- Current actionlint version is shown in the heading.
- The color theme is changed to the official dark theme.
- The list of useful links is added to the bottom of the page as 'Resources' section.
[Changes][v1.7.1]
<a id="v1.7.0"></a>
```
### [`v1.7.0`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v170---2024-05-08)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.6.27...v1.7.0)
- From this version, actionlint starts to check action metadata file `action.yml` (or `action.yaml`). At this point, only very basic checks are implemented and contents of `steps:` are not checked yet.
- It checks properties under `runs:` section (e.g. `main:` can be specified when it is a JavaScript action), `branding:` properties, and so on.
```yaml
name: 'My action'
author: '...'
```
### ERROR: 'description' section is missing
```
branding:
```
### ERROR: Invalid icon name
```
icon: dog
runs:
```
### ERROR: Node.js runtime version is too old
```
using: 'node12'
```
### ERROR: The source file being run by this action does not exist
```
main: 'this-file-does-not-exist.js'
```
### ERROR: 'env' configuration is only allowed for Docker actions
````
env:
SOME_VAR: SOME_VALUE
```
````
- actionlint still focuses on checking workflow files. So there is no way to directly specify `action.yml` as an argument of `actionlint` command. actionlint checks all local actions which are used by given workflows. If you want to use actionlint for your action development, prepare a test/example workflow which uses your action, and check it with actionlint instead.
- Checks for `steps:` contents are planned to be implemented. Since several differences are expected between `steps:` in workflow file and `steps:` in action metadata file (e.g. available contexts), the implementation is delayed to later version. And the current implementation of action metadata parser is ad hoc. I'm planning a large refactorying and breaking changes Go API around it are expected.
- Add `runner.environment` property. ([#​412](https://github.com/rhysd/actionlint/issues/412))
```yaml
- run: echo 'Run by GitHub-hosted runner'
if: runner.environment == 'github-hosted'
```
- Using outdated popular actions is now detected at error. See [the document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#detect-outdated-popular-actions) for more details.
- Here 'outdated' means actions which use runtimes no longer supported by GitHub-hosted runners such as `node12`.
```yaml
```
### ERROR: actions/checkout@v2 is using the outdated runner 'node12'
````
- uses: actions/checkout@v2
```
````
- Support `attestations` permission which was [recently added to GitHub Actions as beta](https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). ([#​418](https://github.com/rhysd/actionlint/issues/418), thanks [@​bdehamer](https://github.com/bdehamer))
```yaml
permissions:
id-token: write
contents: read
attestations: write
```
- Check comparison expressions more strictly. Arbitrary types of operands can be compared as [the official document](https://docs.github.com/en/actions/learn-github-actions/expressions#operators) explains. However, comparisons between some types are actually meaningless because the values are converted to numbers implicitly. actionlint catches such meaningless comparisons as errors. Please see [the check document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#check-comparison-types) for more details.
```yaml
on:
workflow_call:
inputs:
timeout:
type: boolean
jobs:
test:
runs-on: ubuntu-latest
steps:
- run: echo 'called!'
```
### ERROR: Comparing string to object is always evaluated to false
```
if: ${{ github.event == 'workflow_call' }}
- run: echo 'timeout is too long'
```
### ERROR: Comparing boolean value with `>` doesn't make sense
```
if: ${{ inputs.timeout > 60 }}
```
````
- Follow the update that `macos-latest` is now an alias to `macos-14` runner.
- Support a custom python shell by `pyflakes` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. ([#​416](https://github.com/rhysd/actionlint/issues/416))
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. ([#​384](https://github.com/rhysd/actionlint/issues/384))
- For example, the type of following expression should be `number` but it was actually `string | number` and actionlint complained that `timeout-minutes` must take a number value.
```yaml
timeout-minutes: ${{ env.FOO && 10 || 60 }}
```
- Fix `${{ }}` placeholder is not available at `jobs.<job_id>.services`. ([#​402](https://github.com/rhysd/actionlint/issues/402))
```yaml
jobs:
test:
services: ${{ fromJSON('...') }}
runs-on: ubuntu-latest
steps:
- run: ...
````
- Do not check outputs of `google-github-actions/get-secretmanager-secrets` because this action sets outputs dynamically. ([#​404](https://github.com/rhysd/actionlint/issues/404))
- Fix `defaults.run` is ignored on detecting the shell used in `run:`. ([#​409](https://github.com/rhysd/actionlint/issues/409))
```yaml
defaults:
run:
shell: pwsh
jobs:
test:
runs-on: ubuntu-latest
steps:
```
### This was wrongly detected as bash script
```
- run: $Env:FOO = "FOO"
```
````
- Fix parsing a syntax error reported from pyflakes when checking a Python script in `run:`. ([#​411](https://github.com/rhysd/actionlint/issues/411))
```yaml
- run: print(
shell: python
````
- Skip checking `exclude:` items in `matrix:` when they are constructed from `${{ }}` dynamically. ([#​414](https://github.com/rhysd/actionlint/issues/414))
```yaml
matrix:
foo: ['a', 'b']
exclude:
```
### actionlint complained this value didn't exist in matrix combinations
```
- foo: ${{ env.EXCLUDE_FOO }}
```
````
- Fix checking `exclude:` items when `${{ }}` is used in nested arrays at matrix items.
```yaml
matrix:
foo:
- ["${{ fromJSON('...') }}"]
exclude:
### actionlint complained this value didn't match to any matrix combinations
- foo: ['foo']
````
- Update popular actions data set. New major versions are added and the following actions are newly added.
- `peaceiris/actions-hugo`
- `actions/attest-build-provenance`
- `actions/add-to-project`
- `octokit/graphql-action`
- Update Go dependencies to the latest.
- Reduce the size of `actionlint` executable by removing redundant data from popular actions data set.
- x86\_64 executable binary size was reduced from 6.9MB to 6.7MB (2.9% smaller).
- Wasm binary size was reduced from 9.4MB to 8.9MB (5.3% smaller).
- Describe how to [integrate actionlint to Pulsar Edit](https://web.pulsar-edit.dev/packages/linter-github-actions) in [the document](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#pulsar-edit). ([#​408](https://github.com/rhysd/actionlint/issues/408), thanks [@​mschuchard](https://github.com/mschuchard))
- Update outdated action versions in the usage document. ([#​413](https://github.com/rhysd/actionlint/issues/413), thanks [@​naglis](https://github.com/naglis))
\[Changes]\[v1.7.0]
<a id="v1.6.27"></a>
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (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:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/791
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-08-02 17:56:34 +00:00
|
|
|
github.com/rhysd/actionlint v1.7.7
|
2023-08-02 04:34:36 +00:00
|
|
|
github.com/sirupsen/logrus v1.9.3
|
2025-05-02 21:53:20 +00:00
|
|
|
github.com/spf13/cobra v1.9.1
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/spf13/pflag v1.0.6
|
2024-11-24 00:02:30 +00:00
|
|
|
github.com/stretchr/testify v1.10.0
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/timshannon/bolthold v0.0.0-20240314194003-30aac6950928
|
2025-08-02 17:58:33 +00:00
|
|
|
go.etcd.io/bbolt v1.4.2
|
2025-07-11 05:43:08 +00:00
|
|
|
golang.org/x/term v0.33.0
|
2025-06-07 09:07:52 +00:00
|
|
|
golang.org/x/time v0.12.0
|
2025-03-27 07:07:15 +00:00
|
|
|
google.golang.org/protobuf v1.36.6
|
2023-04-02 22:41:48 +08:00
|
|
|
gopkg.in/yaml.v3 v3.0.1
|
2025-05-02 13:48:30 +00:00
|
|
|
gotest.tools/v3 v3.5.2
|
2022-04-27 17:45:53 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
require (
|
2023-08-02 04:34:36 +00:00
|
|
|
dario.cat/mergo v1.0.0 // indirect
|
2023-08-10 01:45:25 +00:00
|
|
|
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
2025-05-14 08:16:27 +00:00
|
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
2025-01-10 11:01:56 +00:00
|
|
|
github.com/ProtonMail/go-crypto v1.1.3 // indirect
|
Update module github.com/rhysd/actionlint to v1.7.7 (#791)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) | `v1.6.27` -> `v1.7.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>rhysd/actionlint (github.com/rhysd/actionlint)</summary>
### [`v1.7.7`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v177---2025-01-19)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.6...v1.7.7)
- Support runner labels for [Linux arm64 hosted runners](https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/). ([#​503](https://github.com/rhysd/actionlint/issues/503), [#​504](https://github.com/rhysd/actionlint/issues/504), thanks [@​martincostello](https://github.com/martincostello))
- `ubuntu-24.04-arm`
- `ubuntu-22.04-arm`
- Update Go dependencies to the latest.
- Update the popular actions data set to the latest.
- Add Linux arm64 job to the CI workflow. Now actionlint is tested on the platform. ([#​507](https://github.com/rhysd/actionlint/issues/507), thanks [@​cclauss](https://github.com/cclauss))
\[Changes]\[v1.7.7]
<a id="v1.7.6"></a>
### [`v1.7.6`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v176---2025-01-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.5...v1.7.6)
- Using contexts at specific workflow keys is incorrectly reported as not allowed. Affected workflow keys are as follows. ([#​495](https://github.com/rhysd/actionlint/issues/495), [#​497](https://github.com/rhysd/actionlint/issues/497), [#​498](https://github.com/rhysd/actionlint/issues/498), [#​500](https://github.com/rhysd/actionlint/issues/500))
- `jobs.<job_id>.steps.with.args`
- `jobs.<job_id>.steps.with.entrypoint`
- `jobs.<job_id>.services.<service_id>.env`
- Update Go dependencies to the latest.
\[Changes]\[v1.7.6]
<a id="v1.7.5"></a>
### [`v1.7.5`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v175---2024-12-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.4...v1.7.5)
- Strictly check available contexts in `${{ }}` placeholders following the ['Context availability' table](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#context-availability) in the official document.
- For example, `jobs.<job_id>.defaults.run.shell` allows `env` context but `shell` workflow keys in other places allow no context.
```yaml
defaults:
run:
```
### ERROR: No context is available here
```
shell: ${{ env.SHELL }}
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
```
### OK: 'env' context is available here
```
shell: ${{ env.SHELL }}
steps:
- run: echo hello
```
### ERROR: No context is available here
````
shell: ${{ env.SHELL}}
```
````
- Check a string literal passed to `fromJSON()` call. This pattern is [popular](https://github.com/search?q=fromJSON%28%27+lang%3Ayaml\&type=code) to create array or object constants because GitHub Actions does not provide the literal syntax for them. See the [document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#contexts-and-built-in-functions) for more details. ([#​464](https://github.com/rhysd/actionlint/issues/464))
```yaml
jobs:
test:
```
### ERROR: Key 'mac' does not exist in the object returned by the fromJSON()
```
runs-on: ${{ fromJSON('{"win":"windows-latest","linux":"ubuntul-latest"}')['mac'] }}
steps:
- run: echo This is a special branch!
```
### ERROR: Broken JSON string passed to fromJSON.
```
if: contains(fromJSON('["main","release","dev"'), github.ref_name)
```
````
- Allow passing command arguments to `-shellcheck` argument. ([#​483](https://github.com/rhysd/actionlint/issues/483), thanks [@​anuraaga](https://github.com/anuraaga))
- This is useful when you want to use alternative build of shellcheck like [go-shellcheck](https://github.com/wasilibs/go-shellcheck/).
```sh
actionlint -shellcheck="go run github.com/wasilibs/go-shellcheck/cmd/shellcheck@latest"
```
- Support undocumented `repository_visibility`, `artifact_cache_size_limit`, `step_summary`, `output`, `state` properties in `github` context. ([#​489](https://github.com/rhysd/actionlint/issues/489), thanks [@​rasa](https://github.com/rasa) for adding `repository_visibility` property)
- Remove `macos-12` runner label from known labels because it was [dropped](https://github.com/actions/runner-images/issues/10721) from GitHub-hosted runners on Dec. 3 and is no longer available.
- Add `windows-2025` runner label to the known labels. The runner is in [public preview](https://github.blog/changelog/2024-12-19-windows-server-2025-is-now-in-public-preview/). ([#​491](https://github.com/rhysd/actionlint/issues/491), thanks [@​ericcornelissen](https://github.com/ericcornelissen))
- Add `black` to the list of colors for `branding.color` action metadata. ([#​485](https://github.com/rhysd/actionlint/issues/485), thanks [@​eifinger](https://github.com/eifinger))
- Add `table` to the list of icons for `branding.icon` action metadata.
- Fix parsing escaped `{` in `format()` function call's first argument.
- Fix the incorrect `join()` function overload. `join(s1: string, s2: string)` was wrongly accepted.
- Update popular actions data set to the latest.
- Add `download-artifact/v3-node20` to the data set. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Fix missing the `reviewdog/action-hadolint@v1` action input. ([#​487](https://github.com/rhysd/actionlint/issues/487), thanks [@​mi-wada](https://github.com/mi-wada))
- Link to the documents of the stable version in actionlint `man` page and `-help` output.
- Refactor `LintStdin()` API example and some unit tests. ([#​472](https://github.com/rhysd/actionlint/issues/472), [#​475](https://github.com/rhysd/actionlint/issues/475), thanks [@​alexandear](https://github.com/alexandear))
- Improve the configuration example in `actionlint.yaml` document to explain glob patterns for `paths`. ([#​481](https://github.com/rhysd/actionlint/issues/481))
[Changes][v1.7.5]
<a id="v1.7.4"></a>
````
### [`v1.7.4`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v174---2024-11-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.3...v1.7.4)
- Disallow the usage of popular actions that run on `node16` runner. The `node16` runner [will reach the end of life on November 12](https://github.blog/changelog/2024-09-25-end-of-life-for-actions-node16/).
- In case of the error, please update your actions to the latest version so that they run on the latest `node20` runner.
- If you're using self-hosted runner and you cannot upgrade your runner to `node20` soon, please consider to ignore the error by the `paths` configuration described below.
- If you're using `actions/upload-artifact@v3` and `actions/download-artifact@v3` on GHES, please replace them with `actions/upload-artifact@v3-node20` and `actions/download-artifact@v3-node20`. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Provide the configuration for ignoring errors by regular expressions in `actionlint.yml` (or `actionlint.yaml`). Please see the [document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/config.md) for more details. ([#​217](https://github.com/rhysd/actionlint/issues/217), [#​342](https://github.com/rhysd/actionlint/issues/342))
- The `paths` is a mapping from the file path glob pattern to the corresponding configuration. The `ignore` configuration is a list of regular expressions to match error messages (similar to the `-ignore` command line option).
```yaml
paths:
```
### This pattern matches any YAML file under the '.github/workflows/' directory.
```
.github/workflows/**/*.yaml:
ignore:
```
### Ignore the specific error from shellcheck
```
- 'shellcheck reported issue in this script: SC2086:.+'
```
### This pattern only matches '.github/workflows/release.yaml' file.
```
.github/workflows/release.yaml:
ignore:
```
### Ignore errors from the old runner check. This may be useful for (outdated) self-hosted runner environment.
````
- 'the runner of ".+" action is too old to run on GitHub Actions'
```
````
- This configuration was not implemented initially because I wanted to keep the configuration as minimal as possible. However, due to several requests for it, the configuration has now been added.
- Untrusted inputs check is safely skipped inside specific function calls. ([#​459](https://github.com/rhysd/actionlint/issues/459), thanks [@​IlyaGulya](https://github.com/IlyaGulya))
- For example, the following step contains the untrusted input `github.head_ref`, but it is safe because it's passed to the `contains()` argument.
```yaml
- run: echo "is_release_branch=${{ contains(github.head_ref, 'release') }}" >> "$GITHUB_OUTPUT"
```
- For more details, please read the [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#untrusted-inputs).
- Recognize `gcr.io` and `gcr.dev` as the correct container registry hosts. ([#​463](https://github.com/rhysd/actionlint/issues/463), thanks [@​takaidohigasi](https://github.com/takaidohigasi))
- Note that it is recommended explicitly specifying the scheme like `docker://gcr.io/...`.
- Remove `macos-x.0` runner labels which are no longer available. ([#​452](https://github.com/rhysd/actionlint/issues/452))
- Disable shellcheck [`SC2043`](https://www.shellcheck.net/wiki/SC2043) rule because it can cause false positives on checking `run:`. ([#​355](https://github.com/rhysd/actionlint/issues/355))
- The [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#check-shellcheck-integ) was updated as well. ([#​466](https://github.com/rhysd/actionlint/issues/466), thanks [@​risu729](https://github.com/risu729))
- Fix the error message was not deterministic when detecting cycles in `needs` dependencies.
- Fix the check for `format()` function was not applied when the function name contains upper case like `Format()`. Note that function names in `${{ }}` placeholders are case-insensitive.
- Update the popular actions data set to the latest.
- This includes the [new `ref` and `commit` outputs](https://github.com/actions/checkout/pull/1180) of `actions/checkout`.
- Add [`actions/cache/save`](https://github.com/actions/cache/tree/main/save) and [`actions/cache/restore`](https://github.com/actions/cache/tree/main/restore) to the popular actions data set.
- Links in the [README.md](https://github.com/rhysd/actionlint/blob/main/README.md) now point to the document of the latest version tag instead of HEAD of `main` branch.
- Add [`Linter.LintStdin`](https://pkg.go.dev/github.com/rhysd/actionlint#Linter.LintStdin) method dedicated to linting STDIN instead of handling STDIN in `Command`.
- (Dev) Add new [`check-checks` script](https://github.com/rhysd/actionlint/tree/main/scripts/check-checks) to maintain the ['Checks' document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md). It automatically updates the outputs and playground links for example inputs in the document. It also checks the document is up-to-date on CI. Please read the [document](https://github.com/rhysd/actionlint/blob/main/scripts/check-checks/README.md) for more details.
[Documentation](https://github.com/rhysd/actionlint/tree/v1.7.4/docs)
\[Changes]\[v1.7.4]
<a id="v1.7.3"></a>
### [`v1.7.3`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v173---2024-09-29)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.2...v1.7.3)
- Remove `macos-11` runner labels because [macOS 11 runner was dropped on 6/28/2024](https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/#macos-11-deprecation-and-removal). ([#​451](https://github.com/rhysd/actionlint/issues/451), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Support `macos-15`, `macos-15-large`, and `macos-15-xlarge` runner labels. The macOS 15 runner is not globally available yet, but [they are available in beta](https://github.com/actions/runner-images?tab=readme-ov-file#available-images). ([#​453](https://github.com/rhysd/actionlint/issues/453), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Release artifact includes checksums for the released binaries. The file name is `actionlint_{version}_checksums.txt`. ([#​449](https://github.com/rhysd/actionlint/issues/449))
- For example, the checksums for v1.7.3 can be found [here](https://github.com/rhysd/actionlint/releases/download/v1.7.3/actionlint_1.7.3_checksums.txt).
- Fix `download-path` output is missing in `actions/download-artifact@v3` action. ([#​442](https://github.com/rhysd/actionlint/issues/442))
- Note that the latest version `actions/download-artifact@v4` was not affected by this issue.
- Support Go 1.23.
[Documentation](https://github.com/rhysd/actionlint/blob/v1.7.3/docs/checks.md)
\[Changes]\[v1.7.3]
<a id="v1.7.2"></a>
### [`v1.7.2`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v172---2024-09-23)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.1...v1.7.2)
- Fix child processes to run in parallel.
- Update the popular actions data set to the latest. ([#​442](https://github.com/rhysd/actionlint/issues/442), [#​445](https://github.com/rhysd/actionlint/issues/445), [#​446](https://github.com/rhysd/actionlint/issues/446), [#​447](https://github.com/rhysd/actionlint/issues/447), thanks [@​maikelvdh](https://github.com/maikelvdh))
- Add support for checking branch filters on [`merge_group` event](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#merge_group). ([#​448](https://github.com/rhysd/actionlint/issues/448), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- [The playground](https://rhysd.github.io/actionlint/) now supports both light and dark modes and automatically applies the system's theme.
- Fix releasing a failure on making a new winget package. ([#​438](https://github.com/rhysd/actionlint/issues/438), thanks [@​vedantmgoyal9](https://github.com/vedantmgoyal9))
\[Changes]\[v1.7.2]
<a id="v1.7.1"></a>
### [`v1.7.1`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v171---2024-05-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.0...v1.7.1)
- Support `ubuntu-24.04` runner label, which was [recently introduced as beta](https://github.blog/changelog/2024-05-14-github-hosted-runners-public-beta-of-ubuntu-24-04-is-now-available/). ([#​425](https://github.com/rhysd/actionlint/issues/425), thanks [@​bitcoin-tools](https://github.com/bitcoin-tools))
- Remove the support for `macos-10` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/).
- Remove the support for `windows-2016` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2021-10-19-github-actions-the-windows-2016-runner-image-will-be-removed-from-github-hosted-runners-on-march-15-2022/).
- Document URLs used in help output and links in the playground prefer specific version tag rather than `main` branch. For example,
- Before: https://github.com/rhysd/actionlint/tree/main/docs
- After: https://github.com/rhysd/actionlint/tree/v1.7.1/docs
- Fix actionlint wrongly reports an error when using `ghcr.io` or `docker.io` at `image` field of action metadata file of Docker action without `docker://` scheme. ([#​428](https://github.com/rhysd/actionlint/issues/428))
```yaml
runs:
using: 'docker'
```
### This should be OK
```
image: 'ghcr.io/user/repo:latest'
```
```
- Fix checking `preactjs/compressed-size-action@v2` usage caused a false positive. ([#​422](https://github.com/rhysd/actionlint/issues/422))
- Fix an error message when invalid escaping is found in globs.
- The design of the [playground page](https://rhysd.github.io/actionlint/) is overhauled following the upgrade of bulma package to v1.
- Current actionlint version is shown in the heading.
- The color theme is changed to the official dark theme.
- The list of useful links is added to the bottom of the page as 'Resources' section.
[Changes][v1.7.1]
<a id="v1.7.0"></a>
```
### [`v1.7.0`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v170---2024-05-08)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.6.27...v1.7.0)
- From this version, actionlint starts to check action metadata file `action.yml` (or `action.yaml`). At this point, only very basic checks are implemented and contents of `steps:` are not checked yet.
- It checks properties under `runs:` section (e.g. `main:` can be specified when it is a JavaScript action), `branding:` properties, and so on.
```yaml
name: 'My action'
author: '...'
```
### ERROR: 'description' section is missing
```
branding:
```
### ERROR: Invalid icon name
```
icon: dog
runs:
```
### ERROR: Node.js runtime version is too old
```
using: 'node12'
```
### ERROR: The source file being run by this action does not exist
```
main: 'this-file-does-not-exist.js'
```
### ERROR: 'env' configuration is only allowed for Docker actions
````
env:
SOME_VAR: SOME_VALUE
```
````
- actionlint still focuses on checking workflow files. So there is no way to directly specify `action.yml` as an argument of `actionlint` command. actionlint checks all local actions which are used by given workflows. If you want to use actionlint for your action development, prepare a test/example workflow which uses your action, and check it with actionlint instead.
- Checks for `steps:` contents are planned to be implemented. Since several differences are expected between `steps:` in workflow file and `steps:` in action metadata file (e.g. available contexts), the implementation is delayed to later version. And the current implementation of action metadata parser is ad hoc. I'm planning a large refactorying and breaking changes Go API around it are expected.
- Add `runner.environment` property. ([#​412](https://github.com/rhysd/actionlint/issues/412))
```yaml
- run: echo 'Run by GitHub-hosted runner'
if: runner.environment == 'github-hosted'
```
- Using outdated popular actions is now detected at error. See [the document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#detect-outdated-popular-actions) for more details.
- Here 'outdated' means actions which use runtimes no longer supported by GitHub-hosted runners such as `node12`.
```yaml
```
### ERROR: actions/checkout@v2 is using the outdated runner 'node12'
````
- uses: actions/checkout@v2
```
````
- Support `attestations` permission which was [recently added to GitHub Actions as beta](https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). ([#​418](https://github.com/rhysd/actionlint/issues/418), thanks [@​bdehamer](https://github.com/bdehamer))
```yaml
permissions:
id-token: write
contents: read
attestations: write
```
- Check comparison expressions more strictly. Arbitrary types of operands can be compared as [the official document](https://docs.github.com/en/actions/learn-github-actions/expressions#operators) explains. However, comparisons between some types are actually meaningless because the values are converted to numbers implicitly. actionlint catches such meaningless comparisons as errors. Please see [the check document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#check-comparison-types) for more details.
```yaml
on:
workflow_call:
inputs:
timeout:
type: boolean
jobs:
test:
runs-on: ubuntu-latest
steps:
- run: echo 'called!'
```
### ERROR: Comparing string to object is always evaluated to false
```
if: ${{ github.event == 'workflow_call' }}
- run: echo 'timeout is too long'
```
### ERROR: Comparing boolean value with `>` doesn't make sense
```
if: ${{ inputs.timeout > 60 }}
```
````
- Follow the update that `macos-latest` is now an alias to `macos-14` runner.
- Support a custom python shell by `pyflakes` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. ([#​416](https://github.com/rhysd/actionlint/issues/416))
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. ([#​384](https://github.com/rhysd/actionlint/issues/384))
- For example, the type of following expression should be `number` but it was actually `string | number` and actionlint complained that `timeout-minutes` must take a number value.
```yaml
timeout-minutes: ${{ env.FOO && 10 || 60 }}
```
- Fix `${{ }}` placeholder is not available at `jobs.<job_id>.services`. ([#​402](https://github.com/rhysd/actionlint/issues/402))
```yaml
jobs:
test:
services: ${{ fromJSON('...') }}
runs-on: ubuntu-latest
steps:
- run: ...
````
- Do not check outputs of `google-github-actions/get-secretmanager-secrets` because this action sets outputs dynamically. ([#​404](https://github.com/rhysd/actionlint/issues/404))
- Fix `defaults.run` is ignored on detecting the shell used in `run:`. ([#​409](https://github.com/rhysd/actionlint/issues/409))
```yaml
defaults:
run:
shell: pwsh
jobs:
test:
runs-on: ubuntu-latest
steps:
```
### This was wrongly detected as bash script
```
- run: $Env:FOO = "FOO"
```
````
- Fix parsing a syntax error reported from pyflakes when checking a Python script in `run:`. ([#​411](https://github.com/rhysd/actionlint/issues/411))
```yaml
- run: print(
shell: python
````
- Skip checking `exclude:` items in `matrix:` when they are constructed from `${{ }}` dynamically. ([#​414](https://github.com/rhysd/actionlint/issues/414))
```yaml
matrix:
foo: ['a', 'b']
exclude:
```
### actionlint complained this value didn't exist in matrix combinations
```
- foo: ${{ env.EXCLUDE_FOO }}
```
````
- Fix checking `exclude:` items when `${{ }}` is used in nested arrays at matrix items.
```yaml
matrix:
foo:
- ["${{ fromJSON('...') }}"]
exclude:
### actionlint complained this value didn't match to any matrix combinations
- foo: ['foo']
````
- Update popular actions data set. New major versions are added and the following actions are newly added.
- `peaceiris/actions-hugo`
- `actions/attest-build-provenance`
- `actions/add-to-project`
- `octokit/graphql-action`
- Update Go dependencies to the latest.
- Reduce the size of `actionlint` executable by removing redundant data from popular actions data set.
- x86\_64 executable binary size was reduced from 6.9MB to 6.7MB (2.9% smaller).
- Wasm binary size was reduced from 9.4MB to 8.9MB (5.3% smaller).
- Describe how to [integrate actionlint to Pulsar Edit](https://web.pulsar-edit.dev/packages/linter-github-actions) in [the document](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#pulsar-edit). ([#​408](https://github.com/rhysd/actionlint/issues/408), thanks [@​mschuchard](https://github.com/mschuchard))
- Update outdated action versions in the usage document. ([#​413](https://github.com/rhysd/actionlint/issues/413), thanks [@​naglis](https://github.com/naglis))
\[Changes]\[v1.7.0]
<a id="v1.6.27"></a>
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (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:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/791
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-08-02 17:56:34 +00:00
|
|
|
github.com/bmatcuk/doublestar/v4 v4.8.0 // indirect
|
2025-06-14 09:34:54 +00:00
|
|
|
github.com/cloudflare/circl v1.6.1 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
github.com/containerd/errdefs/pkg v0.3.0 // indirect
|
2024-08-23 10:54:10 +00:00
|
|
|
github.com/containerd/log v0.1.0 // indirect
|
2025-01-10 11:01:56 +00:00
|
|
|
github.com/cyphar/filepath-securejoin v0.3.6 // indirect
|
2023-04-04 21:32:04 +08:00
|
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
2023-08-10 01:45:25 +00:00
|
|
|
github.com/docker/docker-credential-helpers v0.8.0 // indirect
|
2023-03-17 09:45:46 +08:00
|
|
|
github.com/docker/go-units v0.5.0 // indirect
|
2023-05-04 18:45:01 +08:00
|
|
|
github.com/emirpasic/gods v1.18.1 // indirect
|
Update module github.com/rhysd/actionlint to v1.7.7 (#791)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) | `v1.6.27` -> `v1.7.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>rhysd/actionlint (github.com/rhysd/actionlint)</summary>
### [`v1.7.7`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v177---2025-01-19)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.6...v1.7.7)
- Support runner labels for [Linux arm64 hosted runners](https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/). ([#​503](https://github.com/rhysd/actionlint/issues/503), [#​504](https://github.com/rhysd/actionlint/issues/504), thanks [@​martincostello](https://github.com/martincostello))
- `ubuntu-24.04-arm`
- `ubuntu-22.04-arm`
- Update Go dependencies to the latest.
- Update the popular actions data set to the latest.
- Add Linux arm64 job to the CI workflow. Now actionlint is tested on the platform. ([#​507](https://github.com/rhysd/actionlint/issues/507), thanks [@​cclauss](https://github.com/cclauss))
\[Changes]\[v1.7.7]
<a id="v1.7.6"></a>
### [`v1.7.6`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v176---2025-01-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.5...v1.7.6)
- Using contexts at specific workflow keys is incorrectly reported as not allowed. Affected workflow keys are as follows. ([#​495](https://github.com/rhysd/actionlint/issues/495), [#​497](https://github.com/rhysd/actionlint/issues/497), [#​498](https://github.com/rhysd/actionlint/issues/498), [#​500](https://github.com/rhysd/actionlint/issues/500))
- `jobs.<job_id>.steps.with.args`
- `jobs.<job_id>.steps.with.entrypoint`
- `jobs.<job_id>.services.<service_id>.env`
- Update Go dependencies to the latest.
\[Changes]\[v1.7.6]
<a id="v1.7.5"></a>
### [`v1.7.5`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v175---2024-12-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.4...v1.7.5)
- Strictly check available contexts in `${{ }}` placeholders following the ['Context availability' table](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#context-availability) in the official document.
- For example, `jobs.<job_id>.defaults.run.shell` allows `env` context but `shell` workflow keys in other places allow no context.
```yaml
defaults:
run:
```
### ERROR: No context is available here
```
shell: ${{ env.SHELL }}
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
```
### OK: 'env' context is available here
```
shell: ${{ env.SHELL }}
steps:
- run: echo hello
```
### ERROR: No context is available here
````
shell: ${{ env.SHELL}}
```
````
- Check a string literal passed to `fromJSON()` call. This pattern is [popular](https://github.com/search?q=fromJSON%28%27+lang%3Ayaml\&type=code) to create array or object constants because GitHub Actions does not provide the literal syntax for them. See the [document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#contexts-and-built-in-functions) for more details. ([#​464](https://github.com/rhysd/actionlint/issues/464))
```yaml
jobs:
test:
```
### ERROR: Key 'mac' does not exist in the object returned by the fromJSON()
```
runs-on: ${{ fromJSON('{"win":"windows-latest","linux":"ubuntul-latest"}')['mac'] }}
steps:
- run: echo This is a special branch!
```
### ERROR: Broken JSON string passed to fromJSON.
```
if: contains(fromJSON('["main","release","dev"'), github.ref_name)
```
````
- Allow passing command arguments to `-shellcheck` argument. ([#​483](https://github.com/rhysd/actionlint/issues/483), thanks [@​anuraaga](https://github.com/anuraaga))
- This is useful when you want to use alternative build of shellcheck like [go-shellcheck](https://github.com/wasilibs/go-shellcheck/).
```sh
actionlint -shellcheck="go run github.com/wasilibs/go-shellcheck/cmd/shellcheck@latest"
```
- Support undocumented `repository_visibility`, `artifact_cache_size_limit`, `step_summary`, `output`, `state` properties in `github` context. ([#​489](https://github.com/rhysd/actionlint/issues/489), thanks [@​rasa](https://github.com/rasa) for adding `repository_visibility` property)
- Remove `macos-12` runner label from known labels because it was [dropped](https://github.com/actions/runner-images/issues/10721) from GitHub-hosted runners on Dec. 3 and is no longer available.
- Add `windows-2025` runner label to the known labels. The runner is in [public preview](https://github.blog/changelog/2024-12-19-windows-server-2025-is-now-in-public-preview/). ([#​491](https://github.com/rhysd/actionlint/issues/491), thanks [@​ericcornelissen](https://github.com/ericcornelissen))
- Add `black` to the list of colors for `branding.color` action metadata. ([#​485](https://github.com/rhysd/actionlint/issues/485), thanks [@​eifinger](https://github.com/eifinger))
- Add `table` to the list of icons for `branding.icon` action metadata.
- Fix parsing escaped `{` in `format()` function call's first argument.
- Fix the incorrect `join()` function overload. `join(s1: string, s2: string)` was wrongly accepted.
- Update popular actions data set to the latest.
- Add `download-artifact/v3-node20` to the data set. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Fix missing the `reviewdog/action-hadolint@v1` action input. ([#​487](https://github.com/rhysd/actionlint/issues/487), thanks [@​mi-wada](https://github.com/mi-wada))
- Link to the documents of the stable version in actionlint `man` page and `-help` output.
- Refactor `LintStdin()` API example and some unit tests. ([#​472](https://github.com/rhysd/actionlint/issues/472), [#​475](https://github.com/rhysd/actionlint/issues/475), thanks [@​alexandear](https://github.com/alexandear))
- Improve the configuration example in `actionlint.yaml` document to explain glob patterns for `paths`. ([#​481](https://github.com/rhysd/actionlint/issues/481))
[Changes][v1.7.5]
<a id="v1.7.4"></a>
````
### [`v1.7.4`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v174---2024-11-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.3...v1.7.4)
- Disallow the usage of popular actions that run on `node16` runner. The `node16` runner [will reach the end of life on November 12](https://github.blog/changelog/2024-09-25-end-of-life-for-actions-node16/).
- In case of the error, please update your actions to the latest version so that they run on the latest `node20` runner.
- If you're using self-hosted runner and you cannot upgrade your runner to `node20` soon, please consider to ignore the error by the `paths` configuration described below.
- If you're using `actions/upload-artifact@v3` and `actions/download-artifact@v3` on GHES, please replace them with `actions/upload-artifact@v3-node20` and `actions/download-artifact@v3-node20`. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Provide the configuration for ignoring errors by regular expressions in `actionlint.yml` (or `actionlint.yaml`). Please see the [document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/config.md) for more details. ([#​217](https://github.com/rhysd/actionlint/issues/217), [#​342](https://github.com/rhysd/actionlint/issues/342))
- The `paths` is a mapping from the file path glob pattern to the corresponding configuration. The `ignore` configuration is a list of regular expressions to match error messages (similar to the `-ignore` command line option).
```yaml
paths:
```
### This pattern matches any YAML file under the '.github/workflows/' directory.
```
.github/workflows/**/*.yaml:
ignore:
```
### Ignore the specific error from shellcheck
```
- 'shellcheck reported issue in this script: SC2086:.+'
```
### This pattern only matches '.github/workflows/release.yaml' file.
```
.github/workflows/release.yaml:
ignore:
```
### Ignore errors from the old runner check. This may be useful for (outdated) self-hosted runner environment.
````
- 'the runner of ".+" action is too old to run on GitHub Actions'
```
````
- This configuration was not implemented initially because I wanted to keep the configuration as minimal as possible. However, due to several requests for it, the configuration has now been added.
- Untrusted inputs check is safely skipped inside specific function calls. ([#​459](https://github.com/rhysd/actionlint/issues/459), thanks [@​IlyaGulya](https://github.com/IlyaGulya))
- For example, the following step contains the untrusted input `github.head_ref`, but it is safe because it's passed to the `contains()` argument.
```yaml
- run: echo "is_release_branch=${{ contains(github.head_ref, 'release') }}" >> "$GITHUB_OUTPUT"
```
- For more details, please read the [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#untrusted-inputs).
- Recognize `gcr.io` and `gcr.dev` as the correct container registry hosts. ([#​463](https://github.com/rhysd/actionlint/issues/463), thanks [@​takaidohigasi](https://github.com/takaidohigasi))
- Note that it is recommended explicitly specifying the scheme like `docker://gcr.io/...`.
- Remove `macos-x.0` runner labels which are no longer available. ([#​452](https://github.com/rhysd/actionlint/issues/452))
- Disable shellcheck [`SC2043`](https://www.shellcheck.net/wiki/SC2043) rule because it can cause false positives on checking `run:`. ([#​355](https://github.com/rhysd/actionlint/issues/355))
- The [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#check-shellcheck-integ) was updated as well. ([#​466](https://github.com/rhysd/actionlint/issues/466), thanks [@​risu729](https://github.com/risu729))
- Fix the error message was not deterministic when detecting cycles in `needs` dependencies.
- Fix the check for `format()` function was not applied when the function name contains upper case like `Format()`. Note that function names in `${{ }}` placeholders are case-insensitive.
- Update the popular actions data set to the latest.
- This includes the [new `ref` and `commit` outputs](https://github.com/actions/checkout/pull/1180) of `actions/checkout`.
- Add [`actions/cache/save`](https://github.com/actions/cache/tree/main/save) and [`actions/cache/restore`](https://github.com/actions/cache/tree/main/restore) to the popular actions data set.
- Links in the [README.md](https://github.com/rhysd/actionlint/blob/main/README.md) now point to the document of the latest version tag instead of HEAD of `main` branch.
- Add [`Linter.LintStdin`](https://pkg.go.dev/github.com/rhysd/actionlint#Linter.LintStdin) method dedicated to linting STDIN instead of handling STDIN in `Command`.
- (Dev) Add new [`check-checks` script](https://github.com/rhysd/actionlint/tree/main/scripts/check-checks) to maintain the ['Checks' document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md). It automatically updates the outputs and playground links for example inputs in the document. It also checks the document is up-to-date on CI. Please read the [document](https://github.com/rhysd/actionlint/blob/main/scripts/check-checks/README.md) for more details.
[Documentation](https://github.com/rhysd/actionlint/tree/v1.7.4/docs)
\[Changes]\[v1.7.4]
<a id="v1.7.3"></a>
### [`v1.7.3`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v173---2024-09-29)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.2...v1.7.3)
- Remove `macos-11` runner labels because [macOS 11 runner was dropped on 6/28/2024](https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/#macos-11-deprecation-and-removal). ([#​451](https://github.com/rhysd/actionlint/issues/451), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Support `macos-15`, `macos-15-large`, and `macos-15-xlarge` runner labels. The macOS 15 runner is not globally available yet, but [they are available in beta](https://github.com/actions/runner-images?tab=readme-ov-file#available-images). ([#​453](https://github.com/rhysd/actionlint/issues/453), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Release artifact includes checksums for the released binaries. The file name is `actionlint_{version}_checksums.txt`. ([#​449](https://github.com/rhysd/actionlint/issues/449))
- For example, the checksums for v1.7.3 can be found [here](https://github.com/rhysd/actionlint/releases/download/v1.7.3/actionlint_1.7.3_checksums.txt).
- Fix `download-path` output is missing in `actions/download-artifact@v3` action. ([#​442](https://github.com/rhysd/actionlint/issues/442))
- Note that the latest version `actions/download-artifact@v4` was not affected by this issue.
- Support Go 1.23.
[Documentation](https://github.com/rhysd/actionlint/blob/v1.7.3/docs/checks.md)
\[Changes]\[v1.7.3]
<a id="v1.7.2"></a>
### [`v1.7.2`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v172---2024-09-23)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.1...v1.7.2)
- Fix child processes to run in parallel.
- Update the popular actions data set to the latest. ([#​442](https://github.com/rhysd/actionlint/issues/442), [#​445](https://github.com/rhysd/actionlint/issues/445), [#​446](https://github.com/rhysd/actionlint/issues/446), [#​447](https://github.com/rhysd/actionlint/issues/447), thanks [@​maikelvdh](https://github.com/maikelvdh))
- Add support for checking branch filters on [`merge_group` event](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#merge_group). ([#​448](https://github.com/rhysd/actionlint/issues/448), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- [The playground](https://rhysd.github.io/actionlint/) now supports both light and dark modes and automatically applies the system's theme.
- Fix releasing a failure on making a new winget package. ([#​438](https://github.com/rhysd/actionlint/issues/438), thanks [@​vedantmgoyal9](https://github.com/vedantmgoyal9))
\[Changes]\[v1.7.2]
<a id="v1.7.1"></a>
### [`v1.7.1`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v171---2024-05-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.0...v1.7.1)
- Support `ubuntu-24.04` runner label, which was [recently introduced as beta](https://github.blog/changelog/2024-05-14-github-hosted-runners-public-beta-of-ubuntu-24-04-is-now-available/). ([#​425](https://github.com/rhysd/actionlint/issues/425), thanks [@​bitcoin-tools](https://github.com/bitcoin-tools))
- Remove the support for `macos-10` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/).
- Remove the support for `windows-2016` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2021-10-19-github-actions-the-windows-2016-runner-image-will-be-removed-from-github-hosted-runners-on-march-15-2022/).
- Document URLs used in help output and links in the playground prefer specific version tag rather than `main` branch. For example,
- Before: https://github.com/rhysd/actionlint/tree/main/docs
- After: https://github.com/rhysd/actionlint/tree/v1.7.1/docs
- Fix actionlint wrongly reports an error when using `ghcr.io` or `docker.io` at `image` field of action metadata file of Docker action without `docker://` scheme. ([#​428](https://github.com/rhysd/actionlint/issues/428))
```yaml
runs:
using: 'docker'
```
### This should be OK
```
image: 'ghcr.io/user/repo:latest'
```
```
- Fix checking `preactjs/compressed-size-action@v2` usage caused a false positive. ([#​422](https://github.com/rhysd/actionlint/issues/422))
- Fix an error message when invalid escaping is found in globs.
- The design of the [playground page](https://rhysd.github.io/actionlint/) is overhauled following the upgrade of bulma package to v1.
- Current actionlint version is shown in the heading.
- The color theme is changed to the official dark theme.
- The list of useful links is added to the bottom of the page as 'Resources' section.
[Changes][v1.7.1]
<a id="v1.7.0"></a>
```
### [`v1.7.0`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v170---2024-05-08)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.6.27...v1.7.0)
- From this version, actionlint starts to check action metadata file `action.yml` (or `action.yaml`). At this point, only very basic checks are implemented and contents of `steps:` are not checked yet.
- It checks properties under `runs:` section (e.g. `main:` can be specified when it is a JavaScript action), `branding:` properties, and so on.
```yaml
name: 'My action'
author: '...'
```
### ERROR: 'description' section is missing
```
branding:
```
### ERROR: Invalid icon name
```
icon: dog
runs:
```
### ERROR: Node.js runtime version is too old
```
using: 'node12'
```
### ERROR: The source file being run by this action does not exist
```
main: 'this-file-does-not-exist.js'
```
### ERROR: 'env' configuration is only allowed for Docker actions
````
env:
SOME_VAR: SOME_VALUE
```
````
- actionlint still focuses on checking workflow files. So there is no way to directly specify `action.yml` as an argument of `actionlint` command. actionlint checks all local actions which are used by given workflows. If you want to use actionlint for your action development, prepare a test/example workflow which uses your action, and check it with actionlint instead.
- Checks for `steps:` contents are planned to be implemented. Since several differences are expected between `steps:` in workflow file and `steps:` in action metadata file (e.g. available contexts), the implementation is delayed to later version. And the current implementation of action metadata parser is ad hoc. I'm planning a large refactorying and breaking changes Go API around it are expected.
- Add `runner.environment` property. ([#​412](https://github.com/rhysd/actionlint/issues/412))
```yaml
- run: echo 'Run by GitHub-hosted runner'
if: runner.environment == 'github-hosted'
```
- Using outdated popular actions is now detected at error. See [the document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#detect-outdated-popular-actions) for more details.
- Here 'outdated' means actions which use runtimes no longer supported by GitHub-hosted runners such as `node12`.
```yaml
```
### ERROR: actions/checkout@v2 is using the outdated runner 'node12'
````
- uses: actions/checkout@v2
```
````
- Support `attestations` permission which was [recently added to GitHub Actions as beta](https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). ([#​418](https://github.com/rhysd/actionlint/issues/418), thanks [@​bdehamer](https://github.com/bdehamer))
```yaml
permissions:
id-token: write
contents: read
attestations: write
```
- Check comparison expressions more strictly. Arbitrary types of operands can be compared as [the official document](https://docs.github.com/en/actions/learn-github-actions/expressions#operators) explains. However, comparisons between some types are actually meaningless because the values are converted to numbers implicitly. actionlint catches such meaningless comparisons as errors. Please see [the check document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#check-comparison-types) for more details.
```yaml
on:
workflow_call:
inputs:
timeout:
type: boolean
jobs:
test:
runs-on: ubuntu-latest
steps:
- run: echo 'called!'
```
### ERROR: Comparing string to object is always evaluated to false
```
if: ${{ github.event == 'workflow_call' }}
- run: echo 'timeout is too long'
```
### ERROR: Comparing boolean value with `>` doesn't make sense
```
if: ${{ inputs.timeout > 60 }}
```
````
- Follow the update that `macos-latest` is now an alias to `macos-14` runner.
- Support a custom python shell by `pyflakes` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. ([#​416](https://github.com/rhysd/actionlint/issues/416))
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. ([#​384](https://github.com/rhysd/actionlint/issues/384))
- For example, the type of following expression should be `number` but it was actually `string | number` and actionlint complained that `timeout-minutes` must take a number value.
```yaml
timeout-minutes: ${{ env.FOO && 10 || 60 }}
```
- Fix `${{ }}` placeholder is not available at `jobs.<job_id>.services`. ([#​402](https://github.com/rhysd/actionlint/issues/402))
```yaml
jobs:
test:
services: ${{ fromJSON('...') }}
runs-on: ubuntu-latest
steps:
- run: ...
````
- Do not check outputs of `google-github-actions/get-secretmanager-secrets` because this action sets outputs dynamically. ([#​404](https://github.com/rhysd/actionlint/issues/404))
- Fix `defaults.run` is ignored on detecting the shell used in `run:`. ([#​409](https://github.com/rhysd/actionlint/issues/409))
```yaml
defaults:
run:
shell: pwsh
jobs:
test:
runs-on: ubuntu-latest
steps:
```
### This was wrongly detected as bash script
```
- run: $Env:FOO = "FOO"
```
````
- Fix parsing a syntax error reported from pyflakes when checking a Python script in `run:`. ([#​411](https://github.com/rhysd/actionlint/issues/411))
```yaml
- run: print(
shell: python
````
- Skip checking `exclude:` items in `matrix:` when they are constructed from `${{ }}` dynamically. ([#​414](https://github.com/rhysd/actionlint/issues/414))
```yaml
matrix:
foo: ['a', 'b']
exclude:
```
### actionlint complained this value didn't exist in matrix combinations
```
- foo: ${{ env.EXCLUDE_FOO }}
```
````
- Fix checking `exclude:` items when `${{ }}` is used in nested arrays at matrix items.
```yaml
matrix:
foo:
- ["${{ fromJSON('...') }}"]
exclude:
### actionlint complained this value didn't match to any matrix combinations
- foo: ['foo']
````
- Update popular actions data set. New major versions are added and the following actions are newly added.
- `peaceiris/actions-hugo`
- `actions/attest-build-provenance`
- `actions/add-to-project`
- `octokit/graphql-action`
- Update Go dependencies to the latest.
- Reduce the size of `actionlint` executable by removing redundant data from popular actions data set.
- x86\_64 executable binary size was reduced from 6.9MB to 6.7MB (2.9% smaller).
- Wasm binary size was reduced from 9.4MB to 8.9MB (5.3% smaller).
- Describe how to [integrate actionlint to Pulsar Edit](https://web.pulsar-edit.dev/packages/linter-github-actions) in [the document](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#pulsar-edit). ([#​408](https://github.com/rhysd/actionlint/issues/408), thanks [@​mschuchard](https://github.com/mschuchard))
- Update outdated action versions in the usage document. ([#​413](https://github.com/rhysd/actionlint/issues/413), thanks [@​naglis](https://github.com/naglis))
\[Changes]\[v1.7.0]
<a id="v1.6.27"></a>
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (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:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/791
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-08-02 17:56:34 +00:00
|
|
|
github.com/fatih/color v1.18.0 // indirect
|
2024-08-23 10:54:10 +00:00
|
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
2023-06-16 06:07:48 +00:00
|
|
|
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
2025-05-14 08:16:27 +00:00
|
|
|
github.com/go-logr/logr v1.4.2 // indirect
|
2024-08-23 10:54:10 +00:00
|
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
Update github.com/go-viper/mapstructure/v2 (indirect) to v2.3.0 [SECURITY] (#622)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/go-viper/mapstructure/v2](https://github.com/go-viper/mapstructure) | `v2.2.1` -> `v2.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### mapstructure May Leak Sensitive Information in Logs When Processing Malformed Data
[GHSA-fv92-fjc5-jj9h](https://github.com/advisories/GHSA-fv92-fjc5-jj9h)
<details>
<summary>More information</summary>
#### Details
##### Summary
Use of this library in a security-critical context may result in leaking sensitive information, if used to process sensitive fields.
##### Details
OpenBao (and presumably HashiCorp Vault) have surfaced error messages from `mapstructure` as follows:
https://github.com/openbao/openbao/blob/98c3a59c040efca724353ca46ca79bd5cdbab920/sdk/framework/field_data.go#L43-L50
```go
_, _, err := d.getPrimitive(field, schema)
if err != nil {
return fmt.Errorf("error converting input for field %q: %w", field, err)
}
```
where this calls `mapstructure.WeakDecode(...)`: https://github.com/openbao/openbao/blob/98c3a59c040efca724353ca46ca79bd5cdbab920/sdk/framework/field_data.go#L181-L193
```go
func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
raw, ok := d.Raw[k]
if !ok {
return nil, false, nil
}
switch t := schema.Type; t {
case TypeBool:
var result bool
if err := mapstructure.WeakDecode(raw, &result); err != nil {
return nil, false, err
}
return result, true, nil
```
Notably, `WeakDecode(...)` eventually calls one of the decode helpers, which surfaces the original value:
https://github.com/go-viper/mapstructure/blob/1a66224d5e54d8757f63bd66339cf764c3292c21/mapstructure.go#L679-L686
https://github.com/go-viper/mapstructure/blob/1a66224d5e54d8757f63bd66339cf764c3292c21/mapstructure.go#L726-L730
https://github.com/go-viper/mapstructure/blob/1a66224d5e54d8757f63bd66339cf764c3292c21/mapstructure.go#L783-L787
& more.
##### PoC
To reproduce with OpenBao:
```
$ podman run -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```
and in a new tab:
```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"password":{"asdf":"my-sensitive-value"}}' "http://localhost:8300/v1/auth/userpass/users/adsf"
{"errors":["error converting input for field \"password\": '' expected type 'string', got unconvertible type 'map[string]interface {}', value: 'map[asdf:my-sensitive-value]'"]}
```
##### Impact
This is an information disclosure bug with little mitigation. See https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717 for a previous version. That version was fixed, but this is in the second part of that error message (starting at `'' expected a map, got 'string'` -- when the field type is `string` and a `map` is provided, we see the above information leak -- the previous example had a `map` type field with a `string` value provided).
This was rated 4.5 Medium by HashiCorp in the past iteration.
#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N`
#### References
- [https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h](https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h)
- [https://github.com/go-viper/mapstructure](https://github.com/go-viper/mapstructure)
This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-fv92-fjc5-jj9h) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>
---
### Release Notes
<details>
<summary>go-viper/mapstructure (github.com/go-viper/mapstructure/v2)</summary>
### [`v2.3.0`](https://github.com/go-viper/mapstructure/releases/tag/v2.3.0)
[Compare Source](https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0)
#### What's Changed
- build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/46
- build(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/47
- \[enhancement] Add check for `reflect.Value` in `ComposeDecodeHookFunc` by [@​mahadzaryab1](https://github.com/mahadzaryab1) in https://github.com/go-viper/mapstructure/pull/52
- build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/51
- build(deps): bump actions/checkout from 4.2.0 to 4.2.2 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/50
- build(deps): bump actions/setup-go from 5.1.0 to 5.2.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/55
- build(deps): bump actions/setup-go from 5.2.0 to 5.3.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/58
- ci: add Go 1.24 to the test matrix by [@​sagikazarmark](https://github.com/sagikazarmark) in https://github.com/go-viper/mapstructure/pull/74
- build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.5.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/72
- build(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/76
- build(deps): bump actions/setup-go from 5.3.0 to 5.4.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/78
- feat: add decode hook for netip.Prefix by [@​tklauser](https://github.com/tklauser) in https://github.com/go-viper/mapstructure/pull/85
- Updates by [@​sagikazarmark](https://github.com/sagikazarmark) in https://github.com/go-viper/mapstructure/pull/86
- build(deps): bump github/codeql-action from 2.13.4 to 3.28.15 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/87
- build(deps): bump actions/setup-go from 5.4.0 to 5.5.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/93
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.17 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/92
- build(deps): bump github/codeql-action from 3.28.17 to 3.28.19 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/97
- build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/96
- Update README.md by [@​peczenyj](https://github.com/peczenyj) in https://github.com/go-viper/mapstructure/pull/90
- Add omitzero tag. by [@​Crystalix007](https://github.com/Crystalix007) in https://github.com/go-viper/mapstructure/pull/98
- Use error structs instead of duplicated strings by [@​m1k1o](https://github.com/m1k1o) in https://github.com/go-viper/mapstructure/pull/102
- build(deps): bump github/codeql-action from 3.28.19 to 3.29.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/go-viper/mapstructure/pull/101
- feat: add common error interface by [@​sagikazarmark](https://github.com/sagikazarmark) in https://github.com/go-viper/mapstructure/pull/105
- update linter by [@​sagikazarmark](https://github.com/sagikazarmark) in https://github.com/go-viper/mapstructure/pull/106
- Feature allow unset pointer by [@​rostislaved](https://github.com/rostislaved) in https://github.com/go-viper/mapstructure/pull/80
#### New Contributors
- [@​tklauser](https://github.com/tklauser) made their first contribution in https://github.com/go-viper/mapstructure/pull/85
- [@​peczenyj](https://github.com/peczenyj) made their first contribution in https://github.com/go-viper/mapstructure/pull/90
- [@​Crystalix007](https://github.com/Crystalix007) made their first contribution in https://github.com/go-viper/mapstructure/pull/98
- [@​rostislaved](https://github.com/rostislaved) made their first contribution in https://github.com/go-viper/mapstructure/pull/80
**Full Changelog**: https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" (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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/622
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-06-29 07:35:20 +00:00
|
|
|
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
|
2022-04-27 17:45:53 +08:00
|
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
2023-06-16 06:07:48 +00:00
|
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
github.com/google/go-cmp v0.7.0 // indirect
|
2022-11-22 15:34:13 +08:00
|
|
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
2023-05-04 18:45:01 +08:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
2022-04-27 17:45:53 +08:00
|
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
2022-08-12 14:59:58 +08:00
|
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
Update module github.com/rhysd/actionlint to v1.7.7 (#791)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) | `v1.6.27` -> `v1.7.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>rhysd/actionlint (github.com/rhysd/actionlint)</summary>
### [`v1.7.7`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v177---2025-01-19)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.6...v1.7.7)
- Support runner labels for [Linux arm64 hosted runners](https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/). ([#​503](https://github.com/rhysd/actionlint/issues/503), [#​504](https://github.com/rhysd/actionlint/issues/504), thanks [@​martincostello](https://github.com/martincostello))
- `ubuntu-24.04-arm`
- `ubuntu-22.04-arm`
- Update Go dependencies to the latest.
- Update the popular actions data set to the latest.
- Add Linux arm64 job to the CI workflow. Now actionlint is tested on the platform. ([#​507](https://github.com/rhysd/actionlint/issues/507), thanks [@​cclauss](https://github.com/cclauss))
\[Changes]\[v1.7.7]
<a id="v1.7.6"></a>
### [`v1.7.6`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v176---2025-01-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.5...v1.7.6)
- Using contexts at specific workflow keys is incorrectly reported as not allowed. Affected workflow keys are as follows. ([#​495](https://github.com/rhysd/actionlint/issues/495), [#​497](https://github.com/rhysd/actionlint/issues/497), [#​498](https://github.com/rhysd/actionlint/issues/498), [#​500](https://github.com/rhysd/actionlint/issues/500))
- `jobs.<job_id>.steps.with.args`
- `jobs.<job_id>.steps.with.entrypoint`
- `jobs.<job_id>.services.<service_id>.env`
- Update Go dependencies to the latest.
\[Changes]\[v1.7.6]
<a id="v1.7.5"></a>
### [`v1.7.5`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v175---2024-12-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.4...v1.7.5)
- Strictly check available contexts in `${{ }}` placeholders following the ['Context availability' table](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#context-availability) in the official document.
- For example, `jobs.<job_id>.defaults.run.shell` allows `env` context but `shell` workflow keys in other places allow no context.
```yaml
defaults:
run:
```
### ERROR: No context is available here
```
shell: ${{ env.SHELL }}
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
```
### OK: 'env' context is available here
```
shell: ${{ env.SHELL }}
steps:
- run: echo hello
```
### ERROR: No context is available here
````
shell: ${{ env.SHELL}}
```
````
- Check a string literal passed to `fromJSON()` call. This pattern is [popular](https://github.com/search?q=fromJSON%28%27+lang%3Ayaml\&type=code) to create array or object constants because GitHub Actions does not provide the literal syntax for them. See the [document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#contexts-and-built-in-functions) for more details. ([#​464](https://github.com/rhysd/actionlint/issues/464))
```yaml
jobs:
test:
```
### ERROR: Key 'mac' does not exist in the object returned by the fromJSON()
```
runs-on: ${{ fromJSON('{"win":"windows-latest","linux":"ubuntul-latest"}')['mac'] }}
steps:
- run: echo This is a special branch!
```
### ERROR: Broken JSON string passed to fromJSON.
```
if: contains(fromJSON('["main","release","dev"'), github.ref_name)
```
````
- Allow passing command arguments to `-shellcheck` argument. ([#​483](https://github.com/rhysd/actionlint/issues/483), thanks [@​anuraaga](https://github.com/anuraaga))
- This is useful when you want to use alternative build of shellcheck like [go-shellcheck](https://github.com/wasilibs/go-shellcheck/).
```sh
actionlint -shellcheck="go run github.com/wasilibs/go-shellcheck/cmd/shellcheck@latest"
```
- Support undocumented `repository_visibility`, `artifact_cache_size_limit`, `step_summary`, `output`, `state` properties in `github` context. ([#​489](https://github.com/rhysd/actionlint/issues/489), thanks [@​rasa](https://github.com/rasa) for adding `repository_visibility` property)
- Remove `macos-12` runner label from known labels because it was [dropped](https://github.com/actions/runner-images/issues/10721) from GitHub-hosted runners on Dec. 3 and is no longer available.
- Add `windows-2025` runner label to the known labels. The runner is in [public preview](https://github.blog/changelog/2024-12-19-windows-server-2025-is-now-in-public-preview/). ([#​491](https://github.com/rhysd/actionlint/issues/491), thanks [@​ericcornelissen](https://github.com/ericcornelissen))
- Add `black` to the list of colors for `branding.color` action metadata. ([#​485](https://github.com/rhysd/actionlint/issues/485), thanks [@​eifinger](https://github.com/eifinger))
- Add `table` to the list of icons for `branding.icon` action metadata.
- Fix parsing escaped `{` in `format()` function call's first argument.
- Fix the incorrect `join()` function overload. `join(s1: string, s2: string)` was wrongly accepted.
- Update popular actions data set to the latest.
- Add `download-artifact/v3-node20` to the data set. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Fix missing the `reviewdog/action-hadolint@v1` action input. ([#​487](https://github.com/rhysd/actionlint/issues/487), thanks [@​mi-wada](https://github.com/mi-wada))
- Link to the documents of the stable version in actionlint `man` page and `-help` output.
- Refactor `LintStdin()` API example and some unit tests. ([#​472](https://github.com/rhysd/actionlint/issues/472), [#​475](https://github.com/rhysd/actionlint/issues/475), thanks [@​alexandear](https://github.com/alexandear))
- Improve the configuration example in `actionlint.yaml` document to explain glob patterns for `paths`. ([#​481](https://github.com/rhysd/actionlint/issues/481))
[Changes][v1.7.5]
<a id="v1.7.4"></a>
````
### [`v1.7.4`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v174---2024-11-04)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.3...v1.7.4)
- Disallow the usage of popular actions that run on `node16` runner. The `node16` runner [will reach the end of life on November 12](https://github.blog/changelog/2024-09-25-end-of-life-for-actions-node16/).
- In case of the error, please update your actions to the latest version so that they run on the latest `node20` runner.
- If you're using self-hosted runner and you cannot upgrade your runner to `node20` soon, please consider to ignore the error by the `paths` configuration described below.
- If you're using `actions/upload-artifact@v3` and `actions/download-artifact@v3` on GHES, please replace them with `actions/upload-artifact@v3-node20` and `actions/download-artifact@v3-node20`. ([#​468](https://github.com/rhysd/actionlint/issues/468))
- Provide the configuration for ignoring errors by regular expressions in `actionlint.yml` (or `actionlint.yaml`). Please see the [document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/config.md) for more details. ([#​217](https://github.com/rhysd/actionlint/issues/217), [#​342](https://github.com/rhysd/actionlint/issues/342))
- The `paths` is a mapping from the file path glob pattern to the corresponding configuration. The `ignore` configuration is a list of regular expressions to match error messages (similar to the `-ignore` command line option).
```yaml
paths:
```
### This pattern matches any YAML file under the '.github/workflows/' directory.
```
.github/workflows/**/*.yaml:
ignore:
```
### Ignore the specific error from shellcheck
```
- 'shellcheck reported issue in this script: SC2086:.+'
```
### This pattern only matches '.github/workflows/release.yaml' file.
```
.github/workflows/release.yaml:
ignore:
```
### Ignore errors from the old runner check. This may be useful for (outdated) self-hosted runner environment.
````
- 'the runner of ".+" action is too old to run on GitHub Actions'
```
````
- This configuration was not implemented initially because I wanted to keep the configuration as minimal as possible. However, due to several requests for it, the configuration has now been added.
- Untrusted inputs check is safely skipped inside specific function calls. ([#​459](https://github.com/rhysd/actionlint/issues/459), thanks [@​IlyaGulya](https://github.com/IlyaGulya))
- For example, the following step contains the untrusted input `github.head_ref`, but it is safe because it's passed to the `contains()` argument.
```yaml
- run: echo "is_release_branch=${{ contains(github.head_ref, 'release') }}" >> "$GITHUB_OUTPUT"
```
- For more details, please read the [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#untrusted-inputs).
- Recognize `gcr.io` and `gcr.dev` as the correct container registry hosts. ([#​463](https://github.com/rhysd/actionlint/issues/463), thanks [@​takaidohigasi](https://github.com/takaidohigasi))
- Note that it is recommended explicitly specifying the scheme like `docker://gcr.io/...`.
- Remove `macos-x.0` runner labels which are no longer available. ([#​452](https://github.com/rhysd/actionlint/issues/452))
- Disable shellcheck [`SC2043`](https://www.shellcheck.net/wiki/SC2043) rule because it can cause false positives on checking `run:`. ([#​355](https://github.com/rhysd/actionlint/issues/355))
- The [rule document](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/checks.md#check-shellcheck-integ) was updated as well. ([#​466](https://github.com/rhysd/actionlint/issues/466), thanks [@​risu729](https://github.com/risu729))
- Fix the error message was not deterministic when detecting cycles in `needs` dependencies.
- Fix the check for `format()` function was not applied when the function name contains upper case like `Format()`. Note that function names in `${{ }}` placeholders are case-insensitive.
- Update the popular actions data set to the latest.
- This includes the [new `ref` and `commit` outputs](https://github.com/actions/checkout/pull/1180) of `actions/checkout`.
- Add [`actions/cache/save`](https://github.com/actions/cache/tree/main/save) and [`actions/cache/restore`](https://github.com/actions/cache/tree/main/restore) to the popular actions data set.
- Links in the [README.md](https://github.com/rhysd/actionlint/blob/main/README.md) now point to the document of the latest version tag instead of HEAD of `main` branch.
- Add [`Linter.LintStdin`](https://pkg.go.dev/github.com/rhysd/actionlint#Linter.LintStdin) method dedicated to linting STDIN instead of handling STDIN in `Command`.
- (Dev) Add new [`check-checks` script](https://github.com/rhysd/actionlint/tree/main/scripts/check-checks) to maintain the ['Checks' document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md). It automatically updates the outputs and playground links for example inputs in the document. It also checks the document is up-to-date on CI. Please read the [document](https://github.com/rhysd/actionlint/blob/main/scripts/check-checks/README.md) for more details.
[Documentation](https://github.com/rhysd/actionlint/tree/v1.7.4/docs)
\[Changes]\[v1.7.4]
<a id="v1.7.3"></a>
### [`v1.7.3`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v173---2024-09-29)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.2...v1.7.3)
- Remove `macos-11` runner labels because [macOS 11 runner was dropped on 6/28/2024](https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/#macos-11-deprecation-and-removal). ([#​451](https://github.com/rhysd/actionlint/issues/451), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Support `macos-15`, `macos-15-large`, and `macos-15-xlarge` runner labels. The macOS 15 runner is not globally available yet, but [they are available in beta](https://github.com/actions/runner-images?tab=readme-ov-file#available-images). ([#​453](https://github.com/rhysd/actionlint/issues/453), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- Release artifact includes checksums for the released binaries. The file name is `actionlint_{version}_checksums.txt`. ([#​449](https://github.com/rhysd/actionlint/issues/449))
- For example, the checksums for v1.7.3 can be found [here](https://github.com/rhysd/actionlint/releases/download/v1.7.3/actionlint_1.7.3_checksums.txt).
- Fix `download-path` output is missing in `actions/download-artifact@v3` action. ([#​442](https://github.com/rhysd/actionlint/issues/442))
- Note that the latest version `actions/download-artifact@v4` was not affected by this issue.
- Support Go 1.23.
[Documentation](https://github.com/rhysd/actionlint/blob/v1.7.3/docs/checks.md)
\[Changes]\[v1.7.3]
<a id="v1.7.2"></a>
### [`v1.7.2`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v172---2024-09-23)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.1...v1.7.2)
- Fix child processes to run in parallel.
- Update the popular actions data set to the latest. ([#​442](https://github.com/rhysd/actionlint/issues/442), [#​445](https://github.com/rhysd/actionlint/issues/445), [#​446](https://github.com/rhysd/actionlint/issues/446), [#​447](https://github.com/rhysd/actionlint/issues/447), thanks [@​maikelvdh](https://github.com/maikelvdh))
- Add support for checking branch filters on [`merge_group` event](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#merge_group). ([#​448](https://github.com/rhysd/actionlint/issues/448), thanks [@​muzimuzhi](https://github.com/muzimuzhi))
- [The playground](https://rhysd.github.io/actionlint/) now supports both light and dark modes and automatically applies the system's theme.
- Fix releasing a failure on making a new winget package. ([#​438](https://github.com/rhysd/actionlint/issues/438), thanks [@​vedantmgoyal9](https://github.com/vedantmgoyal9))
\[Changes]\[v1.7.2]
<a id="v1.7.1"></a>
### [`v1.7.1`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v171---2024-05-28)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.7.0...v1.7.1)
- Support `ubuntu-24.04` runner label, which was [recently introduced as beta](https://github.blog/changelog/2024-05-14-github-hosted-runners-public-beta-of-ubuntu-24-04-is-now-available/). ([#​425](https://github.com/rhysd/actionlint/issues/425), thanks [@​bitcoin-tools](https://github.com/bitcoin-tools))
- Remove the support for `macos-10` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/).
- Remove the support for `windows-2016` runner label which was [officially dropped about 2 years ago](https://github.blog/changelog/2021-10-19-github-actions-the-windows-2016-runner-image-will-be-removed-from-github-hosted-runners-on-march-15-2022/).
- Document URLs used in help output and links in the playground prefer specific version tag rather than `main` branch. For example,
- Before: https://github.com/rhysd/actionlint/tree/main/docs
- After: https://github.com/rhysd/actionlint/tree/v1.7.1/docs
- Fix actionlint wrongly reports an error when using `ghcr.io` or `docker.io` at `image` field of action metadata file of Docker action without `docker://` scheme. ([#​428](https://github.com/rhysd/actionlint/issues/428))
```yaml
runs:
using: 'docker'
```
### This should be OK
```
image: 'ghcr.io/user/repo:latest'
```
```
- Fix checking `preactjs/compressed-size-action@v2` usage caused a false positive. ([#​422](https://github.com/rhysd/actionlint/issues/422))
- Fix an error message when invalid escaping is found in globs.
- The design of the [playground page](https://rhysd.github.io/actionlint/) is overhauled following the upgrade of bulma package to v1.
- Current actionlint version is shown in the heading.
- The color theme is changed to the official dark theme.
- The list of useful links is added to the bottom of the page as 'Resources' section.
[Changes][v1.7.1]
<a id="v1.7.0"></a>
```
### [`v1.7.0`](https://github.com/rhysd/actionlint/blob/HEAD/CHANGELOG.md#v170---2024-05-08)
[Compare Source](https://github.com/rhysd/actionlint/compare/v1.6.27...v1.7.0)
- From this version, actionlint starts to check action metadata file `action.yml` (or `action.yaml`). At this point, only very basic checks are implemented and contents of `steps:` are not checked yet.
- It checks properties under `runs:` section (e.g. `main:` can be specified when it is a JavaScript action), `branding:` properties, and so on.
```yaml
name: 'My action'
author: '...'
```
### ERROR: 'description' section is missing
```
branding:
```
### ERROR: Invalid icon name
```
icon: dog
runs:
```
### ERROR: Node.js runtime version is too old
```
using: 'node12'
```
### ERROR: The source file being run by this action does not exist
```
main: 'this-file-does-not-exist.js'
```
### ERROR: 'env' configuration is only allowed for Docker actions
````
env:
SOME_VAR: SOME_VALUE
```
````
- actionlint still focuses on checking workflow files. So there is no way to directly specify `action.yml` as an argument of `actionlint` command. actionlint checks all local actions which are used by given workflows. If you want to use actionlint for your action development, prepare a test/example workflow which uses your action, and check it with actionlint instead.
- Checks for `steps:` contents are planned to be implemented. Since several differences are expected between `steps:` in workflow file and `steps:` in action metadata file (e.g. available contexts), the implementation is delayed to later version. And the current implementation of action metadata parser is ad hoc. I'm planning a large refactorying and breaking changes Go API around it are expected.
- Add `runner.environment` property. ([#​412](https://github.com/rhysd/actionlint/issues/412))
```yaml
- run: echo 'Run by GitHub-hosted runner'
if: runner.environment == 'github-hosted'
```
- Using outdated popular actions is now detected at error. See [the document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#detect-outdated-popular-actions) for more details.
- Here 'outdated' means actions which use runtimes no longer supported by GitHub-hosted runners such as `node12`.
```yaml
```
### ERROR: actions/checkout@v2 is using the outdated runner 'node12'
````
- uses: actions/checkout@v2
```
````
- Support `attestations` permission which was [recently added to GitHub Actions as beta](https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). ([#​418](https://github.com/rhysd/actionlint/issues/418), thanks [@​bdehamer](https://github.com/bdehamer))
```yaml
permissions:
id-token: write
contents: read
attestations: write
```
- Check comparison expressions more strictly. Arbitrary types of operands can be compared as [the official document](https://docs.github.com/en/actions/learn-github-actions/expressions#operators) explains. However, comparisons between some types are actually meaningless because the values are converted to numbers implicitly. actionlint catches such meaningless comparisons as errors. Please see [the check document](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#check-comparison-types) for more details.
```yaml
on:
workflow_call:
inputs:
timeout:
type: boolean
jobs:
test:
runs-on: ubuntu-latest
steps:
- run: echo 'called!'
```
### ERROR: Comparing string to object is always evaluated to false
```
if: ${{ github.event == 'workflow_call' }}
- run: echo 'timeout is too long'
```
### ERROR: Comparing boolean value with `>` doesn't make sense
```
if: ${{ inputs.timeout > 60 }}
```
````
- Follow the update that `macos-latest` is now an alias to `macos-14` runner.
- Support a custom python shell by `pyflakes` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. ([#​416](https://github.com/rhysd/actionlint/issues/416))
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. ([#​384](https://github.com/rhysd/actionlint/issues/384))
- For example, the type of following expression should be `number` but it was actually `string | number` and actionlint complained that `timeout-minutes` must take a number value.
```yaml
timeout-minutes: ${{ env.FOO && 10 || 60 }}
```
- Fix `${{ }}` placeholder is not available at `jobs.<job_id>.services`. ([#​402](https://github.com/rhysd/actionlint/issues/402))
```yaml
jobs:
test:
services: ${{ fromJSON('...') }}
runs-on: ubuntu-latest
steps:
- run: ...
````
- Do not check outputs of `google-github-actions/get-secretmanager-secrets` because this action sets outputs dynamically. ([#​404](https://github.com/rhysd/actionlint/issues/404))
- Fix `defaults.run` is ignored on detecting the shell used in `run:`. ([#​409](https://github.com/rhysd/actionlint/issues/409))
```yaml
defaults:
run:
shell: pwsh
jobs:
test:
runs-on: ubuntu-latest
steps:
```
### This was wrongly detected as bash script
```
- run: $Env:FOO = "FOO"
```
````
- Fix parsing a syntax error reported from pyflakes when checking a Python script in `run:`. ([#​411](https://github.com/rhysd/actionlint/issues/411))
```yaml
- run: print(
shell: python
````
- Skip checking `exclude:` items in `matrix:` when they are constructed from `${{ }}` dynamically. ([#​414](https://github.com/rhysd/actionlint/issues/414))
```yaml
matrix:
foo: ['a', 'b']
exclude:
```
### actionlint complained this value didn't exist in matrix combinations
```
- foo: ${{ env.EXCLUDE_FOO }}
```
````
- Fix checking `exclude:` items when `${{ }}` is used in nested arrays at matrix items.
```yaml
matrix:
foo:
- ["${{ fromJSON('...') }}"]
exclude:
### actionlint complained this value didn't match to any matrix combinations
- foo: ['foo']
````
- Update popular actions data set. New major versions are added and the following actions are newly added.
- `peaceiris/actions-hugo`
- `actions/attest-build-provenance`
- `actions/add-to-project`
- `octokit/graphql-action`
- Update Go dependencies to the latest.
- Reduce the size of `actionlint` executable by removing redundant data from popular actions data set.
- x86\_64 executable binary size was reduced from 6.9MB to 6.7MB (2.9% smaller).
- Wasm binary size was reduced from 9.4MB to 8.9MB (5.3% smaller).
- Describe how to [integrate actionlint to Pulsar Edit](https://web.pulsar-edit.dev/packages/linter-github-actions) in [the document](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#pulsar-edit). ([#​408](https://github.com/rhysd/actionlint/issues/408), thanks [@​mschuchard](https://github.com/mschuchard))
- Update outdated action versions in the usage document. ([#​413](https://github.com/rhysd/actionlint/issues/413), thanks [@​naglis](https://github.com/naglis))
\[Changes]\[v1.7.0]
<a id="v1.6.27"></a>
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (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:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/791
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-08-02 17:56:34 +00:00
|
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
|
|
|
github.com/mattn/go-shellwords v1.0.12 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
2025-07-28 18:45:02 +02:00
|
|
|
github.com/moby/sys/atomicwriter v0.1.0 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
github.com/moby/sys/sequential v0.6.0 // indirect
|
|
|
|
github.com/moby/sys/user v0.4.0 // indirect
|
2025-05-14 08:16:27 +00:00
|
|
|
github.com/moby/sys/userns v0.1.0 // indirect
|
2025-07-26 14:43:36 +00:00
|
|
|
github.com/moby/term v0.5.0 // indirect
|
|
|
|
github.com/morikuni/aec v1.0.0 // indirect
|
2022-04-27 17:45:53 +08:00
|
|
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
2023-05-04 18:45:01 +08:00
|
|
|
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
2023-04-04 21:32:04 +08:00
|
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
2024-08-23 10:54:10 +00:00
|
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
2023-11-07 20:19:08 +01:00
|
|
|
github.com/robfig/cron/v3 v3.0.1 // indirect
|
2025-01-10 11:01:56 +00:00
|
|
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
|
|
|
github.com/skeema/knownhosts v1.3.0 // indirect
|
2024-08-13 13:23:35 +00:00
|
|
|
github.com/stretchr/objx v0.5.2 // indirect
|
2023-05-04 18:45:01 +08:00
|
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
2023-08-10 01:45:25 +00:00
|
|
|
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
2022-11-22 15:34:13 +08:00
|
|
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
2023-03-17 09:45:46 +08:00
|
|
|
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
2024-08-23 10:54:10 +00:00
|
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
go.opentelemetry.io/otel v1.36.0 // indirect
|
2025-07-26 14:43:36 +00:00
|
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
go.opentelemetry.io/otel/metric v1.36.0 // indirect
|
2025-07-26 14:43:36 +00:00
|
|
|
go.opentelemetry.io/otel/sdk v1.21.0 // indirect
|
2025-06-14 14:54:20 +00:00
|
|
|
go.opentelemetry.io/otel/trace v1.36.0 // indirect
|
2025-05-14 07:06:23 +00:00
|
|
|
golang.org/x/crypto v0.36.0 // indirect
|
|
|
|
golang.org/x/net v0.38.0 // indirect
|
2025-05-14 08:16:27 +00:00
|
|
|
golang.org/x/sync v0.12.0 // indirect
|
2025-07-11 05:43:08 +00:00
|
|
|
golang.org/x/sys v0.34.0 // indirect
|
2025-07-28 18:45:02 +02:00
|
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect
|
2022-04-27 17:45:53 +08:00
|
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
|
|
|
)
|