Skip to content

Commit

Permalink
✨ Adds additional reviewdog arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
rickstaa committed Dec 12, 2020
1 parent 2cebf94 commit 5da6020
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 20 deletions.
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,14 +139,26 @@ See the inputs below for additional details.

**Optional** The log level of the reviewdog reporter. Options: [`"info"`, `"warning"`, `"error"`]. Default = `"error"`.

#### `level`

**Optional** The log level of the reviewdog reporter. Options: [`"info"`, `"warning"`, `"error"`]. Default = `"error"`.

#### `reporter`

**Optional** The reviewdog reporter type. Only `github-pr-check` is supported at the moment. Default = `"github-pr-check"`.

#### `filter_mode`

**Optional** Filtering mode for the reviewdog command [added, diff_context, file, nofilter]. Default = `"added"`.

#### `fail_on_error`

**Optional** Exit code for reviewdog when errors are found [`true`, `false`]. Default = `false`.

#### `reviewdog_flags`

**Optional** Additional reviewdog flags. Default = `""`.

#### `tool_name`

**Optional** Tool name to use for reviewdog reporter. Default = `flake8`.

## Outputs

None
Expand Down
27 changes: 23 additions & 4 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

name: "Run flake8 with reviewdog"
description: "🐶 Run flake8 with reviewdog on pull requests to lint python source files while creating annotations."
author: "Rick Staa"
Expand Down Expand Up @@ -48,16 +47,36 @@ inputs:
required: true
default: ${{ github.token }}
level:
description: 'Report level for reviewdog [info,warning,error]'
description: "Report level for reviewdog [info,warning,error]"
required: false
default: 'error'
default: "error"
reporter:
description: |
Reporter of reviewdog command [github-pr-check,github-pr-review,github-check].
Default is github-pr-check.
github-pr-review can use Markdown and add a link to rule page in reviewdog reports.
required: false
default: 'github-pr-check'
default: "github-pr-check"
filter_mode:
description: |
Filtering mode for the reviewdog command [added, diff_context, file, nofilter].
Default is added.
required: false
default: "added"
fail_on_error:
description: |
Exit code for reviewdog when errors are found [true,false]
Default is `false`.
required: false
default: "false"
reviewdog_flags:
description: "Additional reviewdog flags"
required: false
default: ""
tool_name:
description: "Tool name to use for reviewdog reporter"
required: false
default: "flake8"

runs:
using: "node12"
Expand Down
15 changes: 9 additions & 6 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -1614,8 +1614,12 @@ async function run() {
const reqFilePath = core.getInput("req_file_path");

const githubToken = core.getInput("github_token");
const level = core.getInput("level");
const name = core.getInput("tool_name");
const reporter = core.getInput("reporter");
const level = core.getInput("level");
const filterMode = core.getInput("filter_mode");
const frailOnError = core.getInput("fail_on_error");
const inputReviewdogFlags = core.getInput("reviewdog_flags");

// Get container info
let gh_ws_path = process.env.GITHUB_WORKSPACE;
Expand Down Expand Up @@ -1712,7 +1716,7 @@ async function run() {
flake8Cmd += ` ${sourcePath}`;

// Validate reviewdog input arguments
let reporterArg = "github-pr-check";
let reporterArg = "github-pr-review";
if (reporter !== "None") {
reporterArg = reporter;
}
Expand All @@ -1729,12 +1733,11 @@ async function run() {
console.log(`[*] Executing flake8 + reviewdog command...`);
if (process.platform === "win32") {
const reviewdogExe = "reviewdog.exe";
const reviewdogCmd = `${reviewdogExe} -f flake8 -name=flake8-lint -reporter=${reporterArg} -level=${levelArg} -tee`;
const reviewdogCmd = `${reviewdogExe} -f flake8 -name=${name} -reporter=${reporterArg} -level=${levelArg} -fail-on-error=${frailOnError} -filter-mode=${filterMode} ${inputReviewdogFlags} -tee`;
await exec.exec(`cmd /C "python -m ${flake8Cmd} | ${reviewdogCmd}"`); // cmd /C is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
} else {
const reviewdogCmd = `reviewdog -f flake8 -name="flake8-lint" -reporter="${reporterArg}" -level="${levelArg}" -tee`;
await exec.exec(`/bin/bash -c "${flake8Cmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
// await exec.exec(`/bin/bash -c "${flake8Cmd}|${reviewdogCmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
const reviewdogCmd = `reviewdog -f flake8 -name=${name} -reporter="${reporterArg}" -level="${levelArg}" -fail-on-error=${frailOnError} -filter-mode=${filterMode} ${inputReviewdogFlags} -tee`;
await exec.exec(`/bin/bash -c "${flake8Cmd}|${reviewdogCmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
}
} catch (error) {
core.setFailed(
Expand Down
15 changes: 9 additions & 6 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,12 @@ async function run() {
const reqFilePath = core.getInput("req_file_path");

const githubToken = core.getInput("github_token");
const level = core.getInput("level");
const name = core.getInput("tool_name");
const reporter = core.getInput("reporter");
const level = core.getInput("level");
const filterMode = core.getInput("filter_mode");
const frailOnError = core.getInput("fail_on_error");
const inputReviewdogFlags = core.getInput("reviewdog_flags");

// Get container info
let gh_ws_path = process.env.GITHUB_WORKSPACE;
Expand Down Expand Up @@ -117,7 +121,7 @@ async function run() {
flake8Cmd += ` ${sourcePath}`;

// Validate reviewdog input arguments
let reporterArg = "github-pr-check";
let reporterArg = "github-pr-review";
if (reporter !== "None") {
reporterArg = reporter;
}
Expand All @@ -134,12 +138,11 @@ async function run() {
console.log(`[*] Executing flake8 + reviewdog command...`);
if (process.platform === "win32") {
const reviewdogExe = "reviewdog.exe";
const reviewdogCmd = `${reviewdogExe} -f flake8 -name=flake8-lint -reporter=${reporterArg} -level=${levelArg} -tee`;
const reviewdogCmd = `${reviewdogExe} -f flake8 -name=${name} -reporter=${reporterArg} -level=${levelArg} -fail-on-error=${frailOnError} -filter-mode=${filterMode} ${inputReviewdogFlags} -tee`;
await exec.exec(`cmd /C "python -m ${flake8Cmd} | ${reviewdogCmd}"`); // cmd /C is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
} else {
const reviewdogCmd = `reviewdog -f flake8 -name="flake8-lint" -reporter="${reporterArg}" -level="${levelArg}" -tee`;
await exec.exec(`/bin/bash -c "${flake8Cmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
// await exec.exec(`/bin/bash -c "${flake8Cmd}|${reviewdogCmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
const reviewdogCmd = `reviewdog -f flake8 -name=${name} -reporter="${reporterArg}" -level="${levelArg}" -fail-on-error=${frailOnError} -filter-mode=${filterMode} ${inputReviewdogFlags} -tee`;
await exec.exec(`/bin/bash -c "${flake8Cmd}|${reviewdogCmd}"`); // /bin/bash -c is needed since @actions/exec does not yet support piping https://github.com/actions/toolkit/issues/359
}
} catch (error) {
core.setFailed(
Expand Down

0 comments on commit 5da6020

Please sign in to comment.