2024-03-31 07:10:46 -04:00
|
|
|
# Copyright (c) 2024 Jonah Aragon <jonah@triplebit.net>
|
|
|
|
|
|
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
# of this software and associated documentation files (the "Software"), to
|
|
|
|
# deal in the Software without restriction, including without limitation the
|
|
|
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
|
|
# sell copies of the Software, and to permit persons to whom the Software is
|
|
|
|
# furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
# The above copyright notice and this permission notice shall be included in
|
|
|
|
# all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
|
|
# IN THE SOFTWARE.
|
|
|
|
|
|
|
|
name: 🤖 Linting
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- main
|
|
|
|
push:
|
|
|
|
|
|
|
|
concurrency:
|
|
|
|
group: ${{ github.ref }}-${{ github.workflow }}
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
env:
|
2024-04-03 03:06:38 -04:00
|
|
|
MAIN_BRANCH: ${{ github.event_name == 'push' }}
|
2024-03-31 07:10:46 -04:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
megalinter:
|
|
|
|
name: MegaLinter
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- if: ${{ env.MAIN_BRANCH }}
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
|
2024-04-03 03:06:38 -04:00
|
|
|
- if: ${{ env.MAIN_BRANCH == 0 }}
|
2024-03-31 07:10:46 -04:00
|
|
|
uses: actions/checkout@v4
|
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
|
2024-04-10 06:52:09 -04:00
|
|
|
- name: Configure markdown-link-check
|
|
|
|
run: |
|
|
|
|
cat <<EOT >> .markdown-link-check.json
|
|
|
|
{
|
|
|
|
"ignorePatterns": [
|
|
|
|
{
|
|
|
|
"pattern": "^https://twitter.com"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^https://reddit.com"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^#_"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": ".onion"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^https://en.opensuse.org"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^https://quad9.net"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^https://dnscrypt.info"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^https://pipewire.org"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"replacementPatterns": [
|
|
|
|
{
|
|
|
|
"pattern": "^assets/",
|
|
|
|
"replacement": "https://www.privacyguides.org/en/assets/"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^(../)*assets/",
|
|
|
|
"replacement": "https://www.privacyguides.org/en/assets/"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"pattern": "^/",
|
|
|
|
"replacement": "https://www.privacyguides.org/"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"retryOn429": true,
|
|
|
|
"retryCount": 5,
|
|
|
|
"aliveStatusCodes": [200, 206, 403]
|
|
|
|
}
|
|
|
|
EOT
|
|
|
|
|
2024-03-31 07:10:46 -04:00
|
|
|
- id: ml
|
|
|
|
# You can override MegaLinter flavor used to have faster performances
|
|
|
|
# More info at https://megalinter.io/flavors/
|
|
|
|
uses: oxsecurity/megalinter/flavors/documentation@v7.10.0
|
|
|
|
env:
|
|
|
|
# All available variables are described in documentation
|
|
|
|
# https://megalinter.io/configuration/
|
|
|
|
# Validates all source when push on main, else just the git diff with main.
|
|
|
|
VALIDATE_ALL_CODEBASE: ${{ env.MAIN_BRANCH }}
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY
|
|
|
|
DISABLE: COPYPASTE,SPELL,HTML
|
|
|
|
DISABLE_LINTERS: JSON_JSONLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER
|
2024-04-14 00:03:49 -04:00
|
|
|
DISABLE_ERRORS_LINTERS: CSS_STYLELINT,MARKDOWN_MARKDOWN_LINK_CHECK,YAML_YAMLLINT,DOCKERFILE_HADOLINT,REPOSITORY_TRIVY,REPOSITORY_CHECKOV,REPOSITORY_GITLEAKS
|
2024-03-31 07:10:46 -04:00
|
|
|
EDITORCONFIG_EDITORCONFIG_CHECKER_ARGUMENTS: -disable-indentation
|
|
|
|
ENV_DOTENV_LINTER_ARGUMENTS: "--skip QuoteCharacter"
|
|
|
|
MARKDOWN_MARKDOWN_LINK_CHECK_FILTER_REGEX_INCLUDE: (docs)
|
|
|
|
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.yml
|
|
|
|
MARKDOWN_MARKDOWNLINT_FILTER_REGEX_EXCLUDE: (PULL_REQUEST_TEMPLATE\.md)
|
|
|
|
|
|
|
|
# Upload MegaLinter artifacts
|
|
|
|
- name: Archive production artifacts
|
|
|
|
if: success() || failure()
|
|
|
|
uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: MegaLinter reports
|
|
|
|
path: |
|
|
|
|
megalinter-reports
|
|
|
|
mega-linter.log
|