Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions .github/workflows/mega-linter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
name: megalinter

on:
workflow_call:
inputs:
runner:
description: runner name
type: string
default: ubuntu-latest
required: false
flavor:
description: flavor
type: string
default: ""
required: false
log-level:
description: log-level
type: string
default: info
required: false
secrets:
github-client-id:
description: github app client id
required: false
github-app-key:
description: github app private key
required: false

jobs:
megalinter:
runs-on: ${{ inputs.runner }}
permissions:
contents: write
issues: write
pull-requests: write
steps:
# https://github.com/marketplace/actions/harden-runner
- name: harden runner
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
with:
egress-policy: audit

# https://github.com/marketplace/actions/create-github-app-token
- name: generate token
id: generate-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.github-client-id }}
private-key: ${{ secrets.github-app-key }}

# https://github.com/marketplace/actions/checkout
- name: checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

# https://github.com/marketplace/actions/megalinter
- name: megalinter cupcake
uses: oxsecurity/megalinter/flavors/cupcake@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'cupcake'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter documentation
uses: oxsecurity/megalinter/flavors/documentation@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'documentation'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter go
uses: oxsecurity/megalinter/flavors/go@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'go'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter javascript
uses: oxsecurity/megalinter/flavors/javascript@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'javascript'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter python
uses: oxsecurity/megalinter/flavors/python@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'python'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter security
uses: oxsecurity/megalinter/flavors/security@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'security'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter terraform
uses: oxsecurity/megalinter/flavors/terraform@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == 'terraform'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: megalinter full
uses: oxsecurity/megalinter@15e5b45552097e318c93de385779ce3b1084052c # v10.0.0
if: inputs.flavor == '' || inputs.flavor == 'full'
env:
LOG_LEVEL: ${{ inputs.log-level || 'info' }}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}