Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zyactions/dotnet-lint
A GitHub Action to lint .NET projects.
https://github.com/zyactions/dotnet-lint
continuous-integration dotnet github-actions lint
Last synced: about 2 months ago
JSON representation
A GitHub Action to lint .NET projects.
- Host: GitHub
- URL: https://github.com/zyactions/dotnet-lint
- Owner: zyactions
- License: mit
- Created: 2022-12-23T15:41:26.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-09-04T21:36:58.000Z (over 1 year ago)
- Last Synced: 2024-10-18T06:34:42.689Z (2 months ago)
- Topics: continuous-integration, dotnet, github-actions, lint
- Language: YAML
- Homepage:
- Size: 29.3 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# .NET Lint
![License: MIT][shield-license-mit]
[![CI][shield-ci]][workflow-ci]
[![Ubuntu][shield-platform-ubuntu]][job-runs-on]
[![macOS][shield-platform-macos]][job-runs-on]
[![Windows][shield-platform-windows]][job-runs-on]A GitHub Action to lint .NET projects.
## Features
- Lints .NET projects using the official [dotnet format][dotnet-format] .NET CLI tool
- Creates pull request annotations for detected code style violations
- Registers a [problem matcher][problem-matchers] for error output
- Supports all platforms (Linux, macOS, Windows)## Usage
### Lint
```yaml
steps:
- name: Checkout
uses: actions/checkout@v3- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
workspace: test
implicit-restore: true
```> **Note**
>
> Unlike the wrapped `dotnet format` command, this action does not perform an implicit package restore by default. A manual package restore (e.g. using [zyactions/dotnet-restore][zyactions-dotnet-restore]) is required by design.
>
> Set `implicit-restore` to `true` to switch back to the original behavior.### Lint a specific Project- or Solution
```yaml
steps:
steps:
- name: Checkout
uses: actions/checkout@v3- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
workspace: test/Test.csproj
implicit-restore: true
```### Lint only specific Files using a Glob Pattern
```yaml
steps:
- name: Checkout
uses: actions/checkout@v3- name: Glob Match
id: glob
uses: zyactions/glob@v2
with:
pattern: |
test/*.cs
!test/*.AutoGenerated.cs
return-pipe: true- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
workspace: test/Test.csproj
include: '-'
pipe: ${{ steps.glob.outputs.pipe }}
implicit-restore: true
```## Inputs
### `working-directory`
The working-directory for the action.
Defaults to the repository root directory (`github.workspace`).
> **Note**
>
> If a specific .NET SDK version is to be used, the working directory must point to the directory that contains the `global.json` or a subdirectory of it.### `workspace`
The Visual Studio workspace (directory, project- or solution-file).
This path is relative to the `working-directory` unless an absolute path is used.
The `dotnet format` command automatically searches for a Visual Studio Solution file (`*.sln`) in the specified workspace directory, if no explicit solution- or project- file is specified.
Example values:
- `path/to/workspace`
- `path/to/Solution.sln`
- `path/to/Project.csproj`### `diagnostics`
A newline-separated list of diagnostic IDs to use as a filter when linting code style or third-party issues. Default value is whichever IDs are listed in the `.editorconfig` file. For a list of built-in analyzer rule IDs that you can specify, see the [list of IDs for code-analysis style rules][style-rules].
### `severity`
The minimum severity of diagnostics to lint. Allowed values are `info`, `warn`, and `error`. The default value is `warn`.
### `include`
A newline-separated list of relative file or folder paths to include in linting. The default is all files in the solution or project.
Use `-` to read the list of files from the `pipe` input.
### `exclude`
A newline-separated list of relative file or folder paths to exclude from linting.
The default is none.
Use `-` to read the list of files from the `pipe` input.
### `report-path`
Produces a JSON report in the specified directory.
### `implicit-restore`
Execute an implicit restore before linting.
### `use-standalone-tool`
Uses the standalone version of the `dotnet-format` tool instead of the version bundled with the .NET SDK.
### `pipe`
An optional pipe input from which the `include` or `exclude` filenames are to be read.
This must be set to a valid shell command line (bash) that can be used for piping. The command must output to `stdout` and separate the individual filenames by line breaks.
> **Warning**
>
> The command passed to this input will be evaluated and should not come from untrusted sources.## Requirements
The [.NET CLI][dotnet-sdk] needs to be installed on the runner. To be independent from the GitHub defaults, it's recommended to install a specific version of the SDK prior to calling this action.
To install the .NET SDK in your workflow, the following actions can be used:
- [zyactions/dotnet-setup][zyactions-dotnet-setup]
- [actions/setup-dotnet][actions-setup-dotnet]## Dependencies
This action uses the following GitHub Actions dependencies:
- [zyactions/dotnet-format][zyactions-dotnet-format] (pinned)
## Versioning
Versions follow the [semantic versioning scheme][semver].
## License
.NET Lint Action is licensed under the MIT license.
[actions-setup-dotnet]: https://github.com/actions/setup-dotnet
[dotnet-format]: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-format
[dotnet-sdk]: https://github.com/dotnet/sdk
[job-runs-on]: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
[problem-matchers]: https://github.com/actions/runner/blob/main/docs/adrs/0276-problem-matchers.md
[semver]: https://semver.org
[shield-license-mit]: https://img.shields.io/badge/License-MIT-blue.svg
[shield-ci]: https://github.com/zyactions/dotnet-lint/actions/workflows/ci.yml/badge.svg
[shield-platform-ubuntu]: https://img.shields.io/badge/Ubuntu-E95420?logo=ubuntu\&logoColor=white
[shield-platform-macos]: https://img.shields.io/badge/macOS-53C633?logo=apple\&logoColor=white
[shield-platform-windows]: https://img.shields.io/badge/Windows-0078D6?logo=windows\&logoColor=white
[style-rules]: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules
[workflow-ci]: https://github.com/zyactions/dotnet-lint/actions/workflows/ci.yml
[zyactions-dotnet-format]: https://github.com/zyactions/dotnet-format
[zyactions-dotnet-restore]: https://github.com/zyactions/dotnet-restore
[zyactions-dotnet-setup]: https://github.com/zyactions/dotnet-setup