Action summary missing rule ID for invalid AMI errors in TFLint
nyamada100 opened this issue · comments
Version
- reviewdog/action-tflint@v1.22.0
- reviewdog : v0.17.1
- TFLint version: 0.51.1
- ruleset.aws: 0.31.0
- ruleset.terraform: 0.6.0
Config
Action.yml
name: tflint with reviewdog
on:
push:
branches: [main]
pull_request:
paths:
- "**.tf"
jobs:
tflint:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
name: Checkout source code
- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
role-session-name: tflint
aws-region: ${{ secrets.AWS_REGION }}
- name: tflint with reviewdog
id: tflint
uses: reviewdog/action-tflint@v1.22.0
with:
github_token: ${{ secrets.github_token }}
working_directory: "." # Optional. Change working directory
reporter: github-pr-review # Optional. Change reporter
fail_on_error: "true" # Optional. Fail action if errors are found
filter_mode: "added" # Optional. Check all files, not just the diff
tflint_version: "latest" # Optional. Custom version, instead of latest
# tflint_rulesets: "aws terraform" # Optional. Extra official rulesets to install
tflint_init: "true"
flags: "--config=.tflint.hcl" # Optional. Add custom tflint flags
.tflint.hcl
config {
}
plugin "aws" {
enabled = true
version = "0.31.0"
deep_check = true
source = "github.com/terraform-linters/tflint-ruleset-aws"
}
plugin "terraform" {
enabled = true
version = "0.6.0"
source = "github.com/terraform-linters/tflint-ruleset-terraform"
preset = "recommended"
}
Action Result Summary
- The TFLint action did not include the rule ID in the action summary for invalid AMI ID errors.
Running TFLint with Reviewdog
Print tflint details ...
TFLint version 0.51.1
- ruleset.terraform (0.6.0)
- ruleset.aws (0.31.0)
Running tflint with reviewdog 🐶 ...
Using default working directory. No need to specify chdir
instance.tf:78:33: error: "ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID. ()
instance.tf:146:33: error: "ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID. ()
Terminal Command Output
Error: "ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID. (aws_instance_invalid_ami)
on instance.tf line 78:
78: ami = "ami-xxxxxxxxxxxxxxxxx"Error: "ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID. (aws_instance_invalid_ami)
on instance.tf line 146:
146: ami = "ami-xxxxxxxxxxxxxxxxx"
Expected Behavior
- The action summary should include the rule ID (aws_instance_invalid_ami) for each invalid AMI error reported by TFLint. This would provide more clarity and context in the summary output.
tflint checkstyle format
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle>
<file name="instance.tf">
<error rule="aws_instance_invalid_ami" line="78" column="33" severity="error" message=""ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID." link=""></error>
<error rule="aws_instance_invalid_ami" line="146" column="33" severity="error" message=""ami-xxxxxxxxxxxxxxxxx" is invalid AMI ID." link=""></error>
</file>
According to https://github.com/reviewdog/reviewdog/blob/master/parser/checkstyle.go, the "source" attribute is used, but in the output of tflint, the "source" attribute is not used, and the "rule" attribute is present instead.