Skip to content

Megalinter 8 and monthly version updates

Megalinter updates to version 8 using the megalinter runner tool, adding a Makefile task to simplify the command line (so I dont have to remember the command).

Material for MkDocs provides a nice diff view using the diff language for a code block. Add or copy a diff into the code block, ensuring the - and + signs are included and the diff is automatically highlighted. See the Megalinter section of this post for an example.

Feeling quite low the last few weeks, mostly due to continued Covid symptoms, low blood oxygen and lack of energy. Waking up I feel like I have experienced carbon dioxide poisoning (which I have experienced working on a mushroom farm). I am disorientated, dizzy and feel quite terrible.

Megalinterλ︎

Megalinter runner now includes a tool to update a megalinter configuration file to use the latest version of Megalinter.

npx mega-linter-runner@latest --upgrade

To simplify using the command a megalinter-update task was added to the Makefile for the project.

Megalinter update make task

megalinter-update:  ## Update MegaLinter config to latest version
    $(info --------- MegaLinter Upgrade Config ---------)
    npx mega-linter-runner@latest --upgrade

The script updates the Megalinter GitHub workflow to use the latest version of the Megalinter action. The change respects if a specific flavour (e.g. java) of Megalinter was defined.

Megalinter action in GitHub workflow

       - name: MegaLinter Run
         id: ml
         ## latest release of major version
-        uses: oxsecurity/megalinter/flavors/java@v7
+        uses: oxsecurity/megalinter/flavors/java@v8
         env:
           # ADD CUSTOM ENV VARIABLES OR DEFINE IN MEGALINTER_CONFIG file
           MEGALINTER_CONFIG: .github/config/megalinter.yaml

Links to the Megalinter documentation are also updated.

The script updates .gitignore to exclude the megalinter-reports/ directory. This change is not necessary for Practicalli projects as everything is ignored by default. Patterns in the .gitignore are added with the ! prefix, allowing them to be included by Git.

Practicalli Project Templatesλ︎

Each template configuration in Project Templates has their own megalinter workflow and configuration, so running the megalinter-runner upgrade tool is a good test.

From the output of the script, all templates were updated successfully.

Megalinter runner upgrade script output
 make megalinter-upgrade
--------- MegaLinter Upgrade Config ---------
npx mega-linter-runner@latest --upgrade

    .:oool'                                  ,looo;
    .xNXNXl                                 .dXNNXo.
     lXXXX0c.                              'oKXXN0;
     .oKNXNX0kxdddddddoc,.    .;lodddddddxk0XXXX0c
      .:kKXXXXXXXXXXXXNXX0dllx0XXXXXXXXXXXXXXXKd,
        .,cdkOOOOOOOO0KXXXXXXXXXXK0OOOOOOOkxo:'
                      'ckKXNNNXkc'
              ':::::;.  .c0XX0l.  .;::::;.
              'xXXXXXx'   :kx:   ;OXXXXKd.
               .dKNNXXO;   ..   :0XXXXKl.
                .lKXXXX0:     .lKXXXX0:
                  :0XXXXKl.  .dXXXXXk,
                   ;kXXXXKd:cxXXXXXx'
                    'xXNXXXXXXXXXKo.
                     .oKXXXXNXXX0l.
                      .lKNNXNNXO:
                        ,looool'

==========================================================
=============   MegaLinter, by OX Security   =============
=========  https://ox.security?ref=megalinter  ===========
==========================================================

 This assistant will automatically upgrade your local files so you use MegaLinter v8
Please confirm to proceed :)  yes
Processing file resources/practicalli/mysql-compose.yaml
Processing file megalinter-reports/IDE-config/.hadolint.yaml
Processing file megalinter-reports/IDE-config/.grype.yaml
Processing file .github/workflows/scheduled-version-check.yaml
Processing file .github/workflows/quality-checks.yaml
Processing file .github/workflows/megalinter.yaml
- Updating .github/workflows/megalinter.yaml with replacement /https:\/\/megalinter\.github\.io/gm -> https://oxsecurity.github.io/megalinter ...
- Updating .github/workflows/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating .github/workflows/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
- Updating .github/workflows/megalinter.yaml with replacement /oxsecurity\/megalinter\/flavors\/([a-z]*)@v7/gm -> oxsecurity/megalinter/flavors/$1@v8 ...
UPDATED: .github/workflows/megalinter.yaml
Processing file .github/workflows/lint-review.yaml
Processing file .github/workflows/changelog-check.yaml
Processing file .github/config/megalinter.yaml
- Updating .github/config/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating .github/config/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
UPDATED: .github/config/megalinter.yaml
Processing file resources/practicalli/service/root/swagger-compose.yaml
Processing file resources/practicalli/application/root/swagger-compose.yaml
Processing file resources/practicalli/application/root/compose.yaml
Processing file resources/practicalli/service/root/.github/FUNDING.yaml
Processing file resources/practicalli/landing_page/root/.github/FUNDING.yaml
Processing file resources/practicalli/application/root/.github/FUNDING.yaml
Processing file resources/practicalli/service/root/.github/workflows/scheduled-version-check.yaml
Processing file resources/practicalli/service/root/.github/workflows/quality-checks.yaml
Processing file resources/practicalli/service/root/.github/workflows/megalinter.yaml
- Updating resources/practicalli/service/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter\.github\.io/gm -> https://oxsecurity.github.io/megalinter ...
- Updating resources/practicalli/service/root/.github/workflows/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/service/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
- Updating resources/practicalli/service/root/.github/workflows/megalinter.yaml with replacement /oxsecurity\/megalinter\/flavors\/([a-z]*)@v7/gm -> oxsecurity/megalinter/flavors/$1@v8 ...
UPDATED: resources/practicalli/service/root/.github/workflows/megalinter.yaml
Processing file resources/practicalli/service/root/.github/workflows/lint-review.yaml
Processing file resources/practicalli/service/root/.github/workflows/changelog-check.yaml
Processing file resources/practicalli/service/root/.github/config/megalinter.yaml
- Updating resources/practicalli/service/root/.github/config/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/service/root/.github/config/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
UPDATED: resources/practicalli/service/root/.github/config/megalinter.yaml
Processing file resources/practicalli/minimal/root/.github/workflows/lint-review.yaml
Processing file resources/practicalli/landing_page/root/.github/workflows/scheduled-version-check.yaml
Processing file resources/practicalli/landing_page/root/.github/workflows/quality-checks.yaml
Processing file resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml
- Updating resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter\.github\.io/gm -> https://oxsecurity.github.io/megalinter ...
- Updating resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
- Updating resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml with replacement /oxsecurity\/megalinter\/flavors\/([a-z]*)@v7/gm -> oxsecurity/megalinter/flavors/$1@v8 ...
UPDATED: resources/practicalli/landing_page/root/.github/workflows/megalinter.yaml
Processing file resources/practicalli/landing_page/root/.github/workflows/lint-review.yaml
Processing file resources/practicalli/landing_page/root/.github/workflows/changelog-check.yaml
Processing file resources/practicalli/landing_page/root/.github/config/megalinter.yaml
- Updating resources/practicalli/landing_page/root/.github/config/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/landing_page/root/.github/config/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
UPDATED: resources/practicalli/landing_page/root/.github/config/megalinter.yaml
Processing file resources/practicalli/application/root/.github/workflows/scheduled-version-check.yaml
Processing file resources/practicalli/application/root/.github/workflows/quality-checks.yaml
Processing file resources/practicalli/application/root/.github/workflows/megalinter.yaml
- Updating resources/practicalli/application/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter\.github\.io/gm -> https://oxsecurity.github.io/megalinter ...
- Updating resources/practicalli/application/root/.github/workflows/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/application/root/.github/workflows/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
- Updating resources/practicalli/application/root/.github/workflows/megalinter.yaml with replacement /oxsecurity\/megalinter\/flavors\/([a-z]*)@v7/gm -> oxsecurity/megalinter/flavors/$1@v8 ...
UPDATED: resources/practicalli/application/root/.github/workflows/megalinter.yaml
Processing file resources/practicalli/application/root/.github/workflows/lint-review.yaml
Processing file resources/practicalli/application/root/.github/workflows/changelog-check.yaml
Processing file resources/practicalli/application/root/.github/config/megalinter.yaml
- Updating resources/practicalli/application/root/.github/config/megalinter.yaml with replacement /https:\/\/oxsecurity\.github\.io\/megalinter/gm -> https://megalinter.io ...
- Updating resources/practicalli/application/root/.github/config/megalinter.yaml with replacement /https:\/\/megalinter.io\/configuration/gm -> https://megalinter.io/latest/config-file ...
UPDATED: resources/practicalli/application/root/.github/config/megalinter.yaml
mega-linter-runner applied 24 replacements in 8 files.
Updated .gitignore file to exclude megalinter-reports from commits

You MegaLinter local configuration files has been updated !
Now stage and commit updated files then push to see latest version of MegaLinter in action !

 MegaLinter is now part of OX Security. -> https://www.ox.security/?ref=megalinter

Do you want to try OX Security to secure your software supply chain security ?  no

Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li