diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 114871f..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-[*]
-charset = utf-8
-indent_size = 4
-indent_style = space
-insert_final_newline = true
-max_line_length = 80
-trim_trailing_whitespace = true
-
-[{*.yaml,*.yml}]
-indent_size = 2
-ij_visual_guides = none
-ij_yaml_align_values_properties = do_not_align
-ij_yaml_autoinsert_sequence_marker = true
-ij_yaml_block_mapping_on_new_line = false
-ij_yaml_indent_sequence_value = true
-ij_yaml_keep_indents_on_empty_lines = false
-ij_yaml_keep_line_breaks = true
-ij_yaml_sequence_on_new_line = false
-ij_yaml_space_before_colon = false
-ij_yaml_spaces_within_braces = true
-ij_yaml_spaces_within_brackets = true
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 0024d46..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-*.bat text eol=crlf
-*.cmd text eol=crlf
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index 9e4c020..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Please see the documentation for all configuration options:
-# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-updates:
- - package-ecosystem: "github-actions"
- # Workflow files stored in the
- # default location of `.github/workflows`
- directory: "/"
- schedule:
- interval: "weekly"
diff --git a/.github/workflows/asciidoctor-ghpages.yml b/.github/workflows/asciidoctor-ghpages.yml
deleted file mode 100644
index 0f9493a..0000000
--- a/.github/workflows/asciidoctor-ghpages.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-name: GitHub Pages Publish
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
- name: Publish GitHub Pages
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- # Includes the AsciiDoctor GitHub Pages Action to convert adoc files to
- # html and publish to gh-pages branch.
- - name: asciidoctor-ghpages
- uses: manoelcampos/asciidoctor-ghpages-action@v2
- with:
- pdf_build: true
- # asciidoctor_params: --attribute=nofooter
- asciidoctor_params: --attribute=allow-uri-read
- # adoc_file_ext: .ascii # default is .adoc
- # source_dir: docs/ # default is .
- # slides_build: true
- pre_build: |
- git rm -rf -- .idea/ .editorconfig .gitignore .gitattributes CODE_OF_CONDUCT.md LICENSE *.yml
- # post_build:
diff --git a/.github/workflows/move-marketplace-tag.yml b/.github/workflows/move-marketplace-tag.yml
deleted file mode 100644
index 67ca15e..0000000
--- a/.github/workflows/move-marketplace-tag.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-name: Move the Marketplace tag
-
-on:
- workflow_call:
- inputs:
- release-version:
- required: true
- type: string
-
-jobs:
- dist:
- name: Move the Marketplace tag
- # See https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
- if: github.ref_type == 'tag'
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - id: tag
- name: Tag name
- run: |
- VERSION_MAJOR="$(echo '${{ inputs.release-version }}' | sed -nE '/^([0-9]+)\.[^\.]+.*$/s//\1/p')"
- echo "name=v${VERSION_MAJOR}" >>"${GITHUB_OUTPUT}"
- shell: bash
-
- # The tag may not exist yet, so continue on error.
- - name: Delete local tag
- run: |
- git tag -d '${{ steps.tag.outputs.name }}'
- continue-on-error: true
- shell: bash
-
- # The tag may not exist yet, so continue on error.
- - name: Delete remote tag
- run: |
- git push --delete origin '${{ steps.tag.outputs.name }}'
- continue-on-error: true
- shell: bash
-
- - name: Create local tag
- run: |
- git tag '${{ steps.tag.outputs.name }}'
- shell: bash
-
- - name: Push local tag
- run: |
- git push origin '${{ steps.tag.outputs.name }}'
- shell: bash
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
deleted file mode 100644
index 5da3702..0000000
--- a/.github/workflows/release.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-name: Create a new release
-
-on:
- workflow_dispatch:
- pull_request:
- push:
- tags:
- - 'v*.*'
- # Ignore simple tags which are just "aliases" used by the Marketplace.
- - '!v1'
- - '!v2'
- - '!v3'
- - '!v4'
- - '!v5'
- - '!v6'
- - '!v7'
- - '!v8'
- - '!v9'
-
-jobs:
- version:
- name: Calculate the release version
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- # Infer the release version. Assumes that tags are named `vX.Y.Z`.
- - id: version
- run: |
- if [[ "${GITHUB_REF_TYPE}" == 'branch' ]]
- then
- RELEASE_VERSION="${GITHUB_SHA}"
- else
- RELEASE_VERSION="${GITHUB_REF#'refs/tags/v'}"
- RELEASE_VERSION="${RELEASE_VERSION//'/'/_}"
- fi
-
- echo "release-version=${RELEASE_VERSION}" >>"${GITHUB_OUTPUT}"
- shell: bash
-
- - id: release
- name: Create the release
- if: ${{ github.ref_type == 'tag' }}
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ github.token }}
- with:
- tag_name: ${{ github.ref }}
- release_name: v${{ steps.version.outputs.release-version }}
- draft: false
- prerelease: false
-
- outputs:
- release-version: ${{ steps.version.outputs.release-version }}
- upload-url: ${{ steps.release.outputs.upload_url }}
-
- move-tag:
- name: Move the Marketplace tag
- needs: [ version ]
- uses: ./.github/workflows/move-marketplace-tag.yml
- with:
- release-version: ${{ needs.version.outputs.release-version }}
- secrets: inherit
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 0e2b8aa..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-/.idea/
-/#*#
-*~
-/README.html
-/README.pdf
-*.swp
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 68ca042..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-Benedikt, a GitHub Action to check your code with diKTat
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 969e6ed..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Code of Conduct
-
-This is a small code of conduct to have a good and friendly development in diKTat
-
-## Good behavior
-
-We expect everyone to love each other, be kind and polite.
-Do not hate anyone for comments on the review or for bugs that he (or she) made in his code.
-
-## Unacceptable behavior
-
-But if you would like to bully some of our contributors - you are always welcome.
-We love critics and do not like to be in comfort zone.
-We can even organize some underground boxing match for you somewhere in Russia.
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index ef26969..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-The MIT License
-
-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 NONINFRINGEMENT. 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.
diff --git a/README.adoc b/README.adoc
deleted file mode 100644
index 6aeaf47..0000000
--- a/README.adoc
+++ /dev/null
@@ -1,261 +0,0 @@
-= A _GitHub Action_ to check your code with https://github.com/saveourtool/diktat[_diKTat_]
-:toc:
-:imagesdir: docs/images
-:tip-caption: pass:[💡]
-
-[.float-group]
---
-[.left]
-image::https://img.shields.io/badge/License-MIT-yellow.svg[License: MIT,link="https://opensource.org/licenses/MIT"]
-
-[.left]
-image::https://badgen.net/github/release/saveourtool/benedikt/latest?color=green[GitHub release,link=https://github.com/saveourtool/benedikt/releases/latest]
-
-[.left]
-image::https://badgen.net/badge/icon/Ubuntu?icon=terminal&label&color=green[Ubuntu Linux]
-
-[.left]
-image::https://badgen.net/badge/icon/macOS?icon=apple&label&color=green[macOS]
-
-[.left]
-image::https://badgen.net/badge/icon/Windows?icon=windows&label&color=green[Windows]
---
-
-[TIP]
-====
-An always updated version of this document is available
-link:https://saveourtool.github.io/benedikt/ebook.pdf[here] as a PDF e-book.
-====
-
-== Features
-
-* Customizable `diktat-analysis.yml` xref:#config[location]. You can use the
-rule set configuration with an alternate name or at a non-default location.
-
-* Customizable JVM xref:#java-setup[vendor and version]. You can run _diKTat_
-using a default JVM, or you can set up your own one.
-
-* Customizable xref:#reporter[reporter] (_SARIF_ or _Checkstyle_ XML).
-
-* Allows multiple xref:#input-paths[input paths]. If you have a multi-module
-project and only wish to check certain directories or modules, you can configure
-the action accordingly.
-
-* The last line of the log output reported to the summary page:
-+
-image::check-summary.png[diKTat Check summary]
-
-== Usage
-
-In the simplest scenario, the action can be used without input parameters; you
-just need to check out your code first, using
-https://github.com/marketplace/actions/checkout[`actions/checkout`]:
-
-[source,yaml]
-----
-jobs:
- diktat_check:
- name: 'diKTat Check'
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - uses: saveourtool/benedikt@v2
-----
-
-== Configuration
-
-[#config]
-=== `config`: custom configuration file
-
-* Default: `diktat-analysis.yml`
-* Required: **no**
-
-You can override the name or the path of your YAML configuration file using the
-`config` input parameter, e. g.:
-
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- config: path/to/diktat-analysis-custom.yml
-----
-
-[#reporter]
-=== `reporter`: requesting a type of reporter
-
-If you wish, you can report errors in a different format.
-
-* Default: `sarif`
-* Required: **no**
-* Possible values: any of the following.
-
-** `sarif`: report errors in the
-https://github.com/microsoft/sarif-tutorials/blob/main/docs/1-Introduction.md#what-is-sarif[_SARIF_]
-format. The output file will be named `report.sarif` and automatically uploaded
-to _GitHub_ using the https://github.com/github/codeql-action/tree/v2/upload-sarif[`upload-sarif`]
-action. This will enable the check results to be shown as annotations in the
-pull request:
-+
-image::sarif-reporting-pr.png[diKTat SARIF reporting (Pull Request)]
-+
-as well as in the _Code scanning alerts_ section of your repository:
-+
-image::sarif-reporting-code-scanning-alerts.png[diKTat SARIF reporting (Code scanning alerts)]
-
-** `checkstyle`: this is the reporter of choice if you ever encounter issues
-with the `sarif` reporter. Errors are reported in the
-https://github.com/checkstyle/checkstyle[_Checkstyle-XML_] format to the file
-named `checkstyle-report.xml`. The report is then consumed by the
-https://github.com/reviewdog/reviewdog[`reviewdog`] tool and uploaded to
-_GitHub_, resulting in code annotations similar to those produced by the `sarif`
-reporter:
-+
-image::checkstyle-xml-reporting.png[Checkstyle-XML reporting assisted by reviewdog]
-
-[#input-paths]
-=== `input-paths`: custom source sets
-
-* Default: none
-* Required: **no**
-
-One or more patterns which indicate the files or directories to check. Use a
-multiline string to specify multiple inputs.
-
-* If an input is a path to a file, it is passed to _diKTat_ as-is:
-+
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- input-paths: |
- path/to/file.kt
-----
-
-* If an input is a path to a directory, the directory is recursively traversed,
-and all `\*.kt` and `*.kts` files are passed to _diKTat_.
-+
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- input-paths: |
- src/main/kotlin
- src/test/kotlin
-----
-* If an input is an https://ant.apache.org/manual/dirtasks.html#patterns[_Ant_-style
-path pattern] (such as `\\**/*.kt`), _diKTat_ expands it into the list of files
-that match the path pattern. Path patterns may be negated, e. g.:
-`!src/\**/*Test.kt` or `!src/\**/generated/**`.
-+
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- input-paths: |
- **/*.kt
- **/*.kts
- !**/generated/**
-----
-
-If this input parameter is not specified, this is equivalent to setting it to
-`.`, meaning _diKTat_ will check all `\*.kt` and `*.kts` files in the project
-directory unless configured otherwise.
-
-[#java-setup]
-=== `java-distribution` and `java-version`: running _diKTat_ using a custom JVM
-
-It's possible to run _diKTat_ with a custom JVM using the
-https://github.com/actions/setup-java[`actions/setup-java`] action. The
-following input parameters may be specified:
-
-* `java-distribution`: the Java distribution, see the
-https://github.com/actions/setup-java/blob/main/README.md#supported-distributions[list
-of supported distributions].
-
-** Default: `temurin`
-** Required: **no**
-
-* `java-version`: the Java version to set up. Takes a whole or semver Java
-version. See https://github.com/actions/setup-java/blob/main/README.md#supported-version-syntax[examples
-of supported syntax].
-
-** Default: none
-** Required: **no**
-
-[NOTE]
-Setting just the `java-distribution` property in order to use a custom
-JDK is not sufficient: you'll need to set **both** `java-distribution` **and**
-`java-version`:
-
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- java-distribution: 'temurin'
- java-version: 17
-----
-
-=== `fail-on-error`: suppressing lint errors
-
-* Default: `true`
-* Required: **no**
-
-If `false`, the errors are still reported, but the step completes successfully.
-If `true` (the default), then lint errors reported by _diKTat_ are considered
-fatal (i.e. the current step terminates with a failure):
-
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- fail-on-error: true
-----
-
-[NOTE]
-
-This flag only affects the case when _diKTat_ exits with code **1**. Higher
-link:https://diktat.saveourtool.com/diktat-cli/#exit-codes[exit
-codes] are _always_ fatal.
-
-=== `debug`: enabling debug logging
-
-* Default: `false`
-* Required: **no**
-
-Debug logging can be enabled by setting the `debug` input parameter to `true`:
-
-[source,yaml]
-----
- - uses: saveourtool/benedikt@v2
- with:
- debug: true
-----
-
-== Outputs
-
-The action returns the exit code of the command-line client using the
-`exit-code` output parameter, e. g.:
-
-[source,yaml]
-----
-jobs:
- diktat_check:
- name: 'diKTat Check'
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - id: diktat
- uses: saveourtool/benedikt@v2
-
- - name: 'Read the exit code of diKTat'
- if: ${{ always() }}
- run: echo "diKTat exited with code ${{ steps.diktat.outputs.exit-code }}"
- shell: bash
-----
-
-The exit codes are documented
-link:https://diktat.saveourtool.com/diktat-cli/#exit-codes[here].
diff --git a/README.html b/README.html
new file mode 100644
index 0000000..e9606c4
--- /dev/null
+++ b/README.html
@@ -0,0 +1,881 @@
+
+
+
+
+
+
+
+A GitHub Action to check your code with diKTat
+
+
+
+
+
Allows multiple input paths. If you have a multi-module
+project and only wish to check certain directories or modules, you can configure
+the action accordingly.
+
+
+
The last line of the log output reported to the summary page:
+
+
+
+
+
+
+
+
+
+
+
+
Usage
+
+
+
In the simplest scenario, the action can be used without input parameters; you
+just need to check out your code first, using
+actions/checkout:
If you wish, you can report errors in a different format.
+
+
+
+
+
Default: sarif
+
+
+
Required: no
+
+
+
Possible values: any of the following.
+
+
+
+
sarif: report errors in the
+SARIF
+format. The output file will be named report.sarif and automatically uploaded
+to GitHub using the upload-sarif
+action. This will enable the check results to be shown as annotations in the
+pull request:
+
+
+
+
+
+
+
as well as in the Code scanning alerts section of your repository:
+
+
+
+
+
+
+
+
+
checkstyle: this is the reporter of choice if you ever encounter issues
+with the sarif reporter. Errors are reported in the
+Checkstyle-XML format to the file
+named checkstyle-report.xml. The report is then consumed by the
+reviewdog tool and uploaded to
+GitHub, resulting in code annotations similar to those produced by the sarif
+reporter:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
input-paths: custom source sets
+
+
+
+
Default: none
+
+
+
Required: no
+
+
+
+
+
One or more patterns which indicate the files or directories to check. Use a
+multiline string to specify multiple inputs.
+
+
+
+
+
If an input is a path to a file, it is passed to diKTat as-is:
If an input is an Ant-style
+path pattern (such as **/*.kt), diKTat expands it into the list of files
+that match the path pattern. Path patterns may be negated, e. g.:
+!src/**/*Test.kt or !src/**/generated/**.
If this input parameter is not specified, this is equivalent to setting it to
+., meaning diKTat will check all *.kt and *.kts files in the project
+directory unless configured otherwise.
+
+
+
+
java-distribution and java-version: running diKTat using a custom JVM
+
+
It’s possible to run diKTat with a custom JVM using the
+actions/setup-java action. The
+following input parameters may be specified:
+Setting just the java-distribution property in order to use a custom
+JDK is not sufficient: you’ll need to set bothjava-distributionand
+java-version:
+
If false, the errors are still reported, but the step completes successfully.
+If true (the default), then lint errors reported by diKTat are considered
+fatal (i.e. the current step terminates with a failure):
+
+
+
\ No newline at end of file
diff --git a/action.yml b/action.yml
deleted file mode 100644
index c8d51b3..0000000
--- a/action.yml
+++ /dev/null
@@ -1,214 +0,0 @@
-# yaml-language-server: $schema=https://json.schemastore.org/github-action.json
-
-name: 'Benedi.kt'
-author: 'The diKTat Team'
-description: 'A GitHub Action to check your code with diKTat'
-
-# Note: when inverting the default values of boolean flags, be sure to also
-# invert the values they're compared to, i.e. if a certain flag is `true` by
-# default, then it should be compared with `false`, because `false` is the only
-# value which users of our action can explicitly set. Cases when a flag is
-# merely inset (i.e. is not equal to either `true` or `false`) are quite common.
-inputs:
- config:
- description: >
- The location of the YAML configuration file. By default,
- diktat-analysis.yml in the current directory is used.
- default: 'diktat-analysis.yml'
- required: false
- reporter:
- description: >
- The reporter to use, one of: "sarif" (the default) or "checkstyle".
- default: 'sarif'
- required: false
- input-paths:
- description: >
- One or more patterns which indicate the files or directories to check.
- Use a multiline string to specify multiple inputs.
-
- If an input is a path to a file, it is passed to diKTat as-is.
-
- If an input is a path to a directory, the directory is recursively
- traversed, and all *.kt and *.kts files are passed to diKTat.
-
- If an input is an Ant-like path pattern (such as "**/*.kt"), diKTat
- expands it into the list of files that match the path pattern. Path
- patterns may be negated, e. g.: "!src/**/*Test.kt" or
- "!src/**/generated/**".
- required: false
- java-distribution:
- description: >
- The Java distribution. See the list of supported distributions at
- .
- The default is "temurin".
-
- Note that setting just this property in order to use a custom JDK is not
- sufficient: please set "java-version", too.
- default: 'temurin'
- required: false
- java-version:
- description: >
- The Java version to set up. Takes a whole or semver Java version. See
- examples of supported syntax at
- .
- required: false
- debug:
- description: >
- Whether debug logging should be enabled
- default: ${{ false }}
- required: false
- fail-on-error:
- description: >
- Whether linter errors are considered fatal (the default is true)
- default: ${{ true }}
- required: false
-
-outputs:
- exit-code:
- description: "The exit code of diKTat"
- value: ${{ steps.diktat.outputs.exit-code }}
-
-runs:
- using: "composite"
- steps:
- - id: setup-java
- if: ${{ inputs.java-version != null }}
- uses: actions/setup-java@v4
- with:
- distribution: '${{ inputs.java-distribution }}'
- java-version: ${{ inputs.java-version }}
-
- - id: download-diktat
- uses: robinraju/release-downloader@v1.8
- with:
- repository: "nulls/diktat"
- tag: "v2.0.3"
- fileName: "diktat"
-
- # GitHub seems to set `-e` internally, so don't fail immediately if diKTat
- # returns a non-zero exit code but store the exit code in a variable for
- # further processing.
- #
- # This step is always successful but records the exit code in the
- # `steps.diktat.outputs.exit-code` variable.
- - id: diktat
- run: |
- if [[ '${{ inputs.debug }}' == 'true' ]]
- then
- set -x
- fi
- DIKTAT_ARGS=('--config' '${{ inputs.config }}' '--reporter' '${{ inputs.reporter }}')
- if [[ '${{ inputs.reporter }}' == 'sarif' ]]
- then
- report_file=${GITHUB_WORKSPACE}/report.sarif
- elif [[ '${{ inputs.reporter }}' == 'checkstyle' ]]
- then
- report_file=${GITHUB_WORKSPACE}/checkstyle-report.xml
- else
- echo "`reporter` should be set to `sarif` or `checkstyle`"
- exit 1
- fi
- DIKTAT_ARGS+=('--output' "${report_file}")
-
- if [[ '${{ inputs.debug }}' == 'true' ]]
- then
- DIKTAT_ARGS+=('--log-level' 'DEBUG')
- fi
-
- set -o pipefail
- IFS=$'\n'
- INPUT_PATHS=(${{ inputs.input-paths }})
- DIKTAT_CMD=${GITHUB_WORKSPACE}/diktat
- chmod +x ${DIKTAT_CMD}
- { ${DIKTAT_CMD} "${DIKTAT_ARGS[@]}" "${INPUT_PATHS[@]}" | tee diktat.log; } && exit_code=$? || exit_code=$?
- total_lines=$(wc -l diktat.log | cut -d ' ' -f1)
- summary_line_number=$(grep -n 'Summary error count (descending) by rule:' diktat.log | cut -d: -f1)
- summary_line=$(tail -n $((total_lines - summary_line_number)) diktat.log | sed -e 's/^ //g' | awk '{ printf("%s,", $0) }' | sed -e 's/,$//g')
- echo "summary-line=${summary_line}" >>$GITHUB_OUTPUT
- rm -f diktat.log
- echo "exit-code=${exit_code}" >>$GITHUB_OUTPUT
- env:
- GITHUB_TOKEN: ${{ github.token }}
- shell: bash
-
- # Creates a summary report and fails the job if necessary.
- #
- # If `diktat` exited with code 1 (linter errors), return 0 or 1 depending
- # on the value of the `fail-on-error` flag. If the exit code is 2 or
- # greater, return it as-is, ignoring the flag.
- #
- # Note: BSD `awk` apparently doesn't understand `\\s`, that's why we're
- # splitting on `: *` (a colon followed by a zero or more space characters).
- - id: diktat-summary
- if: ${{ always() }}
- run: |
- if (( ${{ steps.diktat.outputs.exit-code }} == 0 ))
- then
- status_icon=':heavy_check_mark:'
- message='completed successfully'
- else
- status_icon=':x:'
- message='exited with code **${{ steps.diktat.outputs.exit-code }}**'
- fi
-
- diktat='[_diKTat_](https://github.com/saveourtool/diktat)'
-
- echo "${status_icon} ${diktat} ${message}" >>${GITHUB_STEP_SUMMARY}
-
- if (( ${{ steps.diktat.outputs.exit-code }} != 0 ))
- then
- echo '```console' >>${GITHUB_STEP_SUMMARY}
- echo "${{ steps.diktat.outputs.summary-line }}" | xargs -d ',' -n1 echo >>${GITHUB_STEP_SUMMARY}
- echo '```' >>${GITHUB_STEP_SUMMARY}
- fi
-
- if (( ${{ steps.diktat.outputs.exit-code }} <= 1 ))
- then
- ${GITHUB_WORKSPACE}/diktat --version | awk '{ split($0, versions, ": *"); print " - _" versions[1] "_: **" versions[2] "**" }' >>${GITHUB_STEP_SUMMARY}
- fi
-
- if (( ${{ steps.diktat.outputs.exit-code }} != 1 ))
- then
- exit ${{ steps.diktat.outputs.exit-code }}
- elif [[ '${{ inputs.fail-on-error }}' != 'false' ]]
- then
- exit 1
- fi
- shell: bash
-
- # When in SARIF reporting mode, upload SARIF reports to GitHub.
- - id: upload-sarif
- if: ${{ always() && steps.diktat.outputs.exit-code == 1 && inputs.reporter == 'sarif' }}
- uses: github/codeql-action/upload-sarif@v3
- with:
- sarif_file: ${{ github.workspace }}/report.sarif
-
- # Alternatively, when in Checkstyle reporting mode, upload Checkstyle XML
- # using `reviewdog`.
- #
- # `reviewdog` doesn't play well with manual runs (`workflow_dispatch`):
- # it fails with
- #
- # post failed for %s: failed to create check: POST https://api.github.com/repos/%s/%s/check-runs: 422 No commit found for SHA: []
- - id: reviewdog-install
- if: ${{ always() && steps.diktat.outputs.exit-code == 1 && inputs.reporter == 'checkstyle' && github.event_name != 'workflow_dispatch' }}
- uses: reviewdog/action-setup@v1
-
- - id: reviewdog
- if: ${{ always() && steps.diktat.outputs.exit-code == 1 && inputs.reporter == 'checkstyle' && github.event_name != 'workflow_dispatch' }}
- run: |
- if [[ '${{ github.event_name }}' == 'pull_request' ]]
- then
- reviewdog_reporter='github-pr-check'
- else
- reviewdog_reporter='github-check'
- fi
-
- reviewdog -f=checkstyle -fail-on-error=false -level=info -name='diKTat errors reported by reviewdog' -reporter="${reviewdog_reporter}" <${GITHUB_WORKSPACE}/checkstyle-report.xml
- env:
- REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }}
- shell: bash
-
-branding:
- icon: 'check-circle'
- color: 'purple'
diff --git a/ebook.pdf b/ebook.pdf
new file mode 100644
index 0000000..7d8b315
Binary files /dev/null and b/ebook.pdf differ
diff --git a/index.html b/index.html
new file mode 120000
index 0000000..b70e3e8
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+README.html
\ No newline at end of file