Post_Type: AnalysisTimestamp: 01.01.2022
Trunk - The New Super linter
> **The DevOps super linter and formater**
What is ? and How are we using it with and

is a **blazingly** fast meta code checker and formatter with extraordinary features like caching, preexisting issue detection, a daemon, and a language server.
Install
curl https://get.trunk.io -fsSL | bashOr with:
[
](https://marketplace.visualstudio.com/items?itemName=Trunk.io)
:::caution - Init Must be in root git level
✖ Trunk can only init if it's run at the root of a git repo
:::
:::caution - Init Must be with commited files existed
✖ No committed files in repo, unable to analyze files. Trunk init enables linters automatically based on the contents of your repo, so you must have something in your repo for it to work.
:::
Initialize trunk in your repo
trunk initRun 30+ linters on your repo
trunk checkAuto-format your repo
trunk fmt
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}
# Configure the AWS Provider
provider "aws" {
region = "us-east-1"
access_key = "my-access-key"
secret_key = "my-secret-key"
}
# Create a VPC
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16"
}
# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]Demo
$ trunk init
Initializing
✔ Analyzing files in your repo... done (3 files in 0.01s)
✔ Detecting latest linter versions... done (3 linters in 0.00s)
✔ Creating config files... done (0.27s)
Enabled 3 Linters
• gitleaks
• hadolint (created .hadolint.yaml)
• terraform-fmt
✔ Enabled 3 linters (see .trunk/trunk.yaml)
32 additional linters can be enabled in .trunk/trunk.yaml$ trunk check --all --no-fix
Checking 100% [====================================================================================>] 12/12 0.4s
AUTOFIXES
main.tf
1:1 high Incorrect formatting terraform-fmt
10 | # Configure the AWS Provider
11 | provider "aws" {
12 | region = "us-east-1"
| region = "us-east-1"
13 | access_key = "my-access-key"
14 | secret_key = "my-secret-key"
| secret_key = "my-secret-key"
15 | }
16 |
→ Apply autofix (Y/n): n
Autofix discarded.
ISSUES
Dockerfile:3:1
3:1 medium Pin versions in apk add. Instead of `apk add <package>` use `apk add <package>=<version>` hadolint/DL3018
6:1 low `yarn cache clean` missing after `yarn install` was run. hadolint/DL3060
main.tf:1:1
1:1 high Incorrect formatting, autoformat by running 'trunk fmt' terraform-fmt
✖ 3 blocking issues$ trunk fmt
Checking 100% [======================================================================================>] 3/3 0.4s
✔ Auto-fixed main.tf
Re-checking autofixed files...
Checking 67% [==========================================================> ] 2/3 0.4s
✔ No issues