diff --git a/.azuredevops/pipelines/templates/stages/integration-tests-reporting-generic.yml b/.azuredevops/pipelines/templates/stages/integration-tests-reporting-generic.yml index 4a87f7b91..415ba46c1 100644 --- a/.azuredevops/pipelines/templates/stages/integration-tests-reporting-generic.yml +++ b/.azuredevops/pipelines/templates/stages/integration-tests-reporting-generic.yml @@ -31,7 +31,7 @@ stages: - powershell: ./build.ps1 --verbosity=diagnostic workingDirectory: ./tests/Cake.Issues.Reporting.Generic/script-runner displayName: 'Run integration tests' - - publish: $(Build.SourcesDirectory)/docs/input/docs/report-formats/generic/templates + - publish: $(Build.SourcesDirectory)/docs/input/documentation/report-formats/generic/templates artifact: Integration Tests Cake.Issues.Reporting.Generic Cake Scripting $(System.JobName) displayName: 'Publish generated reports as build artifact' - job: TestReportingGenericFrostingNet8Job @@ -60,6 +60,6 @@ stages: - powershell: ./build.ps1 --verbosity=diagnostic workingDirectory: ./tests/Cake.Issues.Reporting.Generic/frosting displayName: 'Run integration tests' - - publish: $(Build.SourcesDirectory)/docs/input/docs/report-formats/generic/templates + - publish: $(Build.SourcesDirectory)/docs/input/documentation/report-formats/generic/templates artifact: Integration Tests Cake.Issues.Reporting.Generic Cake Frosting .NET 8 $(System.JobName) displayName: 'Publish generated reports as build artifact' diff --git a/.github/actions/prepare-integration-test/action.yml b/.github/actions/prepare-integration-test/action.yml index 8325cfb16..b08c2d1c6 100644 --- a/.github/actions/prepare-integration-test/action.yml +++ b/.github/actions/prepare-integration-test/action.yml @@ -13,6 +13,6 @@ runs: name: NuGet Package path: ./BuildArtifacts/Packages/NuGet - name: Install .NET - uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4 + uses: actions/setup-dotnet@87b7050bc53ea08284295505d98d2aa94301e852 # v4 with: dotnet-version: ${{ inputs.dotnet-version }} \ No newline at end of file diff --git a/.github/renovate.json b/.github/renovate.json index 3ea641745..6038e7680 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -3,6 +3,18 @@ "extends": [ "github>cake-contrib/renovate-presets:cake-issues" ], + "customManagers": [ + { + "customType": "regex", + "description": "Update versions of NuGet packages used in documentation", + "fileMatch": [ + "docs/mkdocs.yml$" + ], + "matchStrings": [ + "\\s*#\\srenovate:\\sdatasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?( extractVersion=(?.*?))?\\s*.*?_version\\s*:\\s*(?.*)" + ] + } + ], "packageRules": [ { "description": "Ignore Cake runner minor and patch updates", diff --git a/.github/workflows/integrationtests.yml b/.github/workflows/integrationtests.yml index 120af7125..08fe1ce69 100644 --- a/.github/workflows/integrationtests.yml +++ b/.github/workflows/integrationtests.yml @@ -2,12 +2,16 @@ name: Integration tests # Workflow Trigger on: - # Trigger the workflow on a pull request to any branch + # Trigger the workflow on a pull request to any branch, ignoring changes to /docs pull_request: - # Triggers the workflow in the event there is a push to master + paths-ignore: + - 'docs/**' + # Trigger the workflow on pushes to the master branch, ignoring changes to /docs push: branches: - master + paths-ignore: + - 'docs/**' jobs: # Build @@ -20,7 +24,7 @@ jobs: - name: Fetch all tags and branches run: git fetch --prune --unshallow - name: Install .NET - uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4 + uses: actions/setup-dotnet@87b7050bc53ea08284295505d98d2aa94301e852 # v4 with: # .NET 5 required for GitVersion dotnet-version: | @@ -31,7 +35,7 @@ jobs: run: ./build.sh --target=Create-NuGet-Packages shell: bash - name: Publish NuGet package as build artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 with: name: NuGet Package path: ./BuildArtifacts/Packages/NuGet/ diff --git a/.github/workflows/publish-develop-docs.yml b/.github/workflows/publish-develop-docs.yml new file mode 100644 index 000000000..cf3fa3131 --- /dev/null +++ b/.github/workflows/publish-develop-docs.yml @@ -0,0 +1,39 @@ +name: Publish Develop Docs + +# Workflow Trigger +on: + # Triggers the workflow in the event there is a push to develop + push: + branches: + - develop + +permissions: + contents: write + +jobs: + deploy: + name: Build & Publish Docs + runs-on: ubuntu-latest + steps: + - name: Get the sources + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 0 + - name: Install Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + with: + python-version: 3.13.1 + - name: Install Python Dependencies + run: pip install -r requirements.txt + working-directory: ./docs + - name: Install Required Libraries + run: | + sudo apt-get update + sudo apt-get install -y pngquant + - name: Configure Git + run: | + git config --global user.name "Build Server" + git config --global user.email "ci@cakeissues.net" + - name: Build & Publish + run: mike deploy --push develop + working-directory: ./docs diff --git a/.github/workflows/publish-release-docs.yml b/.github/workflows/publish-release-docs.yml new file mode 100644 index 000000000..d1dca5af7 --- /dev/null +++ b/.github/workflows/publish-release-docs.yml @@ -0,0 +1,38 @@ +name: Publish Release Docs + +# Workflow Trigger +on: + # Triggers the workflow in the event there is a release created + release: + types: [published] + +permissions: + contents: write + +jobs: + deploy: + name: Build & Publish Docs + runs-on: ubuntu-latest + steps: + - name: Get the sources + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 0 + - name: Install Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + with: + python-version: 3.13.1 + - name: Install Python Dependencies + run: pip install -r requirements.txt + working-directory: ./docs + - name: Install Required Libraries + run: | + sudo apt-get update + sudo apt-get install -y pngquant + - name: Configure Git + run: | + git config --global user.name "Build Server" + git config --global user.email "ci@cakeissues.net" + - name: Build & Publish + run: mike deploy --push --update-aliases ${{ github.event.release.tag_name }} latest + working-directory: ./docs diff --git a/.github/workflows/pushpreview.yml b/.github/workflows/pushpreview.yml new file mode 100644 index 000000000..b34e58f8a --- /dev/null +++ b/.github/workflows/pushpreview.yml @@ -0,0 +1,38 @@ +name: PushPreview + +# Workflow Trigger +on: + # Triggers the workflow if a pull request is labeled with 'preview' + pull_request_target: + types: + - labeled + +jobs: + preview: + runs-on: ubuntu-latest + if: github.event.label.name == 'preview' + steps: + - name: Get the sources + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - name: Comment + run: | + gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "⚙️ Hang tight! PushPreview is currently building your preview. We'll share the URL as soon as it's ready." + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + with: + python-version: 3.13.1 + - name: Set BASE_URL + run: echo "BASE_URL=/github/${{ github.repository }}/${{ github.event.number }}/" >> $GITHUB_ENV + - name: Build site + run: | + cd docs + pip install -r requirements.txt + mkdocs build + - name: Generate preview + uses: PushLabsHQ/pushpreview-action@cf958f7be2bf55d3f56d351bb9abf56b4c6b9a50 # 1.0.6 + with: + source-directory: ./docs/site + github-token: ${{ secrets.GITHUB_TOKEN }} + pushpreview-token: ${{ secrets.PUSHPREVIEW_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index f3e116887..4da8090f0 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -2,12 +2,16 @@ name: Unit tests # Workflow Trigger on: - # Trigger the workflow on a pull request to any branch + # Trigger the workflow on a pull request to any branch, ignoring changes to /docs pull_request: - # Triggers the workflow in the event there is a push to master + paths-ignore: + - 'docs/**' + # Trigger the workflow on pushes to the master branch, ignoring changes to /docs push: branches: - master + paths-ignore: + - 'docs/**' jobs: Test: @@ -27,7 +31,7 @@ jobs: - name: Fetch all tags and branches run: git fetch --prune --unshallow - name: Install .NET - uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4 + uses: actions/setup-dotnet@87b7050bc53ea08284295505d98d2aa94301e852 # v4 with: # .NET 5 required for GitVersion dotnet-version: | diff --git a/.gitignore b/.gitignore index ba4e60c6b..3068af6bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,3 @@ -# Project specific - -BuildArtifacts/ - # Created by https://www.gitignore.io/api/cake,visualstudio ### Cake ### @@ -304,4 +300,9 @@ __pycache__/ # By default, sensitive information, such as encrypted password # should be stored in the .pubxml.user file. -# End of https://www.gitignore.io/api/cake,visualstudio \ No newline at end of file +# End of https://www.gitignore.io/api/cake,visualstudio + +# Project specific + +BuildArtifacts/ +docs/.cache/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index ff1570829..be2f7b909 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,15 @@ { - "dotnet.defaultSolution": "src\\Cake.Issues.sln" + "dotnet.defaultSolution": "src\\Cake.Issues.sln", + "yaml.schemas": { + "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml" + }, + "yaml.customTags": [ + "!ENV scalar", + "!ENV sequence", + "!relative scalar", + "tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg", + "tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji", + "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format", + "tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping" + ] } \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 078295e35..cdc692810 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,25 +11,53 @@ To contribute: * Push your feature branch. * Create a pull request. -## Build +## Building -To build this package we are using Cake. +### Prerequisites + +General requirements: + +* .NET Core 2.1, .NET Core 3.0, .NET Core 3.1, .NET 5 or .NET 6 for running the build + +For building addins: + +* .NET 9 SKD + +For building website: + +* Python 3 + +### Building addins + +On Windows PowerShell run: + +```powershell +./build.ps1 +``` + +On OSX/Linux run: + +```bash +.\build.sh +``` + +### Start website On Windows PowerShell run: ```powershell -./build +./build.ps1 --target=website ``` On OSX/Linux run: ```bash -./build.sh +./build.sh --target=website ``` ## Release See [Cake.Recipe documentation] how to create a new release of this addin. -[GitFlow]: (http://nvie.com/posts/a-successful-git-branching-model/) +[GitFlow]: (https://nvie.com/posts/a-successful-git-branching-model/) [Cake.Recipe documentation]: https://cake-contrib.github.io/Cake.Recipe/docs/usage/creating-release \ No newline at end of file diff --git a/README.md b/README.md index 2ddf5b59e..7c76f3857 100644 --- a/README.md +++ b/README.md @@ -97,15 +97,15 @@ In Cake Frosting they can be added using package references: ``` -See [list of available addins](https://cakeissues.net/addins/). +See [list of available addins](#addins). ### Compatibility -See [Release Notes](https://cakeissues.net/docs/overview/release-notes/Cake.Issues) for requirements for each specific version. +See [Release Notes](https://github.com/cake-contrib/Cake.Issues/releases) for requirements for each specific version. ## Usage -See [Website](https://cakeissues.net/docs/usage/) for detailed usage instructions. +See [Website](https://cakeissues.net/latest/documentation/usage/) for detailed usage instructions. ## Support & Discussion @@ -123,6 +123,7 @@ For questions and to discuss ideas & feature requests, use the [GitHub discussio | [Cake.Issues.InspectCode](https://www.nuget.org/packages/Cake.Issues.InspectCode) | [Cake.Frosting.Issues.InspectCode](https://www.nuget.org/packages/Cake.Frosting.Issues.InspectCode) | Issue provider for reading JetBrains Inspect Code issues. | | [Cake.Issues.Markdownlint](https://www.nuget.org/packages/Cake.Issues.Markdownlint) | [Cake.Frosting.Issues.Markdownlint](https://www.nuget.org/packages/Cake.Frosting.Issues.Markdownlint) | Issue provider for reading issues from markdownlint. | | [Cake.Issues.Sarif](https://www.nuget.org/packages/Cake.Issues.Sarif) | [Cake.Frosting.Issues.Sarif](https://www.nuget.org/packages/Cake.Frosting.Issues.Sarif) | Issue provider for reading SARIF reports. | +| [Cake.Issues.Tap](https://www.nuget.org/packages/Cake.Issues.Tap) | [Cake.Frosting.Issues.Tap](https://www.nuget.org/packages/Cake.Frosting.Issues.Tap) | Issue provider for reading files in Test Anything Protocol (TAP) format. | | [Cake.Issues.Terraform](https://www.nuget.org/packages/Cake.Issues.Terraform) | [Cake.Frosting.Issues.Terraform](https://www.nuget.org/packages/Cake.Frosting.Issues.Terraform) | Issue provider for reading Terraform validation output. | | [Cake.Issues.PullRequests](https://www.nuget.org/packages/Cake.Issues.PullRequests) | [Cake.Frosting.Issues.PullRequests](https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests) | Addin providing the aliases for writing issues to pull requests and build servers. | | [Cake.Issues.PullRequests.AppVeyor](https://www.nuget.org/packages/Cake.Issues.PullRequests.AppVeyor) | [Cake.Frosting.Issues.PullRequests.AppVeyor](https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AppVeyor) | Integration with AppVeyor builds. | @@ -136,7 +137,7 @@ For questions and to discuss ideas & feature requests, use the [GitHub discussio ## API The Cake Issues addins provide a wide range of additional aliases which can be used in Cake builds. -See [API reference](https://cakeissues.net/dsl/) for an overview. +See [API reference](https://cakeissues.net/latest/api/) for an overview. ## Contributing @@ -149,9 +150,9 @@ Contributions are welcome. See [Contribution Guidelines](CONTRIBUTING.md). Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[extension points]: https://cakeissues.net/docs/extending/ -[set of aliases]: https://cakeissues.net/dsl/ -[variety of analyzers and linters]: https://cakeissues.net/addins/issue-provider/ -[over 15 distinct addins]: https://cakeissues.net/addins/ -[75 aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[extension points]: https://cakeissues.net/latest/documentation/extending/ +[set of aliases]: https://cakeissues.net/latest/api/ +[variety of analyzers and linters]: https://cakeissues.net/latest/documentation/supported-tools/ +[over 15 distinct addins]: #addins +[75 aliases]: https://cakeissues.net/latest/api/ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c791689ec..d71eb25bc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,13 +1,23 @@ trigger: -- develop -- master -- release/* -- hotfix/* + branches: + include: + - develop + - master + - release/* + - hotfix/* + paths: + exclude: + - docs/** pr: -- develop -- release/* -- hotfix/* + branches: + include: + - develop + - release/* + - hotfix/* + paths: + exclude: + - docs/** stages: - template: .azuredevops/pipelines/templates/stages/build.yml diff --git a/docs/input/_AddinsLayout.cshtml b/docs/input/_AddinsLayout.cshtml deleted file mode 100644 index 901dae8a9..000000000 --- a/docs/input/_AddinsLayout.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@{ - Layout = "/_Master.cshtml"; - - ViewData[Keys.Title] = "Addins - " + Model.String(Keys.GroupKey); -} - -@section Infobar { -} - -@section Sidebar { - @Html.Partial("_AddinsSidebar") -} - -
-

@Model.String(Keys.GroupKey)

-
-
- @Html.Partial("_AddinsList", Model.DocumentList(Keys.GroupDocuments)) - @RenderBody() -
\ No newline at end of file diff --git a/docs/input/_AddinsList.cshtml b/docs/input/_AddinsList.cshtml deleted file mode 100644 index 4c72b1297..000000000 --- a/docs/input/_AddinsList.cshtml +++ /dev/null @@ -1,57 +0,0 @@ -@model IEnumerable - -

- This page contains core and third party addins for Cake Issues. - If you want to file an issue for any addin listed here, contact the author of the addin. -

-

- See Reference for a list of aliases provided by these addins. -

-

- If you're an addin author and want your addin listed here, follow the instructions here. -

- -@foreach(IDocument addin in Model) -{ - string description = @addin.String("Description"); - string author = @addin.String("Author"); - string nuget = @addin.String("NuGet"); - string repositoryOwner = @addin.String("repositoryOwner"); - string repositoryName = @addin.String("repositoryName"); - string documentationLink = @addin.String("documentationLink"); - - -
-
-

@addin.String("Name")

-
-
- @if(!string.IsNullOrEmpty(description)) - { -

@description

- } -
- @if(!string.IsNullOrEmpty(author)) - { -
Author
-
@author
- } - @if(!string.IsNullOrEmpty(nuget)) - { -
NuGet
-
@nuget
- } - @if(!string.IsNullOrEmpty(repositoryOwner) && !string.IsNullOrEmpty(repositoryName)) - { -
Repository
-
@(repositoryOwner)/@(repositoryName)
- } - @if(!string.IsNullOrEmpty(documentationLink)) - { -
Documentation
-
Documentation
- } -
-
-
-} \ No newline at end of file diff --git a/docs/input/_AddinsSidebar.cshtml b/docs/input/_AddinsSidebar.cshtml deleted file mode 100644 index 73ce52ff5..000000000 --- a/docs/input/_AddinsSidebar.cshtml +++ /dev/null @@ -1,6 +0,0 @@ -
  • Categories
  • -@foreach(IDocument group in Documents.FromPipeline("AddinCategories")) -{ - string selectedClass = group.String(Keys.GroupKey) == Model.String(Keys.GroupKey) ? "selected" : null; -
  • @group.String(Keys.GroupKey)
  • -} \ No newline at end of file diff --git a/docs/input/_BlogPost.cshtml b/docs/input/_BlogPost.cshtml deleted file mode 100644 index 0a7e7f25c..000000000 --- a/docs/input/_BlogPost.cshtml +++ /dev/null @@ -1,21 +0,0 @@ -@{ - Layout = "/_BlogLayout.cshtml"; -} - -@Html.Partial("_BlogPostDetails") - -@RenderBody() - -
    - -@{ - string sharingLink = Uri.EscapeDataString(Context.GetLink(Model)); - string sharingTitle = Uri.EscapeDataString(Model.String(Keys.Title)); -} - \ No newline at end of file diff --git a/docs/input/_Bottom.cshtml b/docs/input/_Bottom.cshtml deleted file mode 100644 index 884975f85..000000000 --- a/docs/input/_Bottom.cshtml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/docs/input/_Footer.cshtml b/docs/input/_Footer.cshtml deleted file mode 100644 index e4c9d0da1..000000000 --- a/docs/input/_Footer.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -

    - Copyright © BBT Software AG and contributors. -
    - Website generated by Wyam -

    diff --git a/docs/input/_Head.cshtml b/docs/input/_Head.cshtml deleted file mode 100644 index c91ece074..000000000 --- a/docs/input/_Head.cshtml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/_Navbar.cshtml b/docs/input/_Navbar.cshtml deleted file mode 100644 index afa651f5e..000000000 --- a/docs/input/_Navbar.cshtml +++ /dev/null @@ -1,19 +0,0 @@ - - -@{ - List> pages = new List> - { - Tuple.Create("News", Context.GetLink("news")), - Tuple.Create("Documentation", Context.GetLink("docs")), - Tuple.Create("Reference", Context.GetLink("dsl")), - Tuple.Create("Addins", Context.GetLink("addins")), - Tuple.Create("API", Context.GetLink("api/Cake.Issues")) - }; - foreach(Tuple p in pages) - { - string active = Context.GetLink(Document).StartsWith(p.Item2) ? "active" : null; -
  • @Html.Raw(p.Item1)
  • - } -} \ No newline at end of file diff --git a/docs/input/addins/index.cshtml b/docs/input/addins/index.cshtml deleted file mode 100644 index 3ef866c99..000000000 --- a/docs/input/addins/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Addins -NoSidebar: false ---- -@section Infobar { -} - -@section Sidebar { - @Html.Partial("_AddinsSidebar") -} - -@Html.Partial("_AddinsList", Documents["Addins"]) diff --git a/docs/input/api.md b/docs/input/api.md new file mode 100644 index 000000000..e1784d7a0 --- /dev/null +++ b/docs/input/api.md @@ -0,0 +1,51 @@ +--- +title: API +description: Cake.Issues API documentation +hide: + - navigation +--- + +## Core Addins + +
    + +- [Cake.Issues](https://cakebuild.net/extensions/cake-issues){target="_blank"} +- [Cake.Issues.Reporting](https://cakebuild.net/extensions/cake-issues-reporting){target="_blank"} +- [Cake.Issues.PullRequests](https://cakebuild.net/extensions/cake-issues-pullrequests){target="_blank"} + +
    + +## Issue Provider + +
    + +- [Cake.Issues.DocFx](https://cakebuild.net/extensions/cake-issues-docfx){target="_blank"} +- [Cake.Issues.EsLint](https://cakebuild.net/extensions/cake-issues-eslint){target="_blank"} +- [Cake.Issues.GitRepository](https://cakebuild.net/extensions/cake-issues-gitrepository){target="_blank"} +- [Cake.Issues.InspectCode](https://cakebuild.net/extensions/cake-issues-inspectcode){target="_blank"} +- [Cake.Issues.Markdownlint](https://cakebuild.net/extensions/cake-issues-markdownlint){target="_blank"} +- [Cake.Issues.MsBuild](https://cakebuild.net/extensions/cake-issues-msbuild){target="_blank"} +- [Cake.Issues.Sarif](https://cakebuild.net/extensions/cake-issues-sarif){target="_blank"} +- [Cake.Issues.Terraform](https://cakebuild.net/extensions/cake-issues-terraform){target="_blank"} + +
    + +## Report Formats + +
    + +- [Cake.Issues.Reporting.Console](https://cakebuild.net/extensions/cake-issues-reporting-console){target="_blank"} +- [Cake.Issues.Reporting.Generic](https://cakebuild.net/extensions/cake-issues-reporting-Generic){target="_blank"} +- [Cake.Issues.Reporting.Sarif](https://cakebuild.net/extensions/cake-issues-reporting-Sarif){target="_blank"} + +
    + +## Pull Request Systems + +
    + +- [Cake.Issues.PullRequests.AppVeyor](https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor){target="_blank"} +- [Cake.Issues.PullRequests.AzureDevOps](https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops){target="_blank"} +- [Cake.Issues.PullRequests.GitHubActions](https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions){target="_blank"} + +
    diff --git a/docs/input/assets/css/fonts/glyphicons-halflings-regular.eot b/docs/input/assets/css/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953f..000000000 Binary files a/docs/input/assets/css/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/docs/input/assets/css/fonts/glyphicons-halflings-regular.svg b/docs/input/assets/css/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 94fb5490a..000000000 --- a/docs/input/assets/css/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/input/assets/css/fonts/glyphicons-halflings-regular.ttf b/docs/input/assets/css/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609..000000000 Binary files a/docs/input/assets/css/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff b/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e612858f..000000000 Binary files a/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff2 b/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c..000000000 Binary files a/docs/input/assets/css/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/docs/input/assets/css/override.less b/docs/input/assets/css/override.less deleted file mode 100644 index 52e639459..000000000 --- a/docs/input/assets/css/override.less +++ /dev/null @@ -1,174 +0,0 @@ - -/* Front page */ -.logo-small { - color: #4EABDD; - font-size: 50px; -} - -/* Control the margin for bootstrap alert boxes */ -.alert > p { - margin-top: 0px; -} - -/* Search box */ -#navbar-collapse, #navbar-collapse nav { - width: 100%; -} - -.navbar-nav { - float: none; -} - -.navbar-right { - margin-right: 15px; -} - -@media (max-width: 767px) { - .navbar-right { - margin-left: 0px; - } -} - -/* News share icons */ - -ul.share-buttons { - list-style: none; - padding: 0; -} - -ul.share-buttons li { - display: inline; -} - -ul.share-buttons .sr-only { - position: absolute; - clip: rect(1px 1px 1px 1px); - clip: rect(1px, 1px, 1px, 1px); - padding: 0; - border: 0; - height: 1px; - width: 1px; - overflow: hidden; -} - -ul.share-buttons img { - width: 32px; -} - -/* Control the look and feel of the copy box applied to code sections */ -.btn-copy[disabled] .clippy { - opacity: .3; -} -pre .btn-copy { - -webkit-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; - opacity: 0; - padding: 2px 6px; - float: right; -} -pre:hover .btn-copy { - opacity: 1; -} -.tooltipped { - position: relative -} -.tooltipped:after { - position: absolute; - z-index: 1000000; - display: none; - padding: 5px 8px; - font: normal normal 11px/1.5 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; - color: #fff; - text-align: center; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-wrap: break-word; - white-space: pre; - pointer-events: none; - content: attr(aria-label); - background: rgba(0, 0, 0, 0.8); - border-radius: 3px; - -webkit-font-smoothing: subpixel-antialiased -} -.tooltipped:before { - position: absolute; - z-index: 1000001; - display: none; - width: 0; - height: 0; - color: rgba(0, 0, 0, 0.8); - pointer-events: none; - content: ""; - border: 5px solid transparent -} -.tooltipped:hover:before, .tooltipped:hover:after, .tooltipped:active:before, .tooltipped:active:after, .tooltipped:focus:before, .tooltipped:focus:after { - display: inline-block; - text-decoration: none -} -.tooltipped-s:after, .tooltipped-se:after, .tooltipped-sw:after { - top: 100%; - right: 50%; - margin-top: 5px -} -.tooltipped-s:before, .tooltipped-se:before, .tooltipped-sw:before { - top: auto; - right: 50%; - bottom: -5px; - margin-right: -5px; - border-bottom-color: rgba(0, 0, 0, 0.8) -} - -@font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif; - -/* For Gitter and GitHub */ -.bottom-footer { - margin-bottom: 40px !important; // Make room for Gitter and GitHub buttons -} - -.gitter-open-chat-button { - background-color: #3c8dbc; - font-family: @font-family-sans-serif; - letter-spacing: normal; - right: 90px; -} - -.gitter-open-chat-button:focus, .gitter-open-chat-button:hover, -.github-button:focus, .github-button:hover, -{ - background-color: #4EABDD; - color: #fff; -} - -.gitter-chat-embed { - top: 49px; - border-top: 1px solid #000; - z-index: 10000; -} - -.github-button { - z-index: 100; - position: fixed; - bottom: 0px; - right: 240px; - padding: 1em 3em; - background-color: #367fa9; - border: 0; - border-top-left-radius: 0.5em; - border-top-right-radius: 0.5em; - font-family: sans-serif; - font-size: 9pt; - text-transform: uppercase; - text-align: center; - text-decoration: none; - cursor: pointer; - cursor: hand; - -webkit-transition: all .3s ease; - transition: all .3s ease; - color: #fff; - a, a:active, a:hover, a:focus { - color: #fff; - } -} \ No newline at end of file diff --git a/docs/input/assets/images/clippy.svg b/docs/input/assets/images/clippy.svg deleted file mode 100644 index a06cc7ab3..000000000 --- a/docs/input/assets/images/clippy.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/input/assets/images/envelope.svg b/docs/input/assets/images/envelope.svg deleted file mode 100644 index a2557ef20..000000000 --- a/docs/input/assets/images/envelope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/assets/images/facebook.svg b/docs/input/assets/images/facebook.svg deleted file mode 100644 index 6e23a941a..000000000 --- a/docs/input/assets/images/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/assets/images/linkedin.svg b/docs/input/assets/images/linkedin.svg deleted file mode 100644 index 69d8e9731..000000000 --- a/docs/input/assets/images/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/assets/images/reddit.svg b/docs/input/assets/images/reddit.svg deleted file mode 100644 index 262d0a7f8..000000000 --- a/docs/input/assets/images/reddit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/assets/images/twitter.svg b/docs/input/assets/images/twitter.svg deleted file mode 100644 index f0ed9c5fc..000000000 --- a/docs/input/assets/images/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/input/assets/js/anchor.min.js b/docs/input/assets/js/anchor.min.js deleted file mode 100644 index 44431c2ca..000000000 --- a/docs/input/assets/js/anchor.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * AnchorJS - v3.2.2 - 2016-10-05 - * https://github.com/bryanbraun/anchorjs - * Copyright (c) 2016 Bryan Braun; Licensed MIT - */ -!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";function A(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function n(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style"),t=" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",n=" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",i=' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',o=" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }";e.className="anchorjs",e.appendChild(document.createTextNode("")),A=document.head.querySelector('[rel="stylesheet"], style'),void 0===A?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(t,e.sheet.cssRules.length),e.sheet.insertRule(n,e.sheet.cssRules.length),e.sheet.insertRule(o,e.sheet.cssRules.length),e.sheet.insertRule(i,e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var i,o,s,c,r,a,h,l,u,d,f,p,w=[];if(e(this.options),p=this.options.visible,"touch"===p&&(p=this.isTouchDevice()?"always":"hover"),A||(A="h1, h2, h3, h4, h5, h6"),i=t(A),0===i.length)return!1;for(n(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}return A}); \ No newline at end of file diff --git a/docs/input/assets/js/clipboard.min.js b/docs/input/assets/js/clipboard.min.js deleted file mode 100644 index 1d7c5d5d7..000000000 --- a/docs/input/assets/js/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v1.5.16 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,i){function o(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,e,t,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.addEventListener("focus",window.scrollTo(0,i)),this.fakeElem.style.top=i+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,i){!function(o,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof i)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,o.clipboardAction,o.tinyEmitter,o.goodListener),o.clipboard=a.exports}}(this,function(e,t,n,i){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var s=o(t),u=o(n),f=o(i),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}]),t}(u.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file diff --git a/docs/input/docs/contributing/index.cshtml b/docs/input/docs/contributing/index.cshtml deleted file mode 100644 index 813f06d0d..000000000 --- a/docs/input/docs/contributing/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 100 -Description: Instructions how to contribute to the Cake Issues Addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/contributing/issues.cshtml b/docs/input/docs/contributing/issues.cshtml deleted file mode 100644 index 49870f8ed..000000000 --- a/docs/input/docs/contributing/issues.cshtml +++ /dev/null @@ -1,19 +0,0 @@ ---- -Order: 20 -Title: Open issues -Description: Open issues where we are looking for help ---- -@foreach(var group in Documents["Issues"].GroupBy(d => d.String("Repository")).OrderBy(g => g.Key)){ -

    @Html.Raw(group.Key)

    - @foreach (var issuesEntry in group.OrderBy(x => x.Get("Number"))){ - - } -} \ No newline at end of file diff --git a/docs/input/docs/extending/fundamentals.md b/docs/input/docs/extending/fundamentals.md deleted file mode 100644 index d5eb30a0b..000000000 --- a/docs/input/docs/extending/fundamentals.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 10 -Title: Fundamentals -Description: Fundamentals to extend Cake Issues ecosystem. ---- - -You can easily extend Cake Issues with additional [Issue Provider], [Report Formats] and [Pull Request System integrations]. - -[Issue Provider]: issue-provider -[Report Formats]: report-format -[Pull Request System integrations]: pull-request-system \ No newline at end of file diff --git a/docs/input/docs/extending/index.cshtml b/docs/input/docs/extending/index.cshtml deleted file mode 100644 index a5469c139..000000000 --- a/docs/input/docs/extending/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 80 -Description: Instructions how to add support for additional analyzers, report formats and pull request system to the Cake Issues Addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/categories.md b/docs/input/docs/extending/issue-provider/categories.md deleted file mode 100644 index f6d781972..000000000 --- a/docs/input/docs/extending/issue-provider/categories.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -Order: 30 -Title: Alias categories -Description: Instructions how to set the alias category. ---- -Issue provider aliases should use the [IssuesAliasConstants.MainCakeAliasCategory] and -[IssuesAliasConstants.IssueProviderCakeAliasCategory] constants for defining their category: - -```csharp -[CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] -public static class MyIssueProviderAliases -{ - [CakeMethodAlias] - [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] - public static IIssueProvider MyIssueProvider( - this ICakeContext context) - { - } -} -``` - -[IssuesAliasConstants.MainCakeAliasCategory]: ../../../api/Cake.Issues/IssuesAliasConstants/41CCADF8 -[IssuesAliasConstants.IssueProviderCakeAliasCategory]: ../../../api/Cake.Issues/IssuesAliasConstants/D265B28D \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/index.cshtml b/docs/input/docs/extending/issue-provider/index.cshtml deleted file mode 100644 index 3ed5de7aa..000000000 --- a/docs/input/docs/extending/issue-provider/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 10 -Description: Instructions how to add support for additional analyzers to the Cake Issues addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/overview.md b/docs/input/docs/extending/issue-provider/overview.md deleted file mode 100644 index 44066737b..000000000 --- a/docs/input/docs/extending/issue-provider/overview.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -Order: 20 -Title: Overview -Description: Overview how to implement support for an analyzer or linter. ---- -Issue providers need to implement the [IIssueProvider] interface. - -# Base classes - -For simplifying implementation there exists base classes from which concrete implementation can be inherited. - -| Base Class | Use case | Tutorial | -|---------------------------------|------------------------------------------------------------------------|-------------------------------------| -| [BaseIssueProvider] | Base class for a simple issue provider implementation. | [Simple provider] | -| [BaseConfigurableIssueProvider] | Base class for a issue provider with issue provider specific settings. | [Provider settings] | -| [BaseMultiFormatIssueProvider] | Base class for issue providers supporting multiple log formats. | [Multiple log file formats support] | - -[IIssueProvider]: ../../../api/Cake.Issues/IIssueProvider/ -[BaseIssueProvider]: ../../../api/Cake.Issues/BaseIssueProvider -[BaseConfigurableIssueProvider]: ../../../api/Cake.Issues/BaseConfigurableIssueProvider_1 -[BaseMultiFormatIssueProvider]: ../../../api/Cake.Issues/BaseMultiFormatIssueProvider_2 -[Simple provider]: tutorials/simple -[Provider settings]: tutorials/settings -[Multiple log file formats support]: tutorials/logfile-format \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/tutorials/index.cshtml b/docs/input/docs/extending/issue-provider/tutorials/index.cshtml deleted file mode 100644 index 4dd2b0f56..000000000 --- a/docs/input/docs/extending/issue-provider/tutorials/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 40 -Description: Tutorials how to implement issue providers. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/extending/pull-request-system/index.cshtml b/docs/input/docs/extending/pull-request-system/index.cshtml deleted file mode 100644 index e05db6073..000000000 --- a/docs/input/docs/extending/pull-request-system/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 30 -Description: Instructions how to add support for additional pull request system to the Cake Issues addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/extending/pull-request-system/overview.md b/docs/input/docs/extending/pull-request-system/overview.md deleted file mode 100644 index 3fbf0a88e..000000000 --- a/docs/input/docs/extending/pull-request-system/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -Order: 20 -Title: Overview -Description: Overview how to implement support for a pull request system. ---- -Pull Request Systems need to implement the [IPullRequestSystem] interface. - -# BaseClasses - -For simplifying implementation there exists base classes from which concrete implementation can be inherited. -[BasePullRequestSystem] is the main base class with the required functionality for a pull request system implementation. -Additionally there exists several classes which can be implemented to support additional optional capabilities -in a pull request system implementation. - -| Base Class | Use case | Tutorial | -|------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------| -| [BasePullRequestSystem] | Base class for all pull request system implementations. | | -| [BaseCheckingCommitIdCapability] | Base class for capability to post issues only if pull request is for a specific commit. | | -| [BaseDiscussionThreadsCapability] | Base class for capability to read, resolve and reopen discussion threads. | | -| [BaseFilteringByModifiedFilesCapability] | Base class for capability to filter issues to only those affecting files modified in the pull request. | | - -[IPullRequestSystem]: ../../../api/Cake.Issues.PullRequests/IPullRequestSystem -[BasePullRequestSystem]: ../../../api/Cake.Issues.PullRequests/BasePullRequestSystem -[BaseCheckingCommitIdCapability]: ../../../api/Cake.Issues.PullRequests/BaseCheckingCommitIdCapability_1 -[BaseDiscussionThreadsCapability]: ../../../api/Cake.Issues.PullRequests/BaseDiscussionThreadsCapability_1 -[BaseFilteringByModifiedFilesCapability]: ../../../api/Cake.Issues.PullRequests/BaseFilteringByModifiedFilesCapability_1 \ No newline at end of file diff --git a/docs/input/docs/extending/report-format/categories.md b/docs/input/docs/extending/report-format/categories.md deleted file mode 100644 index fd9b0a477..000000000 --- a/docs/input/docs/extending/report-format/categories.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -Order: 30 -Title: Alias categories -Description: Instructions how to set the alias category. ---- -Report format aliases should use the [IssuesAliasConstants.MainCakeAliasCategory] and -[ReportingAliasConstants.ReportingFormatCakeAliasCategory] constants for defining their category: - -```csharp -[CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] -public static class MyReportFormatAliases -{ - [CakeMethodAlias] - [CakeAliasCategory(ReportingAliasConstants.ReportingFormatCakeAliasCategory)] - public static IIssueReportFormat MyReportFormat( - this ICakeContext context) - { - } -} -``` - -[IssuesAliasConstants.MainCakeAliasCategory]: ../../../api/Cake.Issues/IssuesAliasConstants/41CCADF8 -[ReportingAliasConstants.ReportingFormatCakeAliasCategory]: ../../../api/Cake.Issues.Reporting/ReportingAliasConstants/979CDCAF \ No newline at end of file diff --git a/docs/input/docs/extending/report-format/index.cshtml b/docs/input/docs/extending/report-format/index.cshtml deleted file mode 100644 index 06f0e9dda..000000000 --- a/docs/input/docs/extending/report-format/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 20 -Description: Instructions how to additional report formats to the Cake Issues addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/extending/report-format/overview.md b/docs/input/docs/extending/report-format/overview.md deleted file mode 100644 index 179d63030..000000000 --- a/docs/input/docs/extending/report-format/overview.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -Order: 20 -Title: Overview -Description: Overview how to implement support for a report output format. ---- -Report formats need to implement the [IIssueReportFormat] interface. -For simplifying implementation there exists an abstract [IssueReportFormat] base class from which concrete implementation can be inherited. - -[IIssueReportFormat]: ../../../api/Cake.Issues.Reporting/IIssueReportFormat/ -[IssueReportFormat]: ../../../api/Cake.Issues.Reporting/IssueReportFormat/ \ No newline at end of file diff --git a/docs/input/docs/extending/testing.md b/docs/input/docs/extending/testing.md deleted file mode 100644 index 9d96b697f..000000000 --- a/docs/input/docs/extending/testing.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 40 -Title: Testing -Description: Instructions how to write test cases for Cake Issues addins. ---- -The `Cake.Issues.Testing` provides different helper classes for writing test cases -for issue provider, report format or pull request system addins. - -See [API] for a list of available classes. - -[API]: ../../api/Cake.Issues.Testing/ \ No newline at end of file diff --git a/docs/input/docs/fundamentals/architecture.md b/docs/input/docs/fundamentals/architecture.md deleted file mode 100644 index 3e8641927..000000000 --- a/docs/input/docs/fundamentals/architecture.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -Order: 10 -Description: Architecture overview. ---- - -The Cake Issues addins are built in a modular architecture, allowing to easily -enhance it for supporting additional analyzers, linters, report formats and pull request systems. - -![Architecture Overview](overview.png "Architecture Overview") - -The core consists of the following addins: - -| Addin | Description | -|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Cake.Issues | Provides aliases for creating issues or reading issues using one or more issue providers. Support for different code analyzers and linters can be provided through additional [issue provider] addins. | -| Cake.Issues.Reporting | Provides aliases for creating reports for issues. Support for different report formats can be provided through additional [report format] addins. | -| Cake.Issues.PullRequests | Provides aliases for reporting issues as comments to pull requests. Support for different pull request systems can be provided through additional [pull request system] addins. | - -[issue provider]: issue-provider -[report format]: report-format -[pull request system]: pull-request-system diff --git a/docs/input/docs/fundamentals/index.cshtml b/docs/input/docs/fundamentals/index.cshtml deleted file mode 100644 index 2d505966a..000000000 --- a/docs/input/docs/fundamentals/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 20 -Description: Basic concepts of the Cake Issues Addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/fundamentals/issue-provider.md b/docs/input/docs/fundamentals/issue-provider.md deleted file mode 100644 index 170e2cc60..000000000 --- a/docs/input/docs/fundamentals/issue-provider.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -Order: 40 -Description: Overview about issue providers. ---- -Issue provider addins are responsible for providing the output of an analyzer or linter to the Cake Issues addin. - -See [Issue Provider] for a list of currently supported analyzers and linters. - -See [How to implement issue providers] for instruction on how to implement support for additional issue providers. - -[Issue Provider]: ../../addins/issue-provider/ -[How to implement issue providers]: ../extending/issue-provider/ \ No newline at end of file diff --git a/docs/input/docs/fundamentals/pull-request-system.md b/docs/input/docs/fundamentals/pull-request-system.md deleted file mode 100644 index 2615a4bfb..000000000 --- a/docs/input/docs/fundamentals/pull-request-system.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -Order: 60 -Description: Overview about pull request system implementations. ---- -Pull request addins implement specific Pull Request Systems and allow the -Cake Issues addin to write found issues as comments to pull requests. - -See [Pull Request Systems] for a list of currently supported pull request systems. - -See [How to implement pull request systems] for instruction on how to implement support for -additional pull request systems. - -[Pull Request Systems]: ../../addins/pull-request-system/ -[How to implement pull request systems]: ../extending/pull-request-system/ diff --git a/docs/input/docs/fundamentals/recipe.md b/docs/input/docs/fundamentals/recipe.md deleted file mode 100644 index 635cc08ac..000000000 --- a/docs/input/docs/fundamentals/recipe.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 30 -Description: Pre-made recipe script. ---- -Recipes are pre-made Cake scripts which you can use in your project specific Cake script to get you quickly up and running. - -See [Recipe] for detailed documentation of the available recipe for Cake.Issues. - -[Recipe]: ../recipe/ \ No newline at end of file diff --git a/docs/input/docs/fundamentals/report-format.md b/docs/input/docs/fundamentals/report-format.md deleted file mode 100644 index a5f0e806a..000000000 --- a/docs/input/docs/fundamentals/report-format.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -Order: 50 -Description: Overview about report format implementations. ---- -Report format addins implement specific report formats and allow the -Cake Issues addin to create reports in the specific format. - -See [Report Formats] for a list of currently supported report formats. - -See [How to implement report format] for instruction on how to implement support for -additional report formats. - -[Report Formats]: ../../addins/report-format/ -[How to implement report format]: ../extending/report-format/ diff --git a/docs/input/docs/fundamentals/versioning.md b/docs/input/docs/fundamentals/versioning.md deleted file mode 100644 index 23111623f..000000000 --- a/docs/input/docs/fundamentals/versioning.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -Order: 20 -Description: Compatible versions. ---- -The core addins and all issue providers and pull request systems need to be build against a compatible core API. -You can check the required dependencies in the release notes of the addin. - -This means that it's not possible to use a version of an issue provider build against `Cake.Issues` 1.0.0 -together with a version of a pull request system build against `Cake.Issues` 2.0.0. - -We use strict [semantic versioning]. -Therefore it's possible to use issue provider and pull request system built against `Cake.Issues` 1.0.0 -together with `Cake.Issues` 1.1.0. - -:::{.alert .alert-info} -Please note that versions below 1.0.0 are not considered stable and their API will break regularly. -Expect breaking changes in each minor version. - -Therefore we strongly advise to pin to specific versions of the addins to avoid breaking builds -once we update the addin. -::: - - -[semantic versioning]: http://semver.org/ \ No newline at end of file diff --git a/docs/input/docs/index.cshtml b/docs/input/docs/index.cshtml deleted file mode 100644 index a76a27890..000000000 --- a/docs/input/docs/index.cshtml +++ /dev/null @@ -1,20 +0,0 @@ ---- -Title: Documentation ---- - -
    -

    - We gladly accept your contributions. If there is something that you would like to add then you can edit the content directly on GitHub. -

    -
    - -@foreach(IDocument child in Model.DocumentList(Keys.Children).OrderBy(x => x.Get(DocsKeys.Order, 1000))) -{ -

    @(child.String(Keys.Title))

    - if(child.ContainsKey(DocsKeys.Description)) - { -

    @Html.Raw(child.String(DocsKeys.Description))

    - } - - @Html.Partial("_ChildPages", child) -} diff --git a/docs/input/docs/issue-providers/docfx/examples.md b/docs/input/docs/issue-providers/docfx/examples.md deleted file mode 100644 index bd2225cfb..000000000 --- a/docs/input/docs/issue-providers/docfx/examples.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.DocFx addin. ---- -The following example will call [DocFx] to generate the documentation and outputs the number of warnings. - -To call [DocFx] from a Cake script you can use the [Cake.DocFx] addin. - -```csharp -#addin "Cake.DocFx" -``` - -To read issues from DocFx log files you need to import the core addin and the DocFx support: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.DocFx" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -We need some global variables: - -```csharp -var logPath = @"c:\build\docfx.log"; -var repoRootPath = @"c:\repo"; -var docRootPath = @"docs"; -``` - -The following task will build the [DocFx] project and write a log file: - -```csharp -Task("Build-Documentation").Does(() => -{ - // Run DocFx. - DocFxBuild(new DocFxBuildSettings() - { - LogPath = logPath - }); -}); -``` - -Finally you can define a task where you call the core addin with the desired issue provider. - -```csharp -Task("Read-Issues") - .IsDependentOn("Build-Documentation") - .Does(() => - { - // Read Issues. - var issues = - ReadIssues( - DocFxIssuesFromFilePath(logPath, docRootPath), - repoRootPath); - - Information("{0} issues are found.", issues.Count()); - }); -``` - -[DocFx]: https://dotnet.github.io/docfx/ -[Cake.DocFx]: https://www.nuget.org/packages/Cake.DocFx/ diff --git a/docs/input/docs/issue-providers/docfx/features.md b/docs/input/docs/issue-providers/docfx/features.md deleted file mode 100644 index 64cd24977..000000000 --- a/docs/input/docs/issue-providers/docfx/features.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.DocFx addin. ---- -The [Cake.Issues.DocFx addin] provides the following features. - -# Basic features - -* Reads warnings from [DocFx] log files. - - :::{.alert .alert-info} - [DocFx] can be run with [Cake.DocFx] addin. - ::: - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|---------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | | - -[Cake.Issues.DocFx addin]: https://www.nuget.org/packages/Cake.Issues.DocFx -[DocFx]: https://dotnet.github.io/docfx/ -[Cake.DocFx]: https://www.nuget.org/packages/Cake.DocFx -[IssuePriority.Warning]: ../../../api/Cake.Issues/IssuePriority/7A0CE07F diff --git a/docs/input/docs/issue-providers/docfx/index.cshtml b/docs/input/docs/issue-providers/docfx/index.cshtml deleted file mode 100644 index 4ac9d00d7..000000000 --- a/docs/input/docs/issue-providers/docfx/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: DocFx -Description: Issue provider which allows you to read warnings logged by DocFx. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading warnings reported by DocFx - is implemented in the Cake.Issues.DocFx addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/docfx/requirements.md b/docs/input/docs/issue-providers/docfx/requirements.md deleted file mode 100644 index 576c77bd7..000000000 --- a/docs/input/docs/issue-providers/docfx/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.DocFx addin. ---- -The requirements for using the [Cake.Issues.DocFx addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.DocFx addin]: https://www.nuget.org/packages/Cake.Issues.DocFx -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/eslint/features.md b/docs/input/docs/issue-providers/eslint/features.md deleted file mode 100644 index bef51cbc9..000000000 --- a/docs/input/docs/issue-providers/eslint/features.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.EsLint addin. ---- -The [Cake.Issues.EsLint addin] provides the following features. - -# Basic features - -* Reads issues reported by ESLint. -* Provides URLs for all issues. -* Support for custom URL resolving using the [EsLintAddRuleUrlResolver] alias. - -# Supported log file formats - -* [EsLintJsonFormat] alias for reading issues from log files created by [ESLint json formatter]. - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|---------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | | -| | `IIssue.EndColumn` | | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | Support for custom rules can be added through a custom [EsLintAddRuleUrlResolver] | - -[Cake.Issues.EsLint addin]: https://www.nuget.org/packages/Cake.Issues.EsLint -[ESLint json formatter]: https://eslint.org/docs/user-guide/formatters/#json -[EsLintAddRuleUrlResolver]: ../../../api/Cake.Issues.EsLint/EsLintIssuesAliases/D64301E6 -[EsLintJsonFormat]: ../../../api/Cake.Issues.EsLint/EsLintIssuesAliases/230C6E27 diff --git a/docs/input/docs/issue-providers/eslint/index.cshtml b/docs/input/docs/issue-providers/eslint/index.cshtml deleted file mode 100644 index 67d797242..000000000 --- a/docs/input/docs/issue-providers/eslint/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: ESLint -Description: Issue provider which allows you to read issues logged by ESLint. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading issues reported by ESLint - is implemented in the Cake.Issues.EsLint addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/eslint/requirements.md b/docs/input/docs/issue-providers/eslint/requirements.md deleted file mode 100644 index dbca0cec9..000000000 --- a/docs/input/docs/issue-providers/eslint/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.EsLint addin. ---- -The requirements for using the [Cake.Issues.EsLint addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.EsLint addin]: https://www.nuget.org/packages/Cake.Issues.EsLint -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/gitrepository/examples.md b/docs/input/docs/issue-providers/gitrepository/examples.md deleted file mode 100644 index 28c116f38..000000000 --- a/docs/input/docs/issue-providers/gitrepository/examples.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.GitRepository addin. ---- -The following example prints the number of binary files which are not tracked by [Git Large File Storage] in a repository. - -:::{.alert .alert-warning} -Checking binary files requires Git and [Git Large File Storage] available on the local machine. -::: - -To analyze Git repositories you need to import the core addin and the Git repository support: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.GitRepository" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -We need some global variables: - -```csharp -var repoRootPath = @"c:\repo"; -``` - -The following task will analyze the repository: - -```csharp -Task("Analyze-Repo") -.Does(() => -{ - // Read Issues. - var settings = - new GitRepositoryIssuesSettings - { - CheckBinaryFilesTrackedByLfs = true - }; - - var issues = - ReadIssues( - GitRepositoryIssues(settings), - repoRootPath); - - Information("{0} issues are found.", issues.Count()); -}); -``` - -[Git Large File Storage]: https://git-lfs.github.com/ \ No newline at end of file diff --git a/docs/input/docs/issue-providers/gitrepository/features.md b/docs/input/docs/issue-providers/gitrepository/features.md deleted file mode 100644 index 55dbdfcc4..000000000 --- a/docs/input/docs/issue-providers/gitrepository/features.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.GitRepository addin. ---- -The [Cake.Issues.GitRepository addin] provides the following features. - -# Basic features - -* Checks path length of files. See [FilePathTooLong] for details. -* Checks if binary files are tracked by Git LFS. See [BinaryFileNotTrackedByLfs] for details. - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|---------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | | - -[Cake.Issues.GitRepository addin]: https://www.nuget.org/packages/Cake.Issues.GitRepository -[FilePathTooLong]: rules/FilePathTooLong -[BinaryFileNotTrackedByLfs]: rules/BinaryFileNotTrackedByLfs diff --git a/docs/input/docs/issue-providers/gitrepository/index.cshtml b/docs/input/docs/issue-providers/gitrepository/index.cshtml deleted file mode 100644 index 35d944fbd..000000000 --- a/docs/input/docs/issue-providers/gitrepository/index.cshtml +++ /dev/null @@ -1,11 +0,0 @@ ---- -Title: Git Repository -Description: Issue provider which allows you to analyzing Git repositories and create issues resulting from it. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for analyzing Git repositories is implemented in the Cake.Issues.GitRepository addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/gitrepository/requirements.md b/docs/input/docs/issue-providers/gitrepository/requirements.md deleted file mode 100644 index e491db400..000000000 --- a/docs/input/docs/issue-providers/gitrepository/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.GitRepository addin. ---- -The requirements for using the [Cake.Issues.GitRepository addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.GitRepository addin]: https://www.nuget.org/packages/Cake.Issues.GitRepository -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md b/docs/input/docs/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md deleted file mode 100644 index ccf4197bb..000000000 --- a/docs/input/docs/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -Title: BinaryFileNotTrackedByLfs -Description: A binary file is not tracked by Git LFS. ---- - - - - - -## Cause - -A binary file in the repository is not tracked by [Git Large File System]. - -## Rule description - -By its nature Git repositories cannot handle binary files well and will keep a full copy of that file in the repository every time a change to that file is committed. -Considering that you always clone the full history of a repository, and not only the latest version, using binary files in a repository considerably slow downs the operation. -[Git Large File System] replaces large files with small text pointers inside the Git repository, while storing the file contents on a remote server. - -:::{.alert .alert-info} -The rule assumes that all files, which are not text files are binary files. -This also includes for example empty files. -::: - -## How to fix violations - -Track the file with [Git Large File System]. - -[Git Large File System]: https://git-lfs.github.com/ diff --git a/docs/input/docs/issue-providers/gitrepository/rules/index.cshtml b/docs/input/docs/issue-providers/gitrepository/rules/index.cshtml deleted file mode 100644 index 31e0d52d1..000000000 --- a/docs/input/docs/issue-providers/gitrepository/rules/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Title: Rules -Description: Rules of the Cake.Issues.GitRepository provider. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/index.cshtml b/docs/input/docs/issue-providers/index.cshtml deleted file mode 100644 index f1b8a0c4c..000000000 --- a/docs/input/docs/issue-providers/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 50 -Description: Documentation of the different issue provider addins. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/inspectcode/examples.md b/docs/input/docs/issue-providers/inspectcode/examples.md deleted file mode 100644 index 5d9dbaf9e..000000000 --- a/docs/input/docs/issue-providers/inspectcode/examples.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.InspectCode addin. ---- -The following example will call [JetBrains InspectCode] and output the number of warnings. - -To call [JetBrains InspectCode] from a Cake script you need to add the `JetBrains.ReSharper.CommandLineTools`: - -```csharp -#tool "nuget:?package=JetBrains.ReSharper.CommandLineTools" -``` - -To read issues from InspectCode log files you need to import the core addin and the InspectCode support: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -We need some global variables: - -```csharp -var logPath = @"c:\build\inspectcode.xml"; -var repoRootPath = @"c:\repo"; -``` - -The following task will run [JetBrains InspectCode] and write a log file: - -```csharp -Task("Analyze-Project").Does(() => -{ - // Run InspectCode. - var settings = new InspectCodeSettings() { - OutputFile = logPath - }; - - InspectCode(repoRootPath.CombineWithFilePath("MySolution.sln"), settings); -}); -``` - -Finally you can define a task where you call the core addin with the desired issue provider. - -```csharp -Task("Read-Issues") - .IsDependentOn("Analyze-Project") - .Does(() => - { - // Read Issues. - var issues = - ReadIssues( - InspectCodeIssuesFromFilePath(logPath), - repoRootPath); - - Information("{0} issues are found.", issues.Count()); - }); -``` - -[JetBrains InspectCode]: https://www.jetbrains.com/help/resharper/InspectCode.html diff --git a/docs/input/docs/issue-providers/inspectcode/features.md b/docs/input/docs/issue-providers/inspectcode/features.md deleted file mode 100644 index 93462f82d..000000000 --- a/docs/input/docs/issue-providers/inspectcode/features.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.InspectCode addin. ---- -The [Cake.Issues.InspectCode addin] provides the following features: - -# Basic features - -* Reads warnings from [JetBrains InsepectCode] log files. -* Provides URLs for issues containing a Wiki URL. - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|----------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | For issues containing a Wiki Url | - -[JetBrains InsepectCode]: https://www.jetbrains.com/help/resharper/2017.1/InspectCode.html -[Cake.Issues.InspectCode addin]: https://www.nuget.org/packages/Cake.Issues.InspectCode diff --git a/docs/input/docs/issue-providers/inspectcode/index.cshtml b/docs/input/docs/issue-providers/inspectcode/index.cshtml deleted file mode 100644 index 4f18b059f..000000000 --- a/docs/input/docs/issue-providers/inspectcode/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: InspectCode -Description: Issue provider which allows you to read issues logged by JetBrains Inspect Code. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading issues reported by JetBrains Inspect Code - is implemented in the Cake.Issues.InspectCode addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/inspectcode/requirements.md b/docs/input/docs/issue-providers/inspectcode/requirements.md deleted file mode 100644 index 097fe05e6..000000000 --- a/docs/input/docs/issue-providers/inspectcode/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Inspectcode addin. ---- -The requirements for using the [Cake.Issues.InspectCode addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.InspectCode addin]: https://www.nuget.org/packages/Cake.Issues.InspectCode -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/markdownlint/examples.md b/docs/input/docs/issue-providers/markdownlint/examples.md deleted file mode 100644 index b81ddec24..000000000 --- a/docs/input/docs/issue-providers/markdownlint/examples.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.Markdownlint addin. ---- -The following example will call [markdownlint-cli] to lint some markdown files and outputs the number of warnings. - -To call [markdownlint-cli] from a Cake script you can use the [Cake.Markdownlint] addin. - -```csharp -#addin "Cake.Markdownlint" -``` - -To read issues from markdownlint-cli log files you need to import the core addin and the markdownlint support: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.Markdownlint" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -We need some global variables: - -```csharp -var logPath = @"c:\build\markdownlint.log"; -var repoRootFolder = MakeAbsolute(Directory("./")); -``` - -The following task will run [markdownlint-cli] and write a log file: - -```csharp -Task("Lint-Documentation").Does(() => -{ - // Run markdownlint-cli. - var settings = - MarkdownlintNodeJsRunnerSettings.ForDirectory(repoRootPath.Combine("docs")); - settings.OutputFile = logPath; - settings.ThrowOnIssue = false; - RunMarkdownlintNodeJs(settings); -}); -``` - -Finally you can define a task where you call the core addin with the desired issue provider. - -```csharp -Task("Read-Issues") - .IsDependentOn("Lint-Documentation") - .Does(() => - { - // Read Issues. - var issues = - ReadIssues( - MarkdownlintIssuesFromFilePath( - logPath, - MarkdownlintCliLogFileFormat), - repoRootPath); - - Information("{0} issues are found.", issues.Count()); - }); -``` - -[markdownlint-cli]: https://github.com/igorshubovych/markdownlint-cli -[Cake.Markdownlint]: https://www.nuget.org/packages/Cake.Markdownlint/ diff --git a/docs/input/docs/issue-providers/markdownlint/features.md b/docs/input/docs/issue-providers/markdownlint/features.md deleted file mode 100644 index 9b6d2d63b..000000000 --- a/docs/input/docs/issue-providers/markdownlint/features.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.Markdownlint addin. ---- -The [Cake.Issues.Markdownlint addin] provides the following features. - -# Basic features - -* Reads warnings from [Markdownlint] logfiles. -* Provides URLs for all issues. -* Support for custom URL resolving using the [MarkdownlintAddRuleUrlResolver] alias (except for [MarkdownlintCliJsonLogFileFormat]). - -# Supported log file formats - -* [MarkdownlintLogFileFormat] alias for reading issues from [Markdownlint] output generated with `options.resultVersion` set to 1. -* [MarkdownlintCliLogFileFormat] alias for reading issues from [markdownlint-cli] log files. -* [MarkdownlintCliJsonLogFileFormat] alias for reading issues from [markdownlint-cli] log files created with the `--json` parameter. - - :::{.alert .alert-info} - [markdownlint-cli] can be run with the [Cake.Markdownlint] addin. - ::: - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|-----------------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | Only for [MarkdownlintCliLogFileFormat] | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | Always [IssuePriority.Warning] | -| | `IIssue.PriorityName` | Always `Warning` | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | Support for custom rules can be added through a custom [MarkdownlintAddRuleUrlResolver] except for [MarkdownlintCliJsonLogFileFormat] | - -[Cake.Issues.Markdownlint addin]: https://www.nuget.org/packages/Cake.Issues.Markdownlint -[Markdownlint]: https://github.com/DavidAnson/markdownlint -[markdownlint-cli]: https://github.com/igorshubovych/markdownlint-cli -[Cake.Markdownlint]: https://www.nuget.org/packages/Cake.Markdownlint/ -[MarkdownlintAddRuleUrlResolver]: ../../../api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/2EE35F55 -[MarkdownlintLogFileFormat]: ../../../api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/EBFF674A -[MarkdownlintCliLogFileFormat]: ../../../api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/B518F49E -[MarkdownlintCliJsonLogFileFormat]: ../../../api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F -[IssuePriority.Warning]: ../../../api/Cake.Issues/IssuePriority/7A0CE07F diff --git a/docs/input/docs/issue-providers/markdownlint/index.cshtml b/docs/input/docs/issue-providers/markdownlint/index.cshtml deleted file mode 100644 index ab68430a4..000000000 --- a/docs/input/docs/issue-providers/markdownlint/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: markdownlint -Description: Issue provider which allows you to read issues logged by markdownlint. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading issues reported by markdownlint - is implemented in the Cake.Issues.Markdownlint addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/markdownlint/requirements.md b/docs/input/docs/issue-providers/markdownlint/requirements.md deleted file mode 100644 index e7d7f9a35..000000000 --- a/docs/input/docs/issue-providers/markdownlint/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Markdownlint addin. ---- -The requirements for using the [Cake.Issues.Markdownlint addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.Markdownlint addin]: https://www.nuget.org/packages/Cake.Issues.Markdownlint -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/msbuild/examples.md b/docs/input/docs/issue-providers/msbuild/examples.md deleted file mode 100644 index b00940182..000000000 --- a/docs/input/docs/issue-providers/msbuild/examples.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.MsBuild addin. ---- -The following example will call MsBuild to build the solution and outputs the number of warnings. - -To read issues from MsBuild log files you need to import the core addin and the MsBuild support: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -``` - -In this example the log file is written by the `XmlFileLogger` class from [MSBuild Extension Pack]. -In order to use the above logger, the following line will download and install the tool from NuGet.org: - -```csharp -#tool "nuget:?package=MSBuild.Extension.Pack" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -We need some global variables: - -```csharp -var logPath = @"c:\build\msbuild.log"; -var repoRootPath = @"c:\repo"; -``` - -The following task will build the solution and write a log file: - -```csharp -Task("Build-Solution").Does(() => -{ - // Build solution. - var settings = - new MSBuildSettings() - .WithLogger( - Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath, - "XmlFileLogger", - $"logfile=\"{logPath}\";verbosity=Detailed;encoding=UTF-8" - ); - - MSBuild(repoRootPath.CombineWithFilePath("MySolution.sln"), settings); -}); -``` - -Finally you can define a task where you call the core addin with the desired issue provider. -The following example reads issues reported as MsBuild warnings by the `XmlFileLogger` -class from [MSBuild Extension Pack]: - -```csharp -Task("Read-Issues") - .IsDependentOn("Build-Solution") - .Does(() => - { - // Read Issues. - var issues = - ReadIssues( - MsBuildIssuesFromFilePath( - logPath, - MsBuildXmlFileLoggerFormat), - repoRootFolder); - - Information("{0} issues are found.", issues.Count()); - }); -``` - -[MSBuild Extension Pack]: https://github.com/mikefourie-zz/MSBuildExtensionPack diff --git a/docs/input/docs/issue-providers/msbuild/features.md b/docs/input/docs/issue-providers/msbuild/features.md deleted file mode 100644 index 8f92f5fbc..000000000 --- a/docs/input/docs/issue-providers/msbuild/features.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.MsBuild addin. ---- -The [Cake.Issues.MsBuild addin] provides the following features. - -# Basic features - -* Reads errors and warnings from MSBuild log files. -* Provides URLs for all code analysis (`CA*`) and StyleCop (`SA*`) warnings. -* Support for custom URL resolving using the [MsBuildAddRuleUrlResolver] alias. - -# Supported log file formats - -* [MsBuildBinaryLogFileFormat] alias for reading issues from binary log files. -* [MsBuildXmlFileLoggerFormat] alias for reading issues from log files created by [MSBuild Extension Pack XmlFileLogger]. - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|---------------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | Only for [MsBuildXmlFileLoggerFormat] | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | For code analysis (`CA*`) and StyleCop (`SA*`) warnings. Support for additional rules can be added through a custom [MsBuildAddRuleUrlResolver] | - -[Cake.Issues.MsBuild addin]: https://www.nuget.org/packages/Cake.Issues.MsBuild -[MSBuild Extension Pack XmlFileLogger]: https://github.com/mikefourie-zz/MSBuildExtensionPack/blob/master/Solutions/Main/Loggers/Framework/XmlFileLogger.cs -[MsBuildAddRuleUrlResolver]: ../../../api/Cake.Issues.MsBuild/MsBuildIssuesAliases/93C21487 -[MsBuildBinaryLogFileFormat]: ../../../api/Cake.Issues.MsBuild/MsBuildIssuesAliases/AD50C7E1 -[MsBuildXmlFileLoggerFormat]: ../../../api/Cake.Issues.MsBuild/MsBuildIssuesAliases/051D7B6E -[IssuePriority.Warning]: ../../../api/Cake.Issues/IssuePriority/7A0CE07F diff --git a/docs/input/docs/issue-providers/msbuild/index.cshtml b/docs/input/docs/issue-providers/msbuild/index.cshtml deleted file mode 100644 index 394da8734..000000000 --- a/docs/input/docs/issue-providers/msbuild/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: MsBuild -Description: Issue provider which allows you to read warnings logged by MsBuild. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading warnings reported by MsBuild is implemented in the - Cake.Issues.MsBuild addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/msbuild/requirements.md b/docs/input/docs/issue-providers/msbuild/requirements.md deleted file mode 100644 index bc25ea62c..000000000 --- a/docs/input/docs/issue-providers/msbuild/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.MsBuild addin. ---- -The requirements for using the [Cake.Issues.MsBuild addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.MsBuild addin]: https://www.nuget.org/packages/Cake.Issues.MsBuild -[release notes]: release-notes diff --git a/docs/input/docs/issue-providers/terraform/features.md b/docs/input/docs/issue-providers/terraform/features.md deleted file mode 100644 index dbb414f25..000000000 --- a/docs/input/docs/issue-providers/terraform/features.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.Terraform addin. ---- -The [Cake.Issues.Terraform addin] provides the following features: - -# Basic features - -* Reads warnings from [Terraform validate command]. - -# Supported IIssue properties - -| | Property | Remarks | -|--------------------------------------------------------------------|-----------------------------------|----------------------------------| -| | `IIssue.ProviderType` | | -| | `IIssue.ProviderName` | | -| | `IIssue.Run` | Can be set while reading issues | -| | `IIssue.Identifier` | Set to `IIssue.MessageText` | -| | `IIssue.ProjectName` | | -| | `IIssue.ProjectFileRelativePath` | | -| | `IIssue.AffectedFileRelativePath` | | -| | `IIssue.Line` | | -| | `IIssue.EndLine` | | -| | `IIssue.Column` | | -| | `IIssue.EndColumn` | | -| | `IIssue.FileLink` | Can be set while reading issues | -| | `IIssue.MessageText` | | -| | `IIssue.MessageHtml` | | -| | `IIssue.MessageMarkdown` | | -| | `IIssue.Priority` | | -| | `IIssue.PriorityName` | | -| | `IIssue.Rule` | | -| | `IIssue.RuleUrl` | | - -[Terraform validate command]: https://www.terraform.io/docs/cli/commands/validate.html -[Cake.Issues.Terraform addin]: https://cakebuild.net/extensions/cake-issues-terraform/ diff --git a/docs/input/docs/issue-providers/terraform/index.cshtml b/docs/input/docs/issue-providers/terraform/index.cshtml deleted file mode 100644 index 184598ebb..000000000 --- a/docs/input/docs/issue-providers/terraform/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Terraform -Description: Issue provider which allows you to read issues from Terraform validate command. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for reading issues reported by Terraform validate command - is implemented in the Cake.Issues.Terraform addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/issue-providers/terraform/requirements.md b/docs/input/docs/issue-providers/terraform/requirements.md deleted file mode 100644 index 4b7a408f3..000000000 --- a/docs/input/docs/issue-providers/terraform/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Terraform addin. ---- -The requirements for using the [Cake.Issues.Terraform addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.Terraform addin]: https://cakebuild.net/extensions/cake-issues-terraform/ -[release notes]: release-notes diff --git a/docs/input/docs/overview/features.md b/docs/input/docs/overview/features.md deleted file mode 100644 index cb1def00a..000000000 --- a/docs/input/docs/overview/features.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -Order: 20 -Description: Overview about core features. ---- -The Cake Issues addins for Cake allows you to read issues from any analyzer or linter, -create reports or write issues to comments in pull requests. - -# Recipe Functionality - -See [Supported Tools] for a list of tools supported by [Cake.Issues.Recipe]. - -# Supported Core Functionality - -The core addins provide a modular architecture, allowing to easily enhance it for supporting additional analyzers, linters, -report formats and code review systems. - -## Cake.Issues - -Addin for creating and reading issues providing the following functionality: - -* [NewIssue] alias for creating issues in the build script. -* [ReadIssues] aliases for reading issues from an issue provider. -* Support for reading issues from multiple issue providers. -* Support for reading issues in multiple formats (Plain text, Markdown, HTML) if supported by issue provider. -* Support for creating links to file & location on source code hosting system (GitHub, Azure Repos, etc). -* Support for passing additional run information to identify specific runs. - -## Cake.Issues.Reporting - -Addin for creating reports providing the following functionality: - -* [CreateIssueReport] aliases for creating reports about issues. -* Support for creating reports with issues from multiple issue providers. - -## Cake.Issues.PullRequests - -Addin for writing issues as comments to pull requests providing the following functionality: - -* [ReportIssuesToPullRequest] aliases for writing issues as comments to pull requests. -* Support for reporting issues from multiple issue providers. -* Support for passing custom issue filter routines in `ReportIssuesToPullRequestSettings.IssueFilters`. -* Advanced support to limit number of maximum issues per run, across multiple runs or per issue provider by setting - `ReportIssuesToPullRequestSettings.MaxIssuesToPost`, `ReportIssuesToPullRequestSettings.MaxIssuesToPostAcrossRuns`, - `ReportIssuesToPullRequestSettings.MaxIssuesToPostForEachIssueProvider` and `ReportIssuesToPullRequestSettings.ProviderIssueLimits`. -* Returns all issues as provided by the issue providers and the issues reported to the pull request. - -Concrete pull request systems can implement optional capabilities which will provide the following functionality: - -* Filter by modified files ([BaseFilteringByModifiedFilesCapability]) - * Filtering issues to only those related to changed files in a pull request. -* Check commit ID ([BaseCheckingCommitIdCapability]) - * Skipping posting of issues if checked source code is outdated by setting `ReportIssuesToPullRequestSettings.CommitId`. -* Support for discussion threads ([BaseDiscussionThreadsCapability]) - * Automatic resolving of issues fixed in subsequent commits. - * Automatic reopening of still existing issues which are already closed on pull request. - * Comparing issues by identifier to not rely on message or line numbers. - -# Supported Issue Providers - -See [Issue Provider Addins] for a list of currently supported analyzers and linters. - -# Supported Report Formats - -See [Report Format Addins] for a list of currently supported report output formats. - -# Supported Pull Request Systems - -See [Pull Request System Addins] for a list of currently supported pull request systems. - -[Supported Tools]: ../recipe/supported-tools -[Cake.Issues.Recipe]: ../recipe/ -[NewIssue]: ../../api/Cake.Issues/Aliases/DC3A3FD7 -[ReadIssues]: ../../api/Cake.Issues/Aliases/713F15FD -[CreateIssueReport]: ../../api/Cake.Issues.Reporting/Aliases/C778C70A -[ReportIssuesToPullRequest]: ../../api/Cake.Issues.PullRequests/Aliases/5350C413 -[BaseFilteringByModifiedFilesCapability]: ../../api/Cake.Issues.PullRequests/BaseFilteringByModifiedFilesCapability_1 -[BaseCheckingCommitIdCapability]: ../../api/Cake.Issues.PullRequests/BaseCheckingCommitIdCapability_1 -[BaseDiscussionThreadsCapability]: ../../api/Cake.Issues.PullRequests/BaseDiscussionThreadsCapability_1 -[Issue Provider Addins]: ../../addins/issue-provider/ -[Report Format Addins]: ../../addins/reporting-format/ -[Pull Request System Addins]: ../../addins/pull-request-system/ diff --git a/docs/input/docs/overview/index.cshtml b/docs/input/docs/overview/index.cshtml deleted file mode 100644 index 67ee8bb24..000000000 --- a/docs/input/docs/overview/index.cshtml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Order: 10 -Description: Overview about features and requirements of the Cake Issues Addin. ---- - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/overview/introduction.md b/docs/input/docs/overview/introduction.md deleted file mode 100644 index 62ba24292..000000000 --- a/docs/input/docs/overview/introduction.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -Order: 10 -Description: Introduction ---- -Do you want to break your build on JetBrains InspectCode issues? -Do you want to create nice reports for StyleCop issues in your code? -Do you want to have ESLint issues reported as comments to pull requests? -The Cake.Issues addins allows you to do this and much more. -Read issues from different analyzer or linters, create reports or add them as comments to pull requests. - -While some linting tools provide nice reporting capabilities, others don't. -Some build systems provide tasks to report issues into pull requests. -But if you're using another build system your out of luck. -Maybe you found a new nice linting tool which does exactly what you need, -but probably it won't integrate well with your existing other linting tools. - -The Cake.Issues addins tries to solve this, by providing a common and extensible infrastructure -for issue management in Cake build scripts. - -Unlike other Cake addins, the Cake Issues addin consists of over 15 different addins, -working together and providing over 75 aliases which can be used in Cake build scripts to work with issues. -The addins are built in a [modular architecture] and are providing different [extension points] which allows to easily -enhance them for supporting additional analyzers, linters, report formats and code review systems. - -:::{.alert .alert-success} -To get started you can use one of the [Cake.Issues recipes], which bring support for different linters and -integration with build and pull request systems out-of-the box in a single and easy to use NuGet package. -::: - - - Presentation - - - Tutorials - - -[modular architecture]: /docs/fundamentals/architecture -[extension points]: /docs/extending/ -[Cake.Issues recipes]: /docs/recipe/overview diff --git a/docs/input/docs/overview/release-notes/Cake.Issues.PullRequests.md b/docs/input/docs/overview/release-notes/Cake.Issues.PullRequests.md deleted file mode 100644 index 0fe9da522..000000000 --- a/docs/input/docs/overview/release-notes/Cake.Issues.PullRequests.md +++ /dev/null @@ -1,930 +0,0 @@ ---- -Title: Cake.Issues.PullRequests Release Notes -Description: Release notes for Cake.Issues.PullRequests ---- -

    -

    -

    -Starting with Cake.Issues 1.0, release notes for Cake.Issues.PullRequests will be listed with Cake.Issues Release Notes. -The release notes on this page are only for versions of Cake.Issues.PullRequests prior to 1.0. -

    -
    -

    - -## 0.9.1 (October 08, 2020) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/15?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.x -- Targeting .NET Standard 2.0 - -__Bug__ - -- [__#173__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/173) Setting a ProviderLimit to zero will ignore the limit instead of posting 0 items - - -## 0.9.0 (August 22, 2020) - - -As part of this release we had [4 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/13?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.x -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#154__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/154) Update to Cake.Issues 0.9.0 - -__Features__ - -- [__#143__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/143) Use identifier different from displayed message to compare existing issues -- [__#142__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/142) Add setting to limit number of issues posted to a pull request across multiple runs for issue providers -- [__#141__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/141) Add possibility to limit posted issues for a specific provider - - -## 0.9.0-beta.3 (August 01, 2020) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.0-beta0004 -- Targeting .NET Standard 2.0 - -__Breaking Changes__ - -- Update to Cake.Issues 0.9.0-beta0004 -## 0.9.0-beta.2 (July 18, 2020) - - -As part of this release we had 3 issues closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.0-beta0002 -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#143__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/143) Use identifier different from displayed message to compare existing issues -- [__#142__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/142) Add setting to limit number of issues posted to a pull request across multiple runs for issue providers -- [__#141__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/141) Add possibility to limit posted issues for a specific provider - - -## 0.9.0-beta.1 (July 14, 2020) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.0-beta0002 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#154__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/154) Update to Cake.Issues 0.9.0 - - -## 0.8.1 (May 03, 2020) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/12?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.x -- Targeting .NET Standard 2.0 - -__Bug__ - -- [__#136__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/136) Don't log issues if they are not posted due to outdated commit - -__Improvement__ - -- [__#134__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/134) Add setting to limit number of issues posted to a pull request across multiple runs - - -## 0.8.1-beta.2 (April 29, 2020) - - -As part of this release we had 1 issue closed compared to 0.8.1-beta.1. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.x -- Targeting .NET Standard 2.0 - -__Bug__ - -- [__#145__](https://github.com/cake-contrib/Cake.Issues.PullRequests/pull/145) Consider unresolved issues for MaxIssuesToPostAcrossRuns (Thanks @janniksam) -## 0.8.1-beta.1 (April 27, 2020) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/12?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.x -- Targeting .NET Standard 2.0 - -__Improvement__ - -- [__#134__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/134) Add setting to limit number of issues posted to a pull request across multiple runs - -__Bug__ - -- [__#136__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/136) Don't log issues if they are not posted due to outdated commit -## 0.8.0 (October 17, 2019) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/11?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.x -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#113__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/113) Update to Cake.Issues 0.8.0 - -__Improvements__ - -- [__#118__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/118) Embed NuGet package icon -- [__#116__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/116) Improve performance logging for issue filtering - - -## 0.8.0-beta.1 (October 11, 2019) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/11?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.0-beta.1 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#113__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/113) Update to Cake.Issues 0.8.0 - - -## 0.7.0 (May 30, 2019) - - -As part of this release we had [32 commits](https://github.com/cake-contrib/Cake.Issues.PullRequests/compare/0.6.2...0.7.0) which resulted in [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/milestone/10?closed=1) being closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.7.x -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#78__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/78) Update to Cake.Issues 0.7.0 -- [__#77__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/77) Build against Cake 0.33.0 - - -## 0.7.0-beta.1 (April 19, 2019) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.7.x -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#78__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/78) Update to Cake.Issues 0.7.0 -- [__#77__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/77) Build against Cake 0.33.0 - - -## 0.6.2 (December 15, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=9&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x - -__Bug__ - -- [__#50__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/50) No exception should be thrown if an empty list of issues is passed - - -## 0.6.1 (September 04, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=8&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x - -__Improvement__ - -- [__#28__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/28) Provide alias which a list of issues can be passed - - -## 0.6.1-beta.1 (September 04, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x - -__Improvement__ - -- [__#28__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/28) Provide alias which a list of issues can be passed - - -## 0.6.0 (August 24, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=7&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x - -__Breaking changes__ - -- [__#45__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/45) Update to Cake.Issues 0.6.0 -- [__#43__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/43) Split pull request interface into different capabilities - - -## 0.6.0-beta.2 (August 20, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.0-beta.2 - -__Breaking changes__ - -- Update to Cake.Issues 0.6.0 Beta 2 -- Fix error with namespace import - - -## 0.6.0-beta.1 (August 18, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=7&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.0-beta.1 - -__Breaking changes__ - -- [__#45__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/45) Update to Cake.Issues 0.6.0 -- [__#43__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/43) Split pull request interface into different capabilities - - -## 0.5.0 (August 17, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=6&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.5.x - -__Breaking change__ - -- [__#41__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/41) Update to Cake.Issues 0.5.0 - -__Improvement__ - -- [__#44__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/44) Add repository metadata to nuspec - - -## 0.5.0-beta.1 (August 07, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.5.0-beta.2 - -__Breaking change__ - -- [__#41__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/41) Update to Cake.Issues 0.5.0 - - -## 0.4.0 (July 28, 2018) - - -As part of this release we had [5 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=5&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.x - -__Breaking changes__ - -- [__#39__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/39) Update to Cake.Issues 0.4.0 -- [__#30__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/30) Support different resolutions for comment thread resolving - -__Bugs__ - -- [__#36__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/36) Only resolve comments with the same comment source -- [__#29__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/29) Filtering on existing comments sometimes fails - - -## 0.4.0-beta.2 (July 25, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.0-beta.2 - -__Breaking changes__ - -- Update Cake.Issues to 0.4.0-beta.2 -## 0.4.0-beta.1 (July 24, 2018) - - -As part of this release we had 5 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.0-beta.1 - -__Breaking changes__ - -- [__#39__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/39) Update to Cake.Issues 0.4.0 -- [__#30__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/30) Support different resolutions for comment thread resolving - -__Bugs__ - -- [__#36__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/36) Only resolve comments with the same comment source -- [__#29__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/29) Filtering on existing comments sometimes fails - - -## 0.3.1 (June 21, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=4&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.3.x - -__Feature__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/25) Add support to pass additional filter criterias - - -## 0.3.0 (June 04, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=3&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.3.x - -__Breaking changes__ - -- [__#22__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/22) Build against Cake 0.28.0 -- [__#20__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/20) Update to Cake.Issues 0.3.0 - - -## 0.3.0-beta.2 (June 02, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=3&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.3.0-beta.2 - -__Breaking changes__ - -- [__#22__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/22) Build against Cake 0.28.0 -- Update to Cake.Issues 0.3.0-beta.2 -## 0.3.0-beta.1 (May 31, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.3.0-beta.1 - -__Breaking change__ - -- [__#20__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/20) Update to Cake.Issues 0.3.0 - - -## 0.2.0 (May 22, 2018) - - -As part of this release we had [26 commits](https://github.com/cake-contrib/Cake.Issues.PullRequests/compare/0.1.0...0.2.0) which resulted in [6 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=2&state=closed) being closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.x - -__Breaking changes__ - -- [__#18__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/18) Build against Cake 0.26.0 -- [__#16__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/16) Allow to limit maximum issues per issue provider -- [__#14__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/14) Update to Cake.Issues 0.2.0 - -__Improvements__ - -- [__#9__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/9) Migrate to .NET Core -- [__#2__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/2) Check if pull request is still on the same commit before posting issues - - -## 0.2.0-beta.2 (March 10, 2018) - - -As part of this release we had the following issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.0-beta.4 - -__Bug__ - -- Mark as CLS compliant - -## 0.2.0-beta.1 (March 08, 2018) - - -As part of this release we had 6 issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.0-beta.3 - -__Breaking changes__ - -- [__#18__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/18) Build against Cake 0.26.0 -- [__#16__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/16) Allow to limit maximum issues per issue provider -- [__#14__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/14) Update to Cake.Issues 0.2.0 - -__Improvements__ - -- [__#9__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/9) Migrate to .NET Core -- [__#2__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/2) Check if pull request is still on the same commit before posting issues - - -## 0.1.0 (September 16, 2017) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues?milestone=1&state=closed) closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Cake.Issues 0.1.x - -__Breaking change__ - -- [__#8__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/8) Update to Cake 0.22 - -__Feature__ - -- [__#1__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/1) First version based on Cake.Prca - - -## 0.1.0-beta.3 (September 13, 2017) - - -As part of this release we had 2 issue closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Cake.Issues 0.1.0-beta.4 - -__Breaking Changes__ - -- Target .NET Framework 4.6 -- Build against Cake 0.22.0 -- Build against Cake.Issues 0.1.0-beta0004 -## 0.1.0-beta.2 (September 03, 2017) - - -As part of this release we had 2 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.3 - -__Breaking Changes__ - -- Update Cake.Issues to 0.1.0-beta0003 -- Move everything into single namespace -## 0.1.0-beta.1 (September 02, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.2 - -__Feature__ - -- [__#1__](https://github.com/cake-contrib/Cake.Issues.PullRequests/issues/1) First version based on Cake.Prca -e provider infrastructure - - -## 0.4.1 (August 03, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues/issues?milestone=6&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Feature__ - -- [__#39__](https://github.com/cake-contrib/Cake.Issues/issues/39) Provide infrastructure for issue provider with different formats - - -## 0.4.0 (July 28, 2018) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=5&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#35__](https://github.com/cake-contrib/Cake.Issues/issues/35) Replace `IIssue.Project` with `IIssue.ProjectFileRelativePath` and `IIssue.ProjectName` - -__Improvement__ - -- [__#38__](https://github.com/cake-contrib/Cake.Issues/issues/38) Update XUnit to 2.4.0 - - -## 0.4.0-beta.2 (July 24, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- [__#38__](https://github.com/cake-contrib/Cake.Issues/issues/38) Update XUnit to 2.4.0 - - -## 0.4.0-beta.1 (July 24, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#35__](https://github.com/cake-contrib/Cake.Issues/issues/35) Replace `IIssue.Project` with `IIssue.ProjectFileRelativePath` and `IIssue.ProjectName`. -## 0.3.1 (June 20, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues/issues?milestone=4&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Feature__ - -- [__#27__](https://github.com/cake-contrib/Cake.Issues/issues/27) Add alias for creating issues from Cake scripts - - -## 0.3.0 (June 03, 2018) - - -As part of this release we had [14 commits](https://github.com/cake-contrib/Cake.Issues/compare/0.2.0...0.3.0) which resulted in [6 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=3&state=closed) being closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#29__](https://github.com/cake-contrib/Cake.Issues/issues/29) Make priority optional -- [__#28__](https://github.com/cake-contrib/Cake.Issues/issues/28) Build against Cake 0.28.0 -- [__#26__](https://github.com/cake-contrib/Cake.Issues/issues/26) Add fluent API for Issue creation -- [__#22__](https://github.com/cake-contrib/Cake.Issues/issues/22) Add PriorityName to IIssue -- [__#21__](https://github.com/cake-contrib/Cake.Issues/issues/21) Add ProviderName to IIssue - -__Feature__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues/issues/25) Add constants for priority values and names - - -## 0.3.0-beta.4 (June 03, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Bug Fix__ - -- Fix argument checking in fluent API - -## 0.3.0-beta.3 (June 03, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- Allow default values in fluent API -## 0.3.0-beta.2 (June 01, 2018) - - -As part of this release we had 4 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#29__](https://github.com/cake-contrib/Cake.Issues/issues/29) Make `IIssue.Priority` optional -- [__#28__](https://github.com/cake-contrib/Cake.Issues/issues/28) Build against Cake 0.28.0 -- [__#26__](https://github.com/cake-contrib/Cake.Issues/issues/26) Add fluent API for Issue creation - -__Feature__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues/issues/25) Add constants for priority values and names - - -## 0.3.0-beta.1 (May 31, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#22__](https://github.com/cake-contrib/Cake.Issues/issues/22) Add `PriorityName` to `IIssue` -- [__#21__](https://github.com/cake-contrib/Cake.Issues/issues/21) Add `ProviderName` to `IIssue` - - -## 0.2.0 (May 21, 2018) - - -As part of this release we had [6 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=2&state=closed) closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#13__](https://github.com/cake-contrib/Cake.Issues/issues/13) Build against Cake 0.26.0 - -__Features__ - -- [__#5__](https://github.com/cake-contrib/Cake.Issues/issues/5) Add project to `IIssue` -- [__#4__](https://github.com/cake-contrib/Cake.Issues/issues/4) Migrate to .NET Standard (Thanks [Tim Johnson](https://github.com/t-johnson)!) - -__Improvements__ - -- [__#20__](https://github.com/cake-contrib/Cake.Issues/issues/20) Make `IIssue.Rule` an optional parameter -- [__#8__](https://github.com/cake-contrib/Cake.Issues/issues/8) Upgrade XUnit to 2.3.0 - - -## 0.2.0-beta.4 (March 07, 2018) - - -As part of this release we had the following issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- Only target .NET Standard 2.0 -## 0.2.0-beta.3 (March 07, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#13__](https://github.com/cake-contrib/Cake.Issues/issues/13) Build against Cake 0.26.0 -## 0.2.0-beta.2 (December 24, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Standard 2.0 - -__Improvements__ - -- [__#8__](https://github.com/cake-contrib/Cake.Issues/issues/8) Upgrade XUnit to 2.3.0 -## 0.2.0-beta.1 (October 15, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#5__](https://github.com/cake-contrib/Cake.Issues/issues/5) Add project to `IIssue` -- [__#4__](https://github.com/cake-contrib/Cake.Issues/issues/4) Migrate to .NET Standard (Thanks [Tim Johnson](https://github.com/t-johnson)!) - - -## 0.1.0 (September 16, 2017) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=1&state=closed) closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Framework 4.6 - -__Breaking change__ - -- [__#3__](https://github.com/cake-contrib/Cake.Issues/issues/3) Update to Cake 0.22 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - -## 0.1.0-beta.4 (September 13, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Framework 4.6 - -__Breaking Changes__ - -- Target .NET Framework 4.6 -- Build against Cake 0.22.0 -## 0.1.0-beta.3 (September 03, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Breaking Changes__ - -- Move everything into single namespace. -## 0.1.0-beta.2 (September 02, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Enhancements__ - -- Add method `Issue.GetProviderTypeName()` for returning provider type name -- Put aliases for reading issues in own category -## 0.1.0-beta.1 (September 01, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - - -- Add method `Issue.GetProviderTypeName()` for returning provider type name -- Put aliases for reading issues in own category -## 0.1.0-beta.1 (September 01, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - -.2 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - diff --git a/docs/input/docs/overview/release-notes/Cake.Issues.Reporting.md b/docs/input/docs/overview/release-notes/Cake.Issues.Reporting.md deleted file mode 100644 index 43a06ec24..000000000 --- a/docs/input/docs/overview/release-notes/Cake.Issues.Reporting.md +++ /dev/null @@ -1,1036 +0,0 @@ ---- -Title: Cake.Issues.Reporting Release Notes -Description: Release notes for Cake.Issues.Reporting ---- -

    -

    -

    -Starting with Cake.Issues 1.0, release notes for Cake.Issues.Reporting will be listed with Cake.Issues Release Notes. -The release notes on this page are only for versions of Cake.Issues.Reporting prior to 1.0. -

    -
    -

    - -## 0.9.0 (August 22, 2020) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.Reporting/milestone/11?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.x -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#115__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/115) Update to Cake.Issues 0.9.0 - - -## 0.9.0-beta.2 (August 01, 2020) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.0-beta0004 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- Update to Cake.Issues 0.9.0-beta0004 - - -## 0.9.0-beta.1 (July 12, 2020) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.9.0-beta0002 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#115__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/115) Update to Cake.Issues 0.9.0 - - -## 0.8.0 (October 17, 2019) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/milestone/10?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.0 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#85__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/85) Update to Cake.Issues 0.8.0 - -__Improvement__ - -- [__#89__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/89) Embed NuGet package icon - - -## 0.8.0-beta.1 (October 11, 2019) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.Reporting/milestone/10?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.8.0-beta.1 -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#85__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/85) Update to Cake.Issues 0.8.0 - - -## 0.7.0 (May 30, 2019) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/milestone/9?closed=1) closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.7.x -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#53__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/53) Update to Cake.Issues 0.7.0 -- [__#52__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/52) Build against Cake 0.33.0 - - -## 0.7.0-beta.1 (April 19, 2019) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.33.0 or higher -- Cake.Issues 0.7.x -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#53__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/53) Update to Cake.Issues 0.7.0 -- [__#52__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/52) Build against Cake 0.33.0 - - -## 0.6.1 (December 01, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=8&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x -- Targeting .NET Standard 2.0 - -__Feature__ - -- [__#5__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/5) Migrate to .NET Standard (Thanks [Vadim Hatsura](https://github.com/vhatsura)) - - -## 0.6.0 (August 24, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=7&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.x - -__Breaking change__ - -- [__#26__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/26) Update to Cake.Issues 0.6.0 - - -## 0.6.0-beta.2 (August 20, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.0-beta.2 - -__Breaking change__ - -- Update to Cake.Issues 0.6.0 Beta 2 - - -## 0.6.0-beta.1 (August 19, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.6.0-beta.1 - -__Breaking change__ - -- [__#26__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/26) Update to Cake.Issues 0.6.0 - - -## 0.5.0 (August 17, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=6&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.5.x - -__Breaking change__ - -- [__#23__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/23) Update to Cake.Issues 0.5.0 - -__Improvement__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/25) Add repository metadata to nuspec - - -## 0.5.0-beta.1 (August 07, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.5.0-beta.2 - -__Breaking change__ - -- [__#23__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/23) Update to Cake.Issues 0.5.0 - - -## 0.4.0 (July 28, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=5&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.x - -__Breaking change__ - -- [__#21__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/21) Update to Cake.Issues 0.4.0 - - -## 0.4.0-beta.2 (July 25, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.0-beta.2 - -__Breaking change__ - -- Update Cake.Issues to 0.4.0-beta.2 - - -## 0.4.0-beta.1 (July 24, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.4.0-beta.1 - -__Breaking change__ - -- [__#21__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/21) Update to Cake.Issues 0.4.0 - - -## 0.3.0 (June 04, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=4&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.3.x - -__Breaking changes__ - -- [__#17__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/17) Build against Cake 0.28.0 -- [__#15__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/15) Update to Cake.Issues 0.3.0 - - -## 0.3.0-beta.2 (June 01, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Cake.Issues 0.3.0-beta.2 - -__Breaking changes__ - -- [__#17__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/17) Build against Cake 0.28.0 -- Update to Cake.Issues 0.3.0-beta.2 - -## 0.3.0-beta.1 (May 31, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.3.0-beta.1 - -__Breaking change__ - -- [__#15__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/15) Update to Cake.Issues 0.3.0 - - -## 0.2.1 (May 25, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=3&state=closed) closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.x - -__Documentation__ - -- [__#13__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/13) Update examples to current version of Cake.Issues.Reporting.Generic - - -## 0.2.0 (May 23, 2018) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=2&state=closed) closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.x - -__Breaking changes__ - -- [__#10__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/10) Build against Cake 0.26.0 -- [__#9__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/9) Update to Cake.Issues 0.2.0 - - -## 0.2.0-beta.2 (May 23, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.x - -__Breaking changes__ - -- Target .NET Framework 4.6.1 instead of 4.62 - - -## 0.2.0-beta.1 (May 23, 2018) - - -As part of this release we had 3 issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Cake.Issues 0.2.x - -__Breaking changes__ - -- [__#10__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/10) Build against Cake 0.26.0 -- [__#9__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/9) Update to Cake.Issues 0.2.0 - - -## 0.1.0 (October 16, 2017) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues.Reporting/issues?milestone=1&state=closed) closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Cake.Issues 0.1.0 - -__Breaking change__ - -- [__#3__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/3) Update to Cake 0.22 - -__Feature__ - -- [__#1__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/1) Basic implementation - - -## 0.1.0-beta.6 (September 16, 2017) - - -As part of this release we had 2 issue closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Cake.Issues 0.1.0 - -__Breaking Changes__ - -- Build against Cake.Issues 0.1.0 - -__Features__ - -- Add alias for single issue provider -## 0.1.0-beta.5 (September 13, 2017) - - -As part of this release we had 3 issue closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Cake.Issues 0.1.0-beta.4 - -__Breaking Changes__ - -- Target .NET Framework 4.6 -- Build against Cake 0.22.0 -- Build against Cake.Issues 0.1.0-beta0004 -## 0.1.0-beta.4 (September 10, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.3 - -__Breaking Changes__ - -- Add `CreateIssueReportSettings` and requirement to pass in output file path -## 0.1.0-beta.3 (September 10, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.3 - -__Breaking Changes__ - -- Update Cake.Issues to 0.1.0-beta0003 -## 0.1.0-beta.2 (September 09, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.1 - -__Feature__ - -- Move everything into single namespace -## 0.1.0-beta.1 (September 09, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Cake.Issues 0.1.0-beta.1 - -__Feature__ - -- [__#1__](https://github.com/cake-contrib/Cake.Issues.Reporting/issues/1) Basic implementation - - -https://github.com/cake-contrib/Cake.Issues/issues/97) XML comment for `IIssue.ProjectFileRelativePath` mentions `string.Empty` as valid value - - -## 0.6.2 (September 05, 2018) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=10&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Bug__ - -- [__#60__](https://github.com/cake-contrib/Cake.Issues/issues/60) `ByteArrayExtensions.ToStringUsingEncoding` throws an exception if empty byte array is passed - -__Improvements__ - -- [__#62__](https://github.com/cake-contrib/Cake.Issues/issues/62) `ToStringUsingEncoding` should not throw if no preamble exists -- [__#46__](https://github.com/cake-contrib/Cake.Issues/issues/46) Add test cases for `Cake.Issues.Testing` - - -## 0.6.2-beta.2 (September 05, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- [__#46__](https://github.com/cake-contrib/Cake.Issues/issues/46) Add test cases for Cake.Issues.Testing - - -## 0.6.2-beta.1 (September 04, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Bug__ - -- [__#60__](https://github.com/cake-contrib/Cake.Issues/issues/60) ByteArrayExtensions.ToStringUsingEncoding throws an exception if empty byte array is passed - -__Improvement__ - -- [__#62__](https://github.com/cake-contrib/Cake.Issues/issues/62) ToStringUsingEncoding should not throw if no preamble exists - - -## 0.6.1 (September 02, 2018) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=9&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#57__](https://github.com/cake-contrib/Cake.Issues/issues/57) Add method for replacing issues tokens in string -- [__#56__](https://github.com/cake-contrib/Cake.Issues/issues/56) Add extensions for `IIssue` project and file - - -## 0.6.1-beta.1 (August 26, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#57__](https://github.com/cake-contrib/Cake.Issues/issues/57) Add method for replacing issues tokens in string -- [__#56__](https://github.com/cake-contrib/Cake.Issues/issues/56) Add extensions for `IIssue` project and file - - -## 0.6.0 (August 24, 2018) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=8&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#54__](https://github.com/cake-contrib/Cake.Issues/issues/54) `BaseMultiFormatIssueProvider.ReadIssues` ignores format -- [__#50__](https://github.com/cake-contrib/Cake.Issues/issues/50) Add method to check if initialized was called on `BaseIssueComponent` - -__Bug__ - -- [__#53__](https://github.com/cake-contrib/Cake.Issues/issues/53) Typo in comment for `BaseMultiFormatIssueProvider` - - -## 0.6.0-beta.2 (August 19, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#54__](https://github.com/cake-contrib/Cake.Issues/issues/54) BaseMultiFormatIssueProvider.ReadIssues ignores format -## 0.6.0-beta.1 (August 18, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#50__](https://github.com/cake-contrib/Cake.Issues/issues/50) Add method to check if initialized was called on BaseIssueComponent - -__Bug__ - -- [__#53__](https://github.com/cake-contrib/Cake.Issues/issues/53) Typo in comment for BaseMultiFormatIssueProvider - - -## 0.5.0 (August 17, 2018) - - -As part of this release we had [4 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=7&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#44__](https://github.com/cake-contrib/Cake.Issues/issues/44) Improve issue provider infrastructure - -__Features__ - -- [__#48__](https://github.com/cake-contrib/Cake.Issues/issues/48) Add helper for string / byte array conversion -- [__#47__](https://github.com/cake-contrib/Cake.Issues/issues/47) Add helper for working with embedded resources on file system - -__Improvement__ - -- [__#49__](https://github.com/cake-contrib/Cake.Issues/issues/49) Add repository metadata to nuspec - - -## 0.5.0-beta.3 (August 17, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- [__#49__](https://github.com/cake-contrib/Cake.Issues/issues/49) Add repository metadata to nuspec - - -## 0.5.0-beta.2 (August 06, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#48__](https://github.com/cake-contrib/Cake.Issues/issues/48) Add helper for string / byte array conversion -- [__#47__](https://github.com/cake-contrib/Cake.Issues/issues/47) Add helper for working with embedded resources on file system - - -## 0.5.0-beta.1 (August 05, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues/issues?milestone=7&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#44__](https://github.com/cake-contrib/Cake.Issues/issues/44) Improve issue provider infrastructure - - -## 0.4.1 (August 03, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues/issues?milestone=6&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Feature__ - -- [__#39__](https://github.com/cake-contrib/Cake.Issues/issues/39) Provide infrastructure for issue provider with different formats - - -## 0.4.0 (July 28, 2018) - - -As part of this release we had [3 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=5&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#35__](https://github.com/cake-contrib/Cake.Issues/issues/35) Replace `IIssue.Project` with `IIssue.ProjectFileRelativePath` and `IIssue.ProjectName` - -__Improvement__ - -- [__#38__](https://github.com/cake-contrib/Cake.Issues/issues/38) Update XUnit to 2.4.0 - - -## 0.4.0-beta.2 (July 24, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- [__#38__](https://github.com/cake-contrib/Cake.Issues/issues/38) Update XUnit to 2.4.0 - - -## 0.4.0-beta.1 (July 24, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#35__](https://github.com/cake-contrib/Cake.Issues/issues/35) Replace `IIssue.Project` with `IIssue.ProjectFileRelativePath` and `IIssue.ProjectName`. -## 0.3.1 (June 20, 2018) - - -As part of this release we had [1 issue](https://github.com/cake-contrib/Cake.Issues/issues?milestone=4&state=closed) closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Feature__ - -- [__#27__](https://github.com/cake-contrib/Cake.Issues/issues/27) Add alias for creating issues from Cake scripts - - -## 0.3.0 (June 03, 2018) - - -As part of this release we had [14 commits](https://github.com/cake-contrib/Cake.Issues/compare/0.2.0...0.3.0) which resulted in [6 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=3&state=closed) being closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#29__](https://github.com/cake-contrib/Cake.Issues/issues/29) Make priority optional -- [__#28__](https://github.com/cake-contrib/Cake.Issues/issues/28) Build against Cake 0.28.0 -- [__#26__](https://github.com/cake-contrib/Cake.Issues/issues/26) Add fluent API for Issue creation -- [__#22__](https://github.com/cake-contrib/Cake.Issues/issues/22) Add PriorityName to IIssue -- [__#21__](https://github.com/cake-contrib/Cake.Issues/issues/21) Add ProviderName to IIssue - -__Feature__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues/issues/25) Add constants for priority values and names - - -## 0.3.0-beta.4 (June 03, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Bug Fix__ - -- Fix argument checking in fluent API - -## 0.3.0-beta.3 (June 03, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Improvement__ - -- Allow default values in fluent API -## 0.3.0-beta.2 (June 01, 2018) - - -As part of this release we had 4 issues closed. - -__Requirements__ - -- Cake 0.28.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#29__](https://github.com/cake-contrib/Cake.Issues/issues/29) Make `IIssue.Priority` optional -- [__#28__](https://github.com/cake-contrib/Cake.Issues/issues/28) Build against Cake 0.28.0 -- [__#26__](https://github.com/cake-contrib/Cake.Issues/issues/26) Add fluent API for Issue creation - -__Feature__ - -- [__#25__](https://github.com/cake-contrib/Cake.Issues/issues/25) Add constants for priority values and names - - -## 0.3.0-beta.1 (May 31, 2018) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking changes__ - -- [__#22__](https://github.com/cake-contrib/Cake.Issues/issues/22) Add `PriorityName` to `IIssue` -- [__#21__](https://github.com/cake-contrib/Cake.Issues/issues/21) Add `ProviderName` to `IIssue` - - -## 0.2.0 (May 21, 2018) - - -As part of this release we had [6 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=2&state=closed) closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#13__](https://github.com/cake-contrib/Cake.Issues/issues/13) Build against Cake 0.26.0 - -__Features__ - -- [__#5__](https://github.com/cake-contrib/Cake.Issues/issues/5) Add project to `IIssue` -- [__#4__](https://github.com/cake-contrib/Cake.Issues/issues/4) Migrate to .NET Standard (Thanks [Tim Johnson](https://github.com/t-johnson)!) - -__Improvements__ - -- [__#20__](https://github.com/cake-contrib/Cake.Issues/issues/20) Make `IIssue.Rule` an optional parameter -- [__#8__](https://github.com/cake-contrib/Cake.Issues/issues/8) Upgrade XUnit to 2.3.0 - - -## 0.2.0-beta.4 (March 07, 2018) - - -As part of this release we had the following issues closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- Only target .NET Standard 2.0 -## 0.2.0-beta.3 (March 07, 2018) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.26.0 or higher -- Targeting .NET Standard 2.0 - -__Breaking change__ - -- [__#13__](https://github.com/cake-contrib/Cake.Issues/issues/13) Build against Cake 0.26.0 -## 0.2.0-beta.2 (December 24, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Standard 2.0 - -__Improvements__ - -- [__#8__](https://github.com/cake-contrib/Cake.Issues/issues/8) Upgrade XUnit to 2.3.0 -## 0.2.0-beta.1 (October 15, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Standard 2.0 - -__Features__ - -- [__#5__](https://github.com/cake-contrib/Cake.Issues/issues/5) Add project to `IIssue` -- [__#4__](https://github.com/cake-contrib/Cake.Issues/issues/4) Migrate to .NET Standard (Thanks [Tim Johnson](https://github.com/t-johnson)!) - - -## 0.1.0 (September 16, 2017) - - -As part of this release we had [2 issues](https://github.com/cake-contrib/Cake.Issues/issues?milestone=1&state=closed) closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Framework 4.6 - -__Breaking change__ - -- [__#3__](https://github.com/cake-contrib/Cake.Issues/issues/3) Update to Cake 0.22 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - -## 0.1.0-beta.4 (September 13, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.22.0 - Cake 0.25.0 -- Targeting .NET Framework 4.6 - -__Breaking Changes__ - -- Target .NET Framework 4.6 -- Build against Cake 0.22.0 -## 0.1.0-beta.3 (September 03, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Breaking Changes__ - -- Move everything into single namespace. -## 0.1.0-beta.2 (September 02, 2017) - - -As part of this release we had 2 issues closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Enhancements__ - -- Add method `Issue.GetProviderTypeName()` for returning provider type name -- Put aliases for reading issues in own category -## 0.1.0-beta.1 (September 01, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - -d `Issue.GetProviderTypeName()` for returning provider type name -- Put aliases for reading issues in own category -## 0.1.0-beta.1 (September 01, 2017) - - -As part of this release we had 1 issue closed. - -__Requirements__ - -- Cake 0.16.2 - Cake 0.21.1 -- Targeting .NET Framework 4.5.2 - -__Feature__ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - -_ - -- [__#2__](https://github.com/cake-contrib/Cake.Issues/issues/2) First version based on Cake.Prca - - diff --git a/docs/input/docs/overview/release-notes/index.cshtml b/docs/input/docs/overview/release-notes/index.cshtml deleted file mode 100644 index cbb6d5a8f..000000000 --- a/docs/input/docs/overview/release-notes/index.cshtml +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 30 -Description: Release notes for the Cake Issues core addins. ---- - -

    - For addin release notes see Issue Providers, - Report Formats and Pull Request Systems. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/overview/requirements.md b/docs/input/docs/overview/requirements.md deleted file mode 100644 index 901eb33c4..000000000 --- a/docs/input/docs/overview/requirements.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -Order: 30 -Description: Requirements for using Cake.Issues. ---- -The requirements for core addins are listed in the release notes for any specific version: - -* [Release notes Cake.Issues] -* [Release notes Cake.Issues.PullRequests] -* [Release notes Cake.Issues.Reporting] - -:::{.alert .alert-info} -Note that individual addins might require a newer version of Cake. -Please see in the documentation of the specific addin for additional requirements for individual addins. -::: - -[Release notes Cake.Issues]: release-notes/Cake.Issues -[Release notes Cake.Issues.PullRequests]: release-notes/Cake.Issues.PullRequests -[Release notes Cake.Issues.Reporting]: release-notes/Cake.Issues.Reporting \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/appveyor/examples/index.cshtml b/docs/input/docs/pull-request-systems/appveyor/examples/index.cshtml deleted file mode 100644 index f0d5372ef..000000000 --- a/docs/input/docs/pull-request-systems/appveyor/examples/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Examples -Description: Examples for using the Cake.Issues.PullRequests.AppVeyor addin. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -
    -There's a demo repository -available which you can fork and to which you can create pull requests to test the integration functionality. -
    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/appveyor/examples/write-messages.md b/docs/input/docs/pull-request-systems/appveyor/examples/write-messages.md deleted file mode 100644 index 10cccdfb4..000000000 --- a/docs/input/docs/pull-request-systems/appveyor/examples/write-messages.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -Order: 10 -Title: Writing message to AppVeyor -Description: Example how to write issues as messages to an AppVeyor build. ---- -This example shows how to report issues as messages to an AppVeyor build. - -To report issues as messages to an AppVeyor build you need to import the core addin, -the core pull request addin, the AppVeyor support and one or more issue providers, -in this example for JetBrains InspectCode: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.AppVeyor" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task we'll first determine the remote repository URL and -source branch of the pull request and with this information call the [AppVeyorBuilds] alias: - -```csharp -Task("ReportIssuesToAppVeyor").Does(() => -{ - var repoRootFolder = MakeAbsolute(Directory("./")); - - ReportIssuesToPullRequest( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - AppVeyorBuilds(), - repoRootFolder); -}); -``` - -The output will look similar to this: - -![AppVeyor messages](../appveyor-messages.png "AppVeyor messages") - -[AppVeyorBuilds]: ../../../../api/Cake.Issues.PullRequests.AppVeyor/AppVeyorBuildsAliases/ \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/appveyor/features.md b/docs/input/docs/pull-request-systems/appveyor/features.md deleted file mode 100644 index 68211906f..000000000 --- a/docs/input/docs/pull-request-systems/appveyor/features.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.PullRequests.AppVeyor addin. ---- -The [Cake.Issues.PullRequests.AppVeyor addin] reports issues as messages to AppVeyor builds. - -![AppVeyor messages](appveyor-messages.png "AppVeyor messages") - -:::{.alert .alert-info} -There's a [demo repository] available which you can fork and to which you can create pull requests to test the integration functionality. -::: - -# Basic features - -* Reports issues as messages to AppVeyor builds. -* Messages can be written as comment to GitHub pull requests. - See [GitHub pull request integration] for an example. - -# Supported capabilities - -The [Cake.Issues.PullRequests.AppVeyor addin] doesn't support any additional capabilities. - -| | Capability | Remarks | -|--------------------------------------------------------------------|--------------------------------|--------------------------------| -| | Checking commit ID | | -| | Discussion threads | | -| | Filtering by modified files | | - -[demo repository]: https://github.com/pascalberger/Cake.Issues-Demo -[Cake.Issues.PullRequests.AppVeyor addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.AppVeyor -[GitHub pull request integration]: ./examples/github-pullrequest-integration diff --git a/docs/input/docs/pull-request-systems/appveyor/index.cshtml b/docs/input/docs/pull-request-systems/appveyor/index.cshtml deleted file mode 100644 index f704df063..000000000 --- a/docs/input/docs/pull-request-systems/appveyor/index.cshtml +++ /dev/null @@ -1,10 +0,0 @@ ---- -Title: AppVeyor -Description: Support for AppVeyor. ---- -

    - Support for AppVeyor is implemented in the - Cake.Issues.PullRequests.AppVeyor addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/appveyor/requirements.md b/docs/input/docs/pull-request-systems/appveyor/requirements.md deleted file mode 100644 index 446b03b69..000000000 --- a/docs/input/docs/pull-request-systems/appveyor/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.PullRequests.AppVeyor addin. ---- -The requirements for using the [Cake.Issues.PullRequests.AppVeyor addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.PullRequests.AppVeyor addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.AppVeyor -[release notes]: release-notes \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/azure-devops/examples/azure-pipelines.md b/docs/input/docs/pull-request-systems/azure-devops/examples/azure-pipelines.md deleted file mode 100644 index 6078ba5ac..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/examples/azure-pipelines.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -Order: 30 -Title: Using with Azure Pipelines -Description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin from an Azure Pipelines build. ---- -This example shows how to write issues as comments to an Azure DevOps pull request from an Azure Pipelines build. - -To write issues as comments to Azure DevOps pull requests you need to import the core addin, -the core pull request addin, the Azure DevOps support including the Cake.AzureDevOps addin, and one or more issue providers, -in this example for JetBrains InspectCode: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.AzureDevOps" -#addin "Cake.AzureDevOps" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task we'll first determine if the build is running on Azure DevOps and for a pull request, -then read the remote repository URL and pull request id from environment variables set by the Azure Pipelines build -and finally call the [AzureDevOpsPullRequests] alias using the OAuth token provided by the Azure Pipeline build. - -:::{.alert .alert-info} -Please note that you'll need to setup your Azure Pipelines build to allow scripts to -access the OAuth token and need to setup proper permissions. - -See [OAuth authentication from Azure Pipelines] for details. -::: - -```csharp -Task("ReportIssuesToPullRequest").Does(() => -{ - var isRunningOnAzureDevOps = - !string.IsNullOrWhiteSpace(context.EnvironmentVariable("TF_BUILD")) && - !string.IsNullOrWhiteSpace(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")) && - ( - new Uri(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")).Host == "dev.azure.com" || - new Uri(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")).Host.EndsWith("visualstudio.com") - ); - - var isPullRequestBuild = - !string.IsNullOrWhiteSpace(context.EnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID")); - - if (isRunningOnAzureDevOps) - { - var repositoryUrl = new Uri(context.EnvironmentVariable("BUILD_REPOSITORY_URI")); - - if (isPullRequestBuild) - { - var pullRequestIdVariable = context.EnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID"); - if (!Int32.TryParse(pullRequestIdVariable, out var pullRequestId)) - { - throw new Exception($"Invalid pull request ID: {pullRequestIdVariable}"); - } - else - { - var repoRootFolder = MakeAbsolute(Directory("./")); - - ReportIssuesToPullRequest( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - AzureDevOpsPullRequests( - repositoryUrl, - pullRequestId, - AzureDevOpsAuthenticationOAuth(EnvironmentVariable("SYSTEM_ACCESSTOKEN"))), - repoRootFolder); - } - } - } -}); -``` - -[AzureDevOpsPullRequests]: ../../../../api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/64912B0A -[Allow scripts to access the OAuth token]: https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options#allow-scripts-to-access-the-oauth-token -[OAuth authentication from Azure Pipelines]: ../setup#oauth-authentication-from-azure-pipelines diff --git a/docs/input/docs/pull-request-systems/azure-devops/examples/index.cshtml b/docs/input/docs/pull-request-systems/azure-devops/examples/index.cshtml deleted file mode 100644 index 17e2702db..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/examples/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Examples -Description: Examples for using the Cake.Issues.PullRequests.AzureDevOps addin. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -
    -There's a demo repository -available which you can fork and to which you can create pull requests to test the integration functionality. -
    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/azure-devops/examples/pullrequest-id.md b/docs/input/docs/pull-request-systems/azure-devops/examples/pullrequest-id.md deleted file mode 100644 index 843390dfc..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/examples/pullrequest-id.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -Order: 10 -Title: Using with pull request id -Description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin with pull request id. ---- -This example shows how to write issues as comments to an Azure DevOps pull request while using pull request id. - -To determine the remote repository URL you need the [Cake.Git] addin: - -```csharp -#addin "Cake.Git" -``` - -To write issues as comments to Azure DevOps pull requests you need to import the core addin, -the core pull request addin, the Azure DevOps support including the Cake.AzureDevOps addin, and one or more issue providers, -in this example for JetBrains InspectCode: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.AzureDevOps" -#addin "Cake.AzureDevOps" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task we'll first determine the remote repository URL and -with this information call the [AzureDevOpsPullRequests] alias, -which will authenticate through NTLM to an on-premise Azure DevOps Server instance: - -```csharp -Task("ReportIssuesToPullRequest").Does(() => -{ - var repoRootFolder = MakeAbsolute(Directory("./")); - var repoRemoteUrl = new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); - var pullRequestId = 123; - - ReportIssuesToPullRequest( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - AzureDevOpsPullRequests( - repoRemoteUrl, - pullRequestId, - AzureDevOpsAuthenticationNtlm()), - repoRootFolder); -}); -``` - -[AzureDevOpsPullRequests]: ../../../../api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/64912B0A -[Cake.Git]: https://www.nuget.org/packages/Cake.Git/ diff --git a/docs/input/docs/pull-request-systems/azure-devops/examples/repository-information.md b/docs/input/docs/pull-request-systems/azure-devops/examples/repository-information.md deleted file mode 100644 index 804ef7cfd..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/examples/repository-information.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -Order: 20 -Title: Using with repository remote url and source branch name -Description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin with repository remote url and source branch name. ---- -This example shows how to write issues as comments to an Azure DevOps pull request while using repository information. - -To determine the remote repository URL and source branch of the pull request you need the [Cake.Git] addin: - -```csharp -#addin "Cake.Git" -``` - -To write issues as comments to Azure DevOps pull requests you need to import the core addin, -the core pull request addin, the Azure DevOps support including the Cake.AzureDevOps addin, and one or more issue providers, -in this example for JetBrains InspectCode: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.AzureDevOps" -#addin "Cake.AzureDevOps" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task we'll first determine the remote repository URL and -source branch of the pull request and with this information call the [AzureDevOpsPullRequests] alias, -which will authenticate through NTLM to an on-premise Azure DevOps Server instance: - -```csharp -Task("ReportIssuesToPullRequest").Does(() => -{ - var repoRootFolder = MakeAbsolute(Directory("./")); - var currentBranch = GitBranchCurrent(repoRootFolder); - var repoRemoteUrl = new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); - var sourceBranchName = currentBranch.CanonicalName; - - ReportIssuesToPullRequest( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - AzureDevOpsPullRequests( - repoRemoteUrl, - sourceBranchName, - AzureDevOpsAuthenticationNtlm()), - repoRootFolder); -}); -``` - -[AzureDevOpsPullRequests]: ../../../../api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/8D75BECA -[Cake.Git]: https://www.nuget.org/packages/Cake.Git/ diff --git a/docs/input/docs/pull-request-systems/azure-devops/features.md b/docs/input/docs/pull-request-systems/azure-devops/features.md deleted file mode 100644 index b3b4bc228..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/features.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.PullRequests.AzureDevOps addin. ---- -The [Cake.Issues.PullRequests.AzureDevOps addin] provides the following features. - -:::{.alert .alert-info} -There's a [demo repository] available which you can fork and to which you can create pull requests to test the integration functionality. -::: - -# Basic features - -* Writes issues as comments to [Azure DevOps] pull requests. -* Identification of pull requests through source branch or pull request ID. -* Comments written by the addin will be rendered with a specific icon corresponding to the state of the issue. -* Adds rule number and, if provided by the issue provider, link to the rule description to the comment. -* Support for issues messages formatted in Markdown format. - -# Supported capabilities - -The [Cake.Issues.PullRequests.AzureDevOps addin] supports all [Core features]. - -| | Capability | Remarks | -|--------------------------------------------------------------------|--------------------------------|--------------------------------| -| | Checking commit ID | | -| | Discussion threads | | -| | Filtering by modified files | | - -# Supported authentication methods - -| Azure DevOps Server | Azure DevOps Service | Authentication method | -|--------------------------------------------------------------------|--------------------------------------------------------------------|--------------------------------| -| | | NTLM | -| | | Basic authentication | -| | | Personal access token | -| | | OAuth | -| | | Azure Active Directory | - -For detailed instructions how to connect using the different methods see [Setup instructions]. - -![Cake.Issues.PullRequests.AzureDevOps](cake.issues.pullrequests.azuredevops.png "Cake.Issues.PullRequests.AzureDevOps") - -[demo repository]: https://dev.azure.com/pberger/Cake.Issues-Demo -[Cake.Issues.PullRequests.AzureDevOps addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.AzureDevOps -[Azure DevOps]: https://azure.microsoft.com/en-us/services/devops/ -[Core features]: ../../overview/features#supported-core-functionality -[Setup instructions]: setup diff --git a/docs/input/docs/pull-request-systems/azure-devops/index.cshtml b/docs/input/docs/pull-request-systems/azure-devops/index.cshtml deleted file mode 100644 index fbf68afda..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/index.cshtml +++ /dev/null @@ -1,10 +0,0 @@ ---- -Title: Azure DevOps -Description: Support for Azure DevOps. ---- -

    - Support for Azure DevOps is implemented in the - Cake.Issues.PullRequests.AzureDevOps addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/azure-devops/requirements.md b/docs/input/docs/pull-request-systems/azure-devops/requirements.md deleted file mode 100644 index 9c245110d..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.PullRequests.AzureDevOps addin. ---- -The requirements for using the [Cake.Issues.PullRequests.AzureDevOps addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.PullRequests.AzureDevOps addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.AzureDevOps -[release notes]: release-notes diff --git a/docs/input/docs/pull-request-systems/azure-devops/setup.md b/docs/input/docs/pull-request-systems/azure-devops/setup.md deleted file mode 100644 index ac9f128bb..000000000 --- a/docs/input/docs/pull-request-systems/azure-devops/setup.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -Order: 30 -Title: Setup -Description: Instructions how to setup the Cake.Issues.PullRequests.AzureDevOps addin. ---- -This page describes the different ways how the [Cake.Issues.PullRequests.AzureDevOps addin] can be setup. - -# NTLM authentication - -:::{.alert .alert-info} -NTLM authentication is only available for on-premise Azure DevOps Server. -::: - -To authenticate with NTLM you can use the [AzureDevOpsAuthenticationNtlm] alias from the [Cake.AzureDevOps addin]. - -The user needs to have `Contribute to pull requests` permission for the specific repository to -allow [Cake.Issues.PullRequests.AzureDevOps addin] to post issues as comments to pull requests. - -# Basic authentication - -:::{.alert .alert-info} -Basic authentication is only available for on-premise Azure DevOps Server. -::: - -To authenticate with basic authentication you can use the [AzureDevOpsAuthenticationBasic] alias from the [Cake.AzureDevOps addin] and -need to [Configure AzureDevOps Server to use Basic Authentication]. - -The user needs to have `Contribute to pull requests` permission for the specific repository to -allow [Cake.Issues.PullRequests.AzureDevOps addin] to post issues as comments to pull requests. - -# Personal access token - -To authenticate with an personal access token you can use the [AzureDevOpsAuthenticationPersonalAccessToken] alias from the [Cake.AzureDevOps addin]. - -If you want to use the [Cake.Issues.PullRequests.AzureDevOps addin] with an personal access token see -[Authenticate access with personal access tokens for Azure DevOps] for instructions how to create -a personal access token. - -The access token needs to have the scope `Code (read and write)` set and the user needs to have `Contribute to pull requests` -permission for the specific repository to allow [Cake.Issues.PullRequests.AzureDevOps addin] to post issues as comments to pull requests. - -# OAuth authentication from Azure Pipelines - -:::{.alert .alert-info} -OAuth authentication is only available for Azure DevOps Service. -::: - -If you want to use the [Cake.Issues.PullRequests.AzureDevOps addin] from an Azure Pipelines you can authenticate using the -OAuth token provided to the build. -For this you need to enable the [Allow scripts to access the OAuth token] option on the build definition. - -To authenticate you can use the [AzureDevOpsAuthenticationOAuth] alias from the [Cake.AzureDevOps addin]. - -The user under which the build runs, named ` Build Service ()` (e.g. `Cake.Issues-Demo Build Service (cake-contrib)`), -needs to have `Contribute to pull requests` permission for the specific repository to allow [Cake.Issues.PullRequests.AzureDevOps addin] -to post issues as comments to pull requests. - -# Azure Active Directory - -:::{.alert .alert-info} -OAuth authentication is only available for Azure DevOps Service. -::: - -To authenticate with Azure Active Directory you can use the [AzureDevOpsAuthenticationAzureActiveDirectory] alias from the [Cake.AzureDevOps addin]. - -The user needs to have `Contribute to pull requests` permission for the specific repository to -allow [Cake.Issues.PullRequests.AzureDevOps addin] to post issues as comments to pull requests. - -[Cake.Issues.PullRequests.AzureDevOps addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.AzureDevOps -[Cake.AzureDevOps addin]: https://www.nuget.org/packages/Cake.AzureDevOps -[Configure TFS to use Basic Authentication]: https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/auth/tfs-basic-auth#configure-tfs-to-use-basic-authentication -[Authenticate access with personal access tokens for Azure DevOps]: https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate -[Allow scripts to access the OAuth token]: https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options#allow-scripts-to-access-the-oauth-token -[AzureDevOpsAuthenticationNtlm]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/F2A040B7 -[AzureDevOpsAuthenticationBasic]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/7CD679FF -[AzureDevOpsAuthenticationPersonalAccessToken]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/F4DCC101 -[AzureDevOpsAuthenticationOAuth]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/988E9C28 -[AzureDevOpsAuthenticationAzureActiveDirectory]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/0B9F5DF6 diff --git a/docs/input/docs/pull-request-systems/github-actions/examples/index.cshtml b/docs/input/docs/pull-request-systems/github-actions/examples/index.cshtml deleted file mode 100644 index f6edfee20..000000000 --- a/docs/input/docs/pull-request-systems/github-actions/examples/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Title: Examples -Description: Examples for using the Cake.Issues.PullRequests.GitHubActions addin. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/github-actions/examples/write-annotations.md b/docs/input/docs/pull-request-systems/github-actions/examples/write-annotations.md deleted file mode 100644 index 719a51917..000000000 --- a/docs/input/docs/pull-request-systems/github-actions/examples/write-annotations.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -Order: 10 -Title: Create annotations in GitHub Actions -Description: Example how to write issues as annotations to a GitHub Actions build. ---- -This example shows how to report issues as annotations to a GitHub Actions build. - -To report issues as annotations to a GitHub Actions build you need to import the core addin, -the core pull request addin, the GitHub Actions support and one or more issue providers, -in this example for JetBrains InspectCode: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.InspectCode" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.GitHubActions" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task we'll first determine the remote repository URL and -source branch of the pull request and with this information call the [GitHubActionsBuilds] alias: - -```csharp -Task("ReportIssuesToGitHubActions").Does(() => -{ - var repoRootFolder = MakeAbsolute(Directory("./")); - - ReportIssuesToPullRequest( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - GitHubActionsBuilds(), - repoRootFolder); -}); -``` - -The output will show up in the build log grouped by issue provider / run: - -![Log output](../githubactions-log-output.png "Log output") - -Additionally the issues show up as annotations: - -![Annotations](../githubactions-annotations.png "Annotations") - -Having issues available as annotations also means that they will be shown in pull requests on the related file / position: - -![Pull request integration](../githubactions-pullrequest-integration.png "Pull request integration") - -[GitHubActionsBuilds]: ../../../../api/Cake.Issues.PullRequests.GitHubActions/GitHubActionsBuildsAliases/ diff --git a/docs/input/docs/pull-request-systems/github-actions/features.md b/docs/input/docs/pull-request-systems/github-actions/features.md deleted file mode 100644 index 91dea5e3c..000000000 --- a/docs/input/docs/pull-request-systems/github-actions/features.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.PullRequests.GitHubActions addin. ---- -The [Cake.Issues.PullRequests.GitHubActions addin] creates annotations from issues when running on GitHub actions. - -![Pull request integration](githubactions-pullrequest-integration.png "Pull request integration") - -# Basic features - -* Reports issues as annotations to GitHub Actions builds. -* Group issues in log output by provider and run information. - -# Supported capabilities - -The [Cake.Issues.PullRequests.GitHubActions addin] doesn't support any additional capabilities. - -| | Capability | Remarks | -|--------------------------------------------------------------------|--------------------------------|--------------------------------| -| | Checking commit ID | | -| | Discussion threads | | -| | Filtering by modified files | | - -[Cake.Issues.PullRequests.GitHubActions addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.GitHubActions diff --git a/docs/input/docs/pull-request-systems/github-actions/index.cshtml b/docs/input/docs/pull-request-systems/github-actions/index.cshtml deleted file mode 100644 index aba361913..000000000 --- a/docs/input/docs/pull-request-systems/github-actions/index.cshtml +++ /dev/null @@ -1,10 +0,0 @@ ---- -Title: GitHub Actions -Description: Support for GitHub Actions. ---- -

    - Support for GitHub Actions is implemented in the - Cake.Issues.PullRequests.GitHubActions addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/pull-request-systems/github-actions/requirements.md b/docs/input/docs/pull-request-systems/github-actions/requirements.md deleted file mode 100644 index e1e66947a..000000000 --- a/docs/input/docs/pull-request-systems/github-actions/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.PullRequests.GitHubActions addin. ---- -The requirements for using the [Cake.Issues.PullRequests.GitHubActions addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.PullRequests.GitHubActions addin]: https://www.nuget.org/packages/Cake.Issues.PullRequests.GitHubActions -[release notes]: release-notes diff --git a/docs/input/docs/pull-request-systems/index.cshtml b/docs/input/docs/pull-request-systems/index.cshtml deleted file mode 100644 index d97667a6c..000000000 --- a/docs/input/docs/pull-request-systems/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 70 -Description: Documentation of the different pull request system implementations. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/console/examples.md b/docs/input/docs/report-formats/console/examples.md deleted file mode 100644 index ea9f76c5d..000000000 --- a/docs/input/docs/report-formats/console/examples.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.Reporting.Console addin. ---- -The following example will print issues logged as warnings by MsBuild to the console. - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -```csharp -#tool "nuget:?package=MSBuild.Extension.Pack" -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.Reporting" -#addin "Cake.Issues.Reporting.Console" - -Task("Create-IssueReport").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"c:\repo"); - - // Build MySolution.sln solution in the repository root folder and log issues - // using XmlFileLogger from MSBuild Extension Pack. - FilePath msBuildLogFile = @"c:\build\msbuild.log"; - var settings = new MsBuildSettings() - .WithLogger( - Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath, - "XmlFileLogger", - string.Format( - "logfile=\"{0}\";verbosity=Detailed;encoding=UTF-8", - msBuildLogFile) - ); - MSBuild(repoRootFolder.CombineWithFilePath("MySolution.sln"), settings); - - // Write issues to console. - CreateIssueReport( - new List - { - MsBuildIssuesFromFilePath( - msBuildLogFile, - MsBuildXmlFileLoggerFormat) - }, - ConsoleIssueReportFormat( - new ConsoleIssueReportFormatSettings - { - GroupByRule = true, - ShowProviderSummary = true, - ShowPrioritySummary = true - }), - repoRootFolder, - string.Empty); -}); -``` diff --git a/docs/input/docs/report-formats/console/features.md b/docs/input/docs/report-formats/console/features.md deleted file mode 100644 index 77b9ec143..000000000 --- a/docs/input/docs/report-formats/console/features.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.Reporting.Console addin. ---- -The [Cake.Issues.Reporting.Console addin] provides the following features: - -* Prints issues containing line and column information. -* Group issues by rule -* Reports: - * Number of issues by provider - * Number of issues by priority for every provider and run - -[Cake.Issues.Reporting.Console addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Console diff --git a/docs/input/docs/report-formats/console/index.cshtml b/docs/input/docs/report-formats/console/index.cshtml deleted file mode 100644 index 5003c9001..000000000 --- a/docs/input/docs/report-formats/console/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Console -Description: Report format to print issues to the console. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for printing issues to the console is implemented in the - Cake.Issues.Reporting.Console addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/console/requirements.md b/docs/input/docs/report-formats/console/requirements.md deleted file mode 100644 index 469d4c60c..000000000 --- a/docs/input/docs/report-formats/console/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Reporting.Console addin. ---- -The requirements for using the [Cake.Issues.Reporting.Console addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.Reporting.Console addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Console -[release notes]: release-notes \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/examples/custom-template.md b/docs/input/docs/report-formats/generic/examples/custom-template.md deleted file mode 100644 index 8f3bbf242..000000000 --- a/docs/input/docs/report-formats/generic/examples/custom-template.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -Order: 20 -Title: Custom template -Description: Example how to create a report using a custom template ---- -:::{.alert .alert-info} -If you create a universally usable custom template we're happy to package it with the addin. -To have it included in the addin please [create a pull request] with your contribution. -::: - -The following example will create a HTML report for issues logged as warnings by MsBuild using a custom template. - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -```csharp -#tool "nuget:?package=MSBuild.Extension.Pack" -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.Reporting" -#addin "Cake.Issues.Reporting.Generic" - -Task("Create-IssueReport").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"c:\repo"); - - // Build MySolution.sln solution in the repository root folder and log issues - // using XmlFileLogger from MSBuild Extension Pack. - FilePath msBuildLogFile = @"c:\build\msbuild.log"; - var settings = new MsBuildSettings() - .WithLogger( - Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath, - "XmlFileLogger", - string.Format( - "logfile=\"{0}\";verbosity=Detailed;encoding=UTF-8", - msBuildLogFile) - ); - MSBuild(repoRootFolder.CombineWithFilePath("MySolution.sln"), settings); - - // Create HTML report using Diagnostic template. - CreateIssueReport( - new List - { - MsBuildIssuesFromFilePath( - msBuildLogFile, - MsBuildXmlFileLoggerFormat) - }, - GenericIssueReportFormatFromFilePath(@"c:\ReportTemplate.cshtml"), - repoRootFolder, - @"c:\report.html"); -}); -``` - -`ReportTemplate` looks like this: - -```csharp -@model IEnumerable - - - - - - - - - - - - - - - - - - - - - - - @foreach (var issue in Model) - { - - - - - - - - - - } - -
    AffectedFileRelativePathLineMessagePriorityRuleRuleUrlProviderType
    @issue.AffectedFileRelativePath@issue.Line@issue.MessageText@issue.Priority@issue.RuleId@issue.RuleUrl@issue.ProviderType
    - - -``` - -The template retrieves an `IEnumerable` as model. - -:::{.alert .alert-info} -In custom templates functionality from the following assemblies are available: - -* System.dll -* System.Core.dll -* netstandard.dll -* Cake.Core.dll -* Cake.Issues.dll -* Cake.Issues.Reporting.Generic.dll - -::: - -[create a pull request]: https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/CONTRIBUTING.md diff --git a/docs/input/docs/report-formats/generic/examples/default-template.md b/docs/input/docs/report-formats/generic/examples/default-template.md deleted file mode 100644 index 7da2601bb..000000000 --- a/docs/input/docs/report-formats/generic/examples/default-template.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -Order: 10 -Title: Embedded default template -Description: Example how to create a report using an embedded default template. ---- -The following example will create a HTML report for issues logged as warnings by MsBuild. - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -```csharp -#tool "nuget:?package=MSBuild.Extension.Pack" -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.Reporting" -#addin "Cake.Issues.Reporting.Generic" - -Task("Create-IssueReport").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"c:\repo"); - - // Build MySolution.sln solution in the repository root folder and log issues - // using XmlFileLogger from MSBuild Extension Pack. - FilePath msBuildLogFile = @"c:\build\msbuild.log"; - var settings = new MsBuildSettings() - .WithLogger( - Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath, - "XmlFileLogger", - string.Format( - "logfile=\"{0}\";verbosity=Detailed;encoding=UTF-8", - msBuildLogFile) - ); - MSBuild(repoRootFolder.CombineWithFilePath("MySolution.sln"), settings); - - // Create HTML report using Diagnostic template. - CreateIssueReport( - new List - { - MsBuildIssuesFromFilePath( - msBuildLogFile, - MsBuildXmlFileLoggerFormat) - }, - GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), - repoRootFolder, - @"c:\report.html"); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/examples/index.cshtml b/docs/input/docs/report-formats/generic/examples/index.cshtml deleted file mode 100644 index f820e1ac5..000000000 --- a/docs/input/docs/report-formats/generic/examples/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Title: Examples -Description: Examples for using the Cake.Issues.Reporting.Generic addin. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/features.md b/docs/input/docs/report-formats/generic/features.md deleted file mode 100644 index 247752c6e..000000000 --- a/docs/input/docs/report-formats/generic/features.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.Reporting.Generic addin. ---- -The [Cake.Issues.Reporting.Generic addin] provides the following features: - -* Creates reports in any text based format like HTML or Markdown. -* Provides out of the box templates -* Possibility to use custom templates using Razor -* File linking support for different hosting providers (e.g. [GitHub], [Azure DevOps]) - -:::{.alert .alert-info} -See [Template Gallery] for a list of available out of the box and 3rd party templates. -::: - -[Cake.Issues.Reporting.Generic addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Generic -[Template Gallery]: templates/ -[GitHub]: ../../../api/Cake.Issues.Reporting.Generic/GenericIssueReportFormatAliases/025FE825 -[Azure DevOps]: ../../../api/Cake.Issues.Reporting.Generic/GenericIssueReportFormatAliases/61E51241 diff --git a/docs/input/docs/report-formats/generic/index.cshtml b/docs/input/docs/report-formats/generic/index.cshtml deleted file mode 100644 index 801250351..000000000 --- a/docs/input/docs/report-formats/generic/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Generic -Description: Report format to create reports in any text based format (HTML, Markdown, ...). ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for creating reports in any text based format like HTML or Markdown is implemented in the - Cake.Issues.Reporting.Generic addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/requirements.md b/docs/input/docs/report-formats/generic/requirements.md deleted file mode 100644 index e5c917073..000000000 --- a/docs/input/docs/report-formats/generic/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Reporting.Generic addin. ---- -The requirements for using the [Cake.Issues.Reporting.Generic addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.Reporting.Generic addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Generic -[release notes]: release-notes \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/templates/.artifactignore b/docs/input/docs/report-formats/generic/templates/.artifactignore deleted file mode 100644 index 3c8fd7f2d..000000000 --- a/docs/input/docs/report-formats/generic/templates/.artifactignore +++ /dev/null @@ -1,2 +0,0 @@ -**/* -!*.html \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/templates/htmldatatable.md b/docs/input/docs/report-formats/generic/templates/htmldatatable.md deleted file mode 100644 index 68653531b..000000000 --- a/docs/input/docs/report-formats/generic/templates/htmldatatable.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -Order: 20 -Title: HTML Data Table -Description: Template for a HTML report containing a rich data table view with sorting and search functionality. ---- -Template for a HTML report containing a rich data table view with sorting and search functionality powered by [Simple-DataTables]. - -![HTML Data Table](htmldatatable01.png "HTML Data Table") - -# Features - -* Separate table for issues of each issue provider. -* Table with `Severity`, `Project`, `Path`, `File`, `Location`, `Rule`, `Message`. -* Each column sortable by user. -* Paged table with possibility for user to change number of entries per page. -* Client-side full text search. -* No internet access required for displaying. - -# Requirements - -* Cake.Issues.Reporting.Generic 0.2.1 or higher - -# Usage - -To create a report using the HTML Data Table template you can use the [GenericIssueReportTemplate.HtmlDataTable] enum value: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDataTable), - @"c:\repo", - @"c:\report.html"); -``` - -# Options - -This template doesn't support any options. - -# Demos - -* Default - -# Source Code - -:::{.alert .alert-info} -You can use the source code as a template for your [custom template]. -::: - -Source code is available on [GitHub]. - -[Simple-DataTables]: https://github.com/fiduswriter/Simple-DataTables -[GenericIssueReportTemplate.HtmlDataTable]: ../../../../../Cake.Issues.Website/api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/62ADE81F -[custom template]: ../examples/custom-template -[GitHub]: https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml diff --git a/docs/input/docs/report-formats/generic/templates/htmldiagnostic.md b/docs/input/docs/report-formats/generic/templates/htmldiagnostic.md deleted file mode 100644 index 8e3b8f023..000000000 --- a/docs/input/docs/report-formats/generic/templates/htmldiagnostic.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -Order: 30 -Title: HTML Diagnostic -Description: Template for a HTML report containing a list of all issues with all properties. ---- -Template for a HTML report containing a list of all issues with all properties. - -![HTML Diagnostic](htmldiagnostic01.png "HTML Diagnostic") - -# Features - -* Unstyled table listing all properties of [IIssue] -* No internet access required for displaying. - -# Requirements - -* No additional requirements. - -# Usage - -To create a report using the HTML diagnostic template you can use the [GenericIssueReportTemplate.HtmlDiagnostic] enum value: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), - @"c:\repo", - @"c:\report.html"); -``` - -# Options - -This template doesn't support any options. - -# Demos - -* Default - -# Source Code - -:::{.alert .alert-info} -You can use the source code as a template for your [custom template]. -::: - -Source code is available on [GitHub]. - -[IIssue]: ../../../../../Cake.Issues.Website/api/Cake.Issues/IIssue/ -[GenericIssueReportTemplate.HtmlDiagnostic]: ../../../../../Cake.Issues.Website/api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/4F88BD05 -[custom template]: ../examples/custom-template -[GitHub]: https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml \ No newline at end of file diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid.md b/docs/input/docs/report-formats/generic/templates/htmldxdatagrid.md deleted file mode 100644 index d0745306a..000000000 --- a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -Order: 10 -Title: HTML DevExtreme Data Grid -Description: Template for a HTML report containing a rich data grid with sorting, filtering, grouping and search capabilities. ---- -Template for a HTML report containing a rich data grid with sorting, filtering, grouping and search capabilities powered by [DevExtreme]. - -![HTML DevExtreme Data Grid](htmldxdatagrid01.png "HTML DevExtreme Data Grid") - -# Features - -* Table with `Provider`, `Severity`, `Project`, `Path`, `File`, `Location`, `Rule`, `Message` by default. -* Support for grouping by multiple columns by user. -* Total number of issues by each group level. -* Each column sortable by user. -* Data can be filtered by any column by user. -* Paged view. -* Client-side full text search. -* Client-side export to Microsoft Excel or PDF. -* Fully customizable through [options](#options). - -# Requirements - -* Cake.Issues.Reporting.Generic 0.3.1 or higher - -# Usage - -To create a report using the HTML DevExtreme Data Grid template you can use the [GenericIssueReportTemplate.HtmlDxDataGrid] enum value: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDxDataGrid), - @"c:\repo", - @"c:\report.html"); -``` - -# Options - -See [HtmlDxDataGridOption] for a list of possible options. - -# Demos - -The following demo shows the template with its default options: - -* Default - (Source Code) - -## Themes - -The template supports the teams defined in the [DevExtremeTheme] enumeration which can be set using the [HtmlDxDataGridOption.Theme]: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate( - GenericIssueReportTemplate.HtmlDxDataGrid, - settings => settings.WithOption(HtmlDxDataGridOption.Theme, DevExtremeTheme.MaterialBlueLight)), - @"c:\repo", - @"c:\report.html"); -``` - -* Light Theme - (Source Code) -* Dark Theme - (Source Code) -* Contrast Theme - (Source Code) -* Carmine Theme - (Source Code) -* Dark Moon Theme - (Source Code) -* Soft Blue Theme - (Source Code) -* Dark Violet Theme - (Source Code) -* Green Mist Theme - (Source Code) -* Light Compact Theme - (Source Code) -* Dark Compact Theme - (Source Code) -* Contrast Compact Theme - (Source Code) -* Material Blue Light Theme - (Source Code) -* Material Lime Light Theme - (Source Code) -* Material Orange Light Theme - (Source Code) -* Material Purple Light Theme - (Source Code) -* Material Teal Light Theme - (Source Code) -* Material Blue Dark Theme - (Source Code) -* Material Lime Dark Theme - (Source Code) -* Material Orange Dark Theme - (Source Code) -* Material Purple Dark Theme - (Source Code) -* Material Teal Dark Theme - (Source Code) -* Material Blue Light Compact Theme - (Source Code) -* Material Lime Light Compact Theme - (Source Code) -* Material Orange Light Compact Theme - (Source Code) -* Material Purple Light Compact Theme - (Source Code) -* Material Teal Light Compact Theme - (Source Code) -* Material Blue Dark Compact Theme - (Source Code) -* Material Lime Dark Compact Theme - (Source Code) -* Material Orange Dark Compact Theme - (Source Code) -* Material Purple Dark Compact Theme - (Source Code) -* Material Teal Dark Compact Theme - (Source Code) - -## Column visibility - -Visible columns can be defined using the `ColumnNameVisible` option: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate( - GenericIssueReportTemplate.HtmlDxDataGrid, - settings => settings.WithOption(HtmlDxDataGridOption.LineVisible, false)), - @"c:\repo", - @"c:\report.html"); -``` - -Additional columns can be added using the [HtmlDxDataGridOption.AdditionalColumns] option. - -* Show and hide columns - (Source Code) -* Add additional columns - (Source Code) - -## Sorting - -Sorted columns can be defined using the [HtmlDxDataGridOption.SortedColumns] and the -`ColumnNameSortOder` options: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate( - GenericIssueReportTemplate.HtmlDxDataGrid, - settings => settings - .WithOption(HtmlDxDataGridOption.SortedColumns, new List { ReportColumn.RuleId }) - .WithOption(HtmlDxDataGridOption.RuleIdSortOder, ColumnSortOderDescending )), - @"c:\repo", - @"c:\report.html"); -``` - -* Change sorting - (Source Code) - -## Grouping - -Grouping can be defined using the [HtmlDxDataGridOption.GroupedColumns] option: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate( - GenericIssueReportTemplate.HtmlDxDataGrid, - settings => settings.WithOption(HtmlDxDataGridOption.GroupedColumns, new List { ReportColumn.RuleId })), - @"c:\repo", - @"c:\report.html"); -``` - -* Change grouping - (Source Code) -* Disable grouping - (Source Code) - -## Exporting - -Exporting can be enabled using the [HtmlDxDataGridOption.EnableExporting] option: - -```csharp -CreateIssueReport( - issues, - GenericIssueReportFormatFromEmbeddedTemplate( - GenericIssueReportTemplate.HtmlDxDataGrid, - settings => settings.WithOption(HtmlDxDataGridOption.EnableExporting, true)), - @"c:\repo", - @"c:\report.html"); -``` - -* Enable exporting - (Source Code) -* Microsoft Excel export (*.xlsx) - (Source Code) -* PDF export (*.pdf) - (Source Code) -* Custom export file name - (Source Code) - -## Other features - -* Change title - (Source Code) -* Disable header - (Source Code) -* Disable filtering - (Source Code) -* Disable searching - (Source Code) -* Custom script location and version - (Source Code) - -# Source Code - -:::{.alert .alert-info} -You can use the source code as a template for your [custom template]. -::: - -Source code is available on [GitHub]. - -[DevExtreme]: https://js.devexpress.com -[GenericIssueReportTemplate.HtmlDxDataGrid]: ../../../../../api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/0E9E9D94 -[HtmlDxDataGridOption]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/ -[DevExtremeTheme]: ../../../../../api/Cake.Issues.Reporting.Generic/DevExtremeTheme/ -[HtmlDxDataGridOption.Theme]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/EA83DCAB -[HtmlDxDataGridOption.AdditionalColumns]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/F9860912 -[HtmlDxDataGridOption.SortedColumns]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/D578E453 -[HtmlDxDataGridOption.GroupedColumns]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/0907599C -[HtmlDxDataGridOption.EnableExporting]: ../../../../../api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/1441E285 -[custom template]: ../examples/custom-template -[GitHub]: https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml diff --git a/docs/input/docs/report-formats/generic/templates/index.cshtml b/docs/input/docs/report-formats/generic/templates/index.cshtml deleted file mode 100644 index b7e0cc3c3..000000000 --- a/docs/input/docs/report-formats/generic/templates/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Title: Template Gallery -Description: Gallery of available out of the box and 3rd party templates. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/index.cshtml b/docs/input/docs/report-formats/index.cshtml deleted file mode 100644 index b7df95e01..000000000 --- a/docs/input/docs/report-formats/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 60 -Description: Documentation of the different report format addins. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/sarif/examples.md b/docs/input/docs/report-formats/sarif/examples.md deleted file mode 100644 index 31b231753..000000000 --- a/docs/input/docs/report-formats/sarif/examples.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -Order: 30 -Title: Examples -Description: Examples for using the Cake.Issues.Reporting.Sarif addin. ---- -The following example will create a SARIF report for issues logged as warnings by MsBuild. - -:::{.alert .alert-warning} -Please note that you always should pin addins and tools to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the packages. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -```csharp -#tool "nuget:?package=MSBuild.Extension.Pack" -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.Reporting" -#addin "Cake.Issues.Reporting.Sarif" - -Task("Create-IssueReport").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"c:\repo"); - - // Build MySolution.sln solution in the repository root folder and log issues - // using XmlFileLogger from MSBuild Extension Pack. - FilePath msBuildLogFile = @"c:\build\msbuild.log"; - var settings = new MsBuildSettings() - .WithLogger( - Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath, - "XmlFileLogger", - string.Format( - "logfile=\"{0}\";verbosity=Detailed;encoding=UTF-8", - msBuildLogFile) - ); - MSBuild(repoRootFolder.CombineWithFilePath("MySolution.sln"), settings); - - // Create SARIF report. - CreateIssueReport( - new List - { - MsBuildIssuesFromFilePath( - msBuildLogFile, - MsBuildXmlFileLoggerFormat) - }, - SarifIssueReportFormat(), - repoRootFolder, - @"c:\report.sarif"); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/report-formats/sarif/features.md b/docs/input/docs/report-formats/sarif/features.md deleted file mode 100644 index b2ab2de32..000000000 --- a/docs/input/docs/report-formats/sarif/features.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -Order: 20 -Title: Features -Description: Features of the Cake.Issues.Reporting.Sarif addin. ---- -The [Cake.Issues.Reporting.Sarif addin] provides the following features: - -* Creates SARIF compatible files. -* Supports the following properties in the SARIF report: - * RuleId - * Message - * Kind - * Level - * Location - * RuleUrl - -[Cake.Issues.Reporting.Sarif addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Sarif diff --git a/docs/input/docs/report-formats/sarif/index.cshtml b/docs/input/docs/report-formats/sarif/index.cshtml deleted file mode 100644 index 55d163ac7..000000000 --- a/docs/input/docs/report-formats/sarif/index.cshtml +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Sarif -Description: Report format to create SARIF compatible reports. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - Support for creating SARIF compatible reports is implemented in the - Cake.Issues.Reporting.Sarif addin. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/report-formats/sarif/requirements.md b/docs/input/docs/report-formats/sarif/requirements.md deleted file mode 100644 index ab7342854..000000000 --- a/docs/input/docs/report-formats/sarif/requirements.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Order: 10 -Title: Requirements -Description: Requirements for the Cake.Issues.Reporting.Sarif addin. ---- -The requirements for using the [Cake.Issues.Reporting.Sarif addin] are listed in the [release notes] for any specific version. - -[Cake.Issues.Reporting.Sarif addin]: https://www.nuget.org/packages/Cake.Issues.Reporting.Sarif -[release notes]: release-notes \ No newline at end of file diff --git a/docs/input/docs/resources/index.cshtml b/docs/input/docs/resources/index.cshtml deleted file mode 100644 index 030806012..000000000 --- a/docs/input/docs/resources/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 90 -Description: Resources about Cake.Issues. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/thanks.cshtml b/docs/input/docs/thanks.cshtml deleted file mode 100644 index 366ed21e1..000000000 --- a/docs/input/docs/thanks.cshtml +++ /dev/null @@ -1,127 +0,0 @@ ---- -Order: 110 -Title: Thanks -Description: People who brought you Cake Issues ---- - -@* -Based on Code from https://github.com/reactiveui/website - -The MIT License (MIT) - -Copyright (c) 2017 Geoffrey Huntley - -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. -*@ - -

    Contributors

    - - - -
    - - - - diff --git a/docs/input/docs/usage/creating-issues/creating-issues.md b/docs/input/docs/usage/creating-issues/creating-issues.md deleted file mode 100644 index a959e1d3b..000000000 --- a/docs/input/docs/usage/creating-issues/creating-issues.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -Order: 10 -Title: Creating issues -Description: Usage instructions how to create issues. ---- -The `Cake.Issues` addin can be used to create issues directly in the build script. -This issues can for example be used to create reports. - -To create issues you need to import the following core addin: - -```csharp -#addin "Cake.Issues" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -In the following task a new warning for the myfile.txt file on line 42 is created: - -```csharp -Task("Create-Issue").Does(() => -{ - var issue = - NewIssue( - "Something went wrong", - "MyCakeScript", - "My Cake Script") - .WithMessageInHtmlFormat("Something went wrong") - .WithMessageInMarkdownFormat("Something went **wrong**") - .InFile("myfile.txt", 42) - .WithPriority(IssuePriority.Warning) - .Create(); - - Information("Issue created with message: {0}", issues.MessageText); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/usage/creating-issues/index.cshtml b/docs/input/docs/usage/creating-issues/index.cshtml deleted file mode 100644 index 901fac32f..000000000 --- a/docs/input/docs/usage/creating-issues/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 20 -Description: How to create issues using Cake.Issues. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/usage/creating-reports/creating-reports.md b/docs/input/docs/usage/creating-reports/creating-reports.md deleted file mode 100644 index e093dc134..000000000 --- a/docs/input/docs/usage/creating-reports/creating-reports.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -Order: 10 -Title: Creating reports -Description: Usage instructions how to create reports. ---- -To create report for issues you need to import the following core addins: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.Reporting" -``` - -Also you need to import at least one issue provider and report format. -In the following example the issue provider for reading warnings from MsBuild log files -and generic report format is imported: - -```csharp -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.Reporting.Generic" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -Finally you can define a task where you call the reporting addin with the desired issue provider and report format: - -```csharp -Task("Create-Report").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"C:\repo"); - CreateIssueReport( - MsBuildIssuesFromFilePath( - @"C:\build\msbuild.log", - MsBuildXmlFileLoggerFormat), - GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), - repoRootFolder, - @"c:\report.html"); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/usage/creating-reports/index.cshtml b/docs/input/docs/usage/creating-reports/index.cshtml deleted file mode 100644 index 7fae8a618..000000000 --- a/docs/input/docs/usage/creating-reports/index.cshtml +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 40 -Description: How to create reports using Cake.Issues.Reporting. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - For report format specific examples see Report Format Examples. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/usage/index.cshtml b/docs/input/docs/usage/index.cshtml deleted file mode 100644 index ecdcaa164..000000000 --- a/docs/input/docs/usage/index.cshtml +++ /dev/null @@ -1,7 +0,0 @@ ---- -Order: 30 -Description: How to obtain, configure, and use Cake.Issues. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/usage/reading-issues/file-linking.md b/docs/input/docs/usage/reading-issues/file-linking.md deleted file mode 100644 index 0870ee7b9..000000000 --- a/docs/input/docs/usage/reading-issues/file-linking.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -Order: 30 -Title: File linking -Description: Example how to define file link settings. ---- -File link settings can be defined while reading issues and are passed through the `IIssue.FileLink` property to -reporting formats, pull request systems and build server implementations: - -```csharp -var settings = - new ReadIssuesSettings(@"c:\repo") - { - FileLinkSettings = - IssueFileLinkSettingsForGitHubCommit( - "https://github.com/cake-contrib/Cake.Issues.Reporting.Generic", - "76a7cacef7ad4295a6766646d45c9b56") - }; - - var issues = - ReadIssues( - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log"), - settings)); -``` - -Cake.Issues comes with out-of-the-box support for linking to files hosted on GitHub and Azure Repos, -either for a specific branch or commit. Additionally there are aliases which can be used to define any custom pattern. diff --git a/docs/input/docs/usage/reading-issues/index.cshtml b/docs/input/docs/usage/reading-issues/index.cshtml deleted file mode 100644 index 39c8dc63a..000000000 --- a/docs/input/docs/usage/reading-issues/index.cshtml +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 30 -Description: How to read issues using Cake.Issues. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - For issue provider specific examples see Issue Provider Examples. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/usage/reading-issues/reading-issues.md b/docs/input/docs/usage/reading-issues/reading-issues.md deleted file mode 100644 index ab3ad10ea..000000000 --- a/docs/input/docs/usage/reading-issues/reading-issues.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -Order: 10 -Title: Reading issues -Description: Usage instructions how to read issues. ---- -The `Cake.Issues` addin can be used to aggregate issues from different sources. -This can for example be useful to break builds based on the reported issues. - -To read issues you need to import the following core addin: - -```csharp -#addin "Cake.Issues" -``` - -Also you need to import at least one issue provider. -In the following example the issue providers for reading warnings from MsBuild log files -and from JetBrains InspectCode are imported: - -```csharp -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.InspectCode" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -Finally you can define a task where you call the core addin with the desired issue providers. -The following example reads issues reported as MsBuild warnings by the `XmlFileLogger` -class from [MSBuild Extension Pack] and issues reported by JetBrains InspectCode: - -```csharp -Task("Read-Issues").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"C:\repo"); - var issues = ReadIssues( - new List - { - MsBuildIssuesFromFilePath( - @"C:\build\msbuild.log", - MsBuildXmlFileLoggerFormat), - InspectCodeIssuesFromFilePath( - @"C:\build\inspectcode.log") - }, - repoRootFolder); - - Information("{0} issues are found.", issues.Count()); -}); -``` - -[MSBuild Extension Pack]: http://www.msbuildextensionpack.com/ \ No newline at end of file diff --git a/docs/input/docs/usage/reading-issues/run-information.md b/docs/input/docs/usage/reading-issues/run-information.md deleted file mode 100644 index 9af71d1a1..000000000 --- a/docs/input/docs/usage/reading-issues/run-information.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -Order: 20 -Title: Additional run information -Description: Example how to add run specific information. ---- -If a build script needs to parse multiple log files from the same tool, e.g. because multiple MsBuild solutions were built, -this can be done by calling the issue provider multiple times. -If the results are read into the same list and shown on the same report, -individual issues could not be assigned to any of the calls, since issue provider type and name are identical. - -Starting with Cake.Issues 0.9.0 it is possible to pass additional run information while reading issues, -which then will be stored with each issues in the `IIssue.Run` property: - -```csharp -var issues = new List(); - -// Parse issues from build of solution 1 -issues.AddRange( - ReadIssues( - MsBuildIssuesFromFilePath( - @"C:\build\solution1-msbuild.log", - MsBuildXmlFileLoggerFormat), - new ReadIssuesSettings(@"c:\repo") - { - Run = "Solution 1" - } - ) -); - -// Parse issues from build of solution 2 -issues.AddRange( - ReadIssues( - MsBuildIssuesFromFilePath( - @"C:\build\solution2-msbuild.log", - MsBuildXmlFileLoggerFormat), - new ReadIssuesSettings(@"c:\repo") - { - Run = "Solution 2" - } - ) -); -``` diff --git a/docs/input/docs/usage/recipe/index.md b/docs/input/docs/usage/recipe/index.md deleted file mode 100644 index db51cae81..000000000 --- a/docs/input/docs/usage/recipe/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -Order: 10 -Description: How to use the pre-made recipe script. ---- - -Examples how to use Cake.Issues recipes can be found under [Recipe Usage]. - -[Recipe Usage]: /docs/recipe/usage \ No newline at end of file diff --git a/docs/input/docs/usage/reporting-issues-to-pull-requests/custom-issue-filter.md b/docs/input/docs/usage/reporting-issues-to-pull-requests/custom-issue-filter.md deleted file mode 100644 index f734b0d67..000000000 --- a/docs/input/docs/usage/reporting-issues-to-pull-requests/custom-issue-filter.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -Order: 20 -Title: Custom issue filter -Description: Usage instructions how to apply custom filters to issues. ---- -You can define custom filters which are applied to issues before they are posted as comments to pull requests. - -:::{.alert .alert-info} -You can use a custom filter to only have issues introduced with the current code posted to the pull request. - -For this you need to store your log files as artifacts on your build system, then you can define a custom filter -which retrieves the logs from the previous build, parses them using the appropriate issue provider and filters -out any issues which were already existing in the previous build. -::: - -The following example will filter out all issues from the rule `CA1000` from being posted to the pull request. - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.PullRequests" -#addin "Cake.Issues.PullRequests.AzureDevOps" - -Task("ReportIssuesToPullRequest").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"C:\repo"); - - var settings = new ReportIssuesToPullRequestSettings(repoRootFolder); - - // Add custom filter. - settings.IssueFilters.Add(x => x.Where(issue => issue.Rule != "CA1000")); - - ReportIssuesToPullRequest( - new List - { - MsBuildIssuesFromFilePath( - @"C:\build\msbuild.log", - MsBuildXmlFileLoggerFormat) - }, - AzureDevOpsPullRequests( - new Uri("http://myserver:8080/tfs/defaultcollection/myproject/_git/myrepository"), - "refs/heads/feature/myfeature", - AzureDevOpsAuthenticationNtlm()), - settings)); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/usage/reporting-issues-to-pull-requests/index.cshtml b/docs/input/docs/usage/reporting-issues-to-pull-requests/index.cshtml deleted file mode 100644 index 5e39a0942..000000000 --- a/docs/input/docs/usage/reporting-issues-to-pull-requests/index.cshtml +++ /dev/null @@ -1,11 +0,0 @@ ---- -Order: 50 -Description: How to report issues to pull requests using Cake.Issues.PullRequests. ---- -

    @Html.Raw(Model.String(DocsKeys.Description))

    - -

    - For pull request system specific examples see Pull Request System Examples. -

    - -@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/docs/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md b/docs/input/docs/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md deleted file mode 100644 index 8026224da..000000000 --- a/docs/input/docs/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -Order: 10 -Title: Report issues to pull requests -Description: Usage instructions how to report issues to pull requests. ---- -To use report issues to pull requests you need to import the following core addins: - -```csharp -#addin "Cake.Issues" -#addin "Cake.Issues.PullRequests" -``` - -Also you need to import at least one issue provider and pull request system. -In the following example the issue provider for reading warnings from MsBuild log files -and support for Azure DevOps pull requests is imported: - -```csharp -#addin "Cake.Issues.MsBuild" -#addin "Cake.Issues.PullRequests.AzureDevOps" -``` - -:::{.alert .alert-warning} -Please note that you always should pin addins to a specific version to make sure your builds are deterministic and -won't break due to updates to one of the addins. - -See [pinning addin versions](https://cakebuild.net/docs/tutorials/pinning-cake-version#pinning-addin-version) for details. -::: - -Finally you can define a task where you call the core addin with the desired issue provider and pull request system: - -```csharp -Task("ReportIssuesToPullRequest").Does(() => -{ - var repoRootFolder = new DirectoryPath(@"C:\repo"); - ReportIssuesToPullRequest( - MsBuildIssuesFromFilePath( - @"C:\build\msbuild.log", - MsBuildXmlFileLoggerFormat), - AzureDevOpsPullRequests( - new Uri("http://myserver:8080/tfs/defaultcollection/myproject/_git/myrepository"), - "refs/heads/feature/myfeature", - AzureDevOpsAuthenticationNtlm()), - repoRootFolder); -}); -``` \ No newline at end of file diff --git a/docs/input/docs/fundamentals/overview.png b/docs/input/documentation/assets/images/overview.png similarity index 100% rename from docs/input/docs/fundamentals/overview.png rename to docs/input/documentation/assets/images/overview.png diff --git a/docs/input/documentation/assets/tables/supported-tools-ansible.csv b/docs/input/documentation/assets/tables/supported-tools-ansible.csv new file mode 100644 index 000000000..f121908be --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-ansible.csv @@ -0,0 +1,4 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[Ansible-lint](https://ansible.readthedocs.io/projects/lint/){target='_blank'}",,"[SARIF](https://ansible.readthedocs.io/projects/lint/usage/#sarif-json){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-arm.csv b/docs/input/documentation/assets/tables/supported-tools-arm.csv new file mode 100644 index 000000000..898f84884 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-arm.csv @@ -0,0 +1,4 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-bicep.csv b/docs/input/documentation/assets/tables/supported-tools-bicep.csv new file mode 100644 index 000000000..9051896cd --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-bicep.csv @@ -0,0 +1,3 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-cfn.csv b/docs/input/documentation/assets/tables/supported-tools-cfn.csv new file mode 100644 index 000000000..fb9afd343 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-cfn.csv @@ -0,0 +1,5 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[cfn-lint](https://github.com/aws-cloudformation/cfn-lint){target='_blank'}",,"[SARIF](https://github.com/aws-cloudformation/cfn-lint?tab=readme-ov-file#parameters){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-clojure.csv b/docs/input/documentation/assets/tables/supported-tools-clojure.csv new file mode 100644 index 000000000..302b089da --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-clojure.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[clj-kondo](https://github.com/clj-kondo/clj-kondo){target='_blank'}",,"[sarif](https://github.com/clj-kondo/clj-kondo/blob/master/doc/config.md#print-results-in-sarif-format){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-css.csv b/docs/input/documentation/assets/tables/supported-tools-css.csv new file mode 100644 index 000000000..4c36a1c11 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-css.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[stylelint](https://stylelint.io/){target='_blank'} :material-alert-decagram:",,"[tap](https://stylelint.io/user-guide/options/#formatter){target='_blank'}","[Cake.Issues.Tap](issue-providers/tap/index.md)",5.1.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-docker.csv b/docs/input/documentation/assets/tables/supported-tools-docker.csv new file mode 100644 index 000000000..b3f8b5517 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-docker.csv @@ -0,0 +1,5 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Hadolint](https://github.com/hadolint/hadolint){target='_blank'}",,"[sarif](https://github.com/hadolint/hadolint?tab=readme-ov-file#cli){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-dotnet.csv b/docs/input/documentation/assets/tables/supported-tools-dotnet.csv new file mode 100644 index 000000000..019ef0d25 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-dotnet.csv @@ -0,0 +1,16 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"~~[dupFinder](https://www.jetbrains.com/help/resharper/2021.2/dupFinder.html){target='_blank'}~~{ title='Deprecated since dupFinder Command Line Tool has been sunsetted' } ",,,"Cake.Issues.DupFinder",0.8.0 +"[InspectCode](https://www.jetbrains.com/help/resharper/InspectCode.html){target='_blank'}",,"[xml](https://www.jetbrains.com/help/resharper/InspectCode.html#alternative-output-formats){target='_blank'}","[Cake.Issues.InspectCode](issue-providers/inspectcode/index.md)",0.1.0 +"[InspectCode](https://www.jetbrains.com/help/resharper/InspectCode.html){target='_blank'}",">= 2024.1","[SARIF](https://www.jetbrains.com/help/resharper/InspectCode.html#understanding-output){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 7](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",0.6.1 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 8](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",0.8.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 9](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",2.0.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 16](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",3.0.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 17](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.0.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 18](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.1.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 20](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.3.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 21](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.7.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 22](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.10.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 23](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.11.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[Binary Log 24](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",4.12.0 +"[MsBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild){target='_blank'}",,"[XmlFileLogger](https://github.com/mikefourie-zz/MSBuildExtensionPack/blob/master/Solutions/Main/Loggers/Framework/XmlFileLogger.cs){target='_blank'}","[Cake.Issues.MsBuild](issue-providers/msbuild/index.md)",0.1.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-github-actions.csv b/docs/input/documentation/assets/tables/supported-tools-github-actions.csv new file mode 100644 index 000000000..a9958c141 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-github-actions.csv @@ -0,0 +1,3 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[actionlint](https://github.com/rhysd/actionlint){target='_blank'}",,"[SARIF](https://github.com/rhysd/actionlint/blob/v1.7.4/docs/usage.md#example-sarif-format){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-go.csv b/docs/input/documentation/assets/tables/supported-tools-go.csv new file mode 100644 index 000000000..b2f4f4013 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-go.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[golangci-lint](https://github.com/golangci/golangci-lint){target='_blank'}",,"[sarif](https://golangci-lint.run/usage/configuration/#output-configuration){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-groovy.csv b/docs/input/documentation/assets/tables/supported-tools-groovy.csv new file mode 100644 index 000000000..998220ca0 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-groovy.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint){target='_blank'}",,"[sarif](https://github.com/nvuillam/npm-groovy-lint?tab=readme-ov-file#usage){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-helm.csv b/docs/input/documentation/assets/tables/supported-tools-helm.csv new file mode 100644 index 000000000..898f84884 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-helm.csv @@ -0,0 +1,4 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-java.csv b/docs/input/documentation/assets/tables/supported-tools-java.csv new file mode 100644 index 000000000..5db0ea9c1 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-java.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkstyle](https://checkstyle.org/){target='_blank'}",,"[sarif](https://checkstyle.org/cmdline.html#Command_line_usage_Command_Line_Options){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-javascript.csv b/docs/input/documentation/assets/tables/supported-tools-javascript.csv new file mode 100644 index 000000000..6925ecbe9 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-javascript.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[ESLint](https://eslint.org){target='_blank'}","Current","[json](https://eslint.org/docs/latest/use/formatters/#json){target='_blank'}","[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-json.csv b/docs/input/documentation/assets/tables/supported-tools-json.csv new file mode 100644 index 000000000..90fc0a3ea --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-json.csv @@ -0,0 +1,3 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json){target='_blank'}",,,"[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 +"[eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc){target='_blank'}",,,"[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-jsx.csv b/docs/input/documentation/assets/tables/supported-tools-jsx.csv new file mode 100644 index 000000000..e093c2634 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-jsx.csv @@ -0,0 +1,3 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y){target='_blank'}",,,"[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 +"[eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react){target='_blank'}",,,"[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-kotlin.csv b/docs/input/documentation/assets/tables/supported-tools-kotlin.csv new file mode 100644 index 000000000..364af791d --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-kotlin.csv @@ -0,0 +1,3 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[detekt](https://detekt.dev/){target='_blank'}",,[sarif](https://detekt.dev/docs/introduction/reporting#sarif),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[ktlint](https://pinterest.github.io/ktlint){target='_blank'}",,[sarif](https://pinterest.github.io/ktlint/latest/install/cli/#violation-reporting),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-kubernetes.csv b/docs/input/documentation/assets/tables/supported-tools-kubernetes.csv new file mode 100644 index 000000000..bcbfbbaa3 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-kubernetes.csv @@ -0,0 +1,5 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Kubeconform](https://github.com/yannh/kubeconform){target='_blank'} :material-alert-decagram:",,"[tap](https://github.com/yannh/kubeconform?tab=readme-ov-file#usage){target='_blank'}","[Cake.Issues.Tap](issue-providers/tap/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-markdown.csv b/docs/input/documentation/assets/tables/supported-tools-markdown.csv new file mode 100644 index 000000000..9f64c7f04 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-markdown.csv @@ -0,0 +1,8 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[DocFx](https://dotnet.github.io/docfx/){target='_blank'}",,,"[Cake.Issues.DocFx](issue-providers/docfx/index.md)",0.1.0 +"[markdownlint](https://github.com/DavidAnson/markdownlint){target='_blank'}",,"[resultVersion=1](https://github.com/DavidAnson/markdownlint?tab=readme-ov-file#optionsresultversion){target='_blank'}","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",0.1.0 +"[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target='_blank'}",< 0.9.0,"Default","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",0.2.0 +"[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target='_blank'}",>= 0.9.0,"Default","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",0.3.0 +"[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target='_blank'}",>= 0.19.0,"Default","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",0.8.1 +"[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target='_blank'}",>= 0.22.0,"Default","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",0.8.2 +"[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target='_blank'}",,"[json](https://github.com/igorshubovych/markdownlint-cli?tab=readme-ov-file#usage){target='_blank'}","[Cake.Issues.Markdownlint](issue-providers/markdownlint/index.md)",1.1.0 \ No newline at end of file diff --git a/docs/input/documentation/assets/tables/supported-tools-natural-language.csv b/docs/input/documentation/assets/tables/supported-tools-natural-language.csv new file mode 100644 index 000000000..70d0155b6 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-natural-language.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[textlint](https://textlint.github.io/){target='_blank'} :material-alert-decagram:",,"[tap](https://textlint.github.io/docs/cli.html#options){target='_blank'}","[Cake.Issues.Tap](issue-providers/tap/index.md)",5.1.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-openapi.csv b/docs/input/documentation/assets/tables/supported-tools-openapi.csv new file mode 100644 index 000000000..96b4ef9ab --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-openapi.csv @@ -0,0 +1,4 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Spectral](https://meta.stoplight.io/docs/spectral/674b27b261c3c-overview){target='_blank'}",,[sarif](https://meta.stoplight.io/docs/spectral/9ffa04e052cc1-spectral-cli),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-php.csv b/docs/input/documentation/assets/tables/supported-tools-php.csv new file mode 100644 index 000000000..0878c0555 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-php.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[Psalm](https://psalm.dev/){target='_blank'}",,[results.sarif](https://psalm.dev/docs/security_analysis/#other-sarif-compatible-software),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-protobuf.csv b/docs/input/documentation/assets/tables/supported-tools-protobuf.csv new file mode 100644 index 000000000..22b934ae6 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-protobuf.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[protolint](https://github.com/yoheimuta/protolint){target='_blank'}",,[sarif](https://github.com/yoheimuta/protolint?tab=readme-ov-file#reporters),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-python.csv b/docs/input/documentation/assets/tables/supported-tools-python.csv new file mode 100644 index 000000000..ad9f749ac --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-python.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[Bandit](https://bandit.readthedocs.io/){target='_blank'}",,[sarif](https://bandit.readthedocs.io/en/latest/formatters/sarif.html),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-secrets.csv b/docs/input/documentation/assets/tables/supported-tools-secrets.csv new file mode 100644 index 000000000..fdf91fa5e --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-secrets.csv @@ -0,0 +1,6 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[DevSkim](https://github.com/microsoft/DevSkim){target='_blank'}",,[sarif](https://github.com/microsoft/DevSkim/wiki/Analyze-Command#output-file-and-format),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[gitleaks](https://gitleaks.io/){target='_blank'}",,[sarif](https://github.com/gitleaks/gitleaks?tab=readme-ov-file#reporting),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[secretlint](https://github.com/secretlint/secretlint){target='_blank'}",,[sarif](https://github.com/secretlint/secretlint?tab=readme-ov-file#sarif-format-support),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[semgrep](https://semgrep.dev/){target='_blank'}",,[sarif](https://semgrep.dev/docs/getting-started/cli#scan-your-project),"[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-terraform.csv b/docs/input/documentation/assets/tables/supported-tools-terraform.csv new file mode 100644 index 000000000..97e4e9695 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-terraform.csv @@ -0,0 +1,6 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[checkov](https://www.checkov.io/){target='_blank'}",,"[SARIF](https://www.checkov.io/2.Basics/CLI%20Command%20Reference.html){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[kics](https://kics.io/){target='_blank'}",,"[sarif](https://github.com/Checkmarx/kics/blob/master/docs/results.md#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Terraform Validate](https://www.terraform.io/docs/cli/commands/validate.html){target='_blank'}",,,"[Cake.Issues.Terraform](issue-providers/terraform/index.md)",1.0.0 +"[TFLint](https://github.com/terraform-linters/tflint){target='_blank'}",,"[sarif](https://github.com/terraform-linters/tflint?tab=readme-ov-file#usage){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 +"[Trivy](https://trivy.dev/){target='_blank'}",,"[SARIF](https://trivy.dev/v0.58/docs/configuration/reporting/#sarif){target='_blank'}","[Cake.Issues.Sarif](issue-providers/sarif/index.md)",4.2.0 diff --git a/docs/input/documentation/assets/tables/supported-tools-typescript.csv b/docs/input/documentation/assets/tables/supported-tools-typescript.csv new file mode 100644 index 000000000..6925ecbe9 --- /dev/null +++ b/docs/input/documentation/assets/tables/supported-tools-typescript.csv @@ -0,0 +1,2 @@ +"Tool","Tool Version","Format","Issue Provider","Supported Since" +"[ESLint](https://eslint.org){target='_blank'}","Current","[json](https://eslint.org/docs/latest/use/formatters/#json){target='_blank'}","[Cake.Issues.EsLint](issue-providers/eslint/index.md)",0.1.0 \ No newline at end of file diff --git a/docs/input/docs/contributing/how-to-build.md b/docs/input/documentation/contributing/how-to-build.md similarity index 55% rename from docs/input/docs/contributing/how-to-build.md rename to docs/input/documentation/contributing/how-to-build.md index 0e256a7e2..a9100d7b2 100644 --- a/docs/input/docs/contributing/how-to-build.md +++ b/docs/input/documentation/contributing/how-to-build.md @@ -1,8 +1,8 @@ --- -Order: 30 -Title: How to build addins -Description: Instructions how to build individual Cake Issues addins. +title: How to build addins +description: Instructions how to build individual Cake Issues addins. --- + To build this a package we are using Cake. On Windows PowerShell run: @@ -14,4 +14,5 @@ On Windows PowerShell run: On OSX/Linux run: ```bash -./build.sh \ No newline at end of file +./build.sh +``` diff --git a/docs/input/docs/contributing/how-to-contribute.md b/docs/input/documentation/contributing/how-to-contribute.md similarity index 69% rename from docs/input/docs/contributing/how-to-contribute.md rename to docs/input/documentation/contributing/how-to-contribute.md index 8004ea3dd..52db0222f 100644 --- a/docs/input/docs/contributing/how-to-contribute.md +++ b/docs/input/documentation/contributing/how-to-contribute.md @@ -1,8 +1,8 @@ --- -Order: 10 -Title: How to contribute -Description: Instructions how to contribute to Cake Issues addins. +title: How to contribute +description: Instructions how to contribute to Cake Issues addins. --- + The repositories are using [GitFlow] with default configuration. Development is happening on `develop` branch. @@ -16,4 +16,4 @@ To contribute: For getting started see issues marked with `Up-for-grabs` in the individual repositories. -[GitFlow]: (http://nvie.com/posts/a-successful-git-branching-model/) \ No newline at end of file +[GitFlow]: https://nvie.com/posts/a-successful-git-branching-model/ diff --git a/docs/input/docs/contributing/how-to-release.md b/docs/input/documentation/contributing/how-to-release.md similarity index 53% rename from docs/input/docs/contributing/how-to-release.md rename to docs/input/documentation/contributing/how-to-release.md index fd8031546..6ff7b63a7 100644 --- a/docs/input/docs/contributing/how-to-release.md +++ b/docs/input/documentation/contributing/how-to-release.md @@ -1,8 +1,8 @@ --- -Order: 40 -Title: How to release addins -Description: Instructions how to release individual Cake Issues addins. +title: How to release addins +description: Instructions how to release individual Cake Issues addins. --- + See [Cake.Recipe documentation] how to create a new release of this addin. -[Cake.Recipe documentation]: https://cake-contrib.github.io/Cake.Recipe/docs/usage/creating-release \ No newline at end of file +[Cake.Recipe documentation]: https://cake-contrib.github.io/Cake.Recipe/docs/usage/creating-release diff --git a/docs/input/documentation/extending/index.md b/docs/input/documentation/extending/index.md new file mode 100644 index 000000000..d4f38ade0 --- /dev/null +++ b/docs/input/documentation/extending/index.md @@ -0,0 +1,10 @@ +--- +title: Extending +description: Instructions how to add support for additional analyzers, report formats and pull request system to the Cake Issues Addin. +--- + +Cake Issues can easily be extended with additional [Issue Provider], [Report Formats] and [Pull Request System integrations]. + +[Issue Provider]: issue-provider/overview.md +[Report Formats]: report-format/overview.md +[Pull Request System integrations]: pull-request-system/overview.md \ No newline at end of file diff --git a/docs/input/documentation/extending/issue-provider/categories.md b/docs/input/documentation/extending/issue-provider/categories.md new file mode 100644 index 000000000..828617af6 --- /dev/null +++ b/docs/input/documentation/extending/issue-provider/categories.md @@ -0,0 +1,21 @@ +--- +title: Alias categories +description: Instructions how to set the alias category. +--- + +Issue provider aliases should use the [IssuesAliasConstants.MainCakeAliasCategory](https://cakebuild.net/api/Cake.Issues/IssuesAliasConstants/41CCADF8){target="_blank"} +and [IssuesAliasConstants.IssueProviderCakeAliasCategory](https://cakebuild.net/api/Cake.Issues/IssuesAliasConstants/D265B28D){target="_blank"} +constants for defining their category: + +```csharp +[CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] +public static class MyIssueProviderAliases +{ + [CakeMethodAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static IIssueProvider MyIssueProvider( + this ICakeContext context) + { + } +} +``` diff --git a/docs/input/docs/extending/issue-provider/helper.md b/docs/input/documentation/extending/issue-provider/helper.md similarity index 56% rename from docs/input/docs/extending/issue-provider/helper.md rename to docs/input/documentation/extending/issue-provider/helper.md index e2c4e3b1c..6e444efe3 100644 --- a/docs/input/docs/extending/issue-provider/helper.md +++ b/docs/input/documentation/extending/issue-provider/helper.md @@ -1,16 +1,16 @@ --- -Order: 50 -Title: Helper -Description: Overview of different helper classes for implementing issue providers. +title: Helper +description: Overview of different helper classes for implementing issue providers. --- + The following helpers are provider by `Cake.Issues` for simplifying implementation of issue providers: -| Helper | Description | -|--------------------------|--------------------------------------------------------------------------------| -| [StringPathExtensions] | Extensions for string for handling paths. | -| [ByteArrayExtensions] | Extensions for converting between strings an byte arrays. | +| Helper | Description | +|------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------| +| [StringPathExtensions](https://cakebuild.net/api/Cake.Issues/StringPathExtensions/){target="_blank"} | Extensions for string for handling paths. | +| [ByteArrayExtensions](https://cakebuild.net/api/Cake.Issues/ByteArrayExtensions/){target="_blank"} | Extensions for converting between strings an byte arrays. | -# File linking +## File linking Cake.Issues provides infrastructure to get links to files on source code hosts like GitHub or Azure Repos. This infrastructure can be used inside issue providers to generate file links which can be used inside the issue messages: @@ -44,6 +44,3 @@ protected override IEnumerable InternalReadIssues() return result; } ``` - -[StringPathExtensions]: ../../../api/Cake.Issues/StringPathExtensions/ -[ByteArrayExtensions]: ../../../api/Cake.Issues/ByteArrayExtensions/ \ No newline at end of file diff --git a/docs/input/documentation/extending/issue-provider/overview.md b/docs/input/documentation/extending/issue-provider/overview.md new file mode 100644 index 000000000..3a9925425 --- /dev/null +++ b/docs/input/documentation/extending/issue-provider/overview.md @@ -0,0 +1,21 @@ +--- +title: Overview +description: Overview how to implement support for an analyzer or linter. +--- + +Issue providers need to implement the [IIssueProvider](https://cakebuild.net/api/Cake.Issues/IIssueProvider/){target="_blank"} +interface. + +## Base classes + +For simplifying implementation there exists base classes from which concrete implementation can be inherited. + +| Base Class | Use case | Tutorial | +|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|-------------------------------------| +| [BaseIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseIssueProvider/){target="_blank"} | Base class for a simple issue provider implementation. | [Simple provider] | +| [BaseConfigurableIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseConfigurableIssueProvider_1/){target="_blank"} | Base class for a issue provider with issue provider specific settings. | [Provider settings] | +| [BaseMultiFormatIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseMultiFormatIssueProvider_2/){target="_blank"} | Base class for issue providers supporting multiple log formats. | [Multiple log file formats support] | + +[Simple provider]: tutorials/simple.md +[Provider settings]: tutorials/settings.md +[Multiple log file formats support]: tutorials/logfile-format.md diff --git a/docs/input/docs/extending/issue-provider/tutorials/logfile-format.md b/docs/input/documentation/extending/issue-provider/tutorials/logfile-format.md similarity index 87% rename from docs/input/docs/extending/issue-provider/tutorials/logfile-format.md rename to docs/input/documentation/extending/issue-provider/tutorials/logfile-format.md index 2bbd0d283..b9f671672 100644 --- a/docs/input/docs/extending/issue-provider/tutorials/logfile-format.md +++ b/docs/input/documentation/extending/issue-provider/tutorials/logfile-format.md @@ -1,16 +1,18 @@ --- -Order: 30 -Title: Multiple log file formats -Description: Instructions how to implement an issue provider with support for multiple log file formats. +title: Multiple log file formats +description: Instructions how to implement an issue provider with support for multiple log file formats. --- + A single issue provider might support reading issues from multiple different log file formats. -For these cases the `Cake.Issue` addin provides the [BaseMultiFormatIssueProvider], [BaseMultiFormatIssueProviderSettings] -and [BaseLogFileFormat] classes for simplifying implementation in the issue provider addin. +For these cases the `Cake.Issue` addin provides the [BaseMultiFormatIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseMultiFormatIssueProvider_2/){target="_blank"}, +[BaseMultiFormatIssueProviderSettings](https://cakebuild.net/api/Cake.Issues/BaseMultiFormatIssueProviderSettings_2/){target="_blank"} +and [BaseLogFileFormat](https://cakebuild.net/api/Cake.Issues/BaseLogFileFormat_2/){target="_blank"} +classes for simplifying implementation in the issue provider addin. -# Implementing issue provider +## Implementing issue provider -A concrete class inheriting from [BaseMultiFormatIssueProvider] needs to be implemented defining the -concrete types. +A concrete class inheriting from [BaseMultiFormatIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseMultiFormatIssueProvider_2/){target="_blank"} +needs to be implemented defining the concrete types. ```csharp /// @@ -33,8 +35,8 @@ public class MyIssuesProvider : BaseMultiFormatIssueProvider @@ -92,7 +94,7 @@ public abstract class MyLogFileFormat : BaseLogFileFormat @@ -51,7 +55,8 @@ internal class MyRuleUrlResolver : BaseUrlResolver } ``` -To use the URL resolver the [ResolveRuleUrl] method needs to be called: +To use the URL resolver the [ResolveRuleUrl](https://cakebuild.net/api/Cake.Issues/BaseRuleUrlResolver_1/6B23EC74){target="_blank"} +method needs to be called: ```csharp var resolver = new MyRuleUrlResolver(); @@ -84,10 +89,10 @@ internal class MyRuleUrlResolver : BaseUrlResolver } ``` -# Support custom URL resolvers +## Support custom URL resolvers -The [AddUrlResolver] method can also be called from an Cake alias to allow users of the addin to -register custom resolvers. +The [AddUrlResolver](https://cakebuild.net/api/Cake.Issues/BaseRuleUrlResolver_1/AAA4FB20){target="_blank"} +method can also be called from an Cake alias to allow users of the addin to register custom resolvers. For this the URL resolver class needs to be implemented as a singleton: ```csharp @@ -126,9 +131,3 @@ public static class MyIssueProviderAliases MyRuleUrlResolver.Instance.AddUrlResolver(resolver); } ``` - -[BaseRuleDescription]: ../../../../api/Cake.Issues/BaseRuleDescription/ -[BaseRuleUrlResolver]: ../../../../api/Cake.Issues/BaseRuleUrlResolver_1/ -[TryGetRuleDescription]: ../../../../api/Cake.Issues/BaseRuleUrlResolver_1/D9DB5D44 -[AddUrlResolver]: ../../../../api/Cake.Issues/BaseRuleUrlResolver_1/AAA4FB20 -[ResolveRuleUrl]: ../../../../api/Cake.Issues/BaseRuleUrlResolver_1/6B23EC74 \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/tutorials/settings.md b/docs/input/documentation/extending/issue-provider/tutorials/settings.md similarity index 89% rename from docs/input/docs/extending/issue-provider/tutorials/settings.md rename to docs/input/documentation/extending/issue-provider/tutorials/settings.md index bafba5633..b94f5de62 100644 --- a/docs/input/docs/extending/issue-provider/tutorials/settings.md +++ b/docs/input/documentation/extending/issue-provider/tutorials/settings.md @@ -1,16 +1,17 @@ --- -Order: 20 -Title: Provider settings -Description: Instructions how to implement an issue provider with specific settings. +title: Provider settings +description: Instructions how to implement an issue provider with specific settings. --- + Often issue providers require specific settings. -For these cases the `Cake.Issue` addin provides the [BaseConfigurableIssueProvider] and [IssueProviderSettings] classes +For these cases the `Cake.Issue` addin provides the [BaseConfigurableIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseConfigurableIssueProvider_1/){target="_blank"} +and [IssueProviderSettings](https://cakebuild.net/api/Cake.Issues/IssueProviderSettings/){target="_blank"} classes for simplifying implementation in the issue provider addin. -# Implementing issue provider +## Implementing issue provider -A concrete class inheriting from [BaseConfigurableIssueProvider] needs to be implemented defining the -concrete settings class to use: +A concrete class inheriting from [BaseConfigurableIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseConfigurableIssueProvider_1/){target="_blank"} +needs to be implemented defining the concrete settings class to use: ```csharp /// @@ -49,7 +50,8 @@ public class MyIssuesProvider : BaseConfigurableIssueProvider } ``` -Also a concrete class inheriting from [IssueProviderSettings] needs to be implemented. +Also a concrete class inheriting from [IssueProviderSettings](https://cakebuild.net/api/Cake.Issues/IssueProviderSettings/){target="_blank"} +needs to be implemented. Based on the capabilities of the issue provider the appropriate constructors for reading from the file system or memory can be made public: @@ -83,7 +85,7 @@ public class MyIssuesSettings : IssueProviderSettings } ``` -# Aliases +## Aliases An alias for reading issues with the provider should be provided: @@ -200,6 +202,3 @@ public static string MyIssuesProviderTypeName( return typeof(MyIssuesProvider).FullName; } ``` - -[BaseConfigurableIssueProvider]: ../../../../api/Cake.Issues/BaseConfigurableIssueProvider_1/ -[IssueProviderSettings ]: ../../../../api/Cake.Issues/IssueProviderSettings/ \ No newline at end of file diff --git a/docs/input/docs/extending/issue-provider/tutorials/simple.md b/docs/input/documentation/extending/issue-provider/tutorials/simple.md similarity index 84% rename from docs/input/docs/extending/issue-provider/tutorials/simple.md rename to docs/input/documentation/extending/issue-provider/tutorials/simple.md index b84d429df..d6b2b156b 100644 --- a/docs/input/docs/extending/issue-provider/tutorials/simple.md +++ b/docs/input/documentation/extending/issue-provider/tutorials/simple.md @@ -1,14 +1,16 @@ --- -Order: 10 -Title: Simple issue provider -Description: Instructions how to implement a simple issue provider. +title: Simple issue provider +description: Instructions how to implement a simple issue provider. --- -This tutorial explains how to implement a simple issue provider using the [BaseIssueProvider] class -from the `Cake.Issue` addin. -# Implementing issue provider +This tutorial explains how to implement a simple issue provider using the +[BaseIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseIssueProvider/){target="_blank"} +class from the `Cake.Issue` addin. -A concrete class inheriting from [BaseIssueProvider] needs to be implemented: +## Implementing issue provider + +A concrete class inheriting from [BaseIssueProvider](https://cakebuild.net/api/Cake.Issues/BaseIssueProvider/){target="_blank"} +needs to be implemented: ```csharp /// @@ -46,7 +48,7 @@ public class MyIssuesProvider : BaseIssueProvider } ``` -# Aliases +## Aliases An alias for reading issues with the provider should be provided: @@ -96,5 +98,3 @@ public static string MyIssuesProviderTypeName( return typeof(MyIssuesProvider).FullName; } ``` - -[BaseIssueProvider]: ../../../../api/Cake.Issues/BaseIssueProvider/ \ No newline at end of file diff --git a/docs/input/docs/extending/pull-request-system/categories.md b/docs/input/documentation/extending/pull-request-system/categories.md similarity index 51% rename from docs/input/docs/extending/pull-request-system/categories.md rename to docs/input/documentation/extending/pull-request-system/categories.md index c375b8316..d303fc3c8 100644 --- a/docs/input/docs/extending/pull-request-system/categories.md +++ b/docs/input/documentation/extending/pull-request-system/categories.md @@ -1,10 +1,11 @@ --- -Order: 30 -Title: Alias categories -Description: Instructions how to set the alias category. +title: Alias categories +description: Instructions how to set the alias category. --- -Pull request system aliases should use the [IssuesAliasConstants.MainCakeAliasCategory] and -[PullRequestsAliasConstants.PullRequestSystemCakeAliasCategory] constants for defining their category: + +Pull request system aliases should use the [IssuesAliasConstants.MainCakeAliasCategory](https://cakebuild.net/api/Cake.Issues/IssuesAliasConstants/41CCADF8){target="_blank"} +and [PullRequestsAliasConstants.PullRequestSystemCakeAliasCategory](https://cakebuild.net/api/Cake.Issues.PullRequests/PullRequestsAliasConstants/B4C013A1){target="_blank"} +constants for defining their category: ```csharp [CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] @@ -18,6 +19,3 @@ public static class MyPullRequestSystemAliases } } ``` - -[IssuesAliasConstants.MainCakeAliasCategory]: ../../../api/Cake.Issues/IssuesAliasConstants/41CCADF8 -[PullRequestsAliasConstants.PullRequestSystemCakeAliasCategory]: ../../../api/Cake.Issues.PullRequests/PullRequestsAliasConstants/B4C013A1 \ No newline at end of file diff --git a/docs/input/documentation/extending/pull-request-system/overview.md b/docs/input/documentation/extending/pull-request-system/overview.md new file mode 100644 index 000000000..94f5f48bf --- /dev/null +++ b/docs/input/documentation/extending/pull-request-system/overview.md @@ -0,0 +1,22 @@ +--- +title: Overview +description: Overview how to implement support for a pull request system. +--- + +Pull Request Systems need to implement the [IPullRequestSystem](https://cakebuild.net/api/Cake.Issues.PullRequests/IPullRequestSystem/){target="_blank"} +interface. + +## BaseClasses + +For simplifying implementation there exists base classes from which concrete implementation can be inherited. +[BasePullRequestSystem](https://cakebuild.net/api/Cake.Issues.PullRequests/BasePullRequestSystem/){target="_blank"} +is the main base class with the required functionality for a pull request system implementation. +Additionally there exists several classes which can be implemented to support additional optional capabilities +in a pull request system implementation. + +| Base Class | Use case | Tutorial | +|---------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------| +| [BasePullRequestSystem](https://cakebuild.net/api/Cake.Issues.PullRequests/BasePullRequestSystem/){target="_blank"} | Base class for all pull request system implementations. | | +| [BaseCheckingCommitIdCapability](https://cakebuild.net/api/Cake.Issues.PullRequests/BaseCheckingCommitIdCapability_1/){target="_blank"} | Base class for capability to post issues only if pull request is for a specific commit. | | +| [BaseDiscussionThreadsCapability](https://cakebuild.net/api/Cake.Issues.PullRequests/BaseDiscussionThreadsCapability_1/){target="_blank"} | Base class for capability to read, resolve and reopen discussion threads. | | +| [BaseFilteringByModifiedFilesCapability](https://cakebuild.net/api/Cake.Issues.PullRequests/BaseFilteringByModifiedFilesCapability_1/){target="_blank"} | Base class for capability to filter issues to only those affecting files modified in the pull request. | | diff --git a/docs/input/documentation/extending/report-format/categories.md b/docs/input/documentation/extending/report-format/categories.md new file mode 100644 index 000000000..dc45d8ff7 --- /dev/null +++ b/docs/input/documentation/extending/report-format/categories.md @@ -0,0 +1,21 @@ +--- +title: Alias categories +description: Instructions how to set the alias category. +--- + +Report format aliases should use the [IssuesAliasConstants.MainCakeAliasCategory](https://cakebuild.net/api/Cake.Issues/IssuesAliasConstants/41CCADF8){target="_blank"} +and [ReportingAliasConstants.ReportingFormatCakeAliasCategory](https://cakebuild.net/api/Cake.Issues.Reporting/ReportingAliasConstants/979CDCAF){target="_blank"} +constants for defining their category: + +```csharp +[CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] +public static class MyReportFormatAliases +{ + [CakeMethodAlias] + [CakeAliasCategory(ReportingAliasConstants.ReportingFormatCakeAliasCategory)] + public static IIssueReportFormat MyReportFormat( + this ICakeContext context) + { + } +} +``` diff --git a/docs/input/documentation/extending/report-format/overview.md b/docs/input/documentation/extending/report-format/overview.md new file mode 100644 index 000000000..752ae4f5b --- /dev/null +++ b/docs/input/documentation/extending/report-format/overview.md @@ -0,0 +1,8 @@ +--- +title: Overview +description: Overview how to implement support for a report output format. +--- + +Report formats need to implement the [IIssueReportFormat](https://cakebuild.net/api/Cake.Issues.Reporting/IIssueReportFormat/){target="_blank"} interface. +For simplifying implementation there exists an abstract [IssueReportFormat](https://cakebuild.net/api/Cake.Issues.Reporting/IssueReportFormat/){target="_blank"} +base class from which concrete implementation can be inherited. diff --git a/docs/input/documentation/extending/testing.md b/docs/input/documentation/extending/testing.md new file mode 100644 index 000000000..50294cb83 --- /dev/null +++ b/docs/input/documentation/extending/testing.md @@ -0,0 +1,11 @@ +--- +title: Testing +description: Instructions how to write test cases for Cake Issues addins. +--- + +The [Cake.Issues.Testing]{target="_blank"} package provides different helper classes for writing test cases +for issue provider, report format or pull request system addins. + +[API Documentation on fuget.org](https://www.fuget.org/packages/Cake.Issues.Testing){ target="_blank" .md-button .md-button--primary } + +[Cake.Issues.Testing]: https://www.nuget.org/packages/Cake.Issues.Testing diff --git a/docs/input/documentation/features.md b/docs/input/documentation/features.md new file mode 100644 index 000000000..28e987588 --- /dev/null +++ b/docs/input/documentation/features.md @@ -0,0 +1,161 @@ +--- +title: Features +description: Overview about core features. +--- + +## Ready To Use Distributions + +
    + +- :material-arrow-collapse-all:{ .lg .middle } __Cake Recipe Packages__ + + --- + + Cake Issues recipes provide build scripts, delivered as a NuGet package, + which can be used inside your projects Cake build to add issue management. + + It handles all the parsing, integration with build and pull request systems for you, + using the individual Cake Issues addins. + + [:octicons-arrow-right-24: Recipes](recipe/index.md) + +
    + +## Reading & Creating Issues + +
    + +- :material-import:{ .lg .middle } __Read issues provided by tools__ + + --- + + The `ReadIssues` aliases can be used for reading issues reported by a linter to tool using an [issue provider]. + + There are overloads for reading using a single or multiple [issue provider]. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues/#Reading-Issues){target="_blank"} + +- :material-creation-outline:{ .lg .middle } __Create issues in your build__ + + --- + + The `NewIssue` aliases can be used for creating issues in the build script. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues/#Creating-Issues){target="_blank"} + +- :material-file-link:{ .lg .middle } __Support for file links__ + + --- + + Support for creating links to file & location on source code hosting system (GitHub, Azure Repos, etc). + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues/#File-Linking){target="_blank"} + +- :material-swap-vertical-bold:{ .lg .middle } __Issue serialization__ + + --- + + Support for serializing and deserializing created issues and issues read from tools. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues/#Issue-Serialization){target="_blank"} + +- :material-format-title:{ .lg .middle } __Support for multiple message formats__ + + --- + + Support for reading issues in multiple formats (Plain text, Markdown, HTML) if supported by [issue provider]. + +- :material-information:{ .lg .middle } __Support for run information__ + + --- + + Support for passing additional run information to identify specific runs. + +
    + +## Breaking builds + +
    + +- :material-exclamation:{ .lg .middle } __Fail builds on reported issues__ + + --- + + The `BreakBuildOnIssues` aliases can be used for failing builds if specific issues were reported. + + There are overloads for failing if issues of certain minimum priority or issue providers are found, + or by passing any custom function. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues/#Build-Breaking){target="_blank"} + +
    + +## Reporting + +
    + +- :material-monitor-dashboard:{ .lg .middle } __Create reports__ + + --- + + The `CreateIssueReport` aliases can be used for creating reports in a supported [reporting format]. + + There are overloads for reading issues from a single or multiple [issue provider] or for passing an existing list of issues. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues-reporting/#Creating-Issue-Reports){target="_blank"} + +
    + +## Build & Pull Request System Integration + +
    + +- :material-comment-text:{ .lg .middle } __Add comments to pull requests__ + + --- + + The `ReportIssuesToPullRequest` aliases can be used for writing issues as comments to [pull requests]. + + There are overloads for reading issues from a single or multiple [issue provider] or for passing an existing list of issues. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues-pullrequests/#Reporting-Issues-To-Pull-Requests){target="_blank"} + +- :material-message-plus:{ .lg .middle } __Report issues to build runs__ + + --- + + The `ReportIssuesToPullRequest` aliases can be used for reporting issues to [build runs]. + + There are overloads for reading issues from a single or multiple [issue provider] or for passing an existing list of issues. + + [:octicons-arrow-right-24: Aliases](https://cakebuild.net/extensions/cake-issues-pullrequests/#Reporting-Issues-To-Pull-Requests){target="_blank"} + +- :material-filter:{ .lg .middle } __Issue filters__ + + --- + + Support for passing custom issue filter routines. + + [:octicons-arrow-right-24: Setting](https://cakebuild.net/api/Cake.Issues.PullRequests/IReportIssuesToPullRequestSettings/48CB35E4){target="_blank"} + +- :material-car-speed-limiter:{ .lg .middle } __Limit reported issues__ + + --- + + Advanced support to limit number of maximum issues per run, across multiple runs or per issue provider through settings. + + [:octicons-arrow-right-24: Settings](https://cakebuild.net/api/Cake.Issues.PullRequests/IReportIssuesToPullRequestSettings/){target="_blank"} + +- :material-comment-check:{ .lg .middle } __Automatic comment resolving__ + + --- + + If supported by the [pull request system], comments for issues are automatic resolved if fixed in subsequent commits. + +
    + +[issue provider]: issue-providers/index.md +[reporting format]: report-formats/index.md +[pull requests]: pull-request-systems/index.md +[build runs]: pull-request-systems/index.md +[pull request system]: pull-request-systems/index.md diff --git a/docs/input/documentation/how-cake-issues-works.md b/docs/input/documentation/how-cake-issues-works.md new file mode 100644 index 000000000..b9b8db2df --- /dev/null +++ b/docs/input/documentation/how-cake-issues-works.md @@ -0,0 +1,45 @@ +--- +title: How Cake Issues Works +description: Overview about the architecture of Cake Issues. +--- + +The Cake Issues addins are built in a modular architecture, allowing to easily +enhance it for supporting additional analyzers, linters, report formats and pull request systems. + +![Architecture Overview](assets/images/overview.png "Architecture Overview") + +## Cake.Issues addin + +The `Cake.Issues` addin provides aliases for creating issues or reading issues using one or more issue providers. + +Support for different code analyzers and linters is provided through [issue provider] addins +which cover a wide range of [linters and tools]. + +The issues are read into [IIssue](https://cakebuild.net/api/Cake.Issues/IIssue/){target="_blank"} objects +which then can be passed to [Cake.Issues.Reporting addin](#cakeissuesreporting-addin), +[Cake.Issues.PullRequests addin](#cakeissuespullrequests-addin) or further processed in the build script. + +The use of [issue provider] addins, which contain the parsing logic for individual tool output formats, +and the use of [IIssue](https://cakebuild.net/api/Cake.Issues/IIssue/){target="_blank"} as common data structure, +allows to abstract the tooling output from other concerns like integration with +build systems, pull request workflow or the creation of reports. + +## Cake.Issues.Reporting addin + +The `Cake.Issues.Reporting` addin provides aliases for creating reports for issues +which are read or have been created using the [Cake.Issues addin](#cakeissues-addin). + +Support for different report formats is provided through [report format] addins. + +## Cake.Issues.PullRequests addin + +The `Cake.Issues.PullRequests` addin provides aliases for reporting issues +which are read or have been created using the [Cake.Issues addin](#cakeissues-addin) +as comments to pull requests or builds. + +Support for different pull request systems is provided through [pull request system] addins. + +[issue provider]: issue-providers/index.md +[linters and tools]: supported-tools.md +[report format]: report-formats/index.md +[pull request system]: pull-request-systems/index.md diff --git a/docs/input/documentation/issue-providers/docfx/examples.md b/docs/input/documentation/issue-providers/docfx/examples.md new file mode 100644 index 000000000..6bafd0422 --- /dev/null +++ b/docs/input/documentation/issue-providers/docfx/examples.md @@ -0,0 +1,131 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.DocFx addin. +icon: material/test-tube +--- + +To call [DocFx](https://dotnet.github.io/docfx/){target="_blank"} from a Cake script +the [Cake.DocFx](https://cakebuild.net/extensions/cake-docfx/){target="_blank"} addin can be used. +To read issues from DocFx log files the DocFx issue provider needs to be imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.DocFx&version={{ cake_docfx_version }} + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.DocFx&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the DocFx issue provider the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example contains a task which will build the [DocFx](https://dotnet.github.io/docfx/){target="_blank"} +project and write a log file and a task to read issues from the log file and write the number of warnings to the console: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + var logPath = @"c:\build\docfx.log"; + var repoRootFolder = MakeAbsolute(Directory("./")); + var docRootPath = @"docs"; + + Task("Build-Documentation").Does(() => + { + // Run DocFx. + DocFxBuild(new DocFxBuildSettings() + { + LogPath = logPath + }); + }); + + Task("Read-Issues") + .IsDependentOn("Build-Documentation") + .Does(() => + { + // Read issues. + var issues = + ReadIssues( + DocFxIssuesFromFilePath(logPath, docRootPath), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Core.IO; + using Cake.Core; + using Cake.DocFx; + using Cake.DocFx.Build; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .Run(args); + } + } + + public class BuildContext(ICakeContext context) : FrostingContext(context) + { + public FilePath LogPath { get; } = @"c:\build\docfx.log"; + public DirectoryPath RepoRootPath { get; } = + context.MakeAbsolute(context.Directory("./")); + public string DocRootPath { get; } = "docs"; + } + + [TaskName("Build-Documentation")] + public sealed class BuildDocumentationTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Run DocFx. + context.DocFxBuild(new DocFxBuildSettings() + { + LogPath = context.LogPath + }); + } + } + + [TaskName("Read-Issues")] + [IsDependentOn(typeof(BuildDocumentationTask))] + public sealed class ReadIssuesTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Read issues. + var issues = + context.ReadIssues( + context.DocFxIssuesFromFilePath( + context.LogPath, + context.DocRootPath), + context.RepoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` diff --git a/docs/input/documentation/issue-providers/docfx/features.md b/docs/input/documentation/issue-providers/docfx/features.md new file mode 100644 index 000000000..5204f996f --- /dev/null +++ b/docs/input/documentation/issue-providers/docfx/features.md @@ -0,0 +1,46 @@ +--- +title: Features +description: Features of the Cake.Issues.DocFx addin. +icon: material/creation-outline +--- + +The [Cake.Issues.DocFx addin](https://cakebuild.net/extensions/cake-issues-docfx/){target="_blank"} +provides the following features. + +??? tip "Tip: Running DocFx" + [DocFx](https://dotnet.github.io/docfx/){target="_blank"} can be run with + [Cake.DocFx](https://cakebuild.net/extensions/cake-docfx/){target="_blank"} addin. + +## Basic features + +- [x] Reads warnings from [DocFx](https://dotnet.github.io/docfx/){target="_blank"} log files. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [ ] `IIssue.Column` +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues diff --git a/docs/input/documentation/issue-providers/docfx/index.md b/docs/input/documentation/issue-providers/docfx/index.md new file mode 100644 index 000000000..e3ec45b89 --- /dev/null +++ b/docs/input/documentation/issue-providers/docfx/index.md @@ -0,0 +1,15 @@ +--- +title: DocFx +description: Issue provider which allows you to read warnings logged by DocFx. +--- + +Support for reading warnings reported by [DocFx](https://dotnet.github.io/docfx/){target="_blank"} is implemented in the +[Cake.Issues.DocFx addin](https://cakebuild.net/extensions/cake-issues-docfx/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-docfx){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/eslint/features.md b/docs/input/documentation/issue-providers/eslint/features.md new file mode 100644 index 000000000..2d1eebb54 --- /dev/null +++ b/docs/input/documentation/issue-providers/eslint/features.md @@ -0,0 +1,55 @@ +--- +title: Features +description: Features of the Cake.Issues.EsLint addin. +icon: material/creation-outline +--- + +The [Cake.Issues.EsLint addin](https://cakebuild.net/extensions/cake-issues-eslint/){target="_blank"} provides the following features. + +??? tip "Tip: Running ESLint" + [ESLint](https://eslint.org){target="_blank"} can be run with + [Cake.ESLint](https://cakebuild.net/extensions/cake-eslint/){target="_blank"} addin. + +## Basic features + +- [x] Reads issues reported by ESLint. +- [x] Provides URLs for all issues. +- [x] Support for custom URL resolving using the [EsLintAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.EsLint/EsLintIssuesAliases/0F6CCE21){target="_blank"} + alias. + +## Supported log file formats + +- [x] [EsLintJsonFormat](https://cakebuild.net/api/Cake.Issues.EsLint/EsLintIssuesAliases/230C6E27){target="_blank"} + alias for reading issues from log files created by + [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"}. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [x] `IIssue.Column` +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` (4) + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues +4. Support for custom rules can be added through a custom [EsLintAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.EsLint/EsLintIssuesAliases/0F6CCE21){target="_blank"} diff --git a/docs/input/documentation/issue-providers/eslint/index.md b/docs/input/documentation/issue-providers/eslint/index.md new file mode 100644 index 000000000..cbbd4049c --- /dev/null +++ b/docs/input/documentation/issue-providers/eslint/index.md @@ -0,0 +1,14 @@ +--- +title: ESLint +description: Issue provider which allows you to read issues logged by ESLint. +--- + +Support for reading issues reported by [ESLint](https://eslint.org/){target="_blank"} +is implemented in the [Cake.Issues.EsLint addin](https://cakebuild.net/extensions/cake-issues-eslint/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-eslint){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/gitrepository/examples.md b/docs/input/documentation/issue-providers/gitrepository/examples.md new file mode 100644 index 000000000..d4cf7754a --- /dev/null +++ b/docs/input/documentation/issue-providers/gitrepository/examples.md @@ -0,0 +1,102 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.GitRepository addin. +icon: material/test-tube +--- + +To analyze Git repositories you need to import the Git repository issue provider: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.GitRepository&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the Git repository issue provider the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + ``` + +The following example prints the number of binary files which are not tracked by +[Git Large File Storage](https://git-lfs.github.com/){target="_blank"} in a repository. + +!!! warning + Checking binary files requires Git and [Git Large File Storage](https://git-lfs.github.com/){target="_blank"} + available on the local machine. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Analyze-Repo") + .Does(() => + { + // Read issues. + var repoRootPath = MakeAbsolute(Directory("./")); + var settings = + new GitRepositoryIssuesSettings + { + CheckBinaryFilesTrackedByLfs = true + }; + + var issues = + ReadIssues( + GitRepositoryIssues(settings), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Analyze-Repo")] + public sealed class AnalyzeRepoTask : FrostingTask + { + public override void Run(FrostingContext context) + { + // Read issues. + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + var settings = + new GitRepositoryIssuesSettings + { + CheckBinaryFilesTrackedByLfs = true + }; + + var issues = + context.ReadIssues( + context.GitRepositoryIssues(settings), + repoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` diff --git a/docs/input/documentation/issue-providers/gitrepository/features.md b/docs/input/documentation/issue-providers/gitrepository/features.md new file mode 100644 index 000000000..16200e092 --- /dev/null +++ b/docs/input/documentation/issue-providers/gitrepository/features.md @@ -0,0 +1,46 @@ +--- +title: Features +description: Features of the Cake.Issues.GitRepository addin. +icon: material/creation-outline +--- + +The [Cake.Issues.GitRepository addin](https://cakebuild.net/extensions/cake-issues-gitrepository/){target="_blank"} +provides the following features. + +## Basic features + +- [x] Checks path length of files. See [FilePathTooLong] for details. +- [x] Checks if binary files are tracked by Git LFS. See [BinaryFileNotTrackedByLfs] for details. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [ ] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [ ] `IIssue.Column` +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [x] `IIssue.MessageHtml` +- [x] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues + +[FilePathTooLong]: rules/FilePathTooLong.md +[BinaryFileNotTrackedByLfs]: rules/BinaryFileNotTrackedByLfs.md diff --git a/docs/input/documentation/issue-providers/gitrepository/index.md b/docs/input/documentation/issue-providers/gitrepository/index.md new file mode 100644 index 000000000..f144d933e --- /dev/null +++ b/docs/input/documentation/issue-providers/gitrepository/index.md @@ -0,0 +1,16 @@ +--- +title: Git Repository +description: Issue provider which allows you to analyzing Git repositories and create issues resulting from it. +--- + +Support for analyzing Git repositories is implemented in the +[Cake.Issues.GitRepository addin](https://cakebuild.net/extensions/cake-issues-gitrepository/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :fontawesome-solid-scroll: [Rules](rules/index.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-gitrepository){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md b/docs/input/documentation/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md new file mode 100644 index 000000000..acafd93a5 --- /dev/null +++ b/docs/input/documentation/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md @@ -0,0 +1,28 @@ +--- +title: BinaryFileNotTrackedByLfs +description: A binary file is not tracked by Git LFS. +--- + +| Metadata | | +|--------------|---------------------------| +| Rule Id | BinaryFileNotTrackedByLfs | +| Priority | Warning | +| Available in | 0.7.0 or higher | + +## Cause + +A binary file in the repository is not tracked by [Git Large File Storage](https://git-lfs.github.com/){target="_blank"}. + +## Rule description + +By its nature Git repositories cannot handle binary files well and will keep a full copy of that file in the repository every time a change to that file is committed. +Considering that you always clone the full history of a repository, and not only the latest version, using binary files in a repository considerably slow downs the operation. +[Git Large File Storage](https://git-lfs.github.com/){target="_blank"} replaces large files with small text pointers inside the Git repository, while storing the file contents on a remote server. + +!!! info + The rule assumes that all files, which are not text files are binary files. + This also includes for example empty files. + +## How to fix violations + +Track the file with [Git Large File Storage](https://git-lfs.github.com/){target="_blank"}. diff --git a/docs/input/docs/issue-providers/gitrepository/rules/FilePathTooLong.md b/docs/input/documentation/issue-providers/gitrepository/rules/FilePathTooLong.md similarity index 58% rename from docs/input/docs/issue-providers/gitrepository/rules/FilePathTooLong.md rename to docs/input/documentation/issue-providers/gitrepository/rules/FilePathTooLong.md index e3eb20e67..ac7dfb3db 100644 --- a/docs/input/docs/issue-providers/gitrepository/rules/FilePathTooLong.md +++ b/docs/input/documentation/issue-providers/gitrepository/rules/FilePathTooLong.md @@ -1,15 +1,13 @@ --- -Title: FilePathTooLong -Description: The path of a file is too long. +title: FilePathTooLong +description: The path of a file is too long. --- - - - +| Metadata | | +|--------------|-----------------| +| Rule Id | FilePathTooLong | +| Priority | Warning | +| Available in | 0.7.3 or higher | ## Cause diff --git a/docs/input/documentation/issue-providers/gitrepository/rules/index.md b/docs/input/documentation/issue-providers/gitrepository/rules/index.md new file mode 100644 index 000000000..0e633c7ec --- /dev/null +++ b/docs/input/documentation/issue-providers/gitrepository/rules/index.md @@ -0,0 +1,12 @@ +--- +title: Rules +description: Rules of the Cake.Issues.GitRepository provider. +icon: fontawesome/solid/scroll +--- + +
    + +- :fontawesome-solid-scroll: [BinaryFileNotTrackedByLfs](BinaryFileNotTrackedByLfs.md) +- :fontawesome-solid-scroll: [FilePathTooLong](FilePathTooLong.md) + +
    diff --git a/docs/input/documentation/issue-providers/index.md b/docs/input/documentation/issue-providers/index.md new file mode 100644 index 000000000..90b886152 --- /dev/null +++ b/docs/input/documentation/issue-providers/index.md @@ -0,0 +1,35 @@ +--- +title: Issue Providers +description: Documentation of the different issue provider addins. +--- + +Issue provider addins are responsible for providing the output of an analyzer or linter to the Cake Issues addin. + +
    + +- :material-layers-plus: __[DocFx]__ – Issue provider for reading DocFx warnings +- :material-layers-plus: __[ESLint]__ – Issue provider for reading ESLint issues +- :material-layers-plus: __[Git Repository]__ – Issue provider for analyzing Git repositories +- :material-layers-plus: __[Inspect Code]__ – Issue provider for reading JetBrains Inspect Code / ReSharper issues +- :material-layers-plus: __[Markdownlint]__ – Issue provider for reading issues from markdownlint +- :material-layers-plus: __[MsBuild]__ – Issue provider for reading MsBuild errors and warnings +- :material-layers-plus: __[Sarif]__ – Issue provider for reading SARIF reports +- :material-layers-plus: __[Test Anything Protocol (TAP)]__ – Issue provider for reading TAP reports +- :material-layers-plus: __[Terraform]__ – Issue provider for reading Terraform validation output + +
    + +[DocFx]: docfx/index.md +[ESLint]: eslint/index.md +[Git Repository]: gitrepository/index.md +[Inspect Code]: inspectcode/index.md +[Markdownlint]: markdownlint/index.md +[MsBuild]: msbuild/index.md +[Sarif]: sarif/index.md +[Test Anything Protocol (TAP)]: tap/index.md +[Terraform]: terraform/index.md + +!!! tip + See [How to implement issue providers] for instruction on how to implement support for additional issue providers. + +[How to implement issue providers]: ../extending/issue-provider/overview.md diff --git a/docs/input/documentation/issue-providers/inspectcode/examples.md b/docs/input/documentation/issue-providers/inspectcode/examples.md new file mode 100644 index 000000000..b2c5d44db --- /dev/null +++ b/docs/input/documentation/issue-providers/inspectcode/examples.md @@ -0,0 +1,134 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.InspectCode addin. +icon: material/test-tube +--- + +To read issues from InspectCode log files the InspectCode issue provider needs to be imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the InspectCode issue provider the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + ``` + +The following example contains a task which will run [JetBrains InspectCode]{target="_blank"} +and write a log file and a task to read issues from the log file and write the number of warnings to the console. +[JetBrains InspectCode] is installed using `JetBrains.ReSharper.CommandLineTools`: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #tool "nuget:?package=JetBrains.ReSharper.CommandLineTools&version={{ resharper_commandlinetool_version }}" + + var logPath = @"c:\build\inspectcode.xml"; + var repoRootFolder = MakeAbsolute(Directory("./")); + + Task("Analyze-Project").Does(() => + { + // Run InspectCode. + var settings = new InspectCodeSettings() { + OutputFile = logPath + }; + + InspectCode(repoRootPath.CombineWithFilePath("MySolution.sln"), settings); + }); + + Task("Read-Issues") + .IsDependentOn("Analyze-Project") + .Does(() => + { + // Read issues. + var issues = + ReadIssues( + InspectCodeIssuesFromFilePath(logPath), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Core.IO; + using Cake.Core; + using Cake.Frosting; + using Cake.Common.Tools.InspectCode; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .InstallTool( + new Uri( + "nuget:?package=JetBrains.ReSharper.CommandLineTools&version={{ resharper_commandlinetool_version }}")) + .Run(args); + } + } + + public class BuildContext(ICakeContext context) : FrostingContext(context) + { + public FilePath LogPath { get; } = @"c:\build\inspectcode.xml"; + public DirectoryPath RepoRootPath { get; } = + context.MakeAbsolute(context.Directory("./")); + } + + [TaskName("Analyze-Project")] + public sealed class AnalyzeProjectTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Run InspectCode. + var settings = new InspectCodeSettings() { + OutputFile = context.LogPath + }; + + context.InspectCode( + context.RepoRootPath.CombineWithFilePath("MySolution.sln"), + settings); + } + } + + [TaskName("Read-Issues")] + [IsDependentOn(typeof(AnalyzeProjectTask))] + public sealed class ReadIssuesTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Read issues. + var issues = + context.ReadIssues( + context.InspectCodeIssuesFromFilePath(context.LogPath), + context.RepoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` + +[JetBrains InspectCode]: https://www.jetbrains.com/help/resharper/InspectCode.html diff --git a/docs/input/documentation/issue-providers/inspectcode/features.md b/docs/input/documentation/issue-providers/inspectcode/features.md new file mode 100644 index 000000000..ed02edf38 --- /dev/null +++ b/docs/input/documentation/issue-providers/inspectcode/features.md @@ -0,0 +1,49 @@ +--- +title: Features +description: Features of the Cake.Issues.InspectCode addin. +icon: material/creation-outline +--- + +The [Cake.Issues.InspectCode addin]{target="_blank"} provides the following features. + +??? tip "Tip: Running InspectCode" + [JetBrains InsepectCode]{target="_blank"} can be run using the [InspectCode alias]{target="_blank"}. + +## Basic features + +- [x] Reads warnings from [JetBrains InsepectCode]{target="_blank"} log files. +- [x] Provides URLs for issues containing a Wiki URL. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [x] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [ ] `IIssue.Column` +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues + +[JetBrains InsepectCode]: https://www.jetbrains.com/help/resharper/InspectCode.html +[Cake.Issues.InspectCode addin]: https://cakebuild.net/extensions/cake-issues-inspectcode/ +[InspectCode alias]: https://cakebuild.net/dsl/resharper/#InspectCode diff --git a/docs/input/documentation/issue-providers/inspectcode/index.md b/docs/input/documentation/issue-providers/inspectcode/index.md new file mode 100644 index 000000000..61a076ece --- /dev/null +++ b/docs/input/documentation/issue-providers/inspectcode/index.md @@ -0,0 +1,15 @@ +--- +title: InspectCode +description: Issue provider which allows you to read issues logged by JetBrains Inspect Code. +--- + +Support for reading issues reported by [JetBrains Inspect Code](https://www.jetbrains.com/help/resharper/2017.1/InspectCode.html) +is implemented in the [Cake.Issues.InspectCode addin](https://www.nuget.org/packages/Cake.Issues.InspectCode). + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-inspectcode){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/markdownlint/examples.md b/docs/input/documentation/issue-providers/markdownlint/examples.md new file mode 100644 index 000000000..2b40b69a3 --- /dev/null +++ b/docs/input/documentation/issue-providers/markdownlint/examples.md @@ -0,0 +1,139 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.Markdownlint addin. +icon: material/test-tube +--- + +To call [markdownlint-cli]{target="_blank"} from a Cake script the [Cake.Markdownlint]{target="_blank"} addin can be used. +To read issues from markdownlint-cli log files the markdownlint issue provider needs to be imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Markdownlint&version={{ cake_markdownlint_version }} + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Markdownlint&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the markdownlint issue provider the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example contains a task which will run [markdownlint-cli]{target="_blank"} and write a log file +and a task to read issues from the log file and write the number of warnings to the console: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + var logPath = @"c:\build\markdownlint.log"; + var repoRootFolder = MakeAbsolute(Directory("./")); + + Task("Lint-Documentation").Does(() => + { + // Run markdownlint-cli. + var settings = + MarkdownlintNodeJsRunnerSettings.ForDirectory( + context.RepoRootPath.Combine("docs")); + settings.OutputFile = logPath; + settings.ThrowOnIssue = false; + RunMarkdownlintNodeJs(settings); + }); + + Task("Read-Issues") + .IsDependentOn("Lint-Documentation") + .Does(() => + { + // Read issues. + var issues = + ReadIssues( + MarkdownlintIssuesFromFilePath( + logPath, + MarkdownlintCliLogFileFormat), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); + }); + + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Common.IO; + using Cake.Core; + using Cake.Core.IO; + using Cake.Frosting; + using Cake.Markdownlint; + using Cake.Markdownlint.NodeJs; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .Run(args); + } + } + + public class BuildContext(ICakeContext context) : FrostingContext(context) + { + public FilePath LogPath { get; } = @"c:\build\markdownlint.log"; + public DirectoryPath RepoRootPath { get; } = + context.MakeAbsolute(context.Directory("./")); + } + + [TaskName("Lint-Documentation")] + public sealed class LintDocumentationTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Run markdownlint-cli. + var settings = + MarkdownlintNodeJsRunnerSettings.ForDirectory( + context.RepoRootPath.Combine("docs")); + settings.OutputFile = context.LogPath; + settings.ThrowOnIssue = false; + context.RunMarkdownlintNodeJs(settings); + } + } + + [TaskName("Read-Issues")] + [IsDependentOn(typeof(LintDocumentationTask))] + public sealed class ReadIssuesTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Read issues. + var issues = + context.ReadIssues( + context.MarkdownlintIssuesFromFilePath( + context.LogPath, + context.MarkdownlintCliLogFileFormat()), + context.RepoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` + +[markdownlint-cli]: https://github.com/igorshubovych/markdownlint-cli +[Cake.Markdownlint]: https://cakebuild.net/extensions/cake-markdownlint/ diff --git a/docs/input/documentation/issue-providers/markdownlint/features.md b/docs/input/documentation/issue-providers/markdownlint/features.md new file mode 100644 index 000000000..d03fc774e --- /dev/null +++ b/docs/input/documentation/issue-providers/markdownlint/features.md @@ -0,0 +1,65 @@ +--- +title: Features +description: Features of the Cake.Issues.Markdownlint addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Markdownlint addin](https://cakebuild.net/extensions/cake-issues-markdownlint/){target="_blank"} +provides the following features. + +??? tip "Tip: Running markdownlint" + [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target="_blank"} + can be run with the [Cake.Markdownlint](https://cakebuild.net/extensions/cake-markdownlint/){target="_blank"} + addin. + +## Basic features + +- [x] Reads warnings from [Markdownlint](https://github.com/DavidAnson/markdownlint){target="_blank"} logfiles. +- [x] Provides URLs for all issues. +- [x] Support for custom URL resolving using the [MarkdownlintAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/2EE35F55){target="_blank"} + alias (except for [MarkdownlintCliJsonLogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F){target="_blank"}). + +## Supported log file formats + +- [x] [MarkdownlintV1LogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/65609BEB){target="_blank"} + alias for reading issues from [Markdownlint](https://github.com/DavidAnson/markdownlint){target="_blank"} + output generated with `options.resultVersion` set to 1. +- [x] [MarkdownlintCliLogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/B518F49E){target="_blank"} + alias for reading issues from [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target="_blank"} log files. +- [x] [MarkdownlintCliJsonLogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F){target="_blank"} + alias for reading issues from [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli){target="_blank"} + log files created with the `--json` parameter. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [x] `IIssue.Column` (3) +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (4) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` (5) +- [x] `IIssue.PriorityName` (6) +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` (7) + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Only for [MarkdownlintCliLogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/B518F49E){target="_blank"} +4. Can be set while reading issues +5. Always [IssuePriority.Warning](https://cakebuild.net/api/Cake.Issues/IssuePriority/7A0CE07F){target="_blank"} +6. Always `Warning` +7. Support for custom rules can be added through a custom [MarkdownlintAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/2EE35F55){target="_blank"} except for [MarkdownlintCliJsonLogFileFormat](https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F){target="_blank"} diff --git a/docs/input/documentation/issue-providers/markdownlint/index.md b/docs/input/documentation/issue-providers/markdownlint/index.md new file mode 100644 index 000000000..1a35f91b2 --- /dev/null +++ b/docs/input/documentation/issue-providers/markdownlint/index.md @@ -0,0 +1,15 @@ +--- +title: markdownlint +description: Issue provider which allows you to read issues logged by markdownlint. +--- + +Support for reading issues reported by [markdownlint](https://github.com/DavidAnson/markdownlint) +is implemented in the [Cake.Issues.Markdownlint addin](https://www.nuget.org/packages/Cake.Issues.Markdownlint). + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-markdownlint){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/msbuild/examples.md b/docs/input/documentation/issue-providers/msbuild/examples.md new file mode 100644 index 000000000..88fb1430d --- /dev/null +++ b/docs/input/documentation/issue-providers/msbuild/examples.md @@ -0,0 +1,144 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.MsBuild addin. +icon: material/test-tube +--- + +To read issues from MsBuild log files you need to import the MsBuild issue provider needs to be imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the MsBuild issue provider the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + ``` + +The following example contains a task which will call MsBuild to build the solution and write a binary log file +and a task to read issues from the binary log file and write the number of warnings to the console: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + var logPath = @"c:\build\msbuild.xml"; + var repoRootPath = MakeAbsolute(Directory("./")); + + Task("Build-Solution").Does(() => + { + // Build solution. + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + Context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + logPath.FullPath); + DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + }); + + Task("Read-Issues") + .IsDependentOn("Build-Solution") + .Does(() => + { + // Read issues. + var issues = + ReadIssues( + MsBuildIssuesFromFilePath( + logPath, + MsBuildBinaryLogFileFormat), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Common.IO; + using Cake.Common.Tools.DotNet; + using Cake.Common.Tools.DotNet.Build; + using Cake.Core; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .Run(args); + } + } + + public class BuildContext(ICakeContext context) : FrostingContext(context) + { + public FilePath LogPath { get; } = @"c:\build\msbuild.xml"; + public DirectoryPath RepoRootPath { get; } = + context.MakeAbsolute(context.Directory("./")); + } + + [TaskName("Build-Solution")] + public sealed class BuildSolutionTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Build solution. + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + context.LogPath.FullPath); + context.DotNetBuild( + context.RepoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + } + } + + [TaskName("Read-Issues")] + [IsDependentOn(typeof(BuildSolutionTask))] + public sealed class ReadIssuesTask : FrostingTask + { + public override void Run(BuildContext context) + { + // Read issues. + var issues = + context.ReadIssues( + context.MsBuildIssuesFromFilePath( + context.LogPath, + context.MsBuildBinaryLogFileFormat()), + context.RepoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` + +!!! Tip + When using `MSBuildSettings.BinaryLogger` property to write a binary log, the version of the binary log format written + depends on the version of the .NET SDK. + + To avoid the risk of breaking builds when the .NET SDK is updated and introduces a new binary log format, which is not supported + in the used version of Cake.Issues.MsBuild, the binary logger instance shipped as part of Cake.Issues.MsBuild is + used in the above example. diff --git a/docs/input/documentation/issue-providers/msbuild/features.md b/docs/input/documentation/issue-providers/msbuild/features.md new file mode 100644 index 000000000..fd5c77029 --- /dev/null +++ b/docs/input/documentation/issue-providers/msbuild/features.md @@ -0,0 +1,57 @@ +--- +title: Features +description: Features of the Cake.Issues.MsBuild addin. +icon: material/creation-outline +--- + +The [Cake.Issues.MsBuild addin](https://cakebuild.net/extensions/cake-issues-msbuild/){target="_blank"} +provides the following features. + +??? tip "Tip: Running MSBuild" + MSBuild can be run using the [DotNet aliases]{target="_blank"} or [MsBuild aliases]{target="_blank"}. + +## Basic features + +- [x] Reads errors and warnings from MSBuild log files. +- [x] Provides URLs for all code analysis (`CA*`) and StyleCop (`SA*`) warnings. +- [x] Support for custom URL resolving using the [MsBuildAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/93C21487){target="_blank"} alias. + +## Supported log file formats + +- [x] [MsBuildBinaryLogFileFormat](https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/AD50C7E1){target="_blank"} alias for reading issues from binary log files. +- [x] [MsBuildXmlFileLoggerFormat](https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/051D7B6E){target="_blank"} alias for reading issues from log files created by [MSBuild Extension Pack XmlFileLogger](https://github.com/mikefourie-zz/MSBuildExtensionPack/blob/master/Solutions/Main/Loggers/Framework/XmlFileLogger.cs){target="_blank"}. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [x] `IIssue.ProjectName` +- [x] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [ ] `IIssue.EndLine` +- [x] `IIssue.Column` (3) +- [ ] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (4) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` (5) + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Only for [MsBuildXmlFileLoggerFormat](https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/051D7B6E){target="_blank"} +4. Can be set while reading issues +5. For code analysis (`CA*`) and StyleCop (`SA*`) warnings. Support for additional rules can be added through a custom [MsBuildAddRuleUrlResolver](https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/93C21487){target="_blank"} + +[DotNet aliases]: https://cakebuild.net/dsl/dotnet/#Built-In +[MsBuild aliases]: https://cakebuild.net/dsl/msbuild/#Built-In diff --git a/docs/input/documentation/issue-providers/msbuild/index.md b/docs/input/documentation/issue-providers/msbuild/index.md new file mode 100644 index 000000000..a4695c518 --- /dev/null +++ b/docs/input/documentation/issue-providers/msbuild/index.md @@ -0,0 +1,15 @@ +--- +title: MsBuild +description: Issue provider which allows you to read warnings logged by MsBuild. +--- + +Support for reading warnings reported by MsBuild is implemented in the +[Cake.Issues.MsBuild](https://www.nuget.org/packages/Cake.Issues.MsBuild). + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-msbuild){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/sarif/features.md b/docs/input/documentation/issue-providers/sarif/features.md new file mode 100644 index 000000000..4182f44be --- /dev/null +++ b/docs/input/documentation/issue-providers/sarif/features.md @@ -0,0 +1,41 @@ +--- +title: Features +description: Features of the Cake.Issues.Sarif addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Sarif addin](https://cakebuild.net/extensions/cake-issues-sarif/){target="_blank"} provides the following features. + +## Basic features + +- [x] Reads issues from files in [SARIF](https://sarifweb.azurewebsites.net/){target="_blank"} format. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [x] `IIssue.EndLine` +- [x] `IIssue.Column` +- [x] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [x] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues diff --git a/docs/input/documentation/issue-providers/sarif/index.md b/docs/input/documentation/issue-providers/sarif/index.md new file mode 100644 index 000000000..2935a4c82 --- /dev/null +++ b/docs/input/documentation/issue-providers/sarif/index.md @@ -0,0 +1,14 @@ +--- +title: Sarif +description: Issue provider which allows you to read issues from SARIF files. +--- + +Support for reading issues in [SARIF](https://sarifweb.azurewebsites.net/){target="_blank"} format +is implemented in the [Cake.Issues.Sarif addin](https://cakebuild.net/extensions/cake-issues-sarif/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-sarif){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/tap/features.md b/docs/input/documentation/issue-providers/tap/features.md new file mode 100644 index 000000000..b3e3b8e5c --- /dev/null +++ b/docs/input/documentation/issue-providers/tap/features.md @@ -0,0 +1,117 @@ +--- +title: Features +description: Features of the Cake.Issues.Tap addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Tap addin](https://cakebuild.net/extensions/cake-issues-tap/){target="_blank"} provides the following features. + +## Basic features + +- [x] Reads issues from files in [Test Anything Protocol (TAP)]{target="_blank"} format version 13 or 14. + +## Supported log file formats + +!!! note + Details, like file, line / column or rule information, are not standardized in [Test Anything Protocol (TAP)]{target="_blank"}. + The `GenericLogFileFormat` will therefore only return issues containing the description, which might be the file name for some tools. + To retrieve detailed information a tool specific log file format needs to be used which can parse the non-standardized + data provided by the tool for every issue. + +- [x] `GenericLogFileFormat` alias for reading issues from any [Test Anything Protocol (TAP)]{target="_blank"} compatible file +- [x] `StylelintLogFileFormat` alias for reading TAP files generated by [stylelint](https://stylelint.io/){target="_blank"}. +- [x] `TextlintLogFileFormat` alias for reading TAP files generated by [Textlint](https://textlint.github.io/){target="_blank"}. + +## Supported IIssue properties + +=== "GenericLogFileFormat" + +
    + + - [x] `IIssue.ProviderType` + - [x] `IIssue.ProviderName` + - [ ] `IIssue.Run` (1) + - [x] `IIssue.Identifier` (2) + - [ ] `IIssue.ProjectName` + - [ ] `IIssue.ProjectFileRelativePath` + - [ ] `IIssue.AffectedFileRelativePath` + - [ ] `IIssue.Line` + - [ ] `IIssue.EndLine` + - [ ] `IIssue.Column` + - [ ] `IIssue.EndColumn` + - [ ] `IIssue.FileLink` (3) + - [x] `IIssue.MessageText` + - [ ] `IIssue.MessageHtml` + - [ ] `IIssue.MessageMarkdown` + - [ ] `IIssue.Priority` + - [ ] `IIssue.PriorityName` + - [ ] `IIssue.RuleId` + - [ ] `IIssue.RuleUrl` + +
    + + 1. Can be set while reading issues + 2. Set to `IIssue.MessageText` + 3. Can be set while reading issues + +=== "StylelintLogFileFormat" + +
    + + - [x] `IIssue.ProviderType` + - [x] `IIssue.ProviderName` + - [ ] `IIssue.Run` (1) + - [x] `IIssue.Identifier` (2) + - [ ] `IIssue.ProjectName` + - [ ] `IIssue.ProjectFileRelativePath` + - [x] `IIssue.AffectedFileRelativePath` + - [x] `IIssue.Line` + - [x] `IIssue.EndLine` + - [x] `IIssue.Column` + - [x] `IIssue.EndColumn` + - [ ] `IIssue.FileLink` (3) + - [x] `IIssue.MessageText` + - [ ] `IIssue.MessageHtml` + - [ ] `IIssue.MessageMarkdown` + - [x] `IIssue.Priority` + - [x] `IIssue.PriorityName` + - [x] `IIssue.RuleId` + - [ ] `IIssue.RuleUrl` + +
    + + 1. Can be set while reading issues + 2. Set to `IIssue.MessageText` + 3. Can be set while reading issues + +=== "TextlintLogFileFormat" + +
    + + - [x] `IIssue.ProviderType` + - [x] `IIssue.ProviderName` + - [ ] `IIssue.Run` (1) + - [x] `IIssue.Identifier` (2) + - [ ] `IIssue.ProjectName` + - [ ] `IIssue.ProjectFileRelativePath` + - [x] `IIssue.AffectedFileRelativePath` + - [x] `IIssue.Line` + - [ ] `IIssue.EndLine` + - [x] `IIssue.Column` + - [ ] `IIssue.EndColumn` + - [ ] `IIssue.FileLink` (3) + - [x] `IIssue.MessageText` + - [ ] `IIssue.MessageHtml` + - [ ] `IIssue.MessageMarkdown` + - [x] `IIssue.Priority` + - [x] `IIssue.PriorityName` + - [x] `IIssue.RuleId` + - [ ] `IIssue.RuleUrl` + +
    + + 1. Can be set while reading issues + 2. Set to `IIssue.MessageText` + 3. Can be set while reading issues + +[Test Anything Protocol (TAP)]: https://testanything.org/ diff --git a/docs/input/documentation/issue-providers/tap/index.md b/docs/input/documentation/issue-providers/tap/index.md new file mode 100644 index 000000000..c1bc8c41d --- /dev/null +++ b/docs/input/documentation/issue-providers/tap/index.md @@ -0,0 +1,15 @@ +--- +title: Test Anything Protocol +description: Issue provider which allows you to read issues from Test Anything Protocol files. +status: new +--- + +Support for reading issues in [Test Anything Protocol (TAP)](https://testanything.org/){target="_blank"} format +is implemented in the [Cake.Issues.Tap addin](https://cakebuild.net/extensions/cake-issues-tap/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-tap){target="_blank"} + +
    diff --git a/docs/input/documentation/issue-providers/terraform/features.md b/docs/input/documentation/issue-providers/terraform/features.md new file mode 100644 index 000000000..f558f5e87 --- /dev/null +++ b/docs/input/documentation/issue-providers/terraform/features.md @@ -0,0 +1,48 @@ +--- +title: Features +description: Features of the Cake.Issues.Terraform addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Terraform addin]{target="_blank"} provides the following features. + +??? tip "Tip: Running Terraform" + [Terraform](https://www.terraform.io){target="_blank"} can be run with + [Cake.Terraform](https://cakebuild.net/extensions/cake-terraform/){target="_blank"} addin. + +## Basic features + +- [x] Reads warnings from [Terraform validate command]{target="_blank"}. + +## Supported IIssue properties + +
    + +- [x] `IIssue.ProviderType` +- [x] `IIssue.ProviderName` +- [ ] `IIssue.Run` (1) +- [x] `IIssue.Identifier` (2) +- [ ] `IIssue.ProjectName` +- [ ] `IIssue.ProjectFileRelativePath` +- [x] `IIssue.AffectedFileRelativePath` +- [x] `IIssue.Line` +- [x] `IIssue.EndLine` +- [x] `IIssue.Column` +- [x] `IIssue.EndColumn` +- [ ] `IIssue.FileLink` (3) +- [x] `IIssue.MessageText` +- [ ] `IIssue.MessageHtml` +- [ ] `IIssue.MessageMarkdown` +- [x] `IIssue.Priority` +- [x] `IIssue.PriorityName` +- [x] `IIssue.RuleId` +- [x] `IIssue.RuleUrl` + +
    + +1. Can be set while reading issues +2. Set to `IIssue.MessageText` +3. Can be set while reading issues + +[Terraform validate command]: https://www.terraform.io/docs/cli/commands/validate.html +[Cake.Issues.Terraform addin]: https://cakebuild.net/extensions/cake-issues-terraform/ diff --git a/docs/input/documentation/issue-providers/terraform/index.md b/docs/input/documentation/issue-providers/terraform/index.md new file mode 100644 index 000000000..d9e37a966 --- /dev/null +++ b/docs/input/documentation/issue-providers/terraform/index.md @@ -0,0 +1,14 @@ +--- +title: Terraform +description: Issue provider which allows you to read issues from Terraform validate command. +--- + +Support for reading issues reported by [Terraform validate command](https://www.terraform.io/docs/cli/commands/validate.html) +is implemented in the [Cake.Issues.Terraform addin](https://cakebuild.net/extensions/cake-issues-terraform/). + +
    + +- :material-creation-outline: [Features](features.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-terraform){target="_blank"} + +
    diff --git a/docs/input/documentation/overview.md b/docs/input/documentation/overview.md new file mode 100644 index 000000000..1992f8ed3 --- /dev/null +++ b/docs/input/documentation/overview.md @@ -0,0 +1,76 @@ +--- +title: Introduction +description: Introduction +--- + +The Cake.Issues addins for the [Cake build automation system](https://cakebuild.net){target="_blank"} +offer an extensive and flexible solution for reading linting issues. + +Cake.Issues redefines issue management within the Cake build system by offering a comprehensive, universal, and extensible solution. +The unique capabilities of the addins empower development teams to enforce coding standards, generate insightful reports, +seamlessly incorporate various linting tools, and streamlining the integration with pull requests. +With its [modular architecture] and extensive [set of aliases](https://cakebuild.net/extensions/cake-issues/){target="_blank"}, +Cake.Issues provides a future-proof infrastructure for issue management in Cake builds, +fostering a more efficient and adaptable development process. + +## Unique Problem Solving + +Some examples how Cake.Issues can help development teams to improve code quality. + +### Break build on linting issues + +Cake.Issues provides a seamless integration, allowing you to enforce coding standards by breaking builds when linting issues are detected. + +[:octicons-arrow-right-24: Breaking builds](usage/breaking-builds/breaking-builds.md) + +### Pull Requests integration + +Ensure linting issues are promptly addressed by having them reported as comments on pull requests. +Cake.Issues bridges the gap between linting tools and version control systems, fostering efficient collaboration during code reviews. + +[:octicons-arrow-right-24: Integrate with pull request systems](pull-request-systems/index.md) + +### Reports + +Craft detailed and visually appealing reports for linting issues directly within your Cake build. +The addins facilitates easy identification and resolution of linting concerns, enhancing the overall code quality. + +[:octicons-arrow-right-24: Creating Reports](report-formats/index.md) + +## Universal Compatibility + +### Diverse Linting Tool Support + +Regardless of the linting tools you use, Cake.Issues ensures that you're not left out. +Cake.Issues supports a variety of analyzers and linters, allowing you to incorporate new tools effortlessly +while maintaining integration with existing ones. + +[:octicons-arrow-right-24: Supported Tools](supported-tools.md) + +### Build System Agnosticism + +Embrace the freedom to choose the build system that best suit your needs. +If your current build system lacks tasks for reporting issues in pull requests, Cake.Issues steps in to fill that void seamlessly. +In the case of using multiple CI services, Cake.Issues guarantees a consistent feature set across all of them. + +[:octicons-arrow-right-24: Supported Build and pull request systems](pull-request-systems/index.md) + +## Unprecedented Extensibility + +### Modular Architecture + +The Cake.Issues addin breaks away from the norm by offering a modular architecture. +Comprising over 15 distinct addins, it presents a cohesive solution through more than 75 aliases for Cake builds, +providing unparalleled flexibility. + +[:octicons-arrow-right-24: Architecture](how-cake-issues-works.md) + +### Extensible Infrastructure + +Designed with extensibility in mind, Cake.Issues provides extension points for supporting additional +analyzers, linters,report formats, and code review systems. +This adaptability ensures that your build scripts can evolve with the ever-changing landscape of development tools. + +[:octicons-arrow-right-24: Documentation](extending/index.md) + +[modular architecture]: how-cake-issues-works.md diff --git a/docs/input/docs/pull-request-systems/appveyor/appveyor-messages.png b/docs/input/documentation/pull-request-systems/appveyor/appveyor-messages.png similarity index 100% rename from docs/input/docs/pull-request-systems/appveyor/appveyor-messages.png rename to docs/input/documentation/pull-request-systems/appveyor/appveyor-messages.png diff --git a/docs/input/docs/pull-request-systems/appveyor/examples/github-pullrequest-integration.md b/docs/input/documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.md similarity index 86% rename from docs/input/docs/pull-request-systems/appveyor/examples/github-pullrequest-integration.md rename to docs/input/documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.md index 2620901b5..edd246e91 100644 --- a/docs/input/docs/pull-request-systems/appveyor/examples/github-pullrequest-integration.md +++ b/docs/input/documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.md @@ -1,8 +1,9 @@ --- -Order: 20 -Title: GitHub pull request integration -Description: Example how to write AppVeyor message to GitHub pull requests. +title: GitHub pull request integration +description: Example how to write AppVeyor message to GitHub pull requests. +render_macros: false --- + This example shows how to write AppVeyor messages created by Cake.Issues to GitHub pull requests. Issues reported as messages to AppVeyor builds can be written to a GitHub pull request using [GitHub Pull Request Notification] @@ -21,4 +22,4 @@ The output will look similar to this: ![GitHub pull request integration](github-pullrequest-integration.png "GitHub pull request integration") -[GitHub Pull Request Notification]: https://www.appveyor.com/docs/notifications/#github-pull-request \ No newline at end of file +[GitHub Pull Request Notification]: https://www.appveyor.com/docs/notifications/#github-pull-request diff --git a/docs/input/docs/pull-request-systems/appveyor/examples/github-pullrequest-integration.png b/docs/input/documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.png similarity index 100% rename from docs/input/docs/pull-request-systems/appveyor/examples/github-pullrequest-integration.png rename to docs/input/documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.png diff --git a/docs/input/documentation/pull-request-systems/appveyor/examples/index.md b/docs/input/documentation/pull-request-systems/appveyor/examples/index.md new file mode 100644 index 000000000..c65c3ebdf --- /dev/null +++ b/docs/input/documentation/pull-request-systems/appveyor/examples/index.md @@ -0,0 +1,16 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.PullRequests.AppVeyor addin. +icon: material/test-tube +--- + +
    + +- [Writting Messages To AppVeyor](write-messages.md) +- [GitHub PullRequest Integration](github-pullrequest-integration.md) + +
    + +!!! info + There's a [demo repository](https://github.com/pascalberger/Cake.Issues-Demo) + available which you can fork and to which you can create pull requests to test the integration functionality. diff --git a/docs/input/documentation/pull-request-systems/appveyor/examples/write-messages.md b/docs/input/documentation/pull-request-systems/appveyor/examples/write-messages.md new file mode 100644 index 000000000..6c708a556 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/appveyor/examples/write-messages.md @@ -0,0 +1,90 @@ +--- +title: Writing message to AppVeyor +description: Example how to write issues as messages to an AppVeyor build. +--- + +To report issues as messages to an AppVeyor build, the AppVeyor addin needs to be imported. +For this example the JetBrains InspectCode issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AppVeyor&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the AppVeyor pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +This example shows how to report issues as messages to an AppVeyor build using the +[AppVeyorBuilds](https://cakebuild.net/api/Cake.Issues.PullRequests.AppVeyor/AppVeyorBuildsAliases/){target="_blank"} alias: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Report-IssuesToAppVeyor").Does(() => + { + var repoRootPath = MakeAbsolute(Directory("./")); + + ReportIssuesToPullRequest( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + AppVeyorBuilds(), + repoRootPath); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Report-IssuesToAppVeyor")] + public sealed class ReportIssuesToAppVeyorTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + context.ReportIssuesToPullRequest( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + context.AppVeyorBuilds(), + repoRootPath); + } + } + ``` + +The output will look similar to this: + +![AppVeyor messages](../appveyor-messages.png "AppVeyor messages") diff --git a/docs/input/documentation/pull-request-systems/appveyor/features.md b/docs/input/documentation/pull-request-systems/appveyor/features.md new file mode 100644 index 000000000..adf4de645 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/appveyor/features.md @@ -0,0 +1,30 @@ +--- +title: Features +description: Features of the Cake.Issues.PullRequests.AppVeyor addin. +icon: material/creation-outline +--- + +The [Cake.Issues.PullRequests.AppVeyor addin]{target="_blank"} reports issues as messages to AppVeyor builds. + +![AppVeyor messages](appveyor-messages.png "AppVeyor messages") + +!!! info + There's a [demo repository]{target="_blank"} available which you can fork and to which you can create pull requests to test the integration functionality. + +## Basic features + +- [x] Reports issues as messages to AppVeyor builds. +- [x] Messages can be written as comment to GitHub pull requests. + See [GitHub pull request integration] for an example. + +## Supported capabilities + +The [Cake.Issues.PullRequests.AppVeyor addin]{target="_blank"} doesn't support any additional capabilities. + +- [ ] Checking commit ID +- [ ] Discussion threads +- [ ] Filtering by modified files + +[demo repository]: https://github.com/pascalberger/Cake.Issues-Demo +[Cake.Issues.PullRequests.AppVeyor addin]: https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor/ +[GitHub pull request integration]: ./examples/github-pullrequest-integration.md diff --git a/docs/input/documentation/pull-request-systems/appveyor/index.md b/docs/input/documentation/pull-request-systems/appveyor/index.md new file mode 100644 index 000000000..691131073 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/appveyor/index.md @@ -0,0 +1,15 @@ +--- +title: AppVeyor +description: Support for AppVeyor. +--- + +Support for AppVeyor is implemented in the +[Cake.Issues.PullRequests.AppVeyor addin](https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples/index.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor){target="_blank"} + +
    diff --git a/docs/input/docs/pull-request-systems/azure-devops/cake.issues.pullrequests.azuredevops.png b/docs/input/documentation/pull-request-systems/azure-devops/cake.issues.pullrequests.azuredevops.png similarity index 100% rename from docs/input/docs/pull-request-systems/azure-devops/cake.issues.pullrequests.azuredevops.png rename to docs/input/documentation/pull-request-systems/azure-devops/cake.issues.pullrequests.azuredevops.png diff --git a/docs/input/documentation/pull-request-systems/azure-devops/examples/azure-pipelines.md b/docs/input/documentation/pull-request-systems/azure-devops/examples/azure-pipelines.md new file mode 100644 index 000000000..7e757e69b --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/examples/azure-pipelines.md @@ -0,0 +1,99 @@ +--- +title: Using with Azure Pipelines +description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin from an Azure Pipelines build. +--- + +To write issues as comments to Azure DevOps pull requests, the Azure DevOps addin needs to be imported. +For this example the JetBrains InspectCode issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AzureDevOps&version={{ cake_issues_version }} + #addin nuget:?package=Cake.AzureDevOps&version={{ cake_azuredevops_version }} + ``` + + !!! note + In addition to the Azure DevOps pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins + and the Cake.AzureDevOps addin need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example shows a task which will call the [AzureDevOpsPullRequests](https://cakebuild.net/api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/){target="_blank"} +alias to connect to the pull request using the environment variables provided by Azure Pipelines.: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Report-IssuesToPullRequest").Does(() => + { + var repoRootFolder = + MakeAbsolute(Directory("./")); + + ReportIssuesToPullRequest( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + AzureDevOpsPullRequests(), + repoRootPath); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Report-IssuesToPullRequest")] + public sealed class ReportIssuesToPullRequestTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = + context.MakeAbsolute(context.Directory("./")); + + context.ReportIssuesToPullRequest( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + context.AzureDevOpsPullRequests(), + repoRootPath); + } + } + ``` + +!!! info + Please note that you'll need to setup your Azure Pipelines build to + [Allow scripts to access the OAuth token](https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options#allow-scripts-to-access-the-oauth-token){target="_blank"} + and need to setup proper permissions. + + See [OAuth authentication from Azure Pipelines] for details. + +[OAuth authentication from Azure Pipelines]: ../setup.md#oauth-authentication-from-azure-pipelines diff --git a/docs/input/documentation/pull-request-systems/azure-devops/examples/index.md b/docs/input/documentation/pull-request-systems/azure-devops/examples/index.md new file mode 100644 index 000000000..881daabcc --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/examples/index.md @@ -0,0 +1,17 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.PullRequests.AzureDevOps addin. +icon: material/test-tube +--- + +
    + +- [Using With Pull Request ID](pullrequest-id.md) +- [Using With Repository Remote URL And Source Branch Name](repository-information.md) +- [Using With Azure Pipelines](azure-pipelines.md) + +
    + +!!! info + There's a [demo repository](https://dev.azure.com/pberger/Cake.Issues-Demo){target="_blank"} + available which you can fork and to which you can create pull requests to test the integration functionality. diff --git a/docs/input/documentation/pull-request-systems/azure-devops/examples/pullrequest-id.md b/docs/input/documentation/pull-request-systems/azure-devops/examples/pullrequest-id.md new file mode 100644 index 000000000..da9c6f5f8 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/examples/pullrequest-id.md @@ -0,0 +1,111 @@ +--- +title: Using with pull request id +description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin with pull request id. +--- + +To write issues as comments to Azure DevOps pull requests, the Azure DevOps addin needs to be imported. +To determine the remote repository URL the [Cake.Git](https://cakebuild.net/extensions/cake-git/){target="_blank"} addin can be used. +For this example the JetBrains InspectCode issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Git&version={{ cake_git_version }} + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AzureDevOps&version={{ cake_issues_version }} + #addin nuget:?package=Cake.AzureDevOps&version={{ cake_azuredevops_version }} + ``` + + !!! note + In addition to the Azure DevOps pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins + and the Cake.AzureDevOps addin need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + + ``` + +The following example shows a task which will first determine the remote repository URL and +with this information call the [AzureDevOpsPullRequests](https://cakebuild.net/api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/){target="_blank"} +alias, which will authenticate through NTLM to an on-premise Azure DevOps Server instance: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Report-IssuesToPullRequest").Does(() => + { + var repoRootPath = + MakeAbsolute(Directory("./")); + var currentBranch = + GitBranchCurrent(repoRootPath); + var repoRemoteUrl = + new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); + var pullRequestId = 123; + + ReportIssuesToPullRequest( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + AzureDevOpsPullRequests( + repoRemoteUrl, + pullRequestId, + AzureDevOpsAuthenticationNtlm()), + repoRootPath); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Frosting; + using Cake.Git; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Report-IssuesToPullRequest")] + public sealed class ReportIssuesToPullRequestTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = + context.MakeAbsolute(context.Directory("./")); + var currentBranch = + context.GitBranchCurrent(repoRootPath); + var repoRemoteUrl = + new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); + var pullRequestId = 123; + + context.ReportIssuesToPullRequest( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + context.AzureDevOpsPullRequests( + repoRemoteUrl, + pullRequestId, + context.AzureDevOpsAuthenticationNtlm()), + repoRootPath); + } + } + ``` diff --git a/docs/input/documentation/pull-request-systems/azure-devops/examples/repository-information.md b/docs/input/documentation/pull-request-systems/azure-devops/examples/repository-information.md new file mode 100644 index 000000000..09c33efa5 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/examples/repository-information.md @@ -0,0 +1,111 @@ +--- +title: Using with repository remote url and source branch name +description: Example how to use the Cake.Issues.PullRequests.AzureDevOps addin with repository remote url and source branch name. +--- + +To write issues as comments to Azure DevOps pull requests, the Azure DevOps addin needs to be imported. +To determine the remote repository URL and source branch of the pull request the [Cake.Git](https://cakebuild.net/extensions/cake-git/){target="_blank"} addin can be used. +For this example the JetBrains InspectCode issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Git&version={{ cake_git_version }} + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AzureDevOps&version={{ cake_issues_version }} + #addin nuget:?package=Cake.AzureDevOps&version={{ cake_azuredevops_version }} + ``` + + !!! note + In addition to the Azure DevOps pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins + and the Cake.AzureDevOps addin need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + + ``` + +The following example shows a task which will first determine the remote repository URL and +source branch of the pull request and with this information call the [AzureDevOpsPullRequests](https://cakebuild.net/api/Cake.Issues.PullRequests.AzureDevOps/AzureDevOpsPullRequestSystemAliases/){target="_blank"} +alias, which will authenticate through NTLM to an on-premise Azure DevOps Server instance: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Report-IssuesToPullRequest").Does(() => + { + var repoRootFolder = + MakeAbsolute(Directory("./")); + var currentBranch = + GitBranchCurrent(repoRootFolder); + var repoRemoteUrl = + new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); + var sourceBranchName = currentBranch.CanonicalName; + + ReportIssuesToPullRequest( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + AzureDevOpsPullRequests( + repoRemoteUrl, + sourceBranchName, + AzureDevOpsAuthenticationNtlm()), + repoRootFolder); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Frosting; + using Cake.Git; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Report-IssuesToPullRequest")] + public sealed class ReportIssuesToPullRequestTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = + context.MakeAbsolute(context.Directory("./")); + var currentBranch = + context.GitBranchCurrent(repoRootPath); + var repoRemoteUrl = + new Uri(currentBranch.Remotes.Single(x => x.Name == "origin").Url); + var sourceBranchName = currentBranch.CanonicalName; + + context.ReportIssuesToPullRequest( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + context.AzureDevOpsPullRequests( + repoRemoteUrl, + sourceBranchName, + context.AzureDevOpsAuthenticationNtlm()), + repoRootPath); + } + } + ``` diff --git a/docs/input/documentation/pull-request-systems/azure-devops/features.md b/docs/input/documentation/pull-request-systems/azure-devops/features.md new file mode 100644 index 000000000..5c823edf0 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/features.md @@ -0,0 +1,45 @@ +--- +title: Features +description: Features of the Cake.Issues.PullRequests.AzureDevOps addin. +icon: material/creation-outline +--- + +The [Cake.Issues.PullRequests.AzureDevOps addin](https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/){target="_blank"} +provides the following features. + +!!! info + There's a [demo repository] available which you can fork and to which you can create pull requests to test the integration functionality. + +## Basic features + +- [x] Writes issues as comments to [Azure DevOps](https://azure.microsoft.com/en-us/services/devops/){target="_blank"} pull requests. +- [x] Identification of pull requests through source branch or pull request ID. +- [x] Comments written by the addin will be rendered with a specific icon corresponding to the state of the issue. +- [x] Adds rule number and, if provided by the issue provider, link to the rule description to the comment. +- [x] Support for issues messages formatted in Markdown format. + +## Supported capabilities + +The [Cake.Issues.PullRequests.AzureDevOps addin](https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/){target="_blank"} +supports the following capabilities. + +- [x] Checking commit ID +- [x] Discussion threads +- [x] Filtering by modified files + +## Supported authentication methods + +| Azure DevOps Server | Azure DevOps Service | Authentication method | +|---------------------|----------------------|--------------------------------| +| :material-check: | | NTLM | +| :material-check: | | Basic authentication | +| :material-check: | :material-check: | Personal access token | +| | :material-check: | OAuth | +| | :material-check: | Azure Active Directory | + +For detailed instructions how to connect using the different methods see [Setup instructions]. + +![Cake.Issues.PullRequests.AzureDevOps](cake.issues.pullrequests.azuredevops.png "Cake.Issues.PullRequests.AzureDevOps") + +[demo repository]: https://dev.azure.com/pberger/Cake.Issues-Demo +[Setup instructions]: setup.md diff --git a/docs/input/documentation/pull-request-systems/azure-devops/index.md b/docs/input/documentation/pull-request-systems/azure-devops/index.md new file mode 100644 index 000000000..e19ef3a2c --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/index.md @@ -0,0 +1,16 @@ +--- +title: Azure DevOps +description: Support for Azure DevOps. +--- + +Support for Azure DevOps is implemented in the +[Cake.Issues.PullRequests.AzureDevOps addin](https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-cogs: [Setup](setup.md) +- :material-test-tube: [Examples](examples/index.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops){target="_blank"} + +
    diff --git a/docs/input/documentation/pull-request-systems/azure-devops/setup.md b/docs/input/documentation/pull-request-systems/azure-devops/setup.md new file mode 100644 index 000000000..6fd0c7013 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/azure-devops/setup.md @@ -0,0 +1,75 @@ +--- +title: Setup +description: Instructions how to setup the Cake.Issues.PullRequests.AzureDevOps addin. +icon: material/cogs +--- + +This page describes the different ways how the [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} can be setup. + +## NTLM authentication + +!!! info + NTLM authentication is only available for on-premise Azure DevOps Server. + +To authenticate with NTLM you can use the [AzureDevOpsAuthenticationNtlm]{target="_blank"} alias from the [Cake.AzureDevOps addin]{target="_blank"}. + +The user needs to have `Contribute to pull requests` permission for the specific repository to +allow [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} to post issues as comments to pull requests. + +## Basic authentication + +!!! info + Basic authentication is only available for on-premise Azure DevOps Server. + +To authenticate with basic authentication you can use the [AzureDevOpsAuthenticationBasic]{target="_blank"} alias from the [Cake.AzureDevOps addin]{target="_blank"} and +need to [Configure Azure DevOps Server to use Basic Authentication]{target="_blank"}. + +The user needs to have `Contribute to pull requests` permission for the specific repository to +allow [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} to post issues as comments to pull requests. + +## Personal access token + +To authenticate with an personal access token you can use the [AzureDevOpsAuthenticationPersonalAccessToken]{target="_blank"} alias from the [Cake.AzureDevOps addin]{target="_blank"}. + +If you want to use the [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} with an personal access token see +[Authenticate access with personal access tokens for Azure DevOps]{target="_blank"} for instructions how to create +a personal access token. + +The access token needs to have the scope `Code (read and write)` set and the user needs to have `Contribute to pull requests` +permission for the specific repository to allow [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} to post issues as comments to pull requests. + +## OAuth authentication from Azure Pipelines + +!!! info + OAuth authentication is only available for Azure DevOps Service. + +If you want to use the [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} from an Azure Pipelines you can authenticate using the +OAuth token provided to the build. +For this you need to enable the [Allow scripts to access the OAuth token]{target="_blank"} option on the build definition. + +To authenticate you can use the [AzureDevOpsAuthenticationOAuth]{target="_blank"} alias from the [Cake.AzureDevOps addin]{target="_blank"}. + +The user under which the build runs, named ` Build Service ()` (e.g. `Cake.Issues-Demo Build Service (cake-contrib)`), +needs to have `Contribute to pull requests` permission for the specific repository to allow [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} +to post issues as comments to pull requests. + +## Entra authentication + +!!! info + Entra authentication is only available for Azure DevOps Service. + +To authenticate with Entra ID you can use the [AzureDevOpsAuthenticationAzureActiveDirectory]{target="_blank"} alias from the [Cake.AzureDevOps addin]{target="_blank"}. + +The user needs to have `Contribute to pull requests` permission for the specific repository to +allow [Cake.Issues.PullRequests.AzureDevOps addin]{target="_blank"} to post issues as comments to pull requests. + +[Cake.Issues.PullRequests.AzureDevOps addin]: https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/ +[Cake.AzureDevOps addin]: https://cakebuild.net/extensions/cake-azuredevops/ +[Configure Azure DevOps Server to use Basic Authentication]: https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/auth/tfs-basic-auth#configure-for-basic-authentication +[Authenticate access with personal access tokens for Azure DevOps]: https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate +[Allow scripts to access the OAuth token]: https://learn.microsoft.com/en-us/azure/devops/pipelines/release/options?view=azure-devops#allow-scripts-to-access-the-oauth-token +[AzureDevOpsAuthenticationNtlm]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/F2A040B7 +[AzureDevOpsAuthenticationBasic]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/7CD679FF +[AzureDevOpsAuthenticationPersonalAccessToken]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/F4DCC101 +[AzureDevOpsAuthenticationOAuth]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/988E9C28 +[AzureDevOpsAuthenticationAzureActiveDirectory]: https://cakebuild.net/api/Cake.AzureDevOps/AzureDevOpsAliases/0B9F5DF6 diff --git a/docs/input/documentation/pull-request-systems/github-actions/examples/index.md b/docs/input/documentation/pull-request-systems/github-actions/examples/index.md new file mode 100644 index 000000000..9dc9864e1 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/github-actions/examples/index.md @@ -0,0 +1,11 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.PullRequests.GitHubActions addin. +icon: material/test-tube +--- + +
    + +- [Create Annotations In GitHub Actions](write-annotations.md) + +
    diff --git a/docs/input/documentation/pull-request-systems/github-actions/examples/write-annotations.md b/docs/input/documentation/pull-request-systems/github-actions/examples/write-annotations.md new file mode 100644 index 000000000..ac0b59b65 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/github-actions/examples/write-annotations.md @@ -0,0 +1,98 @@ +--- +title: Create annotations in GitHub Actions +description: Example how to write issues as annotations to a GitHub Actions build. +--- + +To report issues as annotations to a GitHub Actions build, the GitHub Actions addin needs to be imported. +For this example the JetBrains InspectCode issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.GitHubActions&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the GitHub Actions pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +This example shows how to report issues as annotations to GitHubActions build using the +[GitHubActionsBuilds](https://cakebuild.net/api/Cake.Issues.PullRequests.GitHubActions/GitHubActionsBuildsAliases/){target="_blank"} alias: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("ReportIssuesToGitHubActions").Does(() => + { + var repoRootPath = MakeAbsolute(Directory("./")); + + ReportIssuesToPullRequest( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + GitHubActionsBuilds(), + repoRootFolder); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Report-IssuesToAppVeyor")] + public sealed class ReportIssuesToAppVeyorTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + context.ReportIssuesToPullRequest( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + context.GitHubActionsBuilds(), + repoRootPath); + } + } + ``` + +The output will show up in the build log grouped by issue provider / run: + +![Log output](../githubactions-log-output.png "Log output") + +Additionally the issues show up as annotations: + +![Annotations](../githubactions-annotations.png "Annotations") + +Having issues available as annotations also means that they will be shown in pull requests on the related file / position: + +![Pull request integration](../githubactions-pullrequest-integration.png "Pull request integration") diff --git a/docs/input/documentation/pull-request-systems/github-actions/features.md b/docs/input/documentation/pull-request-systems/github-actions/features.md new file mode 100644 index 000000000..97fb84650 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/github-actions/features.md @@ -0,0 +1,24 @@ +--- +title: Features +description: Features of the Cake.Issues.PullRequests.GitHubActions addin. +icon: material/creation-outline +--- + +The [Cake.Issues.PullRequests.GitHubActions addin]{target="_blank"} creates annotations from issues when running on GitHub actions. + +![Pull request integration](githubactions-pullrequest-integration.png "Pull request integration") + +## Basic features + +- [x] Reports issues as annotations to GitHub Actions builds. +- [x] Group issues in log output by provider and run information. + +## Supported capabilities + +The [Cake.Issues.PullRequests.GitHubActions addin]{target="_blank"} doesn't support any additional capabilities. + +- [ ] Checking commit ID +- [ ] Discussion threads +- [ ] Filtering by modified files + +[Cake.Issues.PullRequests.GitHubActions addin]: https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions/ diff --git a/docs/input/docs/pull-request-systems/github-actions/githubactions-annotations.png b/docs/input/documentation/pull-request-systems/github-actions/githubactions-annotations.png similarity index 100% rename from docs/input/docs/pull-request-systems/github-actions/githubactions-annotations.png rename to docs/input/documentation/pull-request-systems/github-actions/githubactions-annotations.png diff --git a/docs/input/docs/pull-request-systems/github-actions/githubactions-log-output.png b/docs/input/documentation/pull-request-systems/github-actions/githubactions-log-output.png similarity index 100% rename from docs/input/docs/pull-request-systems/github-actions/githubactions-log-output.png rename to docs/input/documentation/pull-request-systems/github-actions/githubactions-log-output.png diff --git a/docs/input/docs/pull-request-systems/github-actions/githubactions-pullrequest-integration.png b/docs/input/documentation/pull-request-systems/github-actions/githubactions-pullrequest-integration.png similarity index 100% rename from docs/input/docs/pull-request-systems/github-actions/githubactions-pullrequest-integration.png rename to docs/input/documentation/pull-request-systems/github-actions/githubactions-pullrequest-integration.png diff --git a/docs/input/documentation/pull-request-systems/github-actions/index.md b/docs/input/documentation/pull-request-systems/github-actions/index.md new file mode 100644 index 000000000..d5b5d2011 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/github-actions/index.md @@ -0,0 +1,15 @@ +--- +title: GitHub Actions +description: Support for GitHub Actions. +--- + +Support for GitHub Actions is implemented in the +[Cake.Issues.PullRequests.GitHubActions addin](https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples/index.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions){target="_blank"} + +
    diff --git a/docs/input/documentation/pull-request-systems/index.md b/docs/input/documentation/pull-request-systems/index.md new file mode 100644 index 000000000..abd2d72b4 --- /dev/null +++ b/docs/input/documentation/pull-request-systems/index.md @@ -0,0 +1,25 @@ +--- +title: Pull Request Systems +description: Documentation of the different pull request system implementations. +--- + +Pull request addins implement specific Pull Request Systems and allow the +Cake Issues addin to write found issues as comments to pull requests. + +
    + +- :material-source-pull: __[AppVeyor]__ – Integration with AppVeyor builds +- :material-source-pull: __[Azure DevOps]__ – Integration with Azure DevOps pull requests +- :material-source-pull: __[GitHub Actions]__ – Integration with GitHub Actions + +
    + +[AppVeyor]: appveyor/index.md +[Azure DevOps]: azure-devops/index.md +[GitHub Actions]: github-actions/index.md + +!!! tip + See [How to implement pull request systems] for instruction on how to implement support for + additional pull request systems. + +[How to implement pull request systems]: ../extending/pull-request-system/overview.md diff --git a/docs/input/documentation/recipe/configuration.md b/docs/input/documentation/recipe/configuration.md new file mode 100644 index 000000000..b8acf4a73 --- /dev/null +++ b/docs/input/documentation/recipe/configuration.md @@ -0,0 +1,155 @@ +--- +title: Configuration +description: Available parameters to configure Cake.Issues recipes. +--- + +This page lists configuration properties which can be used to define the functionality +and behavior of Cake.Issues recipes. + +## Git repository information + +Cake.Issues recipes require some information about current Git repository. + +To define the Git provider in `Cake.Issues.Recipe` set the global variable `RepositoryInfoProvider`. +To define the Git provider in `Cake.Frosting.Issues.Recipe` pass the value to the constructor of `IssueContext`. + +The following providers are supported: + +| Provider | Description | +|--------------------------------------|-------------------------------------------------------------------------------------------------------------| +| `RepositoryInfoProviderType.CakeGit` | Read repository information using [Cake.Git addin](https://cakebuild.net/extensions/cake-git/){target="_blank"}. Requires system to be compatible with [Cake.Git addin](https://cakebuild.net/extensions/cake-git/){target="_blank"}. | +| `RepositoryInfoProviderType.Cli` | Read repository information using Git CLI. Requires Git CLI to be available in path. | + +By default [Cake.Git addin](https://cakebuild.net/extensions/cake-git/){target="_blank"} will be used. + +## General + +=== "Cake.Issues.Recipe" + + | IssuesParameters Property | Default Value | Description | + |---------------------------|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------| + | `OutputDirectory` | `BuildArtifacts` | Path to the output directory. A relative path will be relative to the current working directory. | + | `BuildIdentifier` | `string.Empty` | Identifier for the build run. If set this identifier will be used to identify to artifacts provided by the build if building on multiple configurations. | + +=== "Cake.Frosting.Issues.Recipe" + + | IssuesContext.Parameters Property | Default Value | Description | + |-----------------------------------|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------| + | `OutputDirectory` | `BuildArtifacts` | Path to the output directory. A relative path will be relative to the current working directory. | + | `BuildIdentifier` | `string.Empty` | Identifier for the build run. If set this identifier will be used to identify to artifacts provided by the build if building on multiple configurations. | + +## Input files + +=== "Cake.Issues.Recipe" + + | IssuesParameters.InputFiles Methods | Description | + |-------------------------------------------|-----------------------------------------------------------------------------| + | `AddMsBuildXmlFileLoggerLogFilePath()` | Adds a path to a MSBuild log file created by XmlFileLogger. | + | `AddMsBuildXmlFileLoggerLogFileContent()` | Adds content of a MSBuild log file created by XmlFileLogger. | + | `AddMsBuildBinaryLogFilePath()` | Adds a path to a MSBuild binary log file. | + | `AddMsBuildBinaryLogFileContent()` | Adds content of a MSBuild binary log file. | + | `AddInspectCodeLogFilePath()` | Adds a path to a JetBrains InspectCode log file. | + | `AddInspectCodeLogFileContent()` | Adds content of a JetBrains InspectCode log file. | + | `AddMarkdownlintCliLogFilePath()` | Adds a path to a markdownlint-cli log file. | + | `AddMarkdownlintCliLogFileContent()` | Adds content of a markdownlint-cli log file. | + | `AddMarkdownlintCliJsonLogFilePath()` | Adds a path to a markdownlint-cli log file writting with `--json`. | + | `AddMarkdownlintCliJsonLogFileContent()` | Adds content of a markdownlint-cli log file writting with `--json`. | + | `AddMarkdownlintV1LogFilePath()` | Adds a path to a markdownlint log file in version 1. | + | `AddMarkdownlintV1LogFileContent()` | Adds content of a markdownlint log file in version 1. | + | `AddEsLintJsonLogFilePath()` | Adds a path to a ESLint log file generated by the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"}. | + | `AddEsLintJsonLogFileContent()` | Adds content of a ESLint log file generated by the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"}. | + | `AddSarifLogFilePath()` | Adds a path to a SARIF log file. | + | `AddSarifLogFileContent()` | Adds content of a SARIF log file. | + +=== "Cake.Frosting.Issues.Recipe" + + | IssuesContext.Parameters.InputFiles Methods | Description | + |---------------------------------------------|-----------------------------------------------------------------------------| + | `AddMsBuildXmlFileLoggerLogFilePath()` | Adds a path to a MSBuild log file created by XmlFileLogger. | + | `AddMsBuildXmlFileLoggerLogFileContent()` | Adds content of a MSBuild log file created by XmlFileLogger. | + | `AddMsBuildBinaryLogFilePath()` | Adds a path to a MSBuild binary log file. | + | `AddMsBuildBinaryLogFileContent()` | Adds content of a MSBuild binary log file. | + | `AddInspectCodeLogFilePath()` | Adds a path to a JetBrains InspectCode log file. | + | `AddInspectCodeLogFileContent()` | Adds content of a JetBrains InspectCode log file. | + | `AddMarkdownlintCliLogFilePath()` | Adds a path to a markdownlint-cli log file. | + | `AddMarkdownlintCliLogFileContent()` | Adds content of a markdownlint-cli log file. | + | `AddMarkdownlintCliJsonLogFilePath()` | Adds a path to a markdownlint-cli log file writting with `--json`. | + | `AddMarkdownlintCliJsonLogFileContent()` | Adds content of a markdownlint-cli log file writting with `--json`. | + | `AddMarkdownlintV1LogFilePath()` | Adds a path to a markdownlint log file in version 1. | + | `AddMarkdownlintV1LogFileContent()` | Adds content of a markdownlint log file in version 1. | + | `AddEsLintJsonLogFilePath()` | Adds a path to a ESLint log file generated by the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"}. | + | `AddEsLintJsonLogFileContent()` | Adds content of a ESLint log file generated by the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"}. | + | `AddSarifLogFilePath()` | Adds a path to a SARIF log file. | + | `AddSarifLogFileContent()` | Adds content of a SARIF log file. | + +## Report creation + +=== "Cake.Issues.Recipe" + + | IssuesParameters.Reporting Property | Default Value | Description | + |-------------------------------------|------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| + | `ShouldCreateFullIssuesReport` | `true` | Indicates whether full issues report should be created. | + | `FullIssuesReportSettings` | `GenericIssueReportTemplate.HtmlDxDataGrid` template with `DevExtremeTheme.MaterialBlueLight` theme. | Settings for creating the full issues report. See [Template Gallery] for possible options. | + | `ShouldCreateSarifReport` | `true` | Indicates whether a report in SARIF format should be created. | + | `ShouldReportIssuesToConsole` | `false` | Indicates whether issues should be reported to the console. | + | `ReportToConsoleSettings` | | Settings for reporting issues to the console. | + +=== "Cake.Frosting.Issues.Recipe" + + | IssuesContext.Parameters.Reporting Property | Default Value | Description | + |---------------------------------------------|------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| + | `ShouldCreateFullIssuesReport` | `true` | Indicates whether full issues report should be created. | + | `FullIssuesReportSettings` | `GenericIssueReportTemplate.HtmlDxDataGrid` template with `DevExtremeTheme.MaterialBlueLight` theme. | Settings for creating the full issues report. See [Template Gallery] for possible options. | + | `ShouldCreateSarifReport` | `true` | Indicates whether a report in SARIF format should be created. | + | `ShouldReportIssuesToConsole` | `false` | Indicates whether issues should be reported to the console. | + | `ReportToConsoleSettings` | | Settings for reporting issues to the console. | + +[Template Gallery]: ../report-formats/generic/templates/index.md + +## Build server integration + +=== "Cake.Issues.Recipe" + + | IssuesParameters.BuildServer Property | Default Value | Description | + |---------------------------------------|---------------|------------------------------------------------------------------------------------------------| + | `ShouldReportIssuesToBuildServer` | `true` | Indicates whether issues should be reported to the build server. | + | `ShouldPublishFullIssuesReport` | `true` | Indicates whether full issues report should be published as artifact to the build system. | + | `ShouldPublishSarifReport` | `true` | Indicates whether report int SARIF format shoudl be published as artifact to the build system. | + | `ShouldCreateSummaryIssuesReport` | `true` | Indicates whether summary issues report should be created. | + +=== "Cake.Frosting.Issues.Recipe" + + | IssuesContext.Parameters.BuildServer Property | Default Value | Description | + |-----------------------------------------------|---------------|------------------------------------------------------------------------------------------------| + | `ShouldReportIssuesToBuildServer` | `true` | Indicates whether issues should be reported to the build server. | + | `ShouldPublishFullIssuesReport` | `true` | Indicates whether full issues report should be published as artifact to the build system. | + | `ShouldPublishSarifReport` | `true` | Indicates whether report int SARIF format shoudl be published as artifact to the build system. | + | `ShouldCreateSummaryIssuesReport` | `true` | Indicates whether summary issues report should be created. | + +## Pull request integration + +=== "Cake.Issues.Recipe" + + | IssuesParameters.PullRequestSystem Property | Default Value | Description | + |----------------------------------------------------------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `ShouldReportIssuesToPullRequest` | `true` | Indicates whether issues should be reported to the pull request system. | + | `MaxIssuesToPost` | `null` | Global number of issues which should be posted at maximum over all issue provider. Issues are filtered by priority and issues with a file path are prioritized. `null` won't set a global limit. | + | `MaxIssuesToPostAcrossRuns` | `null` | Global number of issues which should be posted at maximum over all issue providers and across multiple runs. Issues are filtered by priority and issues with a file path are prioritized. `null` won't set a limit across multiple runs. | + | `MaxIssuesToPostForEachIssueProvider` | `100` | Number of issues which should be posted at maximum for each issue provider. Issues are filtered by priority and issues with a file path are prioritized. `null` won't limit issues per issue provider. | + | `ProviderIssueLimits` | Empty | Issue limits for individual issue provider. The key must be the `IIssue.ProviderType` of a specific provider to which the limits should be applied to. | + | `IssueFilters` | Empty | List of filter functions which should be applied before posting issues to pull requests. | + | `ShouldSetPullRequestStatus` | `true` | Indicates whether a status on the pull request should be set if there are any issues found. | + | `ShouldSetSeparatePullRequestStatusForEachIssueProviderAndRun` | `true` | Indicates whether a separate status should be set for issues of every issue provider and run. | + +=== "Cake.Frosting.Issues.Recipe" + + | IssuesContext.Parameters.PullRequestSystem Property | Default Value | Description | + |----------------------------------------------------------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `ShouldReportIssuesToPullRequest` | `true` | Indicates whether issues should be reported to the pull request system. | + | `MaxIssuesToPost` | `null` | Global number of issues which should be posted at maximum over all issue provider. Issues are filtered by priority and issues with a file path are prioritized. `null` won't set a global limit. | + | `MaxIssuesToPostAcrossRuns` | `null` | Global number of issues which should be posted at maximum over all issue providers and across multiple runs. Issues are filtered by priority and issues with a file path are prioritized. `null` won't set a limit across multiple runs. | + | `MaxIssuesToPostForEachIssueProvider` | `100` | Number of issues which should be posted at maximum for each issue provider. Issues are filtered by priority and issues with a file path are prioritized. `null` won't limit issues per issue provider. | + | `ProviderIssueLimits` | Empty | Issue limits for individual issue provider. The key must be the `IIssue.ProviderType` of a specific provider to which the limits should be applied to. | + | `IssueFilters` | Empty | List of filter functions which should be applied before posting issues to pull requests. | + | `ShouldSetPullRequestStatus` | `true` | Indicates whether a status on the pull request should be set if there are any issues found. | + | `ShouldSetSeparatePullRequestStatusForEachIssueProviderAndRun` | `true` | Indicates whether a separate status should be set for issues of every issue provider and run. | diff --git a/docs/input/documentation/recipe/demos.md b/docs/input/documentation/recipe/demos.md new file mode 100644 index 000000000..36fa3c149 --- /dev/null +++ b/docs/input/documentation/recipe/demos.md @@ -0,0 +1,11 @@ +--- +title: Demos +description: Demo setups for Cake.Issues recipes. +--- + +There are demo setups available for different combinations of build servers and repositories which you can fork and to which you can create pull requests +to test the recipe functionality. + +| Recipe | Build Server | Repository | +|--------------------|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| +| Cake.Issues.Recipe | [Azure Pipelines](https://dev.azure.com/pberger/Cake.Issues.Recipe-Demo/_build/latest?definitionId=6) | [Azure Repos](https://dev.azure.com/pberger/_git/Cake.Issues.Recipe-Demo) | \ No newline at end of file diff --git a/docs/input/documentation/recipe/index.md b/docs/input/documentation/recipe/index.md new file mode 100644 index 000000000..48f67c531 --- /dev/null +++ b/docs/input/documentation/recipe/index.md @@ -0,0 +1,112 @@ +--- +title: Overview +description: Overview about Cake.Issues recipes. +--- + +Cake.Issues recipes provide build scripts, delivered as a NuGet package, which can be used inside your projects Cake build to add issue management. + +Integration of code analyzing and linting tools into a build pipeline often looks the similar, and differentiates mainly on the used linters, build and pull request systems. +Cake.Issues recipes contain code to do all the parsing, integration with build and pull request systems for you, using the individual Cake.Issues addins. +They support different linters based on the linting log files you pass it and integrate automatically with different build and pull request systems. + +There are two flavors available: + +
    + +- :material-receipt-text: [Cake.Issues.Recipe] + + --- + + For [Cake .NET Tool]{target="_blank"} + +- :material-receipt-text: [Cake.Frosting.Issues.Recipe] + + --- + + For [Cake Frosting]{target="_blank"} + +
    + +## Supported tools + +See [supported tools] for a list of supported linters, build servers and pull request systems. + +## Bundled addins + +Cake.Issues recipes will add the following addins to your build: + +=== "Cake.Issues.Recipe" + + | Addin | Version | Remarks | + |-----------------------------------------------------------|---------------------------|-| + | [Cake.Git]{target="_blank"} | 5.0.1 | Only used if `RepositoryInfoProvider` type is set to `RepositoryInfoProviderType.CakeGit`. See [Git repository information configuration] for details. | + | [Cake.Issues]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.MsBuild]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.InspectCode]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.Markdownlint]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.EsLint]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.Sarif]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.Reporting]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.Reporting.Generic]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.Reporting.Sarif]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.PullRequests]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.PullRequests.AppVeyor]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.PullRequests.AzureDevOps]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Issues.PullRequests.GitHubActions]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.AzureDevOps]{target="_blank"} | 5.0.0 | | + +=== "Cake.Frosting.Issues.Recipe" + + | Addin | Version | Remarks | + |--------------------------------------------------------------------|---------------------------|-| + | [Cake.Frosting.Git]{target="_blank"} | 5.0.1 | Only used if `RepositoryInfoProvider` type is set to `RepositoryInfoProviderType.CakeGit`. See [Git repository information configuration] for details. | + | [Cake.Issues]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.MsBuild]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.InspectCode]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.Markdownlint]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.EsLint]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.Sarif]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.Reporting]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.Reporting.Generic]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.Reporting.Sarif]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.PullRequests]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.PullRequests.AppVeyor]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.PullRequests.AzureDevOps]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.Issues.PullRequests.GitHubActions]{target="_blank"} | {{ cake_issues_version }} | | + | [Cake.Frosting.AzureDevOps]{target="_blank"} | 5.0.0 | | + +[Cake.Issues.Recipe]: https://www.nuget.org/packages/Cake.Issues.Recipe +[Cake.Frosting.Issues.Recipe]: https://www.nuget.org/packages/Cake.Frosting.Issues.Recipe +[Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool +[Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting +[supported tools]: supported-tools.md +[Git repository information configuration]: configuration.md#git-repository-information +[Cake.Git]: https://cakebuild.net/extensions/cake-git/ +[Cake.Frosting.Git]: https://cakebuild.net/extensions/cake-git/ +[Cake.Issues]: https://cakebuild.net/extensions/cake-issues/ +[Cake.Issues.MsBuild]: https://cakebuild.net/extensions/cake-issues-msbuild/ +[Cake.Frosting.Issues.MsBuild]: https://cakebuild.net/extensions/cake-issues-msbuild/ +[Cake.Issues.InspectCode]: https://cakebuild.net/extensions/cake-issues-inspectcode/ +[Cake.Frosting.Issues.InspectCode]: https://cakebuild.net/extensions/cake-issues-inspectcode/ +[Cake.Issues.Markdownlint]: https://cakebuild.net/extensions/cake-issues-markdownlint/ +[Cake.Frosting.Issues.Markdownlint]: https://cakebuild.net/extensions/cake-issues-markdownlint/ +[Cake.Issues.EsLint]: https://cakebuild.net/extensions/cake-issues-eslint/ +[Cake.Frosting.Issues.EsLint]: https://cakebuild.net/extensions/cake-issues-eslint/ +[Cake.Issues.Sarif]: https://cakebuild.net/extensions/cake-issues-sarif/ +[Cake.Frosting.Issues.Sarif]: https://cakebuild.net/extensions/cake-issues-sarif/ +[Cake.Issues.Reporting]: https://cakebuild.net/extensions/cake-issues-reporting/ +[Cake.Frosting.Issues.Reporting]: https://cakebuild.net/extensions/cake-issues-reporting/ +[Cake.Issues.Reporting.Generic]: https://cakebuild.net/extensions/cake-issues-reporting-generic/ +[Cake.Frosting.Issues.Reporting.Generic]: https://cakebuild.net/extensions/cake-issues-reporting-generic/ +[Cake.Issues.Reporting.Sarif]: https://cakebuild.net/extensions/cake-issues-reporting-sarif/ +[Cake.Frosting.Issues.Reporting.Sarif]: https://cakebuild.net/extensions/cake-issues-reporting-sarif/ +[Cake.Issues.PullRequests]: https://cakebuild.net/extensions/cake-issues-pullrequests/ +[Cake.Frosting.Issues.PullRequests]: https://cakebuild.net/extensions/cake-issues-pullrequests/ +[Cake.Issues.PullRequests.AppVeyor]: https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor/ +[Cake.Frosting.Issues.PullRequests.AppVeyor]: https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor/ +[Cake.Issues.PullRequests.AzureDevOps]: https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/ +[Cake.Frosting.Issues.PullRequests.AzureDevOps]: https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops/ +[Cake.Issues.PullRequests.GitHubActions]: https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions/ +[Cake.Frosting.Issues.PullRequests.GitHubActions]: https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions/ +[Cake.AzureDevOps]: https://cakebuild.net/extensions/cake-azuredevops/ +[Cake.Frosting.AzureDevOps]: https://cakebuild.net/extensions/cake-azuredevops/ diff --git a/docs/input/documentation/recipe/supported-tools.md b/docs/input/documentation/recipe/supported-tools.md new file mode 100644 index 000000000..70812c86f --- /dev/null +++ b/docs/input/documentation/recipe/supported-tools.md @@ -0,0 +1,108 @@ +--- +title: Supported tools +description: Tools supported by Cake.Issues recipes. +--- + +Cake.Issues recipes support reading issues from different tools and integrates with different build and pull request systems. + +## Tools + +Cake.Issues recipes support reading issues from output of the following tools: + +=== "Cake.Issues.Recipe" + + | Tool | Format | IssuesParameters.InputFiles Method | + |-----------------------------------|---------------------------------------------------------|-------------------------------------| + | MsBuild | [MSBuild Extension Pack XmlFileLogger]{target="_blank"} | `AddMsBuildXmlFileLoggerLogFile*()` | + | MsBuild | Binary Log File | `AddMsBuildBinaryLogFile*()` | + | JetBrains InspectCode (ReSharper) | [xml]{target="_blank"} | `AddInspectCodeLogFile*()` | + | markdownlint | [markdownlint-cli]{target="_blank"} default format | `AddMarkdownlintCliLogFile*()` | + | markdownlint | [markdownlint-cli]{target="_blank"} with `--json` | `AddMarkdownlintCliJsonLogFile*()` | + | markdownlint | [markdownlint]{target="_blank"} version 1 | `AddMarkdownlintV1LogFile*()` | + | [ESLint] | [json formatter]{target="_blank"} | `AddEsLintJsonLogFile*()` | + | Any SARIF compatible tool | [SARIF]{target="_blank"} | `AddSarifLogFile*()` | + +=== "Cake.Frosting.Issues.Recipe" + + | Tool | Format | IssuesContext.Parameters.InputFiles Method | + |-----------------------------------|---------------------------------------------------------|--------------------------------------------| + | MsBuild | [MSBuild Extension Pack XmlFileLogger]{target="_blank"} | `AddMsBuildXmlFileLoggerLogFile*()` | + | MsBuild | Binary Log File | `AddMsBuildBinaryLogFile*()` | + | JetBrains InspectCode (ReSharper) | [xml]{target="_blank"} | `AddInspectCodeLogFile*()` | + | markdownlint | [markdownlint-cli]{target="_blank"} default format | `AddMarkdownlintCliLogFile*()` | + | markdownlint | [markdownlint-cli]{target="_blank"} with `--json` | `AddMarkdownlintCliJsonLogFile*()` | + | markdownlint | [markdownlint]{target="_blank"} version 1 | `AddMarkdownlintV1LogFile*()` | + | [ESLint] | [json formatter]{target="_blank"} | `AddEsLintJsonLogFile*()` | + | Any SARIF compatible tool | [SARIF]{target="_blank"} | `AddSarifLogFile*()` | + +!!! tip + + See [Supported tools](../supported-tools.md) for a list of tools supporting the SARIF format. + +[MSBuild Extension Pack XmlFileLogger]: https://github.com/mikefourie-zz/MSBuildExtensionPack/blob/master/Solutions/Main/Loggers/Framework/XmlFileLogger.cs +[xml]: https://www.jetbrains.com/help/resharper/InspectCode.html#alternative-output-formats +[markdownlint-cli]: https://github.com/igorshubovych/markdownlint-cli +[markdownlint]: https://github.com/DavidAnson/markdownlint +[ESLint]: https://eslint.org/ +[json formatter]: https://eslint.org/docs/user-guide/formatters/#json +[SARIF]: https://sarifweb.azurewebsites.net/ + +## Build systems + +Cake.Issues recipes integrates with the following build systems: + +=== "AppVeyor" + +
    + + - [x] Write issues to build server + - [ ] Issues summary + - [x] Full issues report + +
    + +=== "Azure Pipelines" + +
    + + - [x] Write issues to build server (1) + - [x] Issues summary + - [x] Full issues report + +
    + + 1. Only first 10 + +=== "GitHub Actions" + +
    + + - [x] Write issues to build server + - [ ] Issues summary + - [ ] Full issues report + +
    + +## Pull request systems + +Cake.Issues recipes integrates with the following pull request systems: + +=== "Azure Repos" + +
    + + - [x] Write issues to pull requests + - [x] Set pull request status + +
    + +=== "GitHub" + +
    + + - [x] Write issues to pull requests (1) + - [ ] Set pull request status + +
    + + 1. When build from GitHub Actions diff --git a/docs/input/documentation/recipe/tasks.md b/docs/input/documentation/recipe/tasks.md new file mode 100644 index 000000000..cfe856651 --- /dev/null +++ b/docs/input/documentation/recipe/tasks.md @@ -0,0 +1,34 @@ +--- +title: Tasks +description: Tasks provided by Cake.Issues recipes. +--- + +Cake.Issues recipes provide the following tasks to your build script: + +=== "Cake.Issues.Recipe" + + | Task | Description | IssuesBuildTasks property | + |------------------------------|----------------------------------------------|---------------------------------| + | `Issues` | Main tasks for issue management integration. | `IssuesTask` | + | `Read-Issues` | Reads issues from the provided log files. | `ReadIssuesTask` | + | `Create-FullIssuesReport` | Creates issue report. | `CreateFullIssuesReportTask` | + | `Publish-IssuesArtifacts` | Publish artifacts to build server. | `PublishIssuesArtifactsTask` | + | `Report-IssuesToBuildServer` | Report issues to build server. | `ReportIssuesToBuildServerTask` | + | `Create-SummaryIssuesReport` | Creates a summary issue report. | `CreateSummaryIssuesReportTask` | + | `Report-IssuesToPullRequest` | Report issues to pull request. | `ReportIssuesToPullRequestTask` | + | `Set-PullRequestIssuesState` | Set pull request status. | `SetPullRequestIssuesStateTask` | + | `Report-IssuesToConsole` | Report issues to console. | `ReportIssuesToConsoleTask` | + +=== "Cake.Frosting.Issues.Recipe" + + | Task | Description | Task type | + |------------------------------|----------------------------------------------|--------------------------------------------------------------------------------------------| + | `Issues` | Main tasks for issue management integration. | `Cake.Frosting.Issues.Recipe.`
        `IssuesTask` | + | `Read-Issues` | Reads issues from the provided log files. | `Cake.Frosting.Issues.Recipe.`
        `ReadIssuesTask` | + | `Create-FullIssuesReport` | Creates issue report. | `Cake.Frosting.Issues.Recipe.`
        `CreateFullIssuesReportTask` | + | `Publish-IssuesArtifacts` | Publish artifacts to build server. | `Cake.Frosting.Issues.Recipe.`
        `PublishIssuesArtifactsTask` | + | `Report-IssuesToBuildServer` | Report issues to build server. | `Cake.Frosting.Issues.Recipe.`
        `ReportIssuesToBuildServerTask` | + | `Create-SummaryIssuesReport` | Creates a summary issue report. | `Cake.Frosting.Issues.Recipe.`
        `CreateSummaryIssuesReportTask` | + | `Report-IssuesToPullRequest` | Report issues to pull request. | `Cake.Frosting.Issues.Recipe.`
        `ReportIssuesToPullRequestTask` | + | `Set-PullRequestIssuesState` | Set pull request status. | `Cake.Frosting.Issues.Recipe.`
        `SetPullRequestIssuesStateTask` | + | `Report-IssuesToConsole` | Report issues to console. | `Cake.Frosting.Issues.Recipe.`
        `ReportIssuesToConsoleTask` | diff --git a/docs/input/documentation/report-formats/console/examples.md b/docs/input/documentation/report-formats/console/examples.md new file mode 100644 index 000000000..6cd90ffa4 --- /dev/null +++ b/docs/input/documentation/report-formats/console/examples.md @@ -0,0 +1,130 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.Reporting.Console addin. +icon: material/test-tube +--- + +To report issues to the console the Console report format needs to be imported. +For this example the MsBuild issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting.Console&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the Console report format the `Cake.Issues` and `Cake.Issues.Reporting` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example will print issues logged as warnings by MsBuild to the console. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-IssueReport").Does(() => + { + var repoRootPath = MakeAbsolute(Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + Context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Write issues to console. + CreateIssueReport( + MsBuildIssuesFromFilePath( + msBuildLogFile, + MsBuildBinaryLogFileFormat), + ConsoleIssueReportFormat( + new ConsoleIssueReportFormatSettings + { + GroupByRule = true, + ShowProviderSummary = true, + ShowPrioritySummary = true + }), + repoRootPath, + string.Empty); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Common.Tools.DotNet; + using Cake.Common.Tools.DotNet.Build; + using Cake.Common.Tools.DotNet.MSBuild; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-IssueReport")] + public sealed class CreateIssueReportTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + context.DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Write issues to console. + context.CreateIssueReport( + context.MsBuildIssuesFromFilePath( + msBuildLogFile, + context.MsBuildBinaryLogFileFormat()), + context.ConsoleIssueReportFormat( + new ConsoleIssueReportFormatSettings + { + GroupByRule = true, + ShowProviderSummary = true, + ShowPrioritySummary = true + }), + repoRootPath, + string.Empty); + } + } + ``` diff --git a/docs/input/documentation/report-formats/console/features.md b/docs/input/documentation/report-formats/console/features.md new file mode 100644 index 000000000..97262b99a --- /dev/null +++ b/docs/input/documentation/report-formats/console/features.md @@ -0,0 +1,17 @@ +--- +title: Features +description: Features of the Cake.Issues.Reporting.Console addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Reporting.Console addin]{target="_blank"} provides the following features: + +- [x] Prints issues containing line and column information. +- [x] Group issues by rule + +Reports: + +- [x] Number of issues by provider +- [x] Number of issues by priority for every provider and run + +[Cake.Issues.Reporting.Console addin]: https://cakebuild.net/extensions/cake-issues-reporting-console/ diff --git a/docs/input/documentation/report-formats/console/index.md b/docs/input/documentation/report-formats/console/index.md new file mode 100644 index 000000000..b9e65552a --- /dev/null +++ b/docs/input/documentation/report-formats/console/index.md @@ -0,0 +1,15 @@ +--- +title: Console +description: Report format to print issues to the console. +--- + +Support for printing issues to the console is implemented in the +a [Cake.Issues.Reporting.Console addin](https://cakebuild.net/extensions/cake-issues-reporting-console/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-reporting-console){target="_blank"} + +
    diff --git a/docs/input/documentation/report-formats/generic/examples/custom-template.md b/docs/input/documentation/report-formats/generic/examples/custom-template.md new file mode 100644 index 000000000..bff5b2d95 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/examples/custom-template.md @@ -0,0 +1,181 @@ +--- +title: Custom template +description: Example how to create a report using a custom template +--- + +!!! info + If you create a universally usable custom template we're happy to package it with the addin. + To have it included in the addin please [create a pull request] with your contribution. + +To create custom HTML reports the Generic report format needs to be imported. +For this example the MsBuild issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting.Generic&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the Generic report format the `Cake.Issues` and `Cake.Issues.Reporting` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example will create a HTML report for issues logged as warnings by MsBuild using a custom template. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-IssueReport").Does(() => + { + var repoRootFolder = new DirectoryPath(@"c:\repo"); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new MSBuildSettings().WithLogger( + "BinaryLogger," + Context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile) + DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln"), + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Create HTML report using Diagnostic template. + CreateIssueReport( + new List + { + MsBuildIssuesFromFilePath( + msBuildLogFile, + MsBuildBinaryLogFileFormat) + }, + GenericIssueReportFormatFromFilePath(@"c:\ReportTemplate.cshtml"), + repoRootFolder, + @"c:\report.html"); + }); + ``` +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Common.Tools.DotNet; + using Cake.Common.Tools.DotNet.Build; + using Cake.Common.Tools.DotNet.MSBuild; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-IssueReport")] + public sealed class CreateIssueReportTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + context.DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Write issues to console. + context.CreateIssueReport( + context.MsBuildIssuesFromFilePath( + msBuildLogFile, + context.MsBuildBinaryLogFileFormat()), + context.GenericIssueReportFormatFromFilePath(@"c:\ReportTemplate.cshtml"), + repoRootPath, + @"c:\report.html"); + } + } + ``` + +The template looks like this: + +```csharp title="ReportTemplate.cshtml" +@model IEnumerable + + + + + + + + + + + + + + + + + + + + + + + @foreach (var issue in Model) + { + + + + + + + + + + } + +
    AffectedFileRelativePathLineMessagePriorityRuleRuleUrlProviderType
    @issue.AffectedFileRelativePath@issue.Line@issue.MessageText@issue.Priority@issue.RuleId@issue.RuleUrl@issue.ProviderType
    + + +``` + +The template retrieves an `IEnumerable` as model. + +!!! info + In custom templates functionality from the following assemblies are available: + + * System.dll + * System.Core.dll + * netstandard.dll + * Cake.Core.dll + * Cake.Issues.dll + * Cake.Issues.Reporting.Generic.dll + +[create a pull request]: ../../../contributing/how-to-contribute.md diff --git a/docs/input/documentation/report-formats/generic/examples/default-template.md b/docs/input/documentation/report-formats/generic/examples/default-template.md new file mode 100644 index 000000000..aa7d82095 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/examples/default-template.md @@ -0,0 +1,117 @@ +--- +title: Embedded default template +description: Example how to create a report using an embedded default template. +--- + +To create HTML reports the Generic report format needs to be imported. +For this example the MsBuild issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting.Generic&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the Generic report format the `Cake.Issues` and `Cake.Issues.Reporting` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example will create a HTML report for issues logged as warnings by MsBuild. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-IssueReport").Does(() => + { + var repoRootPath = MakeAbsolute(Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + Context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Create HTML report using Diagnostic template. + CreateIssueReport( + MsBuildIssuesFromFilePath( + msBuildLogFile, + MsBuildBinaryLogFileFormat), + GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), + repoRootPath, + @"c:\report.html"); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Common.Tools.DotNet; + using Cake.Common.Tools.DotNet.Build; + using Cake.Common.Tools.DotNet.MSBuild; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-IssueReport")] + public sealed class CreateIssueReportTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + context.DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Write issues to console. + context.CreateIssueReport( + context.MsBuildIssuesFromFilePath( + msBuildLogFile, + context.MsBuildBinaryLogFileFormat()), + context.GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), + repoRootPath, + @"c:\report.html"); + } + } + ``` diff --git a/docs/input/documentation/report-formats/generic/examples/index.md b/docs/input/documentation/report-formats/generic/examples/index.md new file mode 100644 index 000000000..6a4ca44e2 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/examples/index.md @@ -0,0 +1,12 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.Reporting.Generic addin. +icon: material/test-tube +--- + +
    + +- [Embedded Default Template](default-template.md) +- [Custom Template](custom-template.md) + +
    diff --git a/docs/input/documentation/report-formats/generic/features.md b/docs/input/documentation/report-formats/generic/features.md new file mode 100644 index 000000000..1c19f1359 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/features.md @@ -0,0 +1,17 @@ +--- +title: Features +description: Features of the Cake.Issues.Reporting.Generic addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Reporting.Generic addin](https://cakebuild.net/extensions/cake-issues-reporting-generic/){target="_blank"} +provides the following features: + +- [x] Creates reports in any text based format like HTML or Markdown. +- [x] Provides out of the box templates +- [x] Possibility to use custom templates using Razor + +!!! info + See [Template Gallery] for a list of available out of the box and 3rd party templates. + +[Template Gallery]: templates/index.md diff --git a/docs/input/documentation/report-formats/generic/index.md b/docs/input/documentation/report-formats/generic/index.md new file mode 100644 index 000000000..00105dc30 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/index.md @@ -0,0 +1,16 @@ +--- +title: Generic +description: Report format to create reports in any text based format (HTML, Markdown, ...). +--- + +Support for creating reports in any text based format like HTML or Markdown is implemented in the +[Cake.Issues.Reporting.Generic addin](https://cakebuild.net/extensions/cake-issues-reporting-generic/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples/index.md) +- :material-image: [Template Gallery](templates/index.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-reporting-generic){target="_blank"} + +
    diff --git a/docs/input/docs/report-formats/generic/templates/htmldatatable-demo-default.html b/docs/input/documentation/report-formats/generic/templates/htmldatatable-demo-default.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldatatable-demo-default.html rename to docs/input/documentation/report-formats/generic/templates/htmldatatable-demo-default.html diff --git a/docs/input/documentation/report-formats/generic/templates/htmldatatable.md b/docs/input/documentation/report-formats/generic/templates/htmldatatable.md new file mode 100644 index 000000000..aa4f03f77 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/templates/htmldatatable.md @@ -0,0 +1,67 @@ +--- +title: HTML Data Table +description: Template for a HTML report containing a rich data table view with sorting and search functionality. +--- + +Template for a HTML report containing a rich data table view with sorting and search functionality powered by +[Simple-DataTables](https://github.com/fiduswriter/Simple-DataTables){target="_blank"}. + +![HTML Data Table](htmldatatable01.png "HTML Data Table") + +## Features + +- [x] Separate table for issues of each issue provider. +- [x] Table with `Severity`, `Project`, `Path`, `File`, `Location`, `Rule`, `Message`. +- [x] Each column sortable by user. +- [x] Paged table with possibility for user to change number of entries per page. +- [x] Client-side full text search. +- [x] No internet access required for displaying. + +## Requirements + +* Cake.Issues.Reporting.Generic 0.2.1 or higher + +## Usage + +To create a report using the HTML Data Table template you can use the +[GenericIssueReportTemplate.HtmlDataTable](https://cakebuild.net/api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/62ADE81F){target="_blank"} +enum value: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDataTable), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDataTable), + @"c:\repo", + @"c:\report.html"); + ``` + +## Options + +This template doesn't support any options. + +## Demos + +* [Default](htmldatatable-demo-default.html){target="_blank"} + +## Source Code + +!!! info + You can use the source code as a template for your [custom template]. + +Source code is available on [GitHub](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml){target="_blank"}. + +[custom template]: ../examples/custom-template.md diff --git a/docs/input/docs/report-formats/generic/templates/htmldatatable01.png b/docs/input/documentation/report-formats/generic/templates/htmldatatable01.png similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldatatable01.png rename to docs/input/documentation/report-formats/generic/templates/htmldatatable01.png diff --git a/docs/input/docs/report-formats/generic/templates/htmldiagnostic-demo-default.html b/docs/input/documentation/report-formats/generic/templates/htmldiagnostic-demo-default.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldiagnostic-demo-default.html rename to docs/input/documentation/report-formats/generic/templates/htmldiagnostic-demo-default.html diff --git a/docs/input/documentation/report-formats/generic/templates/htmldiagnostic.md b/docs/input/documentation/report-formats/generic/templates/htmldiagnostic.md new file mode 100644 index 000000000..460734807 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/templates/htmldiagnostic.md @@ -0,0 +1,62 @@ +--- +title: HTML Diagnostic +description: Template for a HTML report containing a list of all issues with all properties. +--- + +Template for a HTML report containing a list of all issues with all properties. + +![HTML Diagnostic](htmldiagnostic01.png "HTML Diagnostic") + +## Features + +- [x] Unstyled table listing all properties of [IIssue](https://cakebuild.net/api/Cake.Issues/IIssue/){target="_blank"} +- [x] No internet access required for displaying. + +## Requirements + +* No additional requirements. + +## Usage + +To create a report using the HTML diagnostic template you can use the +[GenericIssueReportTemplate.HtmlDiagnostic](https://cakebuild.net/api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/4F88BD05){target="_blank"} +enum value: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDiagnostic), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDiagnostic), + @"c:\repo", + @"c:\report.html"); + ``` + +## Options + +This template doesn't support any options. + +## Demos + +* [Default](htmldiagnostic-demo-default.html){target="_blank"} + +## Source Code + +!!! info + You can use the source code as a template for your [custom template]. + +Source code is available on [GitHub](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml){target="_blank"}. + +[custom template]: ../examples/custom-template.md diff --git a/docs/input/docs/report-formats/generic/templates/htmldiagnostic01.png b/docs/input/documentation/report-formats/generic/templates/htmldiagnostic01.png similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldiagnostic01.png rename to docs/input/documentation/report-formats/generic/templates/htmldiagnostic01.png diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-additionalcolumns.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-additionalcolumns.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-additionalcolumns.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-additionalcolumns.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-changetitle.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-changetitle.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-changetitle.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-changetitle.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-columnhiding.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-columnhiding.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-columnhiding.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-columnhiding.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-customexportfilename.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-customexportfilename.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-customexportfilename.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-customexportfilename.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-customscriptlocation.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-customscriptlocation.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-customscriptlocation.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-customscriptlocation.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-default.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-default.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-default.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-default.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablefiltering.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablefiltering.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablefiltering.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablefiltering.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablegrouping.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablegrouping.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablegrouping.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablegrouping.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disableheader.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disableheader.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disableheader.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disableheader.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablesearching.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablesearching.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-disablesearching.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-disablesearching.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-enableexporting.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-enableexporting.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-enableexporting.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-enableexporting.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-pdf.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-pdf.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-pdf.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-pdf.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-xlsx.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-xlsx.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-xlsx.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-exportformat-xlsx.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-grouping.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-grouping.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-grouping.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-grouping.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-sorting.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-sorting.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-sorting.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-sorting.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-carmine.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-carmine.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-carmine.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-carmine.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrast.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrast.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrast.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrast.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrastcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrastcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrastcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-contrastcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-dark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-dark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-dark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-dark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkmoon.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkmoon.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkmoon.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkmoon.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkviolet.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkviolet.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkviolet.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-darkviolet.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-greenmist.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-greenmist.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-greenmist.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-greenmist.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-light.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-light.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-light.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-light.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-lightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-lightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-lightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-lightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedarkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedarkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedarkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluedarkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelight.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelight.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelight.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelight.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialbluelightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedarkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedarkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedarkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimedarkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelight.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelight.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelight.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelight.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materiallimelightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedarkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedarkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedarkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangedarkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelight.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelight.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelight.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelight.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialorangelightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledarkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledarkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledarkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurpledarkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelight.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelight.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelight.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelight.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialpurplelightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdark.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdark.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdark.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdark.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdarkcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdarkcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdarkcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialtealdarkcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallight.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallight.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallight.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallight.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallightcompact.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallightcompact.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallightcompact.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-materialteallightcompact.html diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-softblue.html b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-softblue.html similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid-demo-theme-softblue.html rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid-demo-theme-softblue.html diff --git a/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid.md b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid.md new file mode 100644 index 000000000..e3412b5cc --- /dev/null +++ b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid.md @@ -0,0 +1,357 @@ +--- +title: HTML DevExtreme Data Grid +description: Template for a HTML report containing a rich data grid with sorting, filtering, grouping and search capabilities. +--- + +Template for a HTML report containing a rich data grid with sorting, filtering, grouping and search capabilities powered by [DevExtreme]. + +![HTML DevExtreme Data Grid](htmldxdatagrid01.png "HTML DevExtreme Data Grid") + +## Features + +- [x] Table with `Provider`, `Severity`, `Project`, `Path`, `File`, `Location`, `Rule`, `Message` by default. +- [x] Support for grouping by multiple columns by user. +- [x] Total number of issues by each group level. +- [x] Each column sortable by user. +- [x] Data can be filtered by any column by user. +- [x] Paged view. +- [x] Client-side full text search. +- [x] Client-side export to Microsoft Excel or PDF. +- [x] Fully customizable through [options](#options). + +## Requirements + +* Cake.Issues.Reporting.Generic 0.3.1 or higher + +## Usage + +To create a report using the HTML DevExtreme Data Grid template you can use the [GenericIssueReportTemplate.HtmlDxDataGrid] enum value: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid), + @"c:\repo", + @"c:\report.html"); + ``` + +## Options + +See [HtmlDxDataGridOption] for a list of possible options. + +## Demos + +The following demo shows the template with its default options: + +* [Default](htmldxdatagrid-demo-default.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-default.cake){target="_blank"}) + +### Themes + +The template supports the teams defined in the [DevExtremeTheme] enumeration which can be set using the [HtmlDxDataGridOption.Theme]: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.Theme, + DevExtremeTheme.MaterialBlueLight)), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.Theme, + DevExtremeTheme.MaterialBlueLight)), + @"c:\repo", + @"c:\report.html"); + ``` + +* [Light Theme](htmldxdatagrid-demo-theme-light.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-light.cake){target="_blank"}) +* [Dark Theme](htmldxdatagrid-demo-theme-dark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-dark.cake){target="_blank"}) +* [Contrast Theme](htmldxdatagrid-demo-theme-contrast.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-contrast.cake){target="_blank"}) +* [Carmine Theme](htmldxdatagrid-demo-theme-carmine.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-carmine.cake){target="_blank"}) +* [Dark Moon Theme](htmldxdatagrid-demo-theme-darkmoon.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-darkmoon.cake){target="_blank"}) +* [Soft Blue Theme](htmldxdatagrid-demo-theme-softblue.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-softblue.cake){target="_blank"}) +* [Dark Violet Theme](htmldxdatagrid-demo-theme-darkviolet.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-darkviolet.cake){target="_blank"}) +* [Green Mist Theme](htmldxdatagrid-demo-theme-greenmist.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-greenmist.cake){target="_blank"}) +* [Light Compact Theme](htmldxdatagrid-demo-theme-lightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-lightcompact.cake){target="_blank"}) +* [Dark Compact Theme](htmldxdatagrid-demo-theme-darkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-darkcompact.cake){target="_blank"}) +* [Contrast Compact Theme](htmldxdatagrid-demo-theme-contrastcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-contrastcompact.cake){target="_blank"}) +* [Material Blue Light Theme](htmldxdatagrid-demo-theme-materialbluelight.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialbluelight.cake){target="_blank"}) +* [Material Lime Light Theme](htmldxdatagrid-demo-theme-materiallimelight.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materiallimelight.cake){target="_blank"}) +* [Material Orange Light Theme](htmldxdatagrid-demo-theme-materialorangelight.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialorangelight.cake){target="_blank"}) +* [Material Purple Light Theme](htmldxdatagrid-demo-theme-materialpurplelight.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialpurplelight.cake){target="_blank"}) +* [Material Teal Light Theme](htmldxdatagrid-demo-theme-materialteallight.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialteallight.cake){target="_blank"}) +* [Material Blue Dark Theme](htmldxdatagrid-demo-theme-materialbluedark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialbluedark.cake){target="_blank"}) +* [Material Lime Dark Theme](htmldxdatagrid-demo-theme-materiallimedark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materiallimedark.cake){target="_blank"}) +* [Material Orange Dark Theme](htmldxdatagrid-demo-theme-materialorangedark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialorangedark.cake){target="_blank"}) +* [Material Purple Dark Theme](htmldxdatagrid-demo-theme-materialpurpledark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialpurpledark.cake){target="_blank"}) +* [Material Teal Dark Theme](htmldxdatagrid-demo-theme-materialtealdark.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialtealdark.cake){target="_blank"}) +* [Material Blue Light Compact Theme](htmldxdatagrid-demo-theme-materialbluelightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialbluelightcompact.cake){target="_blank"}) +* [Material Lime Light Compact Theme](htmldxdatagrid-demo-theme-materiallimelightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materiallimelightcompact.cake){target="_blank"}) +* [Material Orange Light Compact Theme](htmldxdatagrid-demo-theme-materialorangelightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialorangelightcompact.cake){target="_blank"}) +* [Material Purple Light Compact Theme](htmldxdatagrid-demo-theme-materialpurplelightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialpurplelightcompact.cake){target="_blank"}) +* [Material Teal Light Compact Theme](htmldxdatagrid-demo-theme-materialteallightcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialteallightcompact.cake){target="_blank"}) +* [Material Blue Dark Compact Theme](htmldxdatagrid-demo-theme-materialbluedarkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialbluedarkcompact.cake){target="_blank"}) +* [Material Lime Dark Compact Theme](htmldxdatagrid-demo-theme-materiallimedarkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materiallimedarkcompact.cake){target="_blank"}) +* [Material Orange Dark Compact Theme](htmldxdatagrid-demo-theme-materialorangedarkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialorangedarkcompact.cake){target="_blank"}) +* [Material Purple Dark Compact Theme](htmldxdatagrid-demo-theme-materialpurpledarkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialpurpledarkcompact.cake){target="_blank"}) +* [Material Teal Dark Compact Theme](htmldxdatagrid-demo-theme-materialtealdarkcompact.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-theme-materialtealdarkcompact.cake){target="_blank"}) + +### Column visibility + +Visible columns can be defined using the `ColumnNameVisible` option: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.LineVisible, + false)), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.LineVisible, + false)), + @"c:\repo", + @"c:\report.html"); + ``` + +Additional columns can be added using the [HtmlDxDataGridOption.AdditionalColumns] option. + +* [Show and hide columns](htmldxdatagrid-demo-columnhiding.html) + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-hide-columns.cake)) +* [Add additional columns](htmldxdatagrid-demo-additionalcolumns.html) + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-additional-columns.cake)) + +### Sorting + +Sorted columns can be defined using the [HtmlDxDataGridOption.SortedColumns] and the +`ColumnNameSortOder` options: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.SortedColumns, + new List { ReportColumn.RuleId }) + .WithOption( + HtmlDxDataGridOption.RuleIdSortOrder, + ColumnSortOrder.Descending )), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.SortedColumns, + new List { ReportColumn.RuleId }) + .WithOption( + HtmlDxDataGridOption.RuleIdSortOrder, + ColumnSortOrder.Descending )), + @"c:\repo", + @"c:\report.html"); + ``` + +* [Change sorting](htmldxdatagrid-demo-sorting.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-sorting.cake){target="_blank"}) + +### Grouping + +Grouping can be defined using the [HtmlDxDataGridOption.GroupedColumns] option: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.GroupedColumns, + new List { ReportColumn.RuleId })), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.GroupedColumns, + new List { ReportColumn.RuleId })), + @"c:\repo", + @"c:\report.html"); + ``` + +* [Change grouping](htmldxdatagrid-demo-grouping.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-grouping.cake){target="_blank"}) +* [Disable grouping](htmldxdatagrid-demo-disablegrouping.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-disable-grouping.cake){target="_blank"}) + +### Exporting + +Exporting can be enabled using the [HtmlDxDataGridOption.EnableExporting] option: + +=== "Cake .NET Tool" + + ```csharp + CreateIssueReport( + issues, + GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.EnableExporting, + true)), + @"c:\repo", + @"c:\report.html"); + ``` + +=== "Cake Frosting" + + ```csharp + context.CreateIssueReport( + issues, + context.GenericIssueReportFormatFromEmbeddedTemplate( + GenericIssueReportTemplate.HtmlDxDataGrid, + settings => settings + .WithOption( + HtmlDxDataGridOption.EnableExporting, + true)), + @"c:\repo", + @"c:\report.html"); + ``` + +* [Enable exporting](htmldxdatagrid-demo-enableexporting.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-enable-exporting.cake){target="_blank"}) +* [Microsoft Excel export (*.xlsx)](htmldxdatagrid-demo-exportformat-xlsx.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-exportformat-xlsx.cake){target="_blank"}) +* [PDF export (*.pdf)](htmldxdatagrid-demo-exportformat-pdf.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-exportformat-pdf.cake){target="_blank"}) +* [Custom export file name](htmldxdatagrid-demo-customexportfilename.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-custom-export-filename.cake){target="_blank"}) + +### Other features + +* [Change title](htmldxdatagrid-demo-changetitle.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-change-title.cake){target="_blank"}) +* [Disable header](htmldxdatagrid-demo-disableheader.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-disable-header.cake){target="_blank"}) +* [Disable filtering](htmldxdatagrid-demo-disablefiltering.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-disable-filtering.cake){target="_blank"}) +* [Disable searching](htmldxdatagrid-demo-disablesearching.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-disable-searching.cake){target="_blank"}) +* [Custom script location and version](htmldxdatagrid-demo-customscriptlocation.html){target="_blank"} + ([Source Code](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/demos/script-runner/build/create-reports/create-reports-htmldxdatagrid-custom-script-location.cake){target="_blank"}) + +## Source Code + +!!! info + You can use the source code as a template for your [custom template]. + +Source code is available on [GitHub]. + +[DevExtreme]: https://js.devexpress.com +[GenericIssueReportTemplate.HtmlDxDataGrid]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate/0E9E9D94 +[HtmlDxDataGridOption]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/ +[DevExtremeTheme]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/DevExtremeTheme/ +[HtmlDxDataGridOption.Theme]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/EA83DCAB +[HtmlDxDataGridOption.AdditionalColumns]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/F9860912 +[HtmlDxDataGridOption.SortedColumns]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/D578E453 +[HtmlDxDataGridOption.GroupedColumns]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/0907599C +[HtmlDxDataGridOption.EnableExporting]: https://cakebuild.net/api/Cake.Issues.Reporting.Generic/HtmlDxDataGridOption/1441E285 +[custom template]: ../examples/custom-template.md +[GitHub]: https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/blob/develop/src/Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml diff --git a/docs/input/docs/report-formats/generic/templates/htmldxdatagrid01.png b/docs/input/documentation/report-formats/generic/templates/htmldxdatagrid01.png similarity index 100% rename from docs/input/docs/report-formats/generic/templates/htmldxdatagrid01.png rename to docs/input/documentation/report-formats/generic/templates/htmldxdatagrid01.png diff --git a/docs/input/documentation/report-formats/generic/templates/index.md b/docs/input/documentation/report-formats/generic/templates/index.md new file mode 100644 index 000000000..0702aa255 --- /dev/null +++ b/docs/input/documentation/report-formats/generic/templates/index.md @@ -0,0 +1,13 @@ +--- +title: Template Gallery +description: Gallery of available out of the box and 3rd party templates. +icon: material/image +--- + +
    + +- [HTML DevExtreme Data Grid](htmldxdatagrid.md) +- [HTML Data Table](htmldatatable.md) +- [HTML Diagnostic](htmldiagnostic.md) + +
    diff --git a/docs/input/documentation/report-formats/index.md b/docs/input/documentation/report-formats/index.md new file mode 100644 index 000000000..e14771e2c --- /dev/null +++ b/docs/input/documentation/report-formats/index.md @@ -0,0 +1,25 @@ +--- +title: Report Formats +description: Documentation of the different report format addins. +--- + +Report format addins implement specific report formats and allow the +Cake Issues addin to create reports in the specific format. + +
    + +- :material-printer: __[Console]__ – Support for reporting issues to the console +- :material-printer: __[Generic]__ – Support for creating reports in any text based format (HTML, Markdown, ...) +- :material-printer: __[Sarif]__ – Support for creating reports in SARIF format + +
    + +[Console]: console/index.md +[Generic]: generic/index.md +[Sarif]: sarif/index.md + +!!! tip + See [How to implement report format] for instruction on how to implement support for + additional report formats. + +[How to implement report format]: ../extending/report-format/overview.md diff --git a/docs/input/documentation/report-formats/sarif/examples.md b/docs/input/documentation/report-formats/sarif/examples.md new file mode 100644 index 000000000..b3cf79f1f --- /dev/null +++ b/docs/input/documentation/report-formats/sarif/examples.md @@ -0,0 +1,118 @@ +--- +title: Examples +description: Examples for using the Cake.Issues.Reporting.Sarif addin. +icon: material/test-tube +--- + +To report issues to the console the SARIF report format needs to be imported. +For this example the MsBuild issue provider is additionally used for reading issues: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting.Sarif&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the SARIF report format the `Cake.Issues` and `Cake.Issues.Reporting` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +The following example will create a SARIF report for issues logged as warnings by MsBuild. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-IssueReport").Does(() => + { + var repoRootPath = MakeAbsolute(Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + Context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Create SARIF report. + CreateIssueReport( + MsBuildIssuesFromFilePath( + msBuildLogFile, + MsBuildBinaryLogFileFormat, + SarifIssueReportFormat(), + repoRootPath, + @"c:\report.sarif"); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.IO; + using Cake.Common.Tools.DotNet; + using Cake.Common.Tools.DotNet.Build; + using Cake.Common.Tools.DotNet.MSBuild; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-IssueReport")] + public sealed class CreateIssueReportTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootPath = context.MakeAbsolute(context.Directory("./")); + + // Build MySolution.sln solution in the repository root folder and write a binary log. + FilePath msBuildLogFile = @"c:\build\msbuild.log"; + var msBuildSettings = + new DotNetMSBuildSettings().WithLogger( + "BinaryLogger," + context.Tools.Resolve("Cake.Issues.MsBuild*/**/StructuredLogger.dll"), + "", + msBuildLogFile.FullPath); + context.DotNetBuild( + repoRootPath.CombineWithFilePath("MySolution.sln").FullPath, + new DotNetBuildSettings{MSBuildSettings = msBuildSettings}); + + // Create SARIF report. + context.CreateIssueReport( + context.MsBuildIssuesFromFilePath( + msBuildLogFile, + context.MsBuildBinaryLogFileFormat()), + context.SarifIssueReportFormat(), + repoRootPath, + @"c:\report.sarif"); + } + } + ``` diff --git a/docs/input/documentation/report-formats/sarif/features.md b/docs/input/documentation/report-formats/sarif/features.md new file mode 100644 index 000000000..f765cf2fa --- /dev/null +++ b/docs/input/documentation/report-formats/sarif/features.md @@ -0,0 +1,20 @@ +--- +title: Features +description: Features of the Cake.Issues.Reporting.Sarif addin. +icon: material/creation-outline +--- + +The [Cake.Issues.Reporting.Sarif addin]{target="_blank"} provides the following features: + +- [x] Creates SARIF compatible files. + +Supports the following properties in the SARIF report: + +- [x] RuleId +- [x] Message +- [x] Kind +- [x] Level +- [x] Location +- [x] RuleUrl + +[Cake.Issues.Reporting.Sarif addin]: https://cakebuild.net/extensions/cake-issues-reporting-sarif/ diff --git a/docs/input/documentation/report-formats/sarif/index.md b/docs/input/documentation/report-formats/sarif/index.md new file mode 100644 index 000000000..633e6afaa --- /dev/null +++ b/docs/input/documentation/report-formats/sarif/index.md @@ -0,0 +1,15 @@ +--- +title: Sarif +description: Report format to create SARIF compatible reports. +--- + +Support for creating SARIF compatible reports is implemented in the +[Cake.Issues.Reporting.Sarif addin](https://cakebuild.net/extensions/cake-issues-reporting-sarif/){target="_blank"}. + +
    + +- :material-creation-outline: [Features](features.md) +- :material-test-tube: [Examples](examples.md) +- :material-api: [API](https://cakebuild.net/extensions/cake-issues-reporting-sarif){target="_blank"} + +
    diff --git a/docs/input/docs/resources/blog-posts.md b/docs/input/documentation/resources/blog-posts.md similarity index 57% rename from docs/input/docs/resources/blog-posts.md rename to docs/input/documentation/resources/blog-posts.md index 935648bfa..8de6821f6 100644 --- a/docs/input/docs/resources/blog-posts.md +++ b/docs/input/documentation/resources/blog-posts.md @@ -1,19 +1,17 @@ --- -Order: 10 -Title: Blog posts -Description: Blog posts about the Cake Issues addins. +title: Blog posts +description: Blog posts about the Cake Issues addins. --- -:::{.alert .alert-info} -If you have written about Cake Issues we would like to hear from you. -You can add it by creating a pull request [here](https://github.com/cake-contrib/Cake.Issues.Website/tree/develop/input/docs/resources/blog-posts.md). -::: +!!! info + If you have written about Cake Issues we would like to hear from you. + You can add it by creating a pull request [here](https://github.com/cake-contrib/Cake.Issues.Website/tree/develop/input/docs/resources/blog-posts.md). -# 2018 +## 2018 * [Cake.Issues - A suite of addins for issue handling in Cake](https://cakebuild.net/blog/2018/06/cake-issues) - Pascal Berger -# 2017 +## 2017 * [Finding typos with ReSharper Command Line Tools, ReSpeller and Cake](https://tpodolak.com/blog/2017/10/27/finding-typos-resharper-command-line-tools-respeller-cake/) - Tom Podolak * [Cake build issue reporting with PRCA](https://blog.ostebaronen.dk/2017/08/cake-build-issue-reporting-with-prca.html) - Tomasz Cielecki \ No newline at end of file diff --git a/docs/input/docs/resources/presentations.md b/docs/input/documentation/resources/presentations.md similarity index 55% rename from docs/input/docs/resources/presentations.md rename to docs/input/documentation/resources/presentations.md index 173ecd1fa..a1f8259dc 100644 --- a/docs/input/docs/resources/presentations.md +++ b/docs/input/documentation/resources/presentations.md @@ -1,18 +1,16 @@ --- -Order: 20 -Title: Presentations -Description: Presentations about the Cake Issues addins. +title: Presentations +description: Presentations about the Cake Issues addins. --- -:::{.alert .alert-info} -If you have done a presentation about Cake Issues we would like to hear from you. -You can add it by creating a pull request [here](https://github.com/cake-contrib/Cake.Issues.Website/tree/develop/input/docs/resources/presentations.md). -::: +!!! info + If you have done a presentation about Cake Issues we would like to hear from you. + You can add it by creating a pull request [here](https://github.com/cake-contrib/Cake.Issues.Website/tree/develop/input/docs/resources/presentations.md). -# 2019 +## 2019 * Continuous Code Inspection using Cake - .NET User Group Basel: [Video](https://www.youtube.com/watch?v=tZ6hdBrj81s) [Slides](https://gitpitch.com/pascalberger/Cake.Issues-Presentation/20190212-dotnet-usergroup-basel#/) - Pascal Berger -# 2018 +## 2018 * [Ensuring quality in your DevOps pipelines using Cake - Azure DevOps Saturday Gothenburg](https://gitpitch.com/pascalberger/Cake.Issues-Presentation/20180929-azure-devops-saturday-gothenburg) - Pascal Berger \ No newline at end of file diff --git a/docs/input/documentation/supported-tools.md b/docs/input/documentation/supported-tools.md new file mode 100644 index 000000000..d4d277758 --- /dev/null +++ b/docs/input/documentation/supported-tools.md @@ -0,0 +1,118 @@ +--- +title: Supported Tools +description: List of tools know to be supported by Cake.Issues. +--- + +This pages lists tools known to be working with Cake Issues (1) +{ .annotate } + +1. If you have used Cake Issues with other we would like to hear from you. + You can add it to this list by creating a pull request [here](https://github.com/cake-contrib/Cake.Issues/tree/develop/docs/input/documentation/assets/tables/){target='_blank'}. + +## .NET + +{{ read_csv('assets/tables/supported-tools-dotnet.csv',keep_default_na=False) }} + +## Ansible + +{{ read_csv('assets/tables/supported-tools-ansible.csv',keep_default_na=False) }} + +## Amazon Cloud Formation Templates + +{{ read_csv('assets/tables/supported-tools-cfn.csv',keep_default_na=False) }} + +## Azure Resource Manager (ARM) + +{{ read_csv('assets/tables/supported-tools-arm.csv',keep_default_na=False) }} + +## Bicep + +{{ read_csv('assets/tables/supported-tools-bicep.csv',keep_default_na=False) }} + +## Clojure + +{{ read_csv('assets/tables/supported-tools-clojure.csv',keep_default_na=False) }} + +## CSS, SCSS, Sass + +{{ read_csv('assets/tables/supported-tools-css.csv',keep_default_na=False) }} + +## Dockerfile + +{{ read_csv('assets/tables/supported-tools-docker.csv',keep_default_na=False) }} + +## GitHub Actions + +{{ read_csv('assets/tables/supported-tools-github-actions.csv',keep_default_na=False) }} + +## Go + +{{ read_csv('assets/tables/supported-tools-go.csv',keep_default_na=False) }} + +## Groovy + +{{ read_csv('assets/tables/supported-tools-groovy.csv',keep_default_na=False) }} + +## Helm charts + +{{ read_csv('assets/tables/supported-tools-helm.csv',keep_default_na=False) }} + +## Java + +{{ read_csv('assets/tables/supported-tools-java.csv',keep_default_na=False) }} + +## JavaScript + +{{ read_csv('assets/tables/supported-tools-javascript.csv',keep_default_na=False) }} + +## JSON + +{{ read_csv('assets/tables/supported-tools-json.csv',keep_default_na=False) }} + +## JSX & TSX + +{{ read_csv('assets/tables/supported-tools-jsx.csv',keep_default_na=False) }} + +## Kotlin + +{{ read_csv('assets/tables/supported-tools-kotlin.csv',keep_default_na=False) }} + +## Kubernetes + +{{ read_csv('assets/tables/supported-tools-kubernetes.csv',keep_default_na=False) }} + +## Markdown + +{{ read_csv('assets/tables/supported-tools-markdown.csv',keep_default_na=False) }} + +## Natural language + +{{ read_csv('assets/tables/supported-tools-natural-language.csv',keep_default_na=False) }} + +## OpenAPI + +{{ read_csv('assets/tables/supported-tools-openapi.csv',keep_default_na=False) }} + +## PHP + +{{ read_csv('assets/tables/supported-tools-php.csv',keep_default_na=False) }} + +## Protobuf + +{{ read_csv('assets/tables/supported-tools-protobuf.csv',keep_default_na=False) }} + +## Python + +{{ read_csv('assets/tables/supported-tools-python.csv',keep_default_na=False) }} + +## Secrets + +{{ read_csv('assets/tables/supported-tools-secrets.csv',keep_default_na=False) }} + +## Terraform + +{{ read_csv('assets/tables/supported-tools-terraform.csv',keep_default_na=False) }} + +## TypeScript + +{{ read_csv('assets/tables/supported-tools-typescript.csv',keep_default_na=False) }} diff --git a/docs/input/documentation/usage/breaking-builds/breaking-builds.md b/docs/input/documentation/usage/breaking-builds/breaking-builds.md new file mode 100644 index 000000000..dc387c50b --- /dev/null +++ b/docs/input/documentation/usage/breaking-builds/breaking-builds.md @@ -0,0 +1,85 @@ +--- +title: Breaking builds +description: Usage instructions how to break builds. +--- + +The `Cake.Issues` addin can be used to break builds if specific issues were reported. + +To break builds you need to import the following core addin: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + ``` + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + ``` + +The following task will fail the build if any issues were added to the `issues` global variable: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + // Global issues list into which issues need to be added. + IEnumerable issues = null; + + Task("BreakBuildOnIssues") + .Description("Breaks build if any issues in the code are found.") + .Does(() => + { + BreakBuildOnIssues(issues); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Core; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .Run(args); + } + } + + public class BuildContext(ICakeContext context) : FrostingContext(context) + { + private readonly List _issues = []; + + public IEnumerable Issues { get { return _issues; } } + + public void AddIssues(IEnumerable issues) + { + _issues.AddRange(issues); + } + } + + [TaskName("BreakBuildOnIssues")] + public sealed class BreakBuildOnIssuesTask : FrostingTask + { + public override void Run(BuildContext context) + { + context.BreakBuildOnIssues(context.Issues); + } + } + ``` diff --git a/docs/input/documentation/usage/creating-issues/creating-issues.md b/docs/input/documentation/usage/creating-issues/creating-issues.md new file mode 100644 index 000000000..671d1c651 --- /dev/null +++ b/docs/input/documentation/usage/creating-issues/creating-issues.md @@ -0,0 +1,90 @@ +--- +title: Creating issues +description: Usage instructions how to create issues. +--- + +The `Cake.Issues` addin can be used to create issues directly in the build script. +This issues can for example be used to create reports. + +To create issues you need to import the following core addin: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + ``` + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + ``` + +In the following task a new warning for the myfile.txt file on line 42 is created: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-Issue").Does(() => + { + var issue = + NewIssue( + "Something went wrong", + "MyCakeScript", + "My Cake Script") + .WithMessageInHtmlFormat("Something went wrong") + .WithMessageInMarkdownFormat("Something went **wrong**") + .InFile("myfile.txt", 42) + .WithPriority(IssuePriority.Warning) + .Create(); + + Information("Issue created with message: {0}", issue.MessageText); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-Issue")] + public sealed class CreateIssueTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var issue = + context.NewIssue( + "Something went wrong", + "MyCakeScript", + "My Cake Script") + .WithMessageInHtmlFormat("Something went wrong") + .WithMessageInMarkdownFormat("Something went **wrong**") + .InFile("myfile.txt", 42) + .WithPriority(IssuePriority.Warning) + .Create(); + + context.Information("Issue created with message: {0}", issue.MessageText); + } + } + ``` diff --git a/docs/input/documentation/usage/creating-reports/creating-reports.md b/docs/input/documentation/usage/creating-reports/creating-reports.md new file mode 100644 index 000000000..59435d809 --- /dev/null +++ b/docs/input/documentation/usage/creating-reports/creating-reports.md @@ -0,0 +1,87 @@ +--- +title: Creating reports +description: Usage instructions how to create reports. +--- + +To create report for issues you need to import the corresponding report format. +In the following example the issue provider for reading warnings from MsBuild log files +and generic report format is imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.Reporting.Generic&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the report format the `Cake.Issues` and `Cake.Issues.Reporting` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` +Afterwards you can define a task where you call the reporting addin with the desired issue provider and report format: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Create-Report").Does(() => + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + CreateIssueReport( + MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + MsBuildBinaryLogFileFormat), + GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), + repoRootFolder, + @"c:\report.html"); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Create-Report")] + public sealed class CreateReportTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + context.CreateIssueReport( + context.MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + context.MsBuildBinaryLogFileFormat()), + context.GenericIssueReportFormatFromEmbeddedTemplate(GenericIssueReportTemplate.HtmlDiagnostic), + repoRootFolder, + @"c:\report.html"); + } + } + ``` diff --git a/docs/input/documentation/usage/creating-reports/index.md b/docs/input/documentation/usage/creating-reports/index.md new file mode 100644 index 000000000..22de03ec9 --- /dev/null +++ b/docs/input/documentation/usage/creating-reports/index.md @@ -0,0 +1,13 @@ +--- +title: Creating Reports +description: How to create reports using Cake.Issues.Reporting. +--- + +
    + +- :material-test-tube: [Create Reports](creating-reports.md) + +
    + +!!! tip + For more report format specific examples see [Report Format Examples](../../report-formats/index.md). diff --git a/docs/input/documentation/usage/index.md b/docs/input/documentation/usage/index.md new file mode 100644 index 000000000..a4381093c --- /dev/null +++ b/docs/input/documentation/usage/index.md @@ -0,0 +1,22 @@ +--- +title: Usage +description: How to obtain, configure, and use Cake.Issues. +--- + +## Ready To Use Distributions + +The easiest way to use Cake Issues is by using one of the [Recipe packages], +which provide build scripts, delivered as a NuGet package, +which can be used inside your projects Cake build to add issue management. + +## Consuming Of Individual Addins + +The addins can be added individually to any Cake build and allow advanced customizations: + +* [Creating Issues](creating-issues/creating-issues.md) +* [Reading Issues](reading-issues/index.md) +* [Creating Reports](creating-reports/index.md) +* [Reporting Issues To Pull Request And Build Systems](reporting-issues-to-pull-requests/index.md) +* [Breaking Builds](breaking-builds/breaking-builds.md) + +[Recipe packages]: recipe/index.md diff --git a/docs/input/documentation/usage/reading-issues/file-linking.md b/docs/input/documentation/usage/reading-issues/file-linking.md new file mode 100644 index 000000000..16b7514a0 --- /dev/null +++ b/docs/input/documentation/usage/reading-issues/file-linking.md @@ -0,0 +1,48 @@ +--- +title: File linking +description: Example how to define file link settings. +--- + +File link settings can be defined while reading issues and are passed through the `IIssue.FileLink` property to +reporting formats, pull request systems and build server implementations: + +=== "Cake .NET Tool" + + ```csharp + var settings = + new ReadIssuesSettings(@"c:\repo") + { + FileLinkSettings = + IssueFileLinkSettingsForGitHubCommit( + "https://github.com/cake-contrib/Cake.Issues", + "76a7cacef7ad4295a6766646d45c9b56") + }; + + var issues = + ReadIssues( + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + settings)); + ``` + +=== "Cake Frosting" + + ```csharp + var settings = + new ReadIssuesSettings(@"c:\repo") + { + FileLinkSettings = + IssueFileLinkSettingsForGitHubCommit( + "https://github.com/cake-contrib/Cake.Issues", + "76a7cacef7ad4295a6766646d45c9b56") + }; + + var issues = + context.ReadIssues( + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log"), + settings)); + ``` + +Cake.Issues comes with out-of-the-box support for linking to files hosted on GitHub and Azure Repos, +either for a specific branch or commit. Additionally there are aliases which can be used to define any custom pattern. diff --git a/docs/input/documentation/usage/reading-issues/index.md b/docs/input/documentation/usage/reading-issues/index.md new file mode 100644 index 000000000..747b17788 --- /dev/null +++ b/docs/input/documentation/usage/reading-issues/index.md @@ -0,0 +1,15 @@ +--- +title: Reading Issues +description: How to read issues using Cake.Issues. +--- + +
    + +- :material-test-tube: [Read Issues](reading-issues.md) +- :material-test-tube: [Pass Additional Run Information](run-information.md) +- :material-test-tube: [Configure File Links](file-linking.md) + +
    + +!!! tip + For more issue provider specific examples see [Issue Provider Examples](../../issue-providers/index.md). diff --git a/docs/input/documentation/usage/reading-issues/reading-issues.md b/docs/input/documentation/usage/reading-issues/reading-issues.md new file mode 100644 index 000000000..985938743 --- /dev/null +++ b/docs/input/documentation/usage/reading-issues/reading-issues.md @@ -0,0 +1,103 @@ +--- +title: Reading issues +description: Usage instructions how to read issues. +--- + +The `Cake.Issues` addin can be used to aggregate issues from different sources. +This can for example be useful to break builds based on the reported issues. + +To read issues you need to import at least one issue provider. +In the following example the issue providers for reading warnings from MsBuild log files +and from JetBrains InspectCode are imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.InspectCode&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the issue providers the `Cake.Issues` core addin needs to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +Afterwards you can define a task where you call the core addin with the desired issue providers. +The following example reads warnings and errors reported by MsBuild from a binary log +and issues reported by JetBrains InspectCode: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("Read-Issues").Does(() => + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + var issues = ReadIssues( + new List + { + MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + MsBuildBinaryLogFileFormat), + InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log") + }, + repoRootFolder); + + Information("{0} issues are found.", issues.Count()); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Common.Diagnostics; + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("Read-Issues")] + public sealed class ReadIssuesTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + var issues = context.ReadIssues( + new List + { + context.MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + context.MsBuildBinaryLogFileFormat()), + context.InspectCodeIssuesFromFilePath( + @"C:\build\inspectcode.log") + }, + repoRootFolder); + + context.Information("{0} issues are found.", issues.Count()); + } + } + ``` diff --git a/docs/input/documentation/usage/reading-issues/run-information.md b/docs/input/documentation/usage/reading-issues/run-information.md new file mode 100644 index 000000000..01f8397df --- /dev/null +++ b/docs/input/documentation/usage/reading-issues/run-information.md @@ -0,0 +1,76 @@ +--- +title: Additional run information +description: Example how to add run specific information. +--- + +If a build script needs to parse multiple log files from the same tool, e.g. because multiple MsBuild solutions were built, +this can be done by calling the issue provider multiple times. +If the results are read into the same list and shown on the same report, +individual issues could not be assigned to any of the calls, since issue provider type and name are identical. + +Starting with Cake.Issues 0.9.0 it is possible to pass additional run information while reading issues, +which then will be stored with each issues in the `IIssue.Run` property: + +=== "Cake .NET Tool" + + ```csharp + var issues = new List(); + + // Parse issues from build of solution 1 + issues.AddRange( + ReadIssues( + MsBuildIssuesFromFilePath( + @"C:\build\solution1-msbuild.log", + MsBuildBinaryLogFileFormat), + new ReadIssuesSettings(@"c:\repo") + { + Run = "Solution 1" + } + ) + ); + + // Parse issues from build of solution 2 + issues.AddRange( + ReadIssues( + MsBuildIssuesFromFilePath( + @"C:\build\solution2-msbuild.log", + MsBuildBinaryLogFileFormat), + new ReadIssuesSettings(@"c:\repo") + { + Run = "Solution 2" + } + ) + ); + ``` + +=== "Cake Frosting" + + ```csharp + var issues = new List(); + + // Parse issues from build of solution 1 + issues.AddRange( + context.ReadIssues( + context.MsBuildIssuesFromFilePath( + @"C:\build\solution1-msbuild.log", + context.MsBuildBinaryLogFileFormat()), + new ReadIssuesSettings(@"c:\repo") + { + Run = "Solution 1" + } + ) + ); + + // Parse issues from build of solution 2 + issues.AddRange( + context.ReadIssues( + context.MsBuildIssuesFromFilePath( + @"C:\build\solution2-msbuild.log", + context.MsBuildBinaryLogFileFormat()), + new ReadIssuesSettings(@"c:\repo") + { + Run = "Solution 2" + } + ) + ); + ``` diff --git a/docs/input/documentation/usage/recipe/index.md b/docs/input/documentation/usage/recipe/index.md new file mode 100644 index 000000000..c5e0876b4 --- /dev/null +++ b/docs/input/documentation/usage/recipe/index.md @@ -0,0 +1,33 @@ +--- +title: Recipe usage +description: How to obtain, configure, and use Cake Issues recipes. +--- + +Cake.Issues recipes provide build scripts, delivered as a NuGet package, which can be used inside your projects Cake build to add issue management. + +Integration of code analyzing and linting tools into a build pipeline often looks the similar, and differentiates mainly on the used linters, build and pull request systems. +Cake.Issues recipes contain code to do all the parsing, integration with build and pull request systems for you, using the individual Cake.Issues addins. +They support different linters based on the linting log files you pass it and integrate automatically with different build and pull request systems. + +There are two flavors available: + +
    + +- :material-receipt-text: [Cake.Issues.Recipe] + + --- + + For [Cake .NET Tool]{target="_blank"} + +- :material-receipt-text: [Cake.Frosting.Issues.Recipe] + + --- + + For [Cake Frosting]{target="_blank"} + +
    + +[Cake.Issues.Recipe]: using-cake-issues-recipe.md +[Cake.Frosting.Issues.Recipe]: using-cake-frosting-issues-recipe.md +[Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool +[Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting diff --git a/docs/input/documentation/usage/recipe/using-cake-frosting-issues-recipe.md b/docs/input/documentation/usage/recipe/using-cake-frosting-issues-recipe.md new file mode 100644 index 000000000..3f454f572 --- /dev/null +++ b/docs/input/documentation/usage/recipe/using-cake-frosting-issues-recipe.md @@ -0,0 +1,123 @@ +--- +title: Using Cake.Frosting.Issues.Recipe +description: Basic usage of Cake.Frosting.Issues.Recipe. +--- + +The [Cake.Frosting.Issues.Recipe] package can be used to easily add issue management functionality to your Cake Frosting build. + +!!! info + See [Setting Up A New Frosting Project] for instructions how to create a new Cake Frosting project. + +[Setting Up A New Frosting Project]: https://cakebuild.net/docs/getting-started/setting-up-a-new-frosting-project{target="_blank"} + +## Add Cake.Frosting.Issues.Recipe to your Cake Frosting build + +To use [Cake.Frosting.Issues.Recipe] in your Cake Frosting build you need to first add the NuGet package in your `.csproj` file: + +```csharp + +``` + +## Register Cake.Issues tasks + +To make Cake Issues tasks available to your Cake Frosting build you need to register them. + +Add the following line to the bootstrapping code in the `Main` method of your Cake Frosting project: + +```csharp +AddAssembly(Assembly.GetAssembly(typeof(IssuesTask))) +``` + +The following bootstrapping code registers the Cake Issues tasks and also installs JetBrains InspectCode: + +```csharp +using System; +using System.Reflection; +using Cake.Frosting; +using Cake.Frosting.Issues.Recipe; + +public static class Program +{ + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .InstallTool( + new Uri( + "nuget:?package=JetBrains.ReSharper.CommandLineTools&version={{ resharper_commandlinetool_version }}")) + .AddAssembly(Assembly.GetAssembly(typeof(IssuesTask))) + .Run(args); + } +} +``` + +## Create build context + +[Cake.Frosting.Issues.Recipe] provides a build context from which you need to inherit your custom build context. +The build context contains configuration parameters, but also the state of the current running build, +like for example all collected issues. + +The following example creates a build context and defines that Cake Issues should use Cake.Git addin to determine +state of the Git repository: + +```csharp +public class BuildContext : IssuesContext +{ + public BuildContext(ICakeContext context) + : base(context, RepositoryInfoProviderType.CakeGit) + { + } +} +``` + +## Passing issues to Cake.Frosting.Issues.Recipe + +To make issues available to [Cake.Frosting.Issues.Recipe] you need pass the log files through the corresponding methods. +The tasks need to also be a dependency of `ReadIssuesTask` provided by [Cake.Frosting.Issues.Recipe]. + +In the following example a new task is introduced which runs JetBrains InspectCode and passes the log file to [Cake.Frosting.Issues.Recipe]: + +```csharp +[TaskName("Run-InspectCode")] +[IsDependeeOf(typeof(ReadIssuesTask))] +public class RunInspectCodeTask : FrostingTask +{ + public override void Run(BuildContext context) + { + var inspectCodeLogFilePath = context.Parameters.OutputDirectory..CombineWithFilePath("inspectCode.log"); + + // Run JetBrains InspectCode + context.InspectCode( + context.State.RepositoryRootDirectory.Combine("src").CombineWithFilePath("ClassLibrary1.sln"), + new InspectCodeSettings() { + OutputFile = context.InspectCodeLogFilePath + }); + + // Pass path to InspectCode log file to Cake.Frosting.Issues.Recipe + context.Parameters.InputFiles.AddInspectCodeLogFilePath(context.InspectCodeLogFilePath); + } +} +``` + +See [configuration] for a full list of available configuration parameters. + +## Calling issues tasks + +[Cake.Frosting.Issues.Recipe] will add a bunch of [tasks] to your build script. + +To add the issues functionality into your existing build pipeline you need to add +`ReadIssuesTask` to your pipeline. + + In the following example the `Default` task makes sure the main `IssuesTask` is executed: + +```csharp +[TaskName("Default")] +[IsDependentOn(typeof(IssuesTask))] +public class DefaultTask : FrostingTask +{ +} +``` + +[Cake.Frosting.Issues.Recipe]: ../../recipe/index.md +[configuration]: ../../recipe/configuration.md +[tasks]: ../../recipe/tasks.md \ No newline at end of file diff --git a/docs/input/documentation/usage/recipe/using-cake-issues-recipe.md b/docs/input/documentation/usage/recipe/using-cake-issues-recipe.md new file mode 100644 index 000000000..31db2db1c --- /dev/null +++ b/docs/input/documentation/usage/recipe/using-cake-issues-recipe.md @@ -0,0 +1,61 @@ +--- +title: Using Cake.Issues.Recipe +description: Basic usage of Cake.Issues.Recipe. +--- + +The [Cake.Issues.Recipe] package can be used to easily add issue management functionality to your build script. + +## Add Cake.Issues.Recipe to your build script + +To use Cake.Issues.Recipe in your build script you need to first load the NuGet package: + +```csharp +#load nuget:package=Cake.Issues.Recipe&version={{ cake_issues_version }} +``` + +## Configuring Cake.Issues.Recipe + +To make issues available to Cake.Issues.Recipe you need to set the corresponding configuration parameters. + +In the following example a new task is introduced which depends on existing tasks which build a MsBuild solution and run JetBrains InspectCode. +It will pass the MsBuild and InspectCode logfile to Cake.Issues.Recipe: + +```csharp +// Run issues task by default. +Task("Configure-CakeIssuesRecipe") + .IsDependentOn("Build") + .IsDependentOn("Run-InspectCode") + .Does(() => +{ + IssuesParameters.InputFiles.AddMsBuildBinaryLogFilePath(msBuildLogFilePath); + IssuesParameters.InputFiles.AddInspectCodeLogFilePath(inspectCodeLogFilePath); +} +``` + +See [configuration] for a full list of available configuration parameters. + +## Calling issues tasks + +Cake.Issues.Recipe will add a bunch of [tasks] to your build script. + +To add the issues functionality into your existing build pipeline you can make +the `Read-Issues` task dependent on the task which configures Cake.Issues.Recipe: + +```csharp +// Make sure build and linters run before issues task. +IssuesBuildTasks.ReadIssuesTask + .IsDependentOn("Configure-CakeIssuesRecipe"); +``` + +At some point you need to call the tasks provided by Cake.Isses.Recipe. +In the following example the `Default` task calls the main `Issues` task: + +```csharp +// Run issues task by default. +Task("Default") + .IsDependentOn("Issues"); +``` + +[Cake.Issues.Recipe]: ../../recipe/index.md +[configuration]: ../../recipe/configuration.md +[tasks]: ../../recipe/tasks.md \ No newline at end of file diff --git a/docs/input/documentation/usage/reporting-issues-to-pull-requests/custom-issue-filter.md b/docs/input/documentation/usage/reporting-issues-to-pull-requests/custom-issue-filter.md new file mode 100644 index 000000000..b7e57be55 --- /dev/null +++ b/docs/input/documentation/usage/reporting-issues-to-pull-requests/custom-issue-filter.md @@ -0,0 +1,101 @@ +--- +title: Custom issue filter +description: Usage instructions how to apply custom filters to issues. +--- + +You can define custom filters which are applied to issues before they are posted as comments to pull requests. + +??? tip "Tip: Filter to issues introduced with pull request" + You can use a custom filter to only have issues introduced with the current code posted to the pull request. + + For this you need to store your log files as artifacts on your build system, then you can define a custom filter + which retrieves the logs from the previous build, parses them using the appropriate issue provider and filters + out any issues which were already existing in the previous build. + +The following example will filter out all issues from the rule `CA1000` from being posted to the pull request. + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AzureDevOps&version={{ cake_issues_version }} + + Task("ReportIssuesToPullRequest").Does(() => + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + + var settings = new ReportIssuesToPullRequestFromIssueProviderSettings(repoRootFolder); + + // Add custom filter. + settings.IssueFilters.Add(x => x.Where(issue => issue.RuleId != "CA1000")); + + ReportIssuesToPullRequest( + new List + { + MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + MsBuildBinaryLogFileFormat) + }, + AzureDevOpsPullRequests(), + settings); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + + ```csharp title="Program.cs" + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("ReportIssuesToPullRequest")] + public sealed class ReportIssuesToPullRequestTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + + var settings = new ReportIssuesToPullRequestFromIssueProviderSettings(repoRootFolder); + + // Add custom filter. + settings.IssueFilters.Add(x => x.Where(issue => issue.RuleId != "CA1000")); + + context.ReportIssuesToPullRequest( + new List + { + context.MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + context.MsBuildBinaryLogFileFormat()) + }, + context.AzureDevOpsPullRequests(), + settings); + } + } + ``` + diff --git a/docs/input/documentation/usage/reporting-issues-to-pull-requests/index.md b/docs/input/documentation/usage/reporting-issues-to-pull-requests/index.md new file mode 100644 index 000000000..0045a459c --- /dev/null +++ b/docs/input/documentation/usage/reporting-issues-to-pull-requests/index.md @@ -0,0 +1,14 @@ +--- +title: Reporting Issues To Pull Requests +description: How to report issues to pull requests using Cake.Issues.PullRequests. +--- + +
    + +- :material-test-tube: [Report Issues To Pull Requests](report-issues-to-pull-requests.md) +- :material-test-tube: [Apply Custom Issue Filter](custom-issue-filter.md) + +
    + +!!! tip + For more pull request system specific examples see [Pull Request System Examples](../../pull-request-systems/index.md) diff --git a/docs/input/documentation/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md b/docs/input/documentation/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md new file mode 100644 index 000000000..bc95c9a0e --- /dev/null +++ b/docs/input/documentation/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md @@ -0,0 +1,87 @@ +--- +title: Report issues to pull requests +description: Usage instructions how to report issues to pull requests. +--- + +To use report issues to pull requests you need to import the corresponding pull request system addin. +In the following example the issue provider for reading warnings from MsBuild log files +and support for Azure DevOps pull requests is imported: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + #addin nuget:?package=Cake.Issues&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.MsBuild&version={{ cake_issues_version }} + #addin nuget:?package=Cake.Issues.PullRequests.AzureDevOps&version={{ cake_issues_version }} + ``` + + !!! note + In addition to the pull request system the `Cake.Issues` and `Cake.Issues.PullRequests` core addins need to be added. + +=== "Cake Frosting" + + ```csharp title="Build.csproj" + + + Exe + {{ example_tfm }} + $(MSBuildProjectDirectory) + enable + + + + + + + + ``` + +Afterwards you can define a task where you call the core addin with the desired issue provider and pull request system: + +=== "Cake .NET Tool" + + ```csharp title="build.cake" + Task("ReportIssuesToPullRequest").Does(() => + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + ReportIssuesToPullRequest( + MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + MsBuildBinaryLogFileFormat), + AzureDevOpsPullRequests(), + repoRootFolder); + }); + ``` + +=== "Cake Frosting" + + ```csharp title="Program.cs" + using Cake.Core.IO; + using Cake.Frosting; + + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .Run(args); + } + } + + [TaskName("ReportIssuesToPullRequest")] + public sealed class ReportIssuesToPullRequestTask : FrostingTask + { + public override void Run(FrostingContext context) + { + var repoRootFolder = new DirectoryPath(@"C:\repo"); + context.ReportIssuesToPullRequest( + context.MsBuildIssuesFromFilePath( + @"C:\build\msbuild.log", + context.MsBuildBinaryLogFileFormat()), + context.AzureDevOpsPullRequests(), + repoRootFolder); + } + } + ``` + diff --git a/docs/input/dsl/index.cshtml b/docs/input/dsl/index.cshtml deleted file mode 100644 index 484704f4a..000000000 --- a/docs/input/dsl/index.cshtml +++ /dev/null @@ -1,74 +0,0 @@ ---- -Title: Reference -NoSidebar: true ---- -

    - This reference guide describes the various methods and properties which you can use directly from inside a Cake build script. - These are implemented as script aliases. -

    - -

    - Click on any alias to get detailed information about parameters and examples how to use the alias. -

    - -@{ - // We should only have one alias here - var aliasGroups = - Documents["DslAliases"] - .Single() - .DocumentList(Keys.GroupDocuments) - .SelectMany(x => x.DocumentList(CodeAnalysisKeys.Members)) - .Where(x => x.String("Kind") == "Method") - .Select(x => new - { - Doc = x, - MethodAlias = x.DocumentList(CodeAnalysisKeys.Attributes).Any(attr => attr.String(CodeAnalysisKeys.Name) == "CakeMethodAliasAttribute"), - PropertyAlias = x.DocumentList(CodeAnalysisKeys.Attributes).Any(attr => attr.String(CodeAnalysisKeys.Name) == "CakePropertyAliasAttribute") - }) - .Where(x => x.MethodAlias || x.PropertyAlias) - .GroupBy(x => x.Doc.DocumentList(CodeAnalysisKeys.Attributes) - .Where(attr => attr.String(CodeAnalysisKeys.Name) == "CakeAliasCategoryAttribute") - .Select(attr => attr.Get(CodeAnalysisKeys.AttributeData).ConstructorArguments.FirstOrDefault().Value) - .FirstOrDefault() as string ?? string.Empty) - .OrderBy(x => x.Key); -} - -@foreach(var aliasGroup in aliasGroups) -{ - string groupName = string.IsNullOrEmpty(aliasGroup.Key) ? "General" : aliasGroup.Key; -

    @groupName

    -
    -
    - - @foreach(var alias in aliasGroup.OrderBy(x => x.Doc.String(CodeAnalysisKeys.DisplayName))) - { - - - - - } -
    - @if(alias.MethodAlias) - { - @Context.GetTypeLink(alias.Doc) - } - else - { - @Context.GetTypeLink(alias.Doc, alias.Doc.String("Name")) - } - - @Html.Raw(alias.Doc.String(CodeAnalysisKeys.Summary)) - @{ - IDocument assemblyDoc = alias.Doc.Document(CodeAnalysisKeys.ContainingAssembly); - if(assemblyDoc != null) - { - -
    - Addin from @Context.GetTypeLink(assemblyDoc) -
    - } - } -
    -
    -
    -} \ No newline at end of file diff --git a/docs/input/index.cshtml b/docs/input/index.cshtml deleted file mode 100644 index d7995c017..000000000 --- a/docs/input/index.cshtml +++ /dev/null @@ -1,82 +0,0 @@ ---- -Title: Cake Issues -NoSidebar: true -NoContainer: true -NoGutter: true ---- - -
    -
    -

    Cake Issues

    -

    - Issue Management for the Cake Build System
    -

    - Learn more - Addins - Aliases -
    -
    - -
    -
    -
    - -

    Open-Source

    -

    - Cake Issues is free to use, improve, contribute and distribute. - Source code is available on GitHub under MIT license. -

    -
    -
    - -

    Rich ecosystem

    -

    - Unlike other Cake addins, Cake Issues consists of over 15 different addins, - working together and providing you with over 75 aliases which you can use in your Cake - build scripts to work with issues. -

    -
    -
    - -

    Supports your tooling

    -

    - Read issues from different analyzers, linters or tools. - The growing range of out-of-the-box supported tools include - MSBuild, - JetBrains InspectCode (ReSharper), - ESLint, - Markdownlint, - DocFX. -

    -
    -
    -
    -
    - -

    Reporting

    -

    - Cake Issues provides aliases to create reports from the parsed issues. - There's a generic reporting addin which allows to create reports using out-of-the-box or custom Razor templates - and an addin for creating SARIF compatible files. -

    -
    -
    - -

    Pull request and build workflow integration

    -

    - Issues found on a feature branch can be reported to pull requests or build runs giving developers instant and direct feedback. - There's out of the box support for Azure DevOps, - GitHub Actions and - AppVeyor. -

    -
    -
    - -

    Extensible

    -

    - The addins are built in a modular architecture and are providing different extension points - which allow you to easily enhance it for supporting additional analyzers, linters, report formats and pull request systems. -

    -
    -
    -
    \ No newline at end of file diff --git a/docs/input/index.md b/docs/input/index.md new file mode 100644 index 000000000..252134c36 --- /dev/null +++ b/docs/input/index.md @@ -0,0 +1,75 @@ +--- +hide: + - navigation + - toc +template: home.html +search: + exclude: true +title: Home +--- + +Extensive and flexible solution for processing output of linters and other tools using [Cake build system](https://cakebuild.net){target="_blank"}. + +## Why use Cake Issues? + +
    + +- :material-globe-model:{ .lg .middle } __Rich ecosystem__ + + --- + + Unlike other Cake addins, Cake Issues consists of over 15 different addins, + working together and providing you with over 75 aliases which you can use in your Cake + build scripts to work with issues. + + [:octicons-arrow-right-24: Reference](https://cakebuild.net/extensions/cake-issues/){target="_blank"} + +- :material-wrench:{ .lg .middle } __Supports your tooling__ + + --- + + Read issues from different analyzers, linters or tools. + The growing range of out-of-the-box supported tools include support for + .NET, Java, TypeScript, Infrastructure As Code or security tools. + + [:octicons-arrow-right-24: Supported Tools](documentation/supported-tools.md) + +- :material-eye:{ .lg .middle } __Pull request and build workflow integration__ + + --- + + Issues found on a feature branch can be reported to pull requests or build runs giving developers instant and direct feedback. + There's out of the box support for [Azure DevOps](documentation/pull-request-systems/azure-devops/index.md), + [GitHub Actions](documentation/pull-request-systems/github-actions/index.md) and + [AppVeyor](documentation/pull-request-systems/appveyor/index.md). + + [:octicons-arrow-right-24: Pull Request Systems](documentation/pull-request-systems/index.md) + +- :material-monitor-dashboard:{ .lg .middle } __Reporting__ + + --- + + Cake Issues provides aliases to create reports from the parsed issues. + There are addins to create feature rich HTML reports, SARIF standard compatible reports or to report issues to the console. + + [:octicons-arrow-right-24: Report Formats](documentation/report-formats/index.md) + +- :material-table:{ .lg .middle } __Extensible__ + + --- + + The addins are built in a modular architecture and are providing different extension points which allow you + to easily enhance it for supporting additional analyzers, linters, report formats and pull request systems. + + [:octicons-arrow-right-24: Documentation](documentation/extending/index.md) + +- :material-scale-balance:{ .lg .middle } __Open-Source__ + + --- + + Cake Issues is free to use, improve, contribute and distribute. + Source code is available on [GitHub](https://github.com/cake-contrib/Cake.Issues){target="_blank"} under MIT license. + + [:octicons-arrow-right-24: Source code & license](https://github.com/cake-contrib/Cake.Issues){target="_blank"} + +
    diff --git a/docs/input/news/2020-09-27-github-actions-addin.md b/docs/input/news/2020-09-27-github-actions-addin.md deleted file mode 100644 index 3efe52714..000000000 --- a/docs/input/news/2020-09-27-github-actions-addin.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: New GitHub Actions addin -category: Release Notes ---- - -A new [Cake.Issues.PullRequest.GitHubActions addin] has been released which brings integration with GitHub Actions and GitHub pull requests. - - - -[Cake.Issues.PullRequest.GitHubActions addin] creates annotations from issues when running on GitHub Actions: - -![Annotations](../docs/pull-request-systems/github-actions/githubactions-annotations.png "Annotations") - -These annotations will also be shown in pull requests on the related file / position, -bringing first class integration for GitHub pull requests to Cake.Issues: - -![Pull request integration](../docs/pull-request-systems/github-actions/githubactions-pullrequest-integration.png "Pull request integration") - -This integration was [first released in Cake.Issues.Recipe 0.4.2] and has now been moved to its own addin, which can also be used outside of -Cake.Issues.Recipe. - -[Cake.Issues.PullRequest.GitHubActions addin]: ../docs/pull-request-systems/github-actions/ -[first released in Cake.Issues.Recipe 0.4.2]: cake-issues-recipe-v0.4.2-released diff --git a/docs/input/news/index.md b/docs/input/news/index.md new file mode 100644 index 000000000..0e6302856 --- /dev/null +++ b/docs/input/news/index.md @@ -0,0 +1,2 @@ +# News + diff --git a/docs/input/news/2020-08-22-cake-issues-v0.9.0-released.md b/docs/input/news/posts/2020-08-22-cake-issues-v0.9.0-released.md similarity index 81% rename from docs/input/news/2020-08-22-cake-issues-v0.9.0-released.md rename to docs/input/news/posts/2020-08-22-cake-issues-v0.9.0-released.md index 086df590d..7cc72f457 100644 --- a/docs/input/news/2020-08-22-cake-issues-v0.9.0-released.md +++ b/docs/input/news/posts/2020-08-22-cake-issues-v0.9.0-released.md @@ -1,11 +1,15 @@ --- title: Cake Issues v0.9.0 Released -category: Release Notes +date: 2020-08-22 +categories: + - Release Notes +search: + boost: 0.5 --- Cake Issues version 0.9.0 has been released. This is a major release bringing a lot of new features across all addins. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -14,15 +18,15 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [AdmiringWorm](https://github.com/AdmiringWorm) -* [christianbumann](https://github.com/christianbumann) -* [eoehen](https://github.com/eoehen) -* [gep13](https://github.com/gep13) -* [janniksam](https://github.com/janniksam) -* [mholo65](https://github.com/mholo65) -* [pascalberger](https://github.com/pascalberger) -* [Speeedy01](https://github.com/Speeedy01) -* [jokay](https://github.com/jokay) +* [AdmiringWorm](https://github.com/AdmiringWorm){target="_blank"} +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [gep13](https://github.com/gep13){target="_blank"} +* [janniksam](https://github.com/janniksam){target="_blank"} +* [mholo65](https://github.com/mholo65){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [Speeedy01](https://github.com/Speeedy01){target="_blank"} +* [jokay](https://github.com/jokay){target="_blank"} ## Full cross-platform support @@ -31,10 +35,11 @@ While in previous versions most parts of Cake Issues was already targeting .NET .NET Core. With this release `Cake.Issues.Reporting.Generic` was ported to also run on .NET Core. -The migration was done by [gep13](https://github.com/gep13) on his [Twitch stream](https://www.twitch.tv/gep13) and you -can watch work done in [Stream 90 - Working on Cake.Issues.Recipe](https://www.youtube.com/watch?v=7roa5Q6KcrQ), -[Stream 91 - Working on Cake.Issues.Reporting.Generic and Gazorator](https://www.youtube.com/watch?v=ocacOz3CxME) and -[Stream 92 - Working on Cake.Issues.Reporting.Generic and Gazorator - Part 2](https://www.youtube.com/watch?v=P0IpkL9gUAE). +The migration was done by [gep13](https://github.com/gep13){target="_blank"} on his +[Twitch stream](https://www.twitch.tv/gep13){target="_blank"} and you +can watch work done in [Stream 90 - Working on Cake.Issues.Recipe](https://www.youtube.com/watch?v=7roa5Q6KcrQ){target="_blank"}, +[Stream 91 - Working on Cake.Issues.Reporting.Generic and Gazorator](https://www.youtube.com/watch?v=ocacOz3CxME){target="_blank"} and +[Stream 92 - Working on Cake.Issues.Reporting.Generic and Gazorator - Part 2](https://www.youtube.com/watch?v=P0IpkL9gUAE){target="_blank"}. ## Enhanced issue information @@ -137,7 +142,7 @@ across all runs. [Cake.Issues.Recipe], the Cake Recipe script which you can integrate into your build script for easy integration of full feature issue management, has been updated to version 0.4.0, bringing all the new features of Cake.Issues 0.9.0. -[Cake.Issues.Recipe]: ../docs/recipe/overview +[Cake.Issues.Recipe]: ../../documentation/recipe/index.md ## Updating from previous versions @@ -149,7 +154,7 @@ This section documents the most common changes which might be required: Older version are still supported for deserialization. * Cake.Issues.Markdownlint * `MarkdownlintLogFileFormat` alias has been renamed to `MarkdownlintV1LogFileFormat` - ([#116](https://github.com/cake-contrib/Cake.Issues.Markdownlint/issues/116)). + ([#116](https://github.com/cake-contrib/Cake.Issues.Markdownlint/issues/116){target="_blank"}). * Cake.Issues.PullRequest * `ReportIssuesToPullRequest` alias which accepts an issue provider, or a list of issue providers, and settings requires now settings of type `IReportIssuesToPullRequestFromIssueProviderSettings` instead of `ReportIssuesToPullRequestSettings` to @@ -165,30 +170,30 @@ This section documents the most common changes which might be required: * `HtmlDxDataGridOption.FileLinkSettings` has been removed. File link settings can now be defined while reading the issues. For details see [File linking]. - ([#265](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/issues/265)). + ([#265](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/issues/265){target="_blank"}). * `HtmlDxDataGridOption.JSZipLocation` has been split into `HtmlDxDataGridOption.JsZipLocation` and `HtmlDxDataGridOption.JsZipVersion` - ([#320](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/issues/320)). + ([#320](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/issues/320){target="_blank"}). * Cake.Issues.Recipe * Cake.Issues.Recipe requires at least Cake 0.38.0 For details see release notes of the individual addins: -* [Cake.Issues 0.9.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/0.9.0) -* [Cake.Issues.MsBuild 0.9.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/0.9.0) -* [Cake.Issues.InspectCode 0.9.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/0.9.0) -* [Cake.Issues.DupFinder 0.9.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/0.9.0) -* [Cake.Issues.GitRepository 0.9.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/0.9.0) -* [Cake.Issues.Markdownlint 0.9.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/0.9.0) -* [Cake.Issues.EsLint 0.9.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/0.9.0) -* [Cake.Issues.DocFx 0.9.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/0.9.0) -* [Cake.Issues.PullRequests 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests/releases/tag/0.9.0) -* [Cake.Issues.PullRequests.AzureDevOps 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/0.9.0) -* [Cake.Issues.PullRequests.AppVeyor 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/0.9.0) -* [Cake.Issues.Reporting 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting/releases/tag/0.9.0) -* [Cake.Issues.Reporting.Generic 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/0.9.0) -* [Cake.Issues.Reporting.Sarif 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/0.9.0) -* [Cake.Issues.Recipe 0.4.0](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/0.4.0) +* [Cake.Issues 0.9.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.MsBuild 0.9.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.InspectCode 0.9.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.DupFinder 0.9.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.GitRepository 0.9.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.Markdownlint 0.9.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.EsLint 0.9.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.DocFx 0.9.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.PullRequests 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.PullRequests.AzureDevOps 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.PullRequests.AppVeyor 0.9.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.Reporting 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.Reporting.Generic 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.Reporting.Sarif 0.9.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/0.9.0){target="_blank"} +* [Cake.Issues.Recipe 0.4.0](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/0.4.0){target="_blank"} [File linking]: #file-linking [Support for passing additional run information]: #support-for-passing-additional-run-information diff --git a/docs/input/news/2020-09-19-cake-issues-v0.9.1-released.md b/docs/input/news/posts/2020-09-19-cake-issues-v0.9.1-released.md similarity index 81% rename from docs/input/news/2020-09-19-cake-issues-v0.9.1-released.md rename to docs/input/news/posts/2020-09-19-cake-issues-v0.9.1-released.md index f1c3a2458..90d050367 100644 --- a/docs/input/news/2020-09-19-cake-issues-v0.9.1-released.md +++ b/docs/input/news/posts/2020-09-19-cake-issues-v0.9.1-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues v0.9.1 Released -category: Release Notes +date: 2020-09-19 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.9.1 of Cake Issues and Cake.Issues.PullRequests.AzureDevOps have been released. These are minor releases containing improvements and bug fixes. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,10 +19,10 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [christianbumann](https://github.com/christianbumann) -* [janniksam](https://github.com/janniksam) -* [pascalberger](https://github.com/pascalberger) -* [jokay](https://github.com/jokay) +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [janniksam](https://github.com/janniksam){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [jokay](https://github.com/jokay){target="_blank"} ## Easier file linking for manually created issues @@ -31,7 +35,7 @@ it become much more complicated for issues created using the `NewIssue` alias, w Cake.Issues 0.9.1 adds an `WithFileLinkSettings` method to `IIssueBuilder` where a file link setting object can be passed which does resolve the URL. -[file link infrastructure was moved to Cake.Issues]: cake-issues-v0.9.0-released#file-linking +[file link infrastructure was moved to Cake.Issues]: 2020-08-22-cake-issues-v0.9.0-released.md#file-linking ## Line range and column support in Azure DevOps pull request integration diff --git a/docs/input/news/2020-09-24-annotations.png b/docs/input/news/posts/2020-09-24-annotations.png similarity index 100% rename from docs/input/news/2020-09-24-annotations.png rename to docs/input/news/posts/2020-09-24-annotations.png diff --git a/docs/input/news/2020-09-24-cake-issues-recipe-v0.4.2-released.md b/docs/input/news/posts/2020-09-24-cake-issues-recipe-v0.4.2-released.md similarity index 75% rename from docs/input/news/2020-09-24-cake-issues-recipe-v0.4.2-released.md rename to docs/input/news/posts/2020-09-24-cake-issues-recipe-v0.4.2-released.md index 53a1730ba..3958a4f08 100644 --- a/docs/input/news/2020-09-24-cake-issues-recipe-v0.4.2-released.md +++ b/docs/input/news/posts/2020-09-24-cake-issues-recipe-v0.4.2-released.md @@ -1,11 +1,15 @@ --- title: Cake Issues Recipe v0.4.2 released, bringing support for GitHub Actions -category: Release Notes +date: 2020-09-24 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.4.2 of Cake Issues Recipe has been released bringing support for GitHub Actions. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -14,8 +18,8 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [admiringworm](https://github.com/admiringworm) -* [pascalberger](https://github.com/pascalberger) +* [admiringworm](https://github.com/admiringworm){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Support for GitHub Actions @@ -34,10 +38,9 @@ Having issues available as annotations also means that they will be shown in pul It's planned to support remaining features like providing full issue report as artifact in a future release. -:::{.alert .alert-info} -Support for GitHub Actions integration is currently only available in Cake.Issues.Recipe, but not as a standalone addin. -It's planned to additionally provide a standalone addin which can be used outside of Cake.Issues.Recipe in the future. -::: +!!! info + Support for GitHub Actions integration is currently only available in Cake.Issues.Recipe, but not as a standalone addin. + It's planned to additionally provide a standalone addin which can be used outside of Cake.Issues.Recipe in the future. ## Updating from previous versions diff --git a/docs/input/news/2020-09-24-log-output.png b/docs/input/news/posts/2020-09-24-log-output.png similarity index 100% rename from docs/input/news/2020-09-24-log-output.png rename to docs/input/news/posts/2020-09-24-log-output.png diff --git a/docs/input/news/2020-09-24-pullrequest-integration.png b/docs/input/news/posts/2020-09-24-pullrequest-integration.png similarity index 100% rename from docs/input/news/2020-09-24-pullrequest-integration.png rename to docs/input/news/posts/2020-09-24-pullrequest-integration.png diff --git a/docs/input/news/posts/2020-09-27-github-actions-addin.md b/docs/input/news/posts/2020-09-27-github-actions-addin.md new file mode 100644 index 000000000..63a7c475d --- /dev/null +++ b/docs/input/news/posts/2020-09-27-github-actions-addin.md @@ -0,0 +1,27 @@ +--- +title: New GitHub Actions addin +date: 2020-09-27 +categories: + - New Addin +search: + boost: 0.5 +--- + +A new [Cake.Issues.PullRequest.GitHubActions addin] has been released which brings integration with GitHub Actions and GitHub pull requests. + + + +[Cake.Issues.PullRequest.GitHubActions addin] creates annotations from issues when running on GitHub Actions: + +![Annotations](../../documentation/pull-request-systems/github-actions/githubactions-annotations.png "Annotations") + +These annotations will also be shown in pull requests on the related file / position, +bringing first class integration for GitHub pull requests to Cake.Issues: + +![Pull request integration](../../documentation/pull-request-systems/github-actions/githubactions-pullrequest-integration.png "Pull request integration") + +This integration was [first released in Cake.Issues.Recipe 0.4.2]{target="_blank"} and has now been moved to its own addin, which can also be used outside of +Cake.Issues.Recipe. + +[Cake.Issues.PullRequest.GitHubActions addin]: ../../documentation/pull-request-systems/github-actions/index.md +[first released in Cake.Issues.Recipe 0.4.2]: 2020-09-24-cake-issues-recipe-v0.4.2-released.md diff --git a/docs/input/news/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md b/docs/input/news/posts/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md similarity index 76% rename from docs/input/news/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md rename to docs/input/news/posts/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md index b28c70819..ca4b0b6fb 100644 --- a/docs/input/news/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md +++ b/docs/input/news/posts/2020-10-09-cake-issues-pullrequests-v0.9.1-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues PullRequests v0.9.1 Released -category: Release Notes +date: 2020-10-09 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.9.1 of Cake.Issues.PullRequests has been released. This is a minor releases containing bug fixes. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,9 +19,9 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [janniksam](https://github.com/janniksam) -* [pascalberger](https://github.com/pascalberger) -* [phlorian](https://github.com/phlorian) +* [janniksam](https://github.com/janniksam){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [phlorian](https://github.com/phlorian){target="_blank"} ## Don't post issues if a provider limit is set to 0 diff --git a/docs/input/news/2020-10-20-cake-issues-msbuild-v0.9.1-released.md b/docs/input/news/posts/2020-10-20-cake-issues-msbuild-v0.9.1-released.md similarity index 68% rename from docs/input/news/2020-10-20-cake-issues-msbuild-v0.9.1-released.md rename to docs/input/news/posts/2020-10-20-cake-issues-msbuild-v0.9.1-released.md index 051b2c9c6..cd92da9c9 100644 --- a/docs/input/news/2020-10-20-cake-issues-msbuild-v0.9.1-released.md +++ b/docs/input/news/posts/2020-10-20-cake-issues-msbuild-v0.9.1-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues MsBuild v0.9.1 Released -category: Release Notes +date: 2020-10-20 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.9.1 of MsBuild support for Cake.Issues has been released. This is a minor release containing improvements. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,10 +19,10 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [cho-trackman](https://github.com/cho-trackman) -* [eoehen](https://github.com/eoehen) -* [pascalberger](https://github.com/pascalberger) -* [jokay](https://github.com/jokay) +* [cho-trackman](https://github.com/cho-trackman){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [jokay](https://github.com/jokay){target="_blank"} ## Support for reading of errors @@ -27,9 +31,8 @@ Starting with version 0.9.1 it will also return errors. Reading of errors has been implemented for `MsBuildBinaryLogFileFormat` and `MsBuildXmlFileLoggerFormat`. For errors `IIssue.Priority` will be set to `IssuePriority.Error`. -:::{.alert .alert-info} -To keep previous behavior result after reading the issues can be filtered for `IIssue.Priority == IIssuePriority.Warning`. -::: +!!! info + To keep previous behavior result after reading the issues can be filtered for `IIssue.Priority == IIssuePriority.Warning`. ## Updating from previous versions diff --git a/docs/input/news/2020-12-01-cake-issues-recipe-v0.4.4-released.md b/docs/input/news/posts/2020-12-01-cake-issues-recipe-v0.4.4-released.md similarity index 71% rename from docs/input/news/2020-12-01-cake-issues-recipe-v0.4.4-released.md rename to docs/input/news/posts/2020-12-01-cake-issues-recipe-v0.4.4-released.md index c85db7238..76c1fd9ce 100644 --- a/docs/input/news/2020-12-01-cake-issues-recipe-v0.4.4-released.md +++ b/docs/input/news/posts/2020-12-01-cake-issues-recipe-v0.4.4-released.md @@ -1,26 +1,30 @@ --- title: Cake Issues Recipe v0.4.4 released, bringing support for ESLint -category: Release Notes +date: 2020-12-01 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.4.4 of Cake Issues Recipe has been released bringing support for ESLint. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). -For details see [full release notes](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/0.4.4). +For details see [full release notes](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/0.4.4){target="_blank"}. ❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Support for ESLint -This version of Cake.Issues.Recipe brings support for issues reported by [ESLint](https://eslint.org/). -Currently supported are files generated using the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json) +This version of Cake.Issues.Recipe brings support for issues reported by [ESLint](https://eslint.org/){target="_blank"}. +Currently supported are files generated using the [ESLint json formatter](https://eslint.org/docs/user-guide/formatters/#json){target="_blank"} ## Updating from previous versions diff --git a/docs/input/news/2021-07-27-terraform-addin.md b/docs/input/news/posts/2021-07-27-terraform-addin.md similarity index 73% rename from docs/input/news/2021-07-27-terraform-addin.md rename to docs/input/news/posts/2021-07-27-terraform-addin.md index 114329390..37aa62300 100644 --- a/docs/input/news/2021-07-27-terraform-addin.md +++ b/docs/input/news/posts/2021-07-27-terraform-addin.md @@ -1,11 +1,15 @@ --- title: New addin for Terraform support -category: Release Notes +date: 2021-07-27 +categories: + - New Addin +search: + boost: 0.5 --- -A new [Cake.Issues.Terraform addin] has been released which adds support for reading issues from Terraform `validate` command.. +A new [Cake.Issues.Terraform addin] has been released which adds support for reading issues from Terraform `validate` command. - + [Cake.Issues.Terraform addin] brings support for Terraform to the Cake.Issues ecosystem. It allows to read the output of the Terraform `validate` command. @@ -14,4 +18,4 @@ ensure quality standards by validating Terraform files before merging or deployi When using a pull requests workflow it is also possible to have the issues reported by Terraform validate automatically reported as comments to pull request. -[Cake.Issues.Terraform addin]: ../docs/issue-providers/terraform/ +[Cake.Issues.Terraform addin]: ../../documentation/issue-providers/terraform/index.md diff --git a/docs/input/news/2021-07-28-cake-issues-v1.0.0-released.md b/docs/input/news/posts/2021-07-28-cake-issues-v1.0.0-released.md similarity index 66% rename from docs/input/news/2021-07-28-cake-issues-v1.0.0-released.md rename to docs/input/news/posts/2021-07-28-cake-issues-v1.0.0-released.md index 8c0931525..bb00727d1 100644 --- a/docs/input/news/2021-07-28-cake-issues-v1.0.0-released.md +++ b/docs/input/news/posts/2021-07-28-cake-issues-v1.0.0-released.md @@ -1,13 +1,17 @@ --- title: Cake Issues v1.0.0 Released -category: Release Notes +date: 2021-07-28 +categories: + - Release Notes +search: + boost: 0.5 --- -More than 4 years after the [first commit for Cake.Prca](https://github.com/cake-contrib/Cake.Prca/commit/438b3a1a609e5b9cc9e6f8f489a73988f9ed1f4d), +More than 4 years after the [first commit for Cake.Prca](https://github.com/cake-contrib/Cake.Prca/commit/438b3a1a609e5b9cc9e6f8f489a73988f9ed1f4d){target="_blank"}, the predecessor of Cake Issues, we're happy to announce that Cake Issues version 1.0.0 has been released. This is a major release bringing a lot of new features across all addins. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -16,11 +20,11 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [eoehen](https://github.com/eoehen) -* [janniksam](https://github.com/janniksam) -* [pascalberger](https://github.com/pascalberger) -* [phlorian](https://github.com/phlorian) -* [jokay](https://github.com/jokay) +* [eoehen](https://github.com/eoehen){target="_blank"} +* [janniksam](https://github.com/janniksam){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [phlorian](https://github.com/phlorian){target="_blank"} +* [jokay](https://github.com/jokay){target="_blank"} ## Support for Cake 1.0 @@ -28,7 +32,7 @@ All addins have been updated to support Cake 1.x. ## Support for Cake Frosting -All addins can be used with [Cake Frosting]. +All addins can be used with [Cake Frosting]{target="_blank"}. Cake Issues addins have always been self-contained, shipping with all required dependencies, to provide the best user experience. While this approach makes sense for Cake script runners, it makes things more complex than required when running under [Cake Frosting]. @@ -36,16 +40,16 @@ This is especially true for the [Cake.Issues.Reporting.Generic addin], which use It was therefore decided to release separate versions of the Cake.Issues.Reporting.Generic addin for the different script runners: -* [Cake.Issues.Reporting.Generic]: The addin packaged in a self-contained NuGet package for use with Cake script runners -* [Cake.Frosting.Issues.Reporting.Generic]: The addin packaged in a NuGet package containing dependencies for use with [Cake Frosting] +* [Cake.Issues.Reporting.Generic]{target="_blank"}: The addin packaged in a self-contained NuGet package for use with Cake script runners +* [Cake.Frosting.Issues.Reporting.Generic]{target="_blank"}: The addin packaged in a NuGet package containing dependencies for use with [Cake Frosting] -[Cake.Frosting.Issues.Reporting.Generic] has the additional benefit for the user that it gives the user full control +[Cake.Frosting.Issues.Reporting.Generic]{target="_blank"} has the additional benefit for the user that it gives the user full control of what exact version of dependencies should be used. In the future more Cake Issues addins might be released in Frosting specific packages. [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting -[Cake.Issues.Reporting.Generic addin]: /docs/report-formats/generic/ -[Cake.Issues.Reporting.Generic]: https://www.nuget.org/packages/Cake.Issues.Reporting.Generic/ +[Cake.Issues.Reporting.Generic addin]: ../../documentation/report-formats/generic/index.md +[Cake.Issues.Reporting.Generic]: https://cakebuild.net/extensions/cake-issues-reporting-generic/ [Cake.Frosting.Issues.Reporting.Generic]: https://www.nuget.org/packages/Cake.Frosting.Issues.Reporting.Generic/ ## Support for arbitrary values in an issue @@ -55,11 +59,11 @@ These kind of information can now be stored in the `IIssue.AdditionalInformation ## New provider type property -While there are aliases to get provider type name (e.g. [MsBuildIssuesProviderTypeName]), this information was in previous versions +While there are aliases to get provider type name (e.g. [MsBuildIssuesProviderTypeName]{target="_blank"}), this information was in previous versions not available through the `IIssueProvider` interface. There is a new `IIssueProvider.ProviderType` property which can be used to retrieve the provider type. -[MsBuildIssuesProviderTypeName]: /api/Cake.Issues.MsBuild/MsBuildIssuesAliases/0A221402 +[MsBuildIssuesProviderTypeName]: https://cakebuild.net/api/Cake.Issues.MsBuild/MsBuildIssuesAliases/0A221402 ## PDF export @@ -69,8 +73,8 @@ A new PDF export has been added to the `HtmlDxDataGrid` template of the `Cake.Is Starting with Cake Issues 1.0.0 the three core addins `Cake.Issues`, `Cake.Issues.PullRequests` and `Cake.Issues.Reporting` will be always released together. -For that source code for the addin has been merged in the [Cake.Issues repository]. -Please open any issues related to any of the core addins in the [Cake.Issues issue tracker]. +For that source code for the addin has been merged in the [Cake.Issues repository]{target="_blank"}. +Please open any issues related to any of the core addins in the [Cake.Issues issue tracker]{target="_blank"}. [Cake.Issues repository]: https://github.com/cake-contrib/Cake.Issues [Cake.Issues issue tracker]: https://github.com/cake-contrib/Cake.Issues/issues @@ -87,24 +91,23 @@ This section documents the most common changes which might be required: For issue providers inheriting from `BaseIssueProvider` no action is required to keep the same behavior as with previous versions, with the type name used as provider type. -:::{.alert .alert-info} -Cake.Recipe has not been updated to 1.0 yet. -::: +!!! info + Cake.Recipe has not been updated to 1.0 yet. For details see release notes of the individual addins: -* [Cake.Issues 1.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/1.0.0) -* [Cake.Issues.MsBuild 1.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/1.0.0) -* [Cake.Issues.InspectCode 1.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/1.0.0) -* [Cake.Issues.DupFinder 1.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/1.0.0) -* [Cake.Issues.GitRepository 1.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/1.0.0) -* [Cake.Issues.Markdownlint 1.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/1.0.0) -* [Cake.Issues.EsLint 1.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/1.0.0) -* [Cake.Issues.DocFx 1.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/1.0.0) -* [Cake.Issues.Terraform 1.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/1.0.0) -* [Cake.Issues.PullRequests 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests/releases/tag/1.0.0) -* [Cake.Issues.PullRequests.AzureDevOps 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/1.0.0) -* [Cake.Issues.PullRequests.AppVeyor 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/1.0.0) -* [Cake.Issues.Reporting 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting/releases/tag/1.0.0) -* [Cake.Issues.Reporting.Generic 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/1.0.0) -* [Cake.Issues.Reporting.Sarif 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/1.0.0) +* [Cake.Issues 1.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.MsBuild 1.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.InspectCode 1.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.DupFinder 1.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.GitRepository 1.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.Markdownlint 1.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.EsLint 1.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.DocFx 1.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.Terraform 1.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.PullRequests 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AzureDevOps 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AppVeyor 1.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.Reporting 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.Reporting.Generic 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/1.0.0){target="_blank"} +* [Cake.Issues.Reporting.Sarif 1.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/1.0.0){target="_blank"} diff --git a/docs/input/news/2021-07-30-cake-issues-eslint-v1.0.1-released.md b/docs/input/news/posts/2021-07-30-cake-issues-eslint-v1.0.1-released.md similarity index 78% rename from docs/input/news/2021-07-30-cake-issues-eslint-v1.0.1-released.md rename to docs/input/news/posts/2021-07-30-cake-issues-eslint-v1.0.1-released.md index 8413a1d15..365c78041 100644 --- a/docs/input/news/2021-07-30-cake-issues-eslint-v1.0.1-released.md +++ b/docs/input/news/posts/2021-07-30-cake-issues-eslint-v1.0.1-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues ESLint v1.0.1 Released -category: Release Notes +date: 2021-07-30 +categories: + - Release Notes +search: + boost: 0.5 --- Version 1.0.1 of ESLint support for Cake.Issues has been released. This is a minor release containing bug fixes. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,9 +19,9 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [eoehen](https://github.com/eoehen) -* [pascalberger](https://github.com/pascalberger) -* [Speeedy01](https://github.com/Speeedy01) +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [Speeedy01](https://github.com/Speeedy01){target="_blank"} ## Bug fix for issues with line, column or rule diff --git a/docs/input/news/2021-08-04-cake-issues-recipe-v1.0.0-released.md b/docs/input/news/posts/2021-08-04-cake-issues-recipe-v1.0.0-released.md similarity index 72% rename from docs/input/news/2021-08-04-cake-issues-recipe-v1.0.0-released.md rename to docs/input/news/posts/2021-08-04-cake-issues-recipe-v1.0.0-released.md index f7bd27c13..9bf0035bb 100644 --- a/docs/input/news/2021-08-04-cake-issues-recipe-v1.0.0-released.md +++ b/docs/input/news/posts/2021-08-04-cake-issues-recipe-v1.0.0-released.md @@ -1,6 +1,10 @@ --- title: Cake Issues Recipe v1.0.0 Released, bringing support for Cake Frosting -category: Release Notes +date: 2021-08-04 +categories: + - Release Notes +search: + boost: 0.5 --- Hard on the heels of the [announcement for release 1.0 of Cake.Issues addins], @@ -8,9 +12,9 @@ we're happy to announce release 1.0 of the recipe script for Cake.Issues. This is a major release bringing support for Cake Frosting and other new features. -[announcement for release 1.0 of Cake.Issues addins]: /news/cake-issues-v1.0.0-released +[announcement for release 1.0 of Cake.Issues addins]: 2021-07-28-cake-issues-v1.0.0-released.md - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -19,7 +23,7 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Support for Cake 1.0 @@ -29,24 +33,24 @@ See [announcement for release 1.0 of Cake.Issues addins] for features added in t ## Support for Cake Frosting -Additionally to the existing [Cake.Issues.Recipe] package, which works fine for Cake script runners, there's a new -[Cake.Frosting.Issues.Recipe] package suitable for builds using [Cake Frosting]. +Additionally to the existing [Cake.Issues.Recipe]{target="_blank"} package, which works fine for Cake script runners, there's a new +[Cake.Frosting.Issues.Recipe]{target="_blank"} package suitable for builds using [Cake Frosting]{target="_blank"}. -See [Using Cake.Frosting.Issues.Recipe] for an example. +See [Using Cake.Frosting.Issues.Recipe]{target="_blank"} for an example. [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake.Issues.Recipe]: https://www.nuget.org/packages/Cake.Issues.Recipe/ [Cake.Frosting.Issues.Recipe]: https://www.nuget.org/packages/Cake.Frosting.Issues.Recipe/ -[Using Cake.Frosting.Issues.Recipe]: /docs/recipe/usage/using-cake-frosting-issues-recipe +[Using Cake.Frosting.Issues.Recipe]: ../../documentation/usage/recipe/using-cake-frosting-issues-recipe.md ## Support for environments not compatible with Cake.Git addin -In previous versions Cake.Issues recipes had used [Cake.Git addin] to determine state of the Git repository. -While this works in most cases, there are some environments where [Cake.Git addin] currently does not work. +In previous versions Cake.Issues recipes had used [Cake.Git addin]{target="_blank"} to determine state of the Git repository. +While this works in most cases, there are some environments where [Cake.Git addin]{target="_blank"} currently does not work. -Starting with this version it is now possible to define if [Cake.Git addin] or Git CLI should be used. +Starting with this version it is now possible to define if [Cake.Git addin]{target="_blank"} or Git CLI should be used. -See [Git repository information configuration](/docs/recipe/configuration#git-repository-information) for details. +See [Git repository information configuration](../../documentation/recipe/configuration.md#git-repository-information) for details. [Cake.Git addin]: https://cakebuild.net/extensions/cake-git/ @@ -81,6 +85,4 @@ This section documents the most common changes which might be required: IssuesParameters.InputFiles.AddMsBuildXmlFileLoggerLogFile(@"c:\build\msbuild.log"); ``` -For details see [full release notes]. - -[full release notes]: https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/1.0.0 +For details see [full release notes](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/1.0.0){target="_blank"} diff --git a/docs/input/news/2021-08-11-cake-issues-recipe-v1.1.0-released.md b/docs/input/news/posts/2021-08-11-cake-issues-recipe-v1.1.0-released.md similarity index 85% rename from docs/input/news/2021-08-11-cake-issues-recipe-v1.1.0-released.md rename to docs/input/news/posts/2021-08-11-cake-issues-recipe-v1.1.0-released.md index 152faa0d8..ee592513c 100644 --- a/docs/input/news/2021-08-11-cake-issues-recipe-v1.1.0-released.md +++ b/docs/input/news/posts/2021-08-11-cake-issues-recipe-v1.1.0-released.md @@ -1,11 +1,15 @@ --- title: Cake Issues Recipes v1.1.0 released -category: Release Notes +date: 2021-08-11 +categories: + - Release Notes +search: + boost: 0.5 --- Version 1.1.0 of Cake Issues recipes have been released adding support to customize report generation. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -14,13 +18,13 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Report customization This version of Cake Issues recipes adds a new `FullIssuesReportSettings` configuration parameter which allows to customize the generated issue report. -See [Report creation parameters] for details. +See [Report creation parameters]{target="_blank"} for details. The following example enables exporting of the report when using Cake.Issues.Recipe: @@ -40,7 +44,7 @@ context.Parameters.Reporting.FullIssuesReportSettings `Cake.Git` has been updated to version 1.1.0 which comes with an updated version of LibGit2Sharp which adds support for Ubuntu 20. -See [Cake.Git 1.1.0 release notes] for details. +See [Cake.Git 1.1.0 release notes]{target="_blank"} for details. ## Updating from previous versions diff --git a/docs/input/news/2021-08-19-cake-issues-recipe-v1.2.0-released.md b/docs/input/news/posts/2021-08-19-cake-issues-recipe-v1.2.0-released.md similarity index 81% rename from docs/input/news/2021-08-19-cake-issues-recipe-v1.2.0-released.md rename to docs/input/news/posts/2021-08-19-cake-issues-recipe-v1.2.0-released.md index 2c270090e..fd16fb8f2 100644 --- a/docs/input/news/2021-08-19-cake-issues-recipe-v1.2.0-released.md +++ b/docs/input/news/posts/2021-08-19-cake-issues-recipe-v1.2.0-released.md @@ -1,21 +1,25 @@ --- title: Cake Issues Recipes v1.2.0 released -category: Release Notes +date: 2021-08-19 +categories: + - Release Notes +search: + boost: 0.5 --- Version 1.2.0 of Cake Issues recipes have been released adding support to customize issue reporting to pull requests. - + This post shows the highlights included in this release. -For details see [full release notes]. +For details see [full release notes]{target="_blank"}. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). ❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Customization of pull request integration @@ -40,5 +44,5 @@ context.Parameters.PullRequestSystem.MaxIssuesToPost = 20; Cake Issues recipes 1.2.0 are compatible with version 1.x without any breaking changes. To update to the new version bump the version in your build. -[Pull request integration parameters]: /docs/recipe/configuration#pull-request-integration +[Pull request integration parameters]: ../../documentation/recipe/configuration.md#pull-request-integration [full release notes]: https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/1.2.0 diff --git a/docs/input/news/2021-08-29-console-addin.md b/docs/input/news/posts/2021-08-29-console-addin.md similarity index 77% rename from docs/input/news/2021-08-29-console-addin.md rename to docs/input/news/posts/2021-08-29-console-addin.md index 5398da538..1b418c6c1 100644 --- a/docs/input/news/2021-08-29-console-addin.md +++ b/docs/input/news/posts/2021-08-29-console-addin.md @@ -1,14 +1,18 @@ --- title: New addin for printing issues to console -category: Release Notes +date: 2021-08-29 +categories: + - New Addin +search: + boost: 0.5 --- A new [Cake.Issues.Reporting.Console addin] has been released which allows to output issues to the console. - + [Cake.Issues.Reporting.Console addin] can be used to print issues to the console and is built on top -of the excellent [Errata library] by Patrik Svensson. +of the excellent [Errata library](https://github.com/spectreconsole/errata){target="_blank"} by Patrik Svensson. Its main focus is to annotate source code with issues: @@ -27,5 +31,4 @@ Another summary shows the number of issues by priority for every provider and ru ![Summary of priorities](2021-08-29-summary-of-priorities.png "Summary of priorities") -[Cake.Issues.Reporting.Console addin]: /docs/report-formats/console/ -[Errata library]: https://github.com/spectreconsole/errata +[Cake.Issues.Reporting.Console addin]: ../../documentation/report-formats/console/index.md diff --git a/docs/input/news/2021-08-29-diagnostics.png b/docs/input/news/posts/2021-08-29-diagnostics.png similarity index 100% rename from docs/input/news/2021-08-29-diagnostics.png rename to docs/input/news/posts/2021-08-29-diagnostics.png diff --git a/docs/input/news/2021-08-29-summary-by-provider.png b/docs/input/news/posts/2021-08-29-summary-by-provider.png similarity index 100% rename from docs/input/news/2021-08-29-summary-by-provider.png rename to docs/input/news/posts/2021-08-29-summary-by-provider.png diff --git a/docs/input/news/2021-08-29-summary-of-priorities.png b/docs/input/news/posts/2021-08-29-summary-of-priorities.png similarity index 100% rename from docs/input/news/2021-08-29-summary-of-priorities.png rename to docs/input/news/posts/2021-08-29-summary-of-priorities.png diff --git a/docs/input/news/2021-08-31-cake-issues-markdownlint-v1.1.0.md b/docs/input/news/posts/2021-08-31-cake-issues-markdownlint-v1.1.0.md similarity index 68% rename from docs/input/news/2021-08-31-cake-issues-markdownlint-v1.1.0.md rename to docs/input/news/posts/2021-08-31-cake-issues-markdownlint-v1.1.0.md index 3853e97e9..99a3f51c2 100644 --- a/docs/input/news/2021-08-31-cake-issues-markdownlint-v1.1.0.md +++ b/docs/input/news/posts/2021-08-31-cake-issues-markdownlint-v1.1.0.md @@ -1,12 +1,16 @@ --- title: Cake Issues Markdownlint v1.1.0 Released -category: Release Notes +date: 2021-08-31 +categories: + - Release Notes +search: + boost: 0.5 --- Version 1.1.0 of Markdownlint support for Cake.Issues has been released. This is a minor release adding features and improvements. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,16 +19,16 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Support for markdownlint-cli JSON format Since version 0.28.0 markdownlint-cli supports a `--json` option to output result in JSON format. -This version adds support for this format through the [MarkdownlintCliJsonLogFileFormat] alias. +This version adds support for this format through the [MarkdownlintCliJsonLogFileFormat]{target="_blank"} alias. ## Provide column information -This release of Cake.Issues.Markdownlint enhances the [MarkdownlintCliLogFileFormat] to provide column information +This release of Cake.Issues.Markdownlint enhances the [MarkdownlintCliLogFileFormat]{target="_blank"} to provide column information if reported by markdownlint. ## Recipe packages @@ -37,6 +41,6 @@ adding support for markdownlint-cli JSON files. Cake.Issues.Markdownlint 1.1.0 is compatible with version 1.0.0 without any breaking changes. To update to the new version bump the version of the addin. -[MarkdownlintCliJsonLogFileFormat]: /api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F -[MarkdownlintCliLogFileFormat]: /api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/B518F49E -[Cake Issues recipes]: /docs/recipe/overview \ No newline at end of file +[MarkdownlintCliJsonLogFileFormat]: https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/36DE6F5F +[MarkdownlintCliLogFileFormat]: https://cakebuild.net/api/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases/B518F49E +[Cake Issues recipes]: ../../documentation/recipe/index.md \ No newline at end of file diff --git a/docs/input/news/2021-09-05-cake-issues-reporting-0-3-0-released.md b/docs/input/news/posts/2021-09-05-cake-issues-reporting-0-3-0-released.md similarity index 73% rename from docs/input/news/2021-09-05-cake-issues-reporting-0-3-0-released.md rename to docs/input/news/posts/2021-09-05-cake-issues-reporting-0-3-0-released.md index ed8d34599..f9213ba9f 100644 --- a/docs/input/news/2021-09-05-cake-issues-reporting-0-3-0-released.md +++ b/docs/input/news/posts/2021-09-05-cake-issues-reporting-0-3-0-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues Reporting Console v0.3.0 released, adding support for all Cake runners -category: Release Notes +date: 2021-09-05 +categories: + - Release Notes +search: + boost: 0.5 --- Version 0.3.0 of [Cake.Issues.Reporting.Console] has been released. This is a minor release adding features and improvements. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,8 +19,8 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [pascalberger](https://github.com/pascalberger) -* [patriksvensson](https://github.com/patriksvensson) +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [patriksvensson](https://github.com/patriksvensson){target="_blank"} ## Support for all Cake runners @@ -31,12 +35,12 @@ Provider report is now rendered in different colors for the individual bars, mak ## Errata 0.6.0 -Underlying [Errata] library has been updated to 0.6.0, containing additional bug fixes and rendering improvements. +Underlying [Errata]{target="_blank"} library has been updated to 0.6.0, containing additional bug fixes and rendering improvements. ## Updating from previous versions [Cake.Issues.Reporting.Console] 0.3.0 is compatible with previous versions without any breaking changes. To update to the new version bump the version of the addin. -[Cake.Issues.Reporting.Console]: /docs/report-formats/console/ +[Cake.Issues.Reporting.Console]: ../../documentation/report-formats/console/index.md [Errata]: https://github.com/spectreconsole/errata diff --git a/docs/input/news/2021-09-05-summary-by-provider.png b/docs/input/news/posts/2021-09-05-summary-by-provider.png similarity index 100% rename from docs/input/news/2021-09-05-summary-by-provider.png rename to docs/input/news/posts/2021-09-05-summary-by-provider.png diff --git a/docs/input/news/2022-12-10-cake-issues-v2.0.0-released.md b/docs/input/news/posts/2022-12-10-cake-issues-v2.0.0-released.md similarity index 69% rename from docs/input/news/2022-12-10-cake-issues-v2.0.0-released.md rename to docs/input/news/posts/2022-12-10-cake-issues-v2.0.0-released.md index e14fc32ab..35a6bce6a 100644 --- a/docs/input/news/2022-12-10-cake-issues-v2.0.0-released.md +++ b/docs/input/news/posts/2022-12-10-cake-issues-v2.0.0-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues v2.0.0 Released -category: Release Notes +date: 2022-12-10 +categories: + - Release Notes +search: + boost: 0.5 --- After several months with beta releases Cake Issues version 2.0.0 has been released. This is a major release, containing breaking changes beside bringing new features and bug fixes across all addins. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,18 +19,18 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [eoehen](https://github.com/eoehen) -* [KirillOsenkov](https://github.com/KirillOsenkov) -* [pascalberger](https://github.com/pascalberger) -* [twenzel](https://github.com/twenzel) -* [yansklyarenko](https://github.com/yansklyarenko) +* [eoehen](https://github.com/eoehen){target="_blank"} +* [KirillOsenkov](https://github.com/KirillOsenkov){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [twenzel](https://github.com/twenzel){target="_blank"} +* [yansklyarenko](https://github.com/yansklyarenko){target="_blank"} ## Support for Cake 2.0 All addins have been updated to support Cake 2.x. Target framework have been updated to .NET Core 3.1, .NET 5 and .NET 6 to be in line with Cake. -See [Sunsetting of .NET Framework and .NET Core runners in Cake 2.0] for details. +See [Sunsetting of .NET Framework and .NET Core runners in Cake 2.0]{target="_blank"} for details. ## Support for MsBuild binary logs version 9 @@ -48,20 +52,20 @@ This section documents the most common changes which might be required: For details see release notes of the individual addins: -* [Cake.Issues 2.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/2.0.0) -* [Cake.Issues.DocFx 2.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/2.0.0) -* [Cake.Issues.DupFinder 2.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/2.0.0) -* [Cake.Issues.EsLint 2.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/2.0.0) -* [Cake.Issues.GitRepository 2.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/2.0.0) -* [Cake.Issues.InspectCode 2.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/2.0.0) -* [Cake.Issues.Markdownlint 2.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/2.0.0) -* [Cake.Issues.MsBuild 2.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/2.0.0) -* [Cake.Issues.Terraform 2.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/2.0.0) -* [Cake.Issues.Reporting.Console 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Console/releases/tag/2.0.0) -* [Cake.Issues.Reporting.Generic 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/2.0.0) -* [Cake.Issues.Reporting.Sarif 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/2.0.0) -* [Cake.Issues.PullRequests.AppVeyor 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/2.0.0) -* [Cake.Issues.PullRequests.AzureDevOps 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/2.0.0) -* [Cake.Issues.PullRequests.GitHubActions 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.GitHubActions/releases/tag/2.0.0) +* [Cake.Issues 2.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.DocFx 2.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.DupFinder 2.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.EsLint 2.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.GitRepository 2.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.InspectCode 2.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.Markdownlint 2.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.MsBuild 2.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.Terraform 2.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.Reporting.Console 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Console/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.Reporting.Generic 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.Reporting.Sarif 2.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AppVeyor 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AzureDevOps 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/2.0.0){target="_blank"} +* [Cake.Issues.PullRequests.GitHubActions 2.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.GitHubActions/releases/tag/2.0.0){target="_blank"} [Sunsetting of .NET Framework and .NET Core runners in Cake 2.0]: https://cakebuild.net/blog/2021/10/sunsetting-runners diff --git a/docs/input/news/2023-07-22-cake-issues-v3.0.0-released.md b/docs/input/news/posts/2023-07-22-cake-issues-v3.0.0-released.md similarity index 70% rename from docs/input/news/2023-07-22-cake-issues-v3.0.0-released.md rename to docs/input/news/posts/2023-07-22-cake-issues-v3.0.0-released.md index 59670d003..1aa7c1fb5 100644 --- a/docs/input/news/2023-07-22-cake-issues-v3.0.0-released.md +++ b/docs/input/news/posts/2023-07-22-cake-issues-v3.0.0-released.md @@ -1,12 +1,16 @@ --- title: Cake Issues v3.0.0 Released -category: Release Notes +date: 2023-07-22 +categories: + - Release Notes +search: + boost: 0.5 --- Cake Issues version 3.0.0 has been released. This is a major release, containing breaking changes beside bringing new features and bug fixes across all addins. - + This post shows the highlights included in this release. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). @@ -15,9 +19,9 @@ For update instructions skip to [Updating from previous versions](#updating-from People working on this release: -* [DiDoHH](https://github.com/DiDoHH) -* [eoehen](https://github.com/eoehen) -* [pascalberger](https://github.com/pascalberger) +* [DiDoHH](https://github.com/DiDoHH){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Support for Cake 3.0 @@ -31,7 +35,7 @@ Support for binary logs in version 16 has been added to `Cake.Issues.MsBuild`. ## Out of the box support for more rule links -`Cake.Issues.MsBuild` now will automatically provide links for [Roslynator] and [SonarLint] rules. +`Cake.Issues.MsBuild` now will automatically provide links for [Roslynator]{target="_blank"} and [SonarLint]{target="_blank"} rules. Links for `CA` rules have updated to link to `learn.microsoft.com`. ## Updating from previous versions @@ -43,28 +47,28 @@ This section documents the most common changes which might be required: * `StringPathExtensions.IsValideRepositoryFilePath` has been renamed to `StringPathExtensions.IsValidRepositoryFilePath` * `BaseRuleDescription.Rule` has been made immutable after initialization * Cake.Issues.Recipe - * Since [Dupfinder has been sunsetted] end of 2021, out of the box support for it has been removed from Cake Issues Recipe + * Since [Dupfinder has been sunsetted]{target="_blank"} end of 2021, out of the box support for it has been removed from Cake Issues Recipe and `DupFinderLogFilePaths` is no longer available. To keep using DupFinder you need to manually add `Cake.Issues.DupFinder` and add issues using the `AddIssues` method. For details see release notes of the individual addins: -* [Cake.Issues.Recipe 3.0.0](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/3.0.0) -* [Cake.Issues 3.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/3.0.0) -* [Cake.Issues.DocFx 3.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/3.0.0) -* [Cake.Issues.DupFinder 3.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/3.0.0) -* [Cake.Issues.EsLint 3.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/3.0.0) -* [Cake.Issues.GitRepository 3.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/3.0.0) -* [Cake.Issues.InspectCode 3.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/3.0.0) -* [Cake.Issues.Markdownlint 3.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/3.0.0) -* [Cake.Issues.MsBuild 3.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/3.0.0) -* [Cake.Issues.Terraform 3.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/3.0.0) -* [Cake.Issues.Reporting.Console 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Console/releases/tag/3.0.0) -* [Cake.Issues.Reporting.Generic 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/3.0.0) -* [Cake.Issues.Reporting.Sarif 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/3.0.0) -* [Cake.Issues.PullRequests.AppVeyor 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/3.0.0) -* [Cake.Issues.PullRequests.AzureDevOps 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/3.0.0) -* [Cake.Issues.PullRequests.GitHubActions 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.GitHubActions/releases/tag/3.0.0) +* [Cake.Issues.Recipe 3.0.0](https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues 3.0.0](https://github.com/cake-contrib/Cake.Issues/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.DocFx 3.0.0](https://github.com/cake-contrib/Cake.Issues.DocFx/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.DupFinder 3.0.0](https://github.com/cake-contrib/Cake.Issues.DupFinder/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.EsLint 3.0.0](https://github.com/cake-contrib/Cake.Issues.EsLint/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.GitRepository 3.0.0](https://github.com/cake-contrib/Cake.Issues.GitRepository/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.InspectCode 3.0.0](https://github.com/cake-contrib/Cake.Issues.InspectCode/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.Markdownlint 3.0.0](https://github.com/cake-contrib/Cake.Issues.Markdownlint/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.MsBuild 3.0.0](https://github.com/cake-contrib/Cake.Issues.MsBuild/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.Terraform 3.0.0](https://github.com/cake-contrib/Cake.Issues.Terraform/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.Reporting.Console 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Console/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.Reporting.Generic 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Generic/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.Reporting.Sarif 3.0.0](https://github.com/cake-contrib/Cake.Issues.Reporting.Sarif/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AppVeyor 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AppVeyor/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.PullRequests.AzureDevOps 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.AzureDevOps/releases/tag/3.0.0){target="_blank"} +* [Cake.Issues.PullRequests.GitHubActions 3.0.0](https://github.com/cake-contrib/Cake.Issues.PullRequests.GitHubActions/releases/tag/3.0.0){target="_blank"} [Roslynator]: https://josefpihrt.github.io/docs/roslynator/ [SonarLint]: https://www.sonarsource.com/products/sonarlint/ diff --git a/docs/input/news/2023-08-16-cake-issues-recipe-v3.1.0-released.md b/docs/input/news/posts/2023-08-16-cake-issues-recipe-v3.1.0-released.md similarity index 78% rename from docs/input/news/2023-08-16-cake-issues-recipe-v3.1.0-released.md rename to docs/input/news/posts/2023-08-16-cake-issues-recipe-v3.1.0-released.md index 29b2e760f..0265dad65 100644 --- a/docs/input/news/2023-08-16-cake-issues-recipe-v3.1.0-released.md +++ b/docs/input/news/posts/2023-08-16-cake-issues-recipe-v3.1.0-released.md @@ -1,21 +1,25 @@ --- title: Cake Issues Recipes v3.1.0 released -category: Release Notes +date: 2023-08-16 +categories: + - Release Notes +search: + boost: 0.5 --- Version 3.1.0 of Cake Issues recipes have been released adding support for creating of reports in SARIF format. - + This post shows the highlights included in this release. -For details see [full release notes]. +For details see [full release notes]{target="_blank"}. For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). ❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ People working on this release: -* [pascalberger](https://github.com/pascalberger) +* [pascalberger](https://github.com/pascalberger){target="_blank"} ## Reports in SARIF format @@ -24,7 +28,7 @@ This version of Cake Issues recipes adds a new configuration parameter which all See [Report parameters] for details. If running on Azure Pipelines the generated SARIF file is uploaded so that it will be -shown in the [SARIF SAST Scans Tab extension]. +shown in the [SARIF SAST Scans Tab extension]{target="_blank"}. ## Updating from previous versions @@ -32,6 +36,6 @@ Cake Issues recipes 3.1.0 are compatible with version 3.x without any breaking c To update to the new version bump the version in your build. [full release notes]: https://github.com/cake-contrib/Cake.Issues.Recipe/releases/tag/3.1.0 -[Report parameters]: /docs/recipe/configuration#report-creation +[Report parameters]: ../../documentation/recipe/configuration.md#report-creation [SARIF format]: https://sarifweb.azurewebsites.net/ [SARIF SAST Scans Tab extension]: https://marketplace.visualstudio.com/items?itemName=sariftools.scans diff --git a/docs/input/news/posts/2023-12-23-cake-issues-v4.0.0-released.md b/docs/input/news/posts/2023-12-23-cake-issues-v4.0.0-released.md new file mode 100644 index 000000000..9c89d20f7 --- /dev/null +++ b/docs/input/news/posts/2023-12-23-cake-issues-v4.0.0-released.md @@ -0,0 +1,42 @@ +--- +title: Cake Issues v4.0.0 Released +date: 2023-12-23 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.0.0 has been released. +This is a major release, containing breaking changes beside bringing new features and bug fixes across all addins. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for Cake 4.0 + +All addins have been updated to support Cake 4.x. + +Target framework have been updated to .NET 6, .NET 7 and .NET 8 to be in line with Cake. + +## Switch to System.Text.Json for serialization + +For serialization / deserialization of issues [LitJson](https://litjson.net/){target="_blank"} was used internally. +With Cake.Issues 4.0 internal code has been changed to use System.Text.Json classes. + +The change should not have any impact for users. + +## Updating from previous versions + +While Cake.Issues 4.0.0 is a breaking release, there are no breaking changes beside the update to Cake 4.x and +the changes to target framework version. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.0.0){target="_blank"} diff --git a/docs/input/news/posts/2024-01-14-align-addin-lifecycle.md b/docs/input/news/posts/2024-01-14-align-addin-lifecycle.md new file mode 100644 index 000000000..7faf43381 --- /dev/null +++ b/docs/input/news/posts/2024-01-14-align-addin-lifecycle.md @@ -0,0 +1,25 @@ +--- +title: Alignment of addin lifecycles +date: 2024-01-14 +categories: + - Announcements +search: + boost: 0.5 +--- + +Cake Issues has a [modular architecture] consisting of multiple addins. +Historically every addin had its own independent release lifecycle. +Starting with the next release work will begin to have all addins share the same release lifecycle. + + + +When Cake Issues started all three core addins (`Cake.Issues`, `Cake.Issues.Reporting` and `Cake.Issues.PullRequsts`) +and every issue provider, report format and pull request system addin were released on their own schedule, +allowing fast iterations of individual components. +With the [release of Cake Issues 1.0](2021-07-28-cake-issues-v1.0.0-released.md#simplified-release-process) the +release lifecycle of the three core addins have been aligned, resulting in a simplified release process. + +Starting with the next release we'll begin to move also the remaining issue provider, report format and +pull request system addins into the main Cake Issues repository and have them released together with the core addins. + +[modular architecture]: ../../documentation/how-cake-issues-works.md diff --git a/docs/input/news/posts/2024-02-21-cake-issues-v4.1.0-released.md b/docs/input/news/posts/2024-02-21-cake-issues-v4.1.0-released.md new file mode 100644 index 000000000..536ba4f1d --- /dev/null +++ b/docs/input/news/posts/2024-02-21-cake-issues-v4.1.0-released.md @@ -0,0 +1,56 @@ +--- +title: Cake Issues v4.1.0 Released +date: 2024-02-21 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.1.0 has been released with improvements for Cake Frosting and support for latest MsBuild binary log format. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Improvement for Cake Frosting + +[Cake.Frosting.Issues.Reporting]{target="_blank"} and [Cake.Frosting.Issues.PullRequests]{target="_blank"} have been released +as optimized version of the `Cake.Issues.Reporting` and `Cake.Issues.PullRequests` for Cake Frosting. + +These addins come with a dependency to the core `Cake.Issues` addin, allowing it to be consumed as transitive dependency. + +## Support for MsBuild binary logs version 18 + +Support for binary logs in version 18 has been added to `Cake.Issues.MsBuild`. + +## Alignment of release lifecycle + +As announced in [Alignment of addin lifecycles](2024-01-14-align-addin-lifecycle.md) work as started to move +addins into the main Cake Issues repository. + +Starting with this release the following addins will be released together with the core addins: + +* Cake.Issues.DocFx +* Cake.Issues.EsLint +* Cake.Issues.MsBuild +* Cake.Issues.InspectCode +* Cake.Issues.Markdownlint + +## Updating from previous versions + +Cake.Issues 4.1.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.1.0){target="_blank"} + +[Cake.Frosting.Issues.Reporting]: https://www.nuget.org/packages/Cake.Frosting.Issues.Reporting +[Cake.Frosting.Issues.PullRequests]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests diff --git a/docs/input/news/posts/2024-04-14-cake-issues-v4.2.0-released.md b/docs/input/news/posts/2024-04-14-cake-issues-v4.2.0-released.md new file mode 100644 index 000000000..fada06d5d --- /dev/null +++ b/docs/input/news/posts/2024-04-14-cake-issues-v4.2.0-released.md @@ -0,0 +1,79 @@ +--- +title: Cake Issues v4.2.0 Released +date: 2024-04-14 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.2.0 has been released introducing a new issue provider for SARIF compatible files. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## New issue provider for SARIF files + +A new [Cake.Issues.Sarif addin] has been released which adds support for reading issues in [SARIF]{target="_blank"} format. + +See [New addin for reading SARIF files](2024-04-14-sarif-issue-provider.md) for details. + +## Improvement for Cake Frosting + +Optimized versions for Cake Frosting have been released for the following addins: + +* [Cake.Frosting.Issues.DocFx]{target="_blank"} +* [Cake.Frosting.Issues.EsLint]{target="_blank"} +* [Cake.Frosting.Issues.GitRepository]{target="_blank"} +* [Cake.Frosting.Issues.InspectCode]{target="_blank"} +* [Cake.Frosting.Issues.Markdownlint]{target="_blank"} +* [Cake.Frosting.Issues.Terraform]{target="_blank"} +* [Cake.Frosting.Issues.PullRequests.AppVeyor]{target="_blank"} +* [Cake.Frosting.Issues.PullRequests.AzureDevOps]{target="_blank"} +* [Cake.Frosting.Issues.PullRequests.GitHubActions]{target="_blank"} + +These addins come with a dependency to the core addins, allowing the core addins to be consumed as transitive dependencies. + +## Alignment of release lifecycle + +As announced in [Alignment of addin lifecycles](2024-01-14-align-addin-lifecycle.md) work as started to move +addins into the main Cake Issues repository. + +Starting with this release the following addins will be released together with the core addins: + +* Cake.Issues.GitRepository +* Cake.Issues.Terraform +* Cake.Issues.PullRequests.AppVeyor +* Cake.Issues.PullRequests.AzureDevOps +* Cake.Issues.PullRequsts.GitHubActions +* Cake.Issues.Reporting.Console +* Cake.Issues.Reporting.Generic +* Cake.Issues.Reporting.Sarif + +## Updating from previous versions + +Cake.Issues 4.2.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.2.0){target="_blank"} + +[Cake.Issues.Sarif addin]: ../../documentation/issue-providers/sarif/index.md +[SARIF]: https://sarifweb.azurewebsites.net/ +[Cake.Frosting.Issues.DocFx]: https://www.nuget.org/packages/Cake.Frosting.Issues.DocFx +[Cake.Frosting.Issues.EsLint]: https://www.nuget.org/packages/Cake.Frosting.Issues.EsLint +[Cake.Frosting.Issues.GitRepository]: https://www.nuget.org/packages/Cake.Frosting.Issues.GitRepository +[Cake.Frosting.Issues.InspectCode]: https://www.nuget.org/packages/Cake.Frosting.Issues.InspectCode +[Cake.Frosting.Issues.Markdownlint]: https://www.nuget.org/packages/Cake.Frosting.Issues.Markdownlint +[Cake.Frosting.Issues.Terraform]: https://www.nuget.org/packages/Cake.Frosting.Issues.Terraform +[Cake.Frosting.Issues.PullRequests.AppVeyor]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AppVeyor +[Cake.Frosting.Issues.PullRequests.AzureDevOps]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AzureDevOps +[Cake.Frosting.Issues.PullRequests.GitHubActions]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.GitHubActions diff --git a/docs/input/news/posts/2024-04-14-sarif-issue-provider.md b/docs/input/news/posts/2024-04-14-sarif-issue-provider.md new file mode 100644 index 000000000..e04295161 --- /dev/null +++ b/docs/input/news/posts/2024-04-14-sarif-issue-provider.md @@ -0,0 +1,27 @@ +--- +title: New addin for reading SARIF files +date: 2024-04-14 +categories: + - New Addin +search: + boost: 0.5 +--- + +A new [Cake.Issues.Sarif addin] has been released which adds support for reading issues in [SARIF]{target="_blank"} format. + + + +[SARIF]{target="_blank"} is an industry standard format for the output of static analysis tools. +With the introduction of [SARIF]{target="_blank"} support through the [Cake.Issues.Sarif addin] +any tool which can output results in [SARIF]{target="_blank"} format can now be used together with Cake Issues. + +See [Supported Tools] for an updated list of supported tools. + +The addins is available in a version for Cake .NET Tool ([Cake.Issues.Sarif]{target="_blank"}) +and Cake Frosting ([Cake.Frosting.Issues.Sarif]{target="_blank"}). + +[Cake.Issues.Sarif addin]: ../../documentation/issue-providers/sarif/index.md +[SARIF]: https://sarifweb.azurewebsites.net/ +[Supported Tools]: ../../documentation/supported-tools.md +[Cake.Issues.Sarif]: https://www.nuget.org/packages/Cake.Issues.Sarif +[Cake.Frosting.Issues.Sarif]: https://www.nuget.org/packages/Cake.Frosting.Issues.Sarif diff --git a/docs/input/news/posts/2024-04-16-cake-issues-v4.2.1-released.md b/docs/input/news/posts/2024-04-16-cake-issues-v4.2.1-released.md new file mode 100644 index 000000000..d5a702e7a --- /dev/null +++ b/docs/input/news/posts/2024-04-16-cake-issues-v4.2.1-released.md @@ -0,0 +1,37 @@ +--- +title: Cake Issues v4.2.1 Released +date: 2024-04-16 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.2.1 has been released with compatibility fixes. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Compatibility improvements + +As a side-effect of moving all addins to the central Cake Issues repository, `AssemblyVersion` of every +has been set to the release version. + +Addins are backwards compatible though to latest major version, which was no longer possible with this change. + +This release fixes this by setting the `AssemblyVersion` to the major version (currently `4.0.0`). + +## Updating from previous versions + +Cake.Issues 4.2.1 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.2.1){target="_blank"} diff --git a/docs/input/news/posts/2024-04-20-cake-issues-v4.3.0-released.md b/docs/input/news/posts/2024-04-20-cake-issues-v4.3.0-released.md new file mode 100644 index 000000000..b0f0fcbe7 --- /dev/null +++ b/docs/input/news/posts/2024-04-20-cake-issues-v4.3.0-released.md @@ -0,0 +1,32 @@ +--- +title: Cake Issues v4.3.0 Released +date: 2024-04-20 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.3.0 has been released with support for MsBuild binary log format version 20. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for MsBuild binary logs version 20 + +Support for binary logs in version 20 has been added to `Cake.Issues.MsBuild`. + +## Updating from previous versions + +Cake.Issues 4.3.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.3.0){target="_blank"} diff --git a/docs/input/news/posts/2024-04-25-cake-issues-v4.3.1-released.md b/docs/input/news/posts/2024-04-25-cake-issues-v4.3.1-released.md new file mode 100644 index 000000000..41b05e2b4 --- /dev/null +++ b/docs/input/news/posts/2024-04-25-cake-issues-v4.3.1-released.md @@ -0,0 +1,33 @@ +--- +title: Cake Issues v4.3.1 Released +date: 2024-04-25 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.3.1 has been released bringing bug fixes. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Bugfix for issues across multiple lines + +This release fixes an exception if an issue provider reports an issue across multiple lines +and the end column is before the start column. + +## Updating from previous versions + +Cake.Issues 4.3.1 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.3.1){target="_blank"} diff --git a/docs/input/news/posts/2024-05-18-cake-issues-v4.4.0-released.md b/docs/input/news/posts/2024-05-18-cake-issues-v4.4.0-released.md new file mode 100644 index 000000000..b810bba3d --- /dev/null +++ b/docs/input/news/posts/2024-05-18-cake-issues-v4.4.0-released.md @@ -0,0 +1,46 @@ +--- +title: Cake Issues v4.4.0 Released +date: 2024-05-18 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.4.0 has been released with improvements for Cake Frosting. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Cake Frosting improvements + +Support for implicit usings has been added to the Cake Frosting addins. + +If `enable` is set in a Cake Frosting build, namespaces for Cake Issues addins are +implicitly added, resulting in a similar experience as when using Cake .NET Tool, where aliases can be used directly +without the requirements to first add `using` statements. + +## Filtering improvements in HTML DevExtreme Data Grid template + +The [HTML DevExtreme Data Grid template] now supports search boxes in filter dropdowns. + +See [Header Filter Customization in DataGrid](https://js.devexpress.com/jQuery/New/23_1/#Data-Filtering-UI-Customization){target="_blank"} +for details. + +## Updating from previous versions + +Cake.Issues 4.4.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.4.0){target="_blank"} + +[HTML DevExtreme Data Grid template]: ../../documentation/report-formats/generic/templates/htmldxdatagrid.md diff --git a/docs/input/news/posts/2024-05-23-cake-issues-v4.5.0-released.md b/docs/input/news/posts/2024-05-23-cake-issues-v4.5.0-released.md new file mode 100644 index 000000000..674889188 --- /dev/null +++ b/docs/input/news/posts/2024-05-23-cake-issues-v4.5.0-released.md @@ -0,0 +1,48 @@ +--- +title: Cake Issues v4.5.0 Released +date: 2024-05-23 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.5.0 has been released adding support for [build breaking]. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [Speeedy01](https://github.com/Speeedy01){target="_blank"} + +## Support for breaking builds + +New [BreakBuildOnIssues aliases]{target="_blank"} have been introduced to fail builds when issues are found. + +See [build breaking] for an example. + +## Possibility to define license for HTML DevExtreme Data Grid + +Starting with version `23.2` DevExtreme no longer comes with a free community license. +[HTML DevExtreme Data Grid template] will stay on version `23.1` for this reason. + +If you have a DevExtreme license you can pass it to the new `DevExtremeLicenseKey` option +and update to a newer version using the `DevExtremeVersion` option. + +## Updating from previous versions + +Cake.Issues 4.5.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.5.0){target="_blank"} + +[build breaking]: ../../documentation/usage/breaking-builds/breaking-builds.md +[BreakBuildOnIssues aliases]: https://cakebuild.net/extensions/cake-issues/#Build-Breaking +[HTML DevExtreme Data Grid template]: ../../documentation/report-formats/generic/templates/htmldxdatagrid.md diff --git a/docs/input/news/posts/2024-05-24-cake-issues-v4.5.1-released.md b/docs/input/news/posts/2024-05-24-cake-issues-v4.5.1-released.md new file mode 100644 index 000000000..c00f8037d --- /dev/null +++ b/docs/input/news/posts/2024-05-24-cake-issues-v4.5.1-released.md @@ -0,0 +1,33 @@ +--- +title: Cake Issues v4.5.1 Released +date: 2024-05-24 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.5.1 has been released containing bug fixes. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Fixed log output + +This release fixes verbose output of `Cake.Issues.PullRequests` for provider issue limits. + +## Updating from previous versions + +Cake.Issues 4.5.1 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.5.1){target="_blank"} diff --git a/docs/input/news/posts/2024-06-24-cake-issues-v4.6.0-released.md b/docs/input/news/posts/2024-06-24-cake-issues-v4.6.0-released.md new file mode 100644 index 000000000..e237c0590 --- /dev/null +++ b/docs/input/news/posts/2024-06-24-cake-issues-v4.6.0-released.md @@ -0,0 +1,56 @@ +--- +title: Cake Issues v4.6.0 Released +date: 2024-06-24 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.6.0 has been released with improvements for SARIF reports. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [Speeedy01](https://github.com/Speeedy01){target="_blank"} + +## Improvements for SARIF Reports + +A new option [SarifIssueReportFormatSettings.ExistingIssues]{target="_blank"} has been introduced which allows to pass in a list of known +issues not related to current code changes, resulting in the [baselineState property]{target="_blank"} being set in the resulting SARIF report. + +This property is for example be used in the [SARIF viewer extension for Azure Pipelines]{target="_blank"} as filter option. + +The following new settings options have been added: + +| SarifIssueReportFormatSettings property | Output property | Description | +|-----------------------------------------|------------------------------------------------------|------------------------------------------| +| [Guid]{target="_blank"} | [automationDetails.guid]{target="_blank"} | Unique, stable identifier for the run | +| [BaselineGuid]{target="_blank"} | [run.baselineGuid]{target="_blank"} | String equal to Guid of a previous run | +| [CorrelationGuid]{target="_blank"} | [automationDetails.correlationGuid]{target="_blank"} | Guid shared by all runs of the same type | + +## Updating from previous versions + +Cake.Issues 4.6.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.6.0){target="_blank"} + +[SarifIssueReportFormatSettings.ExistingIssues]: https://cakebuild.net/api/Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings/B37B3648 +[baselineState property]: https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html#_Toc34317662 +[SARIF viewer extension for Azure Pipelines]: https://marketplace.visualstudio.com/items?itemName=sariftools.sarif-viewer-build-tab +[Guid]: https://cakebuild.net/api/Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings/F52A2FFC +[automationDetails.guid]: https://docs.oasis-open.org/sarif/sarif/v2.0/csprd02/sarif-v2.0-csprd02.html#_Toc10127718 +[BaselineGuid]: https://cakebuild.net/api/Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings/54F97E33 +[run.baselineGuid]: https://docs.oasis-open.org/sarif/sarif/v2.0/csprd02/sarif-v2.0-csprd02.html#_Toc10127680 +[CorrelationGuid]: https://cakebuild.net/api/Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings/51613F52 +[automationDetails.correlationGuid]: https://docs.oasis-open.org/sarif/sarif/v2.0/csprd02/sarif-v2.0-csprd02.html#_Toc10127719 diff --git a/docs/input/news/posts/2024-07-16-cake-issues-v4.7.0-released.md b/docs/input/news/posts/2024-07-16-cake-issues-v4.7.0-released.md new file mode 100644 index 000000000..39799717e --- /dev/null +++ b/docs/input/news/posts/2024-07-16-cake-issues-v4.7.0-released.md @@ -0,0 +1,42 @@ +--- +title: Cake Issues v4.7.0 Released +date: 2024-07-16 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.7.0 has been released with detailed line information for SARIF issue provider and +support for MsBuild binary log format version 21. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for MsBuild binary logs version 21 + +Support for binary logs in version 21 has been added to `Cake.Issues.MsBuild`. + +## Enhanced line and column information from SARIF reports + +`Cake.Issues.Sarif` has been enhanced to also provide the following `IIssue` properties if available: + +- [x] `IIssue.EndLine` +- [x] `IIssue.Column` +- [x] `IIssue.EndColumn` + +## Updating from previous versions + +Cake.Issues 4.7.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.7.0){target="_blank"} diff --git a/docs/input/news/posts/2024-07-17-cake-issues-v4.7.1-released.md b/docs/input/news/posts/2024-07-17-cake-issues-v4.7.1-released.md new file mode 100644 index 000000000..ab504397b --- /dev/null +++ b/docs/input/news/posts/2024-07-17-cake-issues-v4.7.1-released.md @@ -0,0 +1,40 @@ +--- +title: Cake Issues v4.7.1 Released +date: 2024-07-17 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.7.1 has been released with bugfixes for SARIF reports + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Bugfixes for SARIF reports + +This release fixes two bugs in `Cake.Issues.Reporting.Sarif`: + +* If two or more different rules containing a rule URL are reported by the same issue provider, + the first occurrence of the second rule will have `0` as `ruleIndex` instead of `1` +* `originalUriBaseIds` should end with a slash as defined in [SARIF Specification 2.1.0 §3.14.14]. + +## Updating from previous versions + +Cake.Issues 4.7.1 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.7.1){target="_blank"} + +[SARIF Specification 2.1.0 §3.14.14]: https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html#_Toc34317431 diff --git a/docs/input/news/posts/2024-07-18-cake-issues-v4.7.2-released.md b/docs/input/news/posts/2024-07-18-cake-issues-v4.7.2-released.md new file mode 100644 index 000000000..90b538608 --- /dev/null +++ b/docs/input/news/posts/2024-07-18-cake-issues-v4.7.2-released.md @@ -0,0 +1,35 @@ +--- +title: Cake Issues v4.7.2 Released +date: 2024-07-18 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.7.2 has been released containing bug fixes for generic reporting addin. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Fix for generic reporting addin + +This release fixes an bug in `Cake.Issues.Reporting.Generic` where it was not possible to overwrite +version of JsPdf version used in [HTML DevExtreme Data Grid template]. + +## Updating from previous versions + +Cake.Issues 4.7.2 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.7.2){target="_blank"} + +[HTML DevExtreme Data Grid template]: ../../documentation/report-formats/generic/templates/htmldxdatagrid.md diff --git a/docs/input/news/posts/2024-07-19-cake-issues-v4.8.0-released.md b/docs/input/news/posts/2024-07-19-cake-issues-v4.8.0-released.md new file mode 100644 index 000000000..9fa1dd845 --- /dev/null +++ b/docs/input/news/posts/2024-07-19-cake-issues-v4.8.0-released.md @@ -0,0 +1,43 @@ +--- +title: Cake Issues v4.8.0 Released +date: 2024-07-19 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.8.0 has been released with improvements for SARIF issue provider. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Improvements for SARIF issue provider + +In previous releases the SARIF issue provider used the tool name defined in the SARIF file for a specific run as issue provider. +This has the advantage that if multiple SARIF files from different sources are read, +every issue has a different issue provider name, which reflects the original tool. + +But it can also have side-effect, for example that different states are reported to pull request depending if run is successful or not +(see [cake-contrib/Cake.Issues.Recipe#477]{target="_blank"}), because the actual issue provider name is only known once there are issues reported. + +This release introduces a new option [SarifIssuesSettings.UseToolNameAsIssueProviderName]{target="_blank"} to define whether the tool name reported +in the SARIF log or a fixed value should be used as issue provider name. + +## Updating from previous versions + +Cake.Issues 4.8.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.8.0){target="_blank"} + +[cake-contrib/Cake.Issues.Recipe#477]: https://github.com/cake-contrib/Cake.Issues.Recipe/issues/477 +[SarifIssuesSettings.UseToolNameAsIssueProviderName]: https://cakebuild.net/api/Cake.Issues.Sarif/SarifIssuesSettings/16594493 diff --git a/docs/input/news/posts/2024-07-25-cake-issues-v4.9.0-released.md b/docs/input/news/posts/2024-07-25-cake-issues-v4.9.0-released.md new file mode 100644 index 000000000..3ec30f643 --- /dev/null +++ b/docs/input/news/posts/2024-07-25-cake-issues-v4.9.0-released.md @@ -0,0 +1,43 @@ +--- +title: Cake Issues v4.9.0 Released +date: 2024-07-25 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.9.0 has been released with bugfixes for SARIF report format and Terraform issue provider. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Bugfixes for SARIF report format + +This release fixes an issue where entries in a SARIF report were marked as updated if branch or commit in file link has changed. + +To achieve this, a [new constructor]{target="_blank"} for the generic `IIssueComparer` has been introduced, which allows to define +which `IIssue` properties should be ignored for the comparison. + +## Bugfixes for Terraform issue provider + +A bug has been fixed where root directory was not correctly determined when running on Linux or macOS. + +## Updating from previous versions + +Cake.Issues 4.9.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.9.0){target="_blank"} + +[new constructor]: https://cakebuild.net/api/Cake.Issues/IIssueComparer/0089D7CF diff --git a/docs/input/news/posts/2024-07-30-cake-issues-v4.10.0-released.md b/docs/input/news/posts/2024-07-30-cake-issues-v4.10.0-released.md new file mode 100644 index 000000000..14e5f2b30 --- /dev/null +++ b/docs/input/news/posts/2024-07-30-cake-issues-v4.10.0-released.md @@ -0,0 +1,34 @@ +--- +title: Cake Issues v4.10.0 Released +date: 2024-07-30 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.10.0 has been released with support for MsBuild binary log format version 22. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for MsBuild binary logs version 22 + +Support for binary logs in version 20 has been added to `Cake.Issues.MsBuild`. + +## Updating from previous versions + +Cake.Issues 4.10.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.10.0){target="_blank"} diff --git a/docs/input/news/posts/2024-08-20-cake-issues-v4.10.1-released.md b/docs/input/news/posts/2024-08-20-cake-issues-v4.10.1-released.md new file mode 100644 index 000000000..7a8942d70 --- /dev/null +++ b/docs/input/news/posts/2024-08-20-cake-issues-v4.10.1-released.md @@ -0,0 +1,54 @@ +--- +title: Cake Issues v4.10.1 Released +date: 2024-08-20 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version v4.10.1 has been released with bugfixes for Cake Frosting and file linking + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [gep13](https://github.com/gep13){target="_blank"} +* [hotchkj](https://github.com/hotchkj){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Bugfixes for Cake Frosting + +This release fixes dependencies of the following Cake Frosting optimized NuGet packages: + +* [Cake.Frosting.Issues.PullRequests.AppVeyor]{target="_blank"} +* [Cake.Frosting.Issues.PullRequests.AzureDevOps]{target="_blank"} +* [Cake.Frosting.Issues.PullRequests.GitHubActions]{target="_blank"} +* [Cake.Frosting.Issues.Reporting.Console]{target="_blank"} +* [Cake.Frosting.Issues.Reporting.Generic]{target="_blank"} +* [Cake.Frosting.Issues.Reporting.Sarif]{target="_blank"} + +## Bugfixes for file linking + +This release fixes an issue that file links are created for issues which are not related to a file. + +## Updating from previous versions + +Cake.Issues v4.10.1 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/v4.10.1){target="_blank"} + +[Cake.Frosting.Issues.PullRequests.AppVeyor]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AppVeyor/4.10.1#dependencies-body-tab +[Cake.Frosting.Issues.PullRequests.AzureDevOps]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AzureDevOps/4.10.1#dependencies-body-tab +[Cake.Frosting.Issues.PullRequests.GitHubActions]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.GitHubActions/4.10.1#dependencies-body-tab +[Cake.Frosting.Issues.Reporting.Console]: https://www.nuget.org/packages/Cake.Frosting.Issues.Reporting.Console/4.10.1#dependencies-body-tab +[Cake.Frosting.Issues.Reporting.Generic]: https://www.nuget.org/packages/Cake.Frosting.Issues.Reporting.Generic/4.10.1#dependencies-body-tab +[Cake.Frosting.Issues.Reporting.Sarif]: https://www.nuget.org/packages/Cake.Frosting.Issues.Reporting.Sarif/4.10.1#dependencies-body-tab diff --git a/docs/input/news/posts/2024-10-06-cake-issues-v4.11.0-released.md b/docs/input/news/posts/2024-10-06-cake-issues-v4.11.0-released.md new file mode 100644 index 000000000..361d450d2 --- /dev/null +++ b/docs/input/news/posts/2024-10-06-cake-issues-v4.11.0-released.md @@ -0,0 +1,33 @@ +--- +title: Cake Issues v4.11.0 Released +date: 2024-10-06 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.11.0 has been released with support for MsBuild binary log format version 23. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for MsBuild binary logs version 23 + +Support for binary logs in version 23 has been added to `Cake.Issues.MsBuild`. + +## Updating from previous versions + +Cake.Issues 4.11.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.11.0){target="_blank"} diff --git a/docs/input/news/posts/2024-11-05-cake-issues-v4.12.0-released.md b/docs/input/news/posts/2024-11-05-cake-issues-v4.12.0-released.md new file mode 100644 index 000000000..85493493a --- /dev/null +++ b/docs/input/news/posts/2024-11-05-cake-issues-v4.12.0-released.md @@ -0,0 +1,33 @@ +--- +title: Cake Issues v4.12.0 Released +date: 2024-11-05 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 4.12.0 has been released with support for MsBuild binary log format version 24. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for MsBuild binary logs version 24 + +Support for binary logs in version 24 has been added to `Cake.Issues.MsBuild`. + +## Updating from previous versions + +Cake.Issues 4.12.0 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.12.0){target="_blank"} diff --git a/docs/input/news/posts/2024-12-02-cake-issues-v5.0.0-released.md b/docs/input/news/posts/2024-12-02-cake-issues-v5.0.0-released.md new file mode 100644 index 000000000..06eec1382 --- /dev/null +++ b/docs/input/news/posts/2024-12-02-cake-issues-v5.0.0-released.md @@ -0,0 +1,50 @@ +--- +title: Cake Issues v5.0.0 Released +date: 2024-12-02 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 5.0.0 has been released. +This is a major release, containing breaking changes beside bringing new features and bug fixes across all addins. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Support for Cake 5.0 + +All addins have been updated to support Cake 5.x. + +Target framework have been updated to .NET 8 and .NET 9 to be in line with Cake. + +## Improvements for Cake Frosting + +`Cake.Frosting.Issues.PullRequests.AzureDevOps` now references `Cake.Frosting.AzureDevOps`, +a version of `Cake.AzureDevOps`, optimized for Cake Frosting. + +Instead of shipping client assemblies to access Azure DevOps as part of `Cake.AzureDevOps`, +`Cake.Frosting.AzureDevOps` references the corresponding NuGet packages, which for example +allows to control version of the libraries used. + +## Security improvements + +Transitive dependencies which contain known security vulnerabilities have been updated to +newer versions where the vulnerabilities are fixed. + +## Updating from previous versions + +Cake.Issues 5.0.0 is a breaking release, which means that there is a small change that changes to your +build script are required. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.0){target="_blank"} diff --git a/docs/input/news/posts/2024-12-17-cake-issues-v5.0.1-released.md b/docs/input/news/posts/2024-12-17-cake-issues-v5.0.1-released.md new file mode 100644 index 000000000..798f2684b --- /dev/null +++ b/docs/input/news/posts/2024-12-17-cake-issues-v5.0.1-released.md @@ -0,0 +1,38 @@ +--- +title: Cake Issues v5.0.1 Released +date: 2024-12-17 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 5.0.1 has been released containing bug fixes for Cake Frosting addins + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## Bugfixes for Cake Frosting + +This release fixes dependencies of the following Cake Frosting optimized NuGet packages: + +* [Cake.Frosting.Issues.PullRequests.AppVeyor]{target="_blank"} + +## Updating from previous versions + +Cake.Issues 4.7.2 addins are compatible with any 4.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/4.7.2){target="_blank"} + +[Cake.Frosting.Issues.PullRequests.AppVeyor]: https://www.nuget.org/packages/Cake.Frosting.Issues.PullRequests.AppVeyor/5.0.1#dependencies-body-tab diff --git a/docs/input/news/posts/2024-12-21-new-website.md b/docs/input/news/posts/2024-12-21-new-website.md new file mode 100644 index 000000000..24fc85ca1 --- /dev/null +++ b/docs/input/news/posts/2024-12-21-new-website.md @@ -0,0 +1,33 @@ +--- +title: New website +date: 2024-12-21 +categories: + - Announcements +search: + boost: 0.5 +--- + +Today a new version of the Cake Issues website has been published. + + + +The Cake Issues website was introduced 2017 as a static website built using [Wyam](https://github.com/Wyamio/Wyam){target="_blank"}, +like the [Cake website](https://cakebuild.net/){target="_blank"}. +Using [Wyam](https://github.com/Wyamio/Wyam){target="_blank"} allowed to add full API documentation and other features like list of addins or overview of open issues across all addins. + +[Wyam](https://github.com/Wyamio/Wyam){target="_blank"} is no longer maintained, +with [Statiq](https://www.statiq.dev/){target="_blank"} as its successor. +Unfortunately also the deployment pipeline for the Cake Issues website stopped working in 2023, resulting in the website no longer receiving updates. + +Since the introduction of the Cake Issues website seven years ago, the [Cake website](https://cakebuild.net/){target="_blank"} also has been improved, +among other things, with a dedicated page for each addin listing the aliases the addin provides. +These improvements made a full API documentation on Cake Issues website somehow redundant. + +With .NET API documentation no longer being a requirement there are much more tooling options available. +The choice was made to use [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/){target="_blank"}, +which comes with a lot of features for writing technical documentation. + +One of the features of the new website is support for multiple versions using [mike](https://github.com/jimporter/mike){target="_blank"}. +`https://cakeissues.net/latest/` will always point to the documentation of the latest released version. +`https://cakeissues.net/develop/` points to the documentation of the current development branch. +Beside that there's now a version selector in the header to show documentation for any old version. diff --git a/docs/input/news/posts/2025-01-01-2024-contributions.png b/docs/input/news/posts/2025-01-01-2024-contributions.png new file mode 100644 index 000000000..6de62332b Binary files /dev/null and b/docs/input/news/posts/2025-01-01-2024-contributions.png differ diff --git a/docs/input/news/posts/2025-01-01-2024-recap.md b/docs/input/news/posts/2025-01-01-2024-recap.md new file mode 100644 index 000000000..f3dd5ae3d --- /dev/null +++ b/docs/input/news/posts/2025-01-01-2024-recap.md @@ -0,0 +1,76 @@ +--- +title: 2024 In Review +date: 2025-01-01 +categories: + - Announcements +search: + boost: 0.5 +--- + +2024 had been an amazing year for Cake Issues. In this post we'll look back to what had been achieved in 2024. + +![Cake Issues contribution graph for 2024](2025-01-01-2024-contributions.png "Cake Issues contribution graph for 2024") + + + +## Alignment of addin lifecycles + +2024 started with an [announcement to consolidate all Cake Issue addins] into the main [Cake.Issues GitHub repository]{target="_blank"}, +which has been finished by now. + +Beside having all addins share a release lifecycle, having them in a single repository also simplified maintenance work and release process. +This resulted in a total of 20 releases of Cake Issues in 2024, including one major release with [5.0.0], bringing constant improvements and bugfixes. + +Core `Cake.Issues` addin has seen a steady, and stronger than 2023, rise of downloads during 2024, +resulting in nearly 1 million downloads by the end of the year: + +![Cake.Issues NuGet package downloads for 2024](2025-01-01-downloads.png "Cake.Issues NuGet package downloads for 2024") + +See [NuGet Trends](https://nugettrends.com/packages?ids=Cake.Issues&months=12){target="_blank"} for details. + +The individual addins had a different age, some up to [7 years old]{target="_blank"}, written for .NET Framework. +As part of the consolidation of all addins in a single mono-repository effort was made to unify and modernize the code base across all addins. + +## New addins + +With the [introduction of Cake.Issues.Sarif] a lot of additional tools supporting the [SARIF] standard +are now supported by Cake Issues as listed on [Supported Tools]. + +## Improvements for Cake Frosting + +Several improvements were released during 2024 for running Cake Issues with Cake Frosting. + +For all addins a NuGet package optimized for running with Cake Frosting is now available. +These NuGet packages have dependencies to Cake, Cake Issues core addins or any other required dependency defined, +which gives full control about the dependency, their version and update behavior to the user through the standard .NET project system. + +These packages also support implicit usings improving discoverability of aliases for build authors. +Implicit usings can be enabled by setting `enable` in the csproj file of a build. + +## Updated website + +The end of 2024 saw also the [relaunch of Cake Issues website], which has been updated to modern standards and tooling. +Effort has also been put into content to improve discoverability of documentation for users. +Examples and documentation have also been updated to latest Cake Issues and .NET version. + +## Thanks + +❤ Huge thanks to our community! All what had been achieved in 2024 would not have been possible without the support and contributions of the community! ❤ + +People contributing to Cake Issues in 2024: + +* [christianbumann](https://github.com/christianbumann){target="_blank"} +* [eoehen](https://github.com/eoehen){target="_blank"} +* [gep13](https://github.com/gep13){target="_blank"} +* [hotchkj](https://github.com/hotchkj){target="_blank"} +* [pascalberger](https://github.com/pascalberger){target="_blank"} +* [Speeedy01](https://github.com/Speeedy01){target="_blank"} + +[announcement to consolidate all Cake Issue addins]: 2024-01-14-align-addin-lifecycle.md +[Cake.Issues GitHub repository]: https://github.com/cake-contrib/Cake.Issues +[5.0.0]: 2024-12-02-cake-issues-v5.0.0-released.md +[7 years old]: https://github.com/cake-contrib/Cake.Prca/commit/438b3a1a609e5b9cc9e6f8f489a73988f9ed1f4d +[introduction of Cake.Issues.Sarif]: 2024-04-14-sarif-issue-provider.md +[SARIF]: https://sarifweb.azurewebsites.net/ +[Supported Tools]: ../../documentation/supported-tools.md +[relaunch of Cake Issues website]: 2024-12-21-new-website.md diff --git a/docs/input/news/posts/2025-01-01-downloads.png b/docs/input/news/posts/2025-01-01-downloads.png new file mode 100644 index 000000000..7fff02576 Binary files /dev/null and b/docs/input/news/posts/2025-01-01-downloads.png differ diff --git a/docs/input/news/posts/2025-01-03-cake-issues-v5.1.0-released.md b/docs/input/news/posts/2025-01-03-cake-issues-v5.1.0-released.md new file mode 100644 index 000000000..d5437941d --- /dev/null +++ b/docs/input/news/posts/2025-01-03-cake-issues-v5.1.0-released.md @@ -0,0 +1,47 @@ +--- +title: Cake Issues v5.1.0 Released +date: 2025-01-03 +categories: + - Release Notes +search: + boost: 0.5 +--- + +Cake Issues version 5.1.0 has been released introducing a new issue provider for Test Anything Protocol (TAP) compatible files. + + + +This post shows the highlights included in this release. +For update instructions skip to [Updating from previous versions](#updating-from-previous-versions). + +❤ Huge thanks to our community! This release would not have been possible without your support and contributions! ❤ + +People working on this release: + +* [pascalberger](https://github.com/pascalberger){target="_blank"} + +## New issue provider for Test Anything Protocol (TAP) files + +A new [Cake.Issues.Tap addin] has been released which adds support for reading issues in [Test Anything Protocol (TAP)]{target="_blank"} format. + +See [New addin for reading TAP files](2025-01-03-tap-issue-provider.md) for details. + +## Improvements for Cake Frosting in Cake Issues Recipe + +[Cake Issues Recipe] for Cake Frosting has been updated to use `Cake.Frosting.AzureDevOps` instead of `Cake.AzureDevOps` allow +more control over dependencies in Cake Frosting builds. + +## Documentation improvements for Cake Frosting + +Examples for Cake Frosting have been added across whole documentation. + +## Updating from previous versions + +Cake.Issues 5.1.0 addins are compatible with any 5.x addins. +To update to the new version bump the version of the specific addins. + +For details see [release notes](https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0){target="_blank"} + +[Cake.Issues.Tap addin]: ../../documentation/issue-providers/tap/index.md +[Test Anything Protocol (TAP)]: https://testanything.org/ +[Cake Issues Recipe]: ../../documentation/recipe/index.md diff --git a/docs/input/news/posts/2025-01-03-tap-issue-provider.md b/docs/input/news/posts/2025-01-03-tap-issue-provider.md new file mode 100644 index 000000000..cd488f89f --- /dev/null +++ b/docs/input/news/posts/2025-01-03-tap-issue-provider.md @@ -0,0 +1,36 @@ +--- +title: New addin for reading Test Anything Protocol (TAP) files +date: 2025-01-03 +categories: + - New Addin +search: + boost: 0.5 +--- + +A new [Cake.Issues.Tap addin] has been released which adds support for reading issues in [Test Anything Protocol (TAP)]{target="_blank"} format. + + + +[Test Anything Protocol (TAP)]{target="_blank"} is a protocol for communicating between test logic in a language-agnostic way. +There are several linting tools which can output their result in a TAP compatible format. + +The [Cake.Issues.Tap addin] supports multiple log file formats. +Details, like file, line / column or rule information, are not standardized in Test Anything Protocol (TAP). +The `GenericLogFileFormat` will therefore only return issues containing the description, which might be the file name for some tools. +To retrieve detailed information a tool specific log file format needs to be used which can parse the non-standardized data provided by the tool for every issue. + +There are additional log file formats for the following tools available: + +* [stylelint](https://stylelint.io/){target="_blank"} +* [Textlint](https://textlint.github.io/){target="_blank"} + +See [Supported Tools] for an updated list of supported tools. + +The addins is available in a version for Cake .NET Tool ([Cake.Issues.Tap]{target="_blank"}) +and Cake Frosting ([Cake.Frosting.Issues.Tap]{target="_blank"}). + +[Cake.Issues.Tap addin]: ../../documentation/issue-providers/tap/index.md +[Test Anything Protocol (TAP)]: https://testanything.org/ +[Supported Tools]: ../../documentation/supported-tools.md +[Cake.Issues.Tap]: https://www.nuget.org/packages/Cake.Issues.Tap +[Cake.Frosting.Issues.Tap]: https://www.nuget.org/packages/Cake.Frosting.Issues.Tap diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 000000000..c5729bcff --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,298 @@ +# Project information +site_name: Cake Issues +site_url: https://cakeissues.net +site_author: Cake Issues Contributors +site_description: Issue Management for the Cake Build System + +# Repository +repo_name: cake-contrib/Cake.Issues +repo_url: https://github.com/cake-contrib/Cake.Issues +edit_uri: edit/develop/docs/input/ + +# Copyright +copyright: Copyright © Cake Issues Contributors + +# Build configuration +docs_dir: input +strict: true +validation: + omitted_files: warn + absolute_links: warn + unrecognized_links: warn + anchors: warn + +# Preview controls +watch: + - snippets + +# Theme configuration +theme: + name: material + custom_dir: overrides + language: en + palette: + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: light blue + toggle: + icon: material/brightness-7 + name: Switch to dark mode + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: deep purple + toggle: + icon: material/brightness-4 + name: Switch to system preference + features: + - content.action.edit + - content.code.annotate + - content.code.copy + - content.tabs.link + - content.tooltips + - navigation.indexes + - navigation.instant + - navigation.instant.progress + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - search.highlight + - search.suggest + +# Plugins +plugins: + - blog: + blog_dir: news + post_readtime: true + - macros + - search + - social: + enabled: !ENV [GITHUB_ACTIONS, false] + - table-reader + +# Extensions +markdown_extensions: + - abbr + - admonition + - attr_list + - md_in_html + - pymdownx.details + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets: + auto_append: + - snippets/abbreviations.md + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + slugify: !!python/object/apply:pymdownx.slugs.slugify + kwds: + case: lower + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde + - toc: + permalink: true + +# Additional configuration +extra: + # renovate: datasource=nuget depName=Cake.Tool versioning=loose + cake_version: 5.0.0 + # renovate: datasource=nuget depName=Cake.AzureDevOps versioning=loose + cake_azuredevops_version: 5.0.0 + # renovate: datasource=nuget depName=Cake.DocFx versioning=loose + cake_docfx_version: 1.0.0 + # renovate: datasource=nuget depName=Cake.Issues versioning=loose + cake_issues_version: 5.1.0 + # renovate: datasource=nuget depName=Cake.Markdownlint versioning=loose + cake_markdownlint_version: 4.0.0 + # renovate: datasource=nuget depName=Cake.Git versioning=loose + cake_git_version: 5.0.1 + # renovate: datasource=nuget depName=JetBrains.ReSharper.CommandLineTools versioning=loose + resharper_commandlinetool_version: 2024.3.3 + example_tfm: net9.0 + version: + provider: mike + social: + - icon: fontawesome/brands/github + link: https://github.com/cake-contrib/Cake.Issues + +# Page tree +nav: + - Home: index.md + - News: + - news/index.md + - Documentation: + - Key concepts: + - Overview: documentation/overview.md + - How Cake Issues Works: documentation/how-cake-issues-works.md + - Features: documentation/features.md + - How To Use: + - Usage: + - documentation/usage/index.md + - Recipe: + - documentation/usage/recipe/index.md + - Cake.Issues.Recipe: documentation/usage/recipe/using-cake-issues-recipe.md + - Cake.Frosting.Issues.Recipe: documentation/usage/recipe/using-cake-frosting-issues-recipe.md + - Creating Issues: documentation/usage/creating-issues/creating-issues.md + - Reading Issues: + - documentation/usage/reading-issues/index.md + - Reading Issues: documentation/usage/reading-issues/reading-issues.md + - Additional Run Information: documentation/usage/reading-issues/run-information.md + - File Linking: documentation/usage/reading-issues/file-linking.md + - Creating Reports: + - documentation/usage/creating-reports/index.md + - Creating Reports: documentation/usage/creating-reports/creating-reports.md + - Reporting Issues To Pull Requests: + - documentation/usage/reporting-issues-to-pull-requests/index.md + - Report Issues To Pull Requests: documentation/usage/reporting-issues-to-pull-requests/report-issues-to-pull-requests.md + - Custom Issue Filter: documentation/usage/reporting-issues-to-pull-requests/custom-issue-filter.md + - Breaking Builds: documentation/usage/breaking-builds/breaking-builds.md + - Supported Tools: documentation/supported-tools.md + - Recipe: + - documentation/recipe/index.md + - Supported Tools: documentation/recipe/supported-tools.md + - Configuration: documentation/recipe/configuration.md + - Tasks: documentation/recipe/tasks.md + - Demos: documentation/recipe/demos.md + - Issue Providers: + - documentation/issue-providers/index.md + - DocFx: + - documentation/issue-providers/docfx/index.md + - Features: documentation/issue-providers/docfx/features.md + - Examples: documentation/issue-providers/docfx/examples.md + - API: https://cakebuild.net/extensions/cake-issues-docfx" target="_blank + - ESLint: + - documentation/issue-providers/eslint/index.md + - Features: documentation/issue-providers/eslint/features.md + - API: https://cakebuild.net/extensions/cake-issues-eslint" target="_blank + - Git Repository: + - documentation/issue-providers/gitrepository/index.md + - Features: documentation/issue-providers/gitrepository/features.md + - Examples: documentation/issue-providers/gitrepository/examples.md + - Rules: + - documentation/issue-providers/gitrepository/rules/index.md + - BinaryFileNotTrackedByLfs: documentation/issue-providers/gitrepository/rules/BinaryFileNotTrackedByLfs.md + - FilePathTooLong: documentation/issue-providers/gitrepository/rules/FilePathTooLong.md + - API: https://cakebuild.net/extensions/cake-issues-gitrepository" target="_blank + - InspectCode: + - documentation/issue-providers/inspectcode/index.md + - Features: documentation/issue-providers/inspectcode/features.md + - Examples: documentation/issue-providers/inspectcode/examples.md + - API: https://cakebuild.net/extensions/cake-issues-inspectcode" target="_blank + - markdownlint: + - documentation/issue-providers/markdownlint/index.md + - Features: documentation/issue-providers/markdownlint/features.md + - Examples: documentation/issue-providers/markdownlint/examples.md + - API: https://cakebuild.net/extensions/cake-issues-markdownlint" target="_blank + - MsBuild: + - documentation/issue-providers/msbuild/index.md + - Features: documentation/issue-providers/msbuild/features.md + - Examples: documentation/issue-providers/msbuild/examples.md + - API: https://cakebuild.net/extensions/cake-issues-msbuild" target="_blank + - Sarif: + - documentation/issue-providers/sarif/index.md + - Features: documentation/issue-providers/sarif/features.md + - API: https://cakebuild.net/extensions/cake-issues-sarif" target="_blank + - Test Anything Protocol (TAP): + - documentation/issue-providers/tap/index.md + - Features: documentation/issue-providers/tap/features.md + - API: https://cakebuild.net/extensions/cake-issues-tap" target="_blank + - Terraform: + - documentation/issue-providers/terraform/index.md + - Features: documentation/issue-providers/terraform/features.md + - API: https://cakebuild.net/extensions/cake-issues-terraform" target="_blank + - Report Formats: + - documentation/report-formats/index.md + - Console: + - documentation/report-formats/console/index.md + - Features: documentation/report-formats/console/features.md + - Examples: documentation/report-formats/console/examples.md + - API: https://cakebuild.net/extensions/cake-issues-reporting-console" target="_blank + - Generic: + - documentation/report-formats/generic/index.md + - Features: documentation/report-formats/generic/features.md + - Examples: + - documentation/report-formats/generic/examples/index.md + - Embedded Default Template: documentation/report-formats/generic/examples/default-template.md + - Custom Template: documentation/report-formats/generic/examples/custom-template.md + - Template Gallery: + - documentation/report-formats/generic/templates/index.md + - HTML DevExtreme Data Grid: documentation/report-formats/generic/templates/htmldxdatagrid.md + - HTML Data Table: documentation/report-formats/generic/templates/htmldatatable.md + - HTML Diagnostic: documentation/report-formats/generic/templates/htmldiagnostic.md + - API: https://cakebuild.net/extensions/cake-issues-reporting-generic" target="_blank + - Sarif: + - documentation/report-formats/sarif/index.md + - Features: documentation/report-formats/sarif/features.md + - Examples: documentation/report-formats/sarif/examples.md + - API: https://cakebuild.net/extensions/cake-issues-reporting-sarif" target="_blank + - Pull Request Systems: + - documentation/pull-request-systems/index.md + - AppVeyor: + - documentation/pull-request-systems/appveyor/index.md + - Features: documentation/pull-request-systems/appveyor/features.md + - Examples: + - documentation/pull-request-systems/appveyor/examples/index.md + - Writing Messages To AppVeyor: documentation/pull-request-systems/appveyor/examples/write-messages.md + - GitHub Pull Request Integration: documentation/pull-request-systems/appveyor/examples/github-pullrequest-integration.md + - API: https://cakebuild.net/extensions/cake-issues-pullrequests-appveyor" target="_blank + - Azure DevOps: + - documentation/pull-request-systems/azure-devops/index.md + - Features: documentation/pull-request-systems/azure-devops/features.md + - Setup: documentation/pull-request-systems/azure-devops/setup.md + - Examples: + - documentation/pull-request-systems/azure-devops/examples/index.md + - Using With Pull Request ID: documentation/pull-request-systems/azure-devops/examples/pullrequest-id.md + - Using With Repository Remote URL And Source Branch Name: documentation/pull-request-systems/azure-devops/examples/repository-information.md + - Using With Azure Pipelines: documentation/pull-request-systems/azure-devops/examples/azure-pipelines.md + - API: https://cakebuild.net/extensions/cake-issues-pullrequests-azuredevops" target="_blank + - GitHub Actions: + - documentation/pull-request-systems/github-actions/index.md + - Features: documentation/pull-request-systems/github-actions/features.md + - Examples: + - documentation/pull-request-systems/github-actions/examples/index.md + - Create annotations in GitHub Actions: documentation/pull-request-systems/github-actions/examples/write-annotations.md + - API: https://cakebuild.net/extensions/cake-issues-pullrequests-githubactions" target="_blank + - How To Develop: + - Extending: + - documentation/extending/index.md + - Issue Provider: + - Overview: documentation/extending/issue-provider/overview.md + - Alias Categories: documentation/extending/issue-provider/categories.md + - Tutorials: + - Simple Issue Provider: documentation/extending/issue-provider/tutorials/simple.md + - Provider Settings: documentation/extending/issue-provider/tutorials/settings.md + - Multiple Log File Formats: documentation/extending/issue-provider/tutorials/logfile-format.md + - Rule URL Resolving: documentation/extending/issue-provider/tutorials/rule-url-resolving.md + - Helper: documentation/extending/issue-provider/helper.md + - Report Format: + - Overview: documentation/extending/report-format/overview.md + - Alias Categories: documentation/extending/report-format/categories.md + - Pull Request System: + - Overview: documentation/extending/pull-request-system/overview.md + - Alias Categories: documentation/extending/pull-request-system/categories.md + - Testing: documentation/extending/testing.md + - Contributing: + - How To Contribute: documentation/contributing/how-to-contribute.md + - Open issues: https://github.com/cake-contrib/Cake.Issues/issues" target="_blank + - Build Instructions: documentation/contributing/how-to-build.md + - Release Instructions: documentation/contributing/how-to-release.md + - Resources: + - Blog Posts: documentation/resources/blog-posts.md + - Presentations: documentation/resources/presentations.md + - API: api.md + - Release Notes: https://github.com/cake-contrib/Cake.Issues/releases" target="_blank diff --git a/docs/overrides/home.html b/docs/overrides/home.html new file mode 100644 index 000000000..f2b4ba196 --- /dev/null +++ b/docs/overrides/home.html @@ -0,0 +1,9 @@ +{#- + Override to hide title and edit button on homepage +-#} + +{% extends "main.html" %} + +{% block content %} + {{ page.content }} +{% endblock %} diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 000000000..35591d61c --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{% block outdated %} + You're not viewing the latest version. + + Click here to go to latest. + +{% endblock %} \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000..ac214be75 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,6 @@ +mike==2.1.3 +mkdocs==1.6.1 +mkdocs-macros-plugin==1.3.7 +mkdocs-material==9.5.49 +mkdocs-material[imaging]==9.5.49 +mkdocs-table-reader-plugin==3.1.0 \ No newline at end of file diff --git a/docs/snippets/abbreviations.md b/docs/snippets/abbreviations.md new file mode 100644 index 000000000..17d58c945 --- /dev/null +++ b/docs/snippets/abbreviations.md @@ -0,0 +1,7 @@ + + +*[addins]: Addins allow to extend Cake language with additional aliases +*[aliases]: Aliases are convenience methods that are easily accessible directly from a Cake build +*[CI]: Continuous Integration - The practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state +*[linter]: A static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs +*[linters]: Static code analysis tools used to flag programming errors, bugs, stylistic errors and suspicious constructs diff --git a/nuspec/nuget/Cake.Frosting.Issues.DocFx.md b/nuspec/nuget/Cake.Frosting.Issues.DocFx.md index d30f02db1..f72295d82 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.DocFx.md +++ b/nuspec/nuget/Cake.Frosting.Issues.DocFx.md @@ -64,7 +64,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.DocFx.nuspec b/nuspec/nuget/Cake.Frosting.Issues.DocFx.nuspec index 06ef90f83..b213e4e49 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.DocFx.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.DocFx.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.DocFx. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting docfx docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.EsLint.md b/nuspec/nuget/Cake.Frosting.Issues.EsLint.md index 0ac6bb585..e037bfe48 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.EsLint.md +++ b/nuspec/nuget/Cake.Frosting.Issues.EsLint.md @@ -68,7 +68,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.EsLint.nuspec b/nuspec/nuget/Cake.Frosting.Issues.EsLint.nuspec index 633b9be3b..ae020e9e6 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.EsLint.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.EsLint.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.EsLint. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis javascript linting eslint docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.GitRepository.md b/nuspec/nuget/Cake.Frosting.Issues.GitRepository.md index 1a3766656..39e2882e8 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.GitRepository.md +++ b/nuspec/nuget/Cake.Frosting.Issues.GitRepository.md @@ -61,7 +61,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.GitRepository.nuspec b/nuspec/nuget/Cake.Frosting.Issues.GitRepository.nuspec index b3d16c629..5c65c3872 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.GitRepository.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.GitRepository.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.GitRepository. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis linting git docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.InspectCode.md b/nuspec/nuget/Cake.Frosting.Issues.InspectCode.md index fa308684e..23ca78d3c 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.InspectCode.md +++ b/nuspec/nuget/Cake.Frosting.Issues.InspectCode.md @@ -69,7 +69,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.InspectCode.nuspec b/nuspec/nuget/Cake.Frosting.Issues.InspectCode.nuspec index 28adb053b..e8f061e27 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.InspectCode.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.InspectCode.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.InspectCode. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider codeanalysis linting inspectcode docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.md b/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.md index 2a246540e..7a0f98390 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.md @@ -66,7 +66,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.nuspec index d9e5d31d0..a27c6879b 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Markdownlint.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Markdownlint. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting markdown markdownlint docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.MsBuild.md b/nuspec/nuget/Cake.Frosting.Issues.MsBuild.md index 3e68bd01c..9158041fd 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.MsBuild.md +++ b/nuspec/nuget/Cake.Frosting.Issues.MsBuild.md @@ -71,7 +71,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.MsBuild.nuspec b/nuspec/nuget/Cake.Frosting.Issues.MsBuild.nuspec index 04b719ec3..66469f7b6 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.MsBuild.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.MsBuild.nuspec @@ -30,7 +30,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.MsBuild. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis linting msbuild docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.md b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.md index 37e08ec6b..5d5cbe7c1 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.md +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.nuspec b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.nuspec index 062be7514..fda26276b 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AppVeyor.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.PullRequests.AppVe Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest buildserver appveyor docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.md b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.md index d7325ccf1..fe70c736a 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.md +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.nuspec b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.nuspec index 5852616a2..9edc680ed 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.AzureDevOps.nuspec @@ -28,7 +28,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.PullRequests.Azure Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest tfs azure-devops azure-devops-server docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.md b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.md index c1e2dde55..318210651 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.md +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.nuspec b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.nuspec index e5464fd8d..8dc565873 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.GitHubActions.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.PullRequests.GitHu Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest buildserver github github-actions docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.md b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.md index f9089584e..893731f81 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.md +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.nuspec b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.nuspec index 1afbd8bd5..ba4261440 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.PullRequests.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.PullRequests.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.PullRequests. Copyright © Cake Issues contributors Cake Script Cake-Issues CodeAnalysis Linting Issues Pull-Requests docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.md b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.md index dae3a3542..b1f51f4de 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.nuspec index e3d3e00b4..bbf536bec 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Console.nuspec @@ -29,7 +29,7 @@ The addin requires Cake Frosting 1.2.0 or higher. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting console docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.md b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.md index 8c0899d9a..1dcd6d9ff 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.nuspec index 2b34939d4..e18b3ad07 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Generic.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Reporting.Generic. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting html markdown razor docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.md b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.md index 2038f69f2..4e3cbcebf 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.nuspec index f9565c69b..41ac771e4 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.Sarif.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Reporting.Sarif. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting sarif docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.md b/nuspec/nuget/Cake.Frosting.Issues.Reporting.md index 80f61033b..2f83fddf4 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Reporting.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Reporting.nuspec index 54935455f..08c920362 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Reporting.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Reporting.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Reporting. Copyright © Cake Issues contributors Cake Script Cake-Issues CodeAnalysis Linting Issues Reporting docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Sarif.md b/nuspec/nuget/Cake.Frosting.Issues.Sarif.md index e089d3b0c..1fc045bd2 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Sarif.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Sarif.md @@ -57,7 +57,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Sarif.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Sarif.nuspec index 32e419d4b..971303214 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Sarif.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Sarif.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Sarif. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting sarif docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Frosting.Issues.Tap.md b/nuspec/nuget/Cake.Frosting.Issues.Tap.md new file mode 100644 index 000000000..8c41a0595 --- /dev/null +++ b/nuspec/nuget/Cake.Frosting.Issues.Tap.md @@ -0,0 +1,63 @@ +# Support for reading TAP compatible files using the Cake.Issues addin for Cake Frosting + +> **NOTE**: +> This is the version of the addin compatible with [Cake Frosting]. +> For addin compatible with [Cake .NET Tool] see [Cake.Issues.Tap](https://www.nuget.org/packages/Cake.Issues.Tap). + +The TAP support for the Cake.Issues addin for Cake allows you to read Test Anything Protocol (TAP) compatible files. + +Cake.Issues redefines issue management within the Cake build system by offering a comprehensive, universal, and extensible solution. +The unique capabilities of the addins empower development teams to enforce coding standards, generate insightful reports, +seamlessly incorporate various linting tools, and streamlining the integration with pull requests. +With its [modular architecture] and extensive [set of aliases], Cake.Issues provides a future-proof infrastructure for issue management +in Cake builds, fostering a more efficient and adaptable development process. + +For more information and extensive documentation see the [Cake.Issues website](https://cakeissues.net). +For general information about the Cake build automation system see the [Cake website](http://cakebuild.net). + +## How to use + +Integrating Cake.Issues into your Cake build is straightforward. +With minimal setup, teams can enjoy the benefits of enhanced code quality management seamlessly integrated into their existing build pipeline. + +After adding the addin the TAP log file can be parsed: + +```csharp +[TaskName("Analyze")] +public sealed class AnalyzeTask : FrostingTask +{ + public override void Run(BuildContext context) + { + var logPath = @"c:\build\log.tap"; + var repoRootPath = @"c:\repo"; + + // Read issues. + var issues = + context.ReadIssues( + context.TapIssuesFromFilePath(logPath), + repoRootPath); + + context.Information("{0} issues are found.", issues.Count()); + } +} +``` + +## Support & Discussion + +For questions and to discuss ideas & feature requests, use the [GitHub discussions on the Cake GitHub repository](https://github.com/cake-build/cake/discussions), under the [Extension Q&A](https://github.com/orgs/cake-build/discussions/categories/extension-q-a) category. + +## Contributing + +Contributions are welcome. See [Contribution Guidelines](https://github.com/cake-contrib/Cake.Issues/blob/develop/CONTRIBUTING.md). + +## License + +[MIT License - Copyright © Cake Issues contributors](LICENSE) + +Binary distributions for some addins contain third-party code which is licensed under its own respective license. +See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. + +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ +[Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting +[Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Tap.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Tap.nuspec new file mode 100644 index 000000000..7438b31ed --- /dev/null +++ b/nuspec/nuget/Cake.Frosting.Issues.Tap.nuspec @@ -0,0 +1,58 @@ + + + + Cake.Frosting.Issues.Tap + Cake.Frosting.Issues.Tap + 0.0.0 + Cake Issues contributors + pascalberger, cake-contrib + Support for reading TAP compatible files using the Cake.Issues addin for Cake Frosting + +The TAP support for the Cake.Issues addin for Cake allows you to read Test Anything Protocol (TAP) compatible files. + +This addin provides the aliases for reading issues from TAP compatible files and providing them to the Cake.Issues addin. +It also requires the core Cake.Issues addin. + +There are also additional addins for generating reports or posting issues to pull requests. + +See the Project Site for an overview of the whole ecosystem of addins for working with issues in Cake scripts. + +NOTE: +This is the version of the addin compatible with Cake Frosting. +For addin compatible with Cake Script Runners see Cake.Issues.Tap. + + MIT + https://cakeissues.net + icon.png + false + + Copyright © Cake Issues contributors + cake cake-addin cake-issues cake-issueprovider linting tap + docs\README.md + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Frosting.Issues.Tap.targets b/nuspec/nuget/Cake.Frosting.Issues.Tap.targets new file mode 100644 index 000000000..9d33de36b --- /dev/null +++ b/nuspec/nuget/Cake.Frosting.Issues.Tap.targets @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Frosting.Issues.Terraform.md b/nuspec/nuget/Cake.Frosting.Issues.Terraform.md index b2359c0e5..c6ff8de94 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Terraform.md +++ b/nuspec/nuget/Cake.Frosting.Issues.Terraform.md @@ -69,7 +69,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Frosting.Issues.Terraform.nuspec b/nuspec/nuget/Cake.Frosting.Issues.Terraform.nuspec index cf6dab34f..5ca3b18c7 100644 --- a/nuspec/nuget/Cake.Frosting.Issues.Terraform.nuspec +++ b/nuspec/nuget/Cake.Frosting.Issues.Terraform.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Script Runners see Cake.Issues.Terraform. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting terraform docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.DocFx.md b/nuspec/nuget/Cake.Issues.DocFx.md index ac5ab630f..999dea83b 100644 --- a/nuspec/nuget/Cake.Issues.DocFx.md +++ b/nuspec/nuget/Cake.Issues.DocFx.md @@ -60,7 +60,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.DocFx.nuspec b/nuspec/nuget/Cake.Issues.DocFx.nuspec index ece102aa7..e3884d596 100644 --- a/nuspec/nuget/Cake.Issues.DocFx.nuspec +++ b/nuspec/nuget/Cake.Issues.DocFx.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.DocFx. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting docfx docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.EsLint.md b/nuspec/nuget/Cake.Issues.EsLint.md index 6ab96566e..af814e33c 100644 --- a/nuspec/nuget/Cake.Issues.EsLint.md +++ b/nuspec/nuget/Cake.Issues.EsLint.md @@ -64,7 +64,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.EsLint.nuspec b/nuspec/nuget/Cake.Issues.EsLint.nuspec index e602d90fd..6a997286f 100644 --- a/nuspec/nuget/Cake.Issues.EsLint.nuspec +++ b/nuspec/nuget/Cake.Issues.EsLint.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.EsLint. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis javascript linting eslint docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.GitRepository.md b/nuspec/nuget/Cake.Issues.GitRepository.md index 30a4c8674..b420956d5 100644 --- a/nuspec/nuget/Cake.Issues.GitRepository.md +++ b/nuspec/nuget/Cake.Issues.GitRepository.md @@ -57,7 +57,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.GitRepository.nuspec b/nuspec/nuget/Cake.Issues.GitRepository.nuspec index 2c8f34a08..3a8adaa4e 100644 --- a/nuspec/nuget/Cake.Issues.GitRepository.nuspec +++ b/nuspec/nuget/Cake.Issues.GitRepository.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.GitRepository. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis linting git docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.InspectCode.md b/nuspec/nuget/Cake.Issues.InspectCode.md index 2c92ce2fe..5f3c37f71 100644 --- a/nuspec/nuget/Cake.Issues.InspectCode.md +++ b/nuspec/nuget/Cake.Issues.InspectCode.md @@ -65,7 +65,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.InspectCode.nuspec b/nuspec/nuget/Cake.Issues.InspectCode.nuspec index 95dfa30b8..bd05f3c3f 100644 --- a/nuspec/nuget/Cake.Issues.InspectCode.nuspec +++ b/nuspec/nuget/Cake.Issues.InspectCode.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.InspectCode. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider codeanalysis linting inspectcode docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Markdownlint.md b/nuspec/nuget/Cake.Issues.Markdownlint.md index 6f1b78c85..7eee0a36b 100644 --- a/nuspec/nuget/Cake.Issues.Markdownlint.md +++ b/nuspec/nuget/Cake.Issues.Markdownlint.md @@ -62,7 +62,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Markdownlint.nuspec b/nuspec/nuget/Cake.Issues.Markdownlint.nuspec index 96b5bce24..be28fc303 100644 --- a/nuspec/nuget/Cake.Issues.Markdownlint.nuspec +++ b/nuspec/nuget/Cake.Issues.Markdownlint.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Markdownlint. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting markdown markdownlint docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.MsBuild.md b/nuspec/nuget/Cake.Issues.MsBuild.md index 22c65020a..d20bfb494 100644 --- a/nuspec/nuget/Cake.Issues.MsBuild.md +++ b/nuspec/nuget/Cake.Issues.MsBuild.md @@ -67,7 +67,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.MsBuild.nuspec b/nuspec/nuget/Cake.Issues.MsBuild.nuspec index 3dee6e8b5..28fe94497 100644 --- a/nuspec/nuget/Cake.Issues.MsBuild.nuspec +++ b/nuspec/nuget/Cake.Issues.MsBuild.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.MsBuild. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider code-analysis linting msbuild docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.md b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.md index 401023e34..1fa95670d 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.md +++ b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec index 143bd4827..e41249f57 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Ap Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest buildserver appveyor docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.md b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.md index b3db5f710..1acbacf78 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.md +++ b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec index e41aa8916..528ede7a8 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec @@ -28,7 +28,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Az Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest tfs azure-devops azure-devops-server docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.md b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.md index 1e9308302..aac28277a 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.md +++ b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec index e39af4508..09206f33a 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Gi Copyright © Cake Issues contributors cake cake-addin cake-issues cake-pullrequestsystem issues pullrequest buildserver github github-actions docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.PullRequests.md b/nuspec/nuget/Cake.Issues.PullRequests.md index 65607d5f0..2c9c291bf 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.md +++ b/nuspec/nuget/Cake.Issues.PullRequests.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.PullRequests.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.nuspec index 84f6d7f41..db61e8d1f 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests. Copyright © Cake Issues contributors Cake Script Cake-Issues CodeAnalysis Linting Issues Pull-Requests docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Reporting.Console.md b/nuspec/nuget/Cake.Issues.Reporting.Console.md index 593f0a487..b471c84c8 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Console.md +++ b/nuspec/nuget/Cake.Issues.Reporting.Console.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec index 9adaf7eb2..fd0dde524 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec @@ -29,7 +29,7 @@ The addin requires Cake 1.2.0 or higher. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting console docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Reporting.Generic.md b/nuspec/nuget/Cake.Issues.Reporting.Generic.md index 5b474d0d9..e88978176 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Generic.md +++ b/nuspec/nuget/Cake.Issues.Reporting.Generic.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec index a28b99a56..990d2d576 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting.Gener Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting html markdown razor docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Reporting.Sarif.md b/nuspec/nuget/Cake.Issues.Reporting.Sarif.md index e26037d99..94c2b306f 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Sarif.md +++ b/nuspec/nuget/Cake.Issues.Reporting.Sarif.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec index d7f6d222f..d8fbeccf1 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting.Sarif Copyright © Cake Issues contributors cake cake-addin cake-issues cake-reportformat issues reporting sarif docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Reporting.md b/nuspec/nuget/Cake.Issues.Reporting.md index 06214d806..96b20cf08 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.md +++ b/nuspec/nuget/Cake.Issues.Reporting.md @@ -30,7 +30,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Reporting.nuspec b/nuspec/nuget/Cake.Issues.Reporting.nuspec index 01cc30818..d5e5f6cda 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.nuspec @@ -27,7 +27,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting. Copyright © Cake Issues contributors Cake Script Cake-Issues CodeAnalysis Linting Issues Reporting docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Sarif.md b/nuspec/nuget/Cake.Issues.Sarif.md index 39a5fb27d..33a38c292 100644 --- a/nuspec/nuget/Cake.Issues.Sarif.md +++ b/nuspec/nuget/Cake.Issues.Sarif.md @@ -53,7 +53,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Sarif.nuspec b/nuspec/nuget/Cake.Issues.Sarif.nuspec index 367889b07..0113fc53a 100644 --- a/nuspec/nuget/Cake.Issues.Sarif.nuspec +++ b/nuspec/nuget/Cake.Issues.Sarif.nuspec @@ -29,7 +29,7 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Sarif. Copyright © Cake Issues contributors cake cake-addin cake-issues cake-issueprovider linting sarif docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/nuspec/nuget/Cake.Issues.Tap.md b/nuspec/nuget/Cake.Issues.Tap.md new file mode 100644 index 000000000..e38d5096e --- /dev/null +++ b/nuspec/nuget/Cake.Issues.Tap.md @@ -0,0 +1,59 @@ +# Support for reading TAP compatible files using the Cake.Issues addin for Cake Build Automation System + +> **NOTE**: +> This is the version of the addin compatible with [Cake .NET Tool]. +> For addin compatible with [Cake Frosting] see [Cake.Frosting.Issues.Tap](https://www.nuget.org/packages/Cake.Frosting.Issues.Tap). + +The TAP support for the Cake.Issues addin for Cake allows you to read Test Anything Protocol (TAP) compatible files. + +Cake.Issues redefines issue management within the Cake build system by offering a comprehensive, universal, and extensible solution. +The unique capabilities of the addins empower development teams to enforce coding standards, generate insightful reports, +seamlessly incorporate various linting tools, and streamlining the integration with pull requests. +With its [modular architecture] and extensive [set of aliases], Cake.Issues provides a future-proof infrastructure for issue management +in Cake builds, fostering a more efficient and adaptable development process. + +For more information and extensive documentation see the [Cake.Issues website](https://cakeissues.net). +For general information about the Cake build automation system see the [Cake website](http://cakebuild.net). + +## How to use + +Integrating Cake.Issues into your Cake build is straightforward. +With minimal setup, teams can enjoy the benefits of enhanced code quality management seamlessly integrated into their existing build pipeline. + +After adding the addin the TAP log file can be parsed: + +```csharp +Task("Analyze").Does(() => +{ + var logPath = @"c:\build\log.tap"; + var repoRootPath = @"c:\repo"; + + // Read issues. + var issues = + ReadIssues( + TapIssuesFromFilePath(logPath), + repoRootPath); + + Information("{0} issues are found.", issues.Count()); +}); +``` + +## Support & Discussion + +For questions and to discuss ideas & feature requests, use the [GitHub discussions on the Cake GitHub repository](https://github.com/cake-build/cake/discussions), under the [Extension Q&A](https://github.com/orgs/cake-build/discussions/categories/extension-q-a) category. + +## Contributing + +Contributions are welcome. See [Contribution Guidelines](https://github.com/cake-contrib/Cake.Issues/blob/develop/CONTRIBUTING.md). + +## License + +[MIT License - Copyright © Cake Issues contributors](LICENSE) + +Binary distributions for some addins contain third-party code which is licensed under its own respective license. +See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. + +[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture +[set of aliases]: https://cakeissues.net/dsl/ +[Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting +[Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Tap.nuspec b/nuspec/nuget/Cake.Issues.Tap.nuspec new file mode 100644 index 000000000..ab42b90a3 --- /dev/null +++ b/nuspec/nuget/Cake.Issues.Tap.nuspec @@ -0,0 +1,40 @@ + + + + Cake.Issues.Tap + Cake.Issues.Tap + 0.0.0 + Cake Issues contributors + pascalberger, cake-contrib + Support for reading TAP compatible files using the Cake.Issues addin for Cake Build Automation System + +The TAP support for the Cake.Issues addin for Cake allows you to read Test Anything Protocol (TAP) compatible files. + +This addin provides the aliases for reading issues from TAP compatible files and providing them to the Cake.Issues addin. +It also requires the core Cake.Issues addin. + +There are also additional addins for generating reports or posting issues to pull requests. + +See the Project Site for an overview of the whole ecosystem of addins for working with issues in Cake scripts. + +NOTE: +This is the version of the addin compatible with Cake Script Runners. +For addin compatible with Cake Frosting see Cake.Frosting.Issues.Tap. + + MIT + https://cakeissues.net + icon.png + false + + Copyright © Cake Issues contributors + cake cake-addin cake-issues cake-issueprovider linting tap + docs\README.md + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 + + + + + + + + diff --git a/nuspec/nuget/Cake.Issues.Terraform.md b/nuspec/nuget/Cake.Issues.Terraform.md index c6dd1fef9..157e7925a 100644 --- a/nuspec/nuget/Cake.Issues.Terraform.md +++ b/nuspec/nuget/Cake.Issues.Terraform.md @@ -65,7 +65,7 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ [Cake Frosting]: https://cakebuild.net/docs/running-builds/runners/cake-frosting [Cake .NET Tool]: https://cakebuild.net/docs/running-builds/runners/dotnet-tool diff --git a/nuspec/nuget/Cake.Issues.Testing.md b/nuspec/nuget/Cake.Issues.Testing.md index 999c63fe6..4924ba154 100644 --- a/nuspec/nuget/Cake.Issues.Testing.md +++ b/nuspec/nuget/Cake.Issues.Testing.md @@ -26,6 +26,6 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ -[Addins]: https://cakeissues.net/docs/extending/fundamentals +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ +[Addins]: https://cakeissues.net/latest/documentation/extending/ diff --git a/nuspec/nuget/Cake.Issues.md b/nuspec/nuget/Cake.Issues.md index 51126b4d6..426ca5a31 100644 --- a/nuspec/nuget/Cake.Issues.md +++ b/nuspec/nuget/Cake.Issues.md @@ -107,8 +107,8 @@ Contributions are welcome. See [Contribution Guidelines](https://github.com/cake Binary distributions for some addins contain third-party code which is licensed under its own respective license. See [LICENSE](https://github.com/cake-contrib/Cake.Issues/blob/develop/LICENSE) for details. -[modular architecture]: https://cakeissues.net/docs/fundamentals/architecture -[set of aliases]: https://cakeissues.net/dsl/ -[Issue Providers]: https://cakeissues.net/addins/issue-provider/ -[Report Format]: https://cakeissues.net/docs/report-formats/ -[Pull Request System]: https://cakeissues.net/docs/pull-request-systems/ +[modular architecture]: https://cakeissues.net/latest/documentation/how-cake-issues-works/ +[set of aliases]: https://cakeissues.net/latest/api/ +[Issue Providers]: https://cakeissues.net/latest/documentation/issue-providers/ +[Report Format]: https://cakeissues.net/latest/documentation/report-formats/ +[Pull Request System]: https://cakeissues.net/latest/documentation/pull-request-systems/ diff --git a/nuspec/nuget/Cake.Issues.nuspec b/nuspec/nuget/Cake.Issues.nuspec index 0b0841be6..59a45f941 100644 --- a/nuspec/nuget/Cake.Issues.nuspec +++ b/nuspec/nuget/Cake.Issues.nuspec @@ -25,7 +25,7 @@ See the Project Site for an overview of the whole ecosystem of addins for workin Copyright © Cake Issues contributors cake cake-addin cake-issues code-analysis linting issues docs\README.md - https://github.com/cake-contrib/Cake.Issues/releases/tag/5.0.1 + https://github.com/cake-contrib/Cake.Issues/releases/tag/5.1.0 diff --git a/recipe.cake b/recipe.cake index 9e43db445..c0e49bee6 100644 --- a/recipe.cake +++ b/recipe.cake @@ -169,6 +169,33 @@ BuildParameters.Tasks.UploadCodecovReportTask // Custom tasks //************************************************************************************************* +Task("Install-WebsiteDependencies") + .Description("Install dependencies required for building website.") + .Does(() => +{ + StartProcess( + "pip", + new ProcessSettings { + Arguments = "install -r requirements.txt", + WorkingDirectory = "./docs" + } + ); +}); + +Task("Website") + .Description("Previews website.") + .IsDependentOn("Install-WebsiteDependencies") + .Does(() => +{ + StartProcess( + "mkdocs", + new ProcessSettings { + Arguments = "serve", + WorkingDirectory = "./docs" + } + ); +}); + Task("BreakBuildOnIssues") .Description("Breaks build if any issues in the code are found.") .Does((data) => diff --git a/src/Cake.Issues.DocFx.Tests/packages.lock.json b/src/Cake.Issues.DocFx.Tests/packages.lock.json index d4c35b04d..14f8346d2 100644 --- a/src/Cake.Issues.DocFx.Tests/packages.lock.json +++ b/src/Cake.Issues.DocFx.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.EsLint.Tests/packages.lock.json b/src/Cake.Issues.EsLint.Tests/packages.lock.json index e5b33424a..6c8fc035f 100644 --- a/src/Cake.Issues.EsLint.Tests/packages.lock.json +++ b/src/Cake.Issues.EsLint.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.GitRepository.Tests/packages.lock.json b/src/Cake.Issues.GitRepository.Tests/packages.lock.json index 2d3fd0208..a7824b2e2 100644 --- a/src/Cake.Issues.GitRepository.Tests/packages.lock.json +++ b/src/Cake.Issues.GitRepository.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.InspectCode.Tests/packages.lock.json b/src/Cake.Issues.InspectCode.Tests/packages.lock.json index 6883b81ef..ffb197903 100644 --- a/src/Cake.Issues.InspectCode.Tests/packages.lock.json +++ b/src/Cake.Issues.InspectCode.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Markdownlint.Tests/packages.lock.json b/src/Cake.Issues.Markdownlint.Tests/packages.lock.json index c0c0efa67..1fb6a956e 100644 --- a/src/Cake.Issues.Markdownlint.Tests/packages.lock.json +++ b/src/Cake.Issues.Markdownlint.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.IssueProvider.cs b/src/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.IssueProvider.cs index 691c63715..0a15550ad 100644 --- a/src/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.IssueProvider.cs +++ b/src/Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.IssueProvider.cs @@ -112,7 +112,7 @@ public static IIssueProvider MarkdownlintIssuesFromContent( /// /// var issues = /// ReadIssues( - /// MarkdownlintIssuesFromFilePath(settings), + /// MarkdownlintIssues(settings), /// @"c:\repo"); /// ]]> /// diff --git a/src/Cake.Issues.MsBuild.Tests/packages.lock.json b/src/Cake.Issues.MsBuild.Tests/packages.lock.json index ad50bc209..909748957 100644 --- a/src/Cake.Issues.MsBuild.Tests/packages.lock.json +++ b/src/Cake.Issues.MsBuild.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -347,9 +347,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json index 27e21580c..42171f3f5 100644 --- a/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -351,9 +351,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json index 68b4c23b6..3c69a4213 100644 --- a/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -1442,9 +1442,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json index 3c7e58967..1a3edfa3c 100644 --- a/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -279,9 +279,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.PullRequests.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.Tests/packages.lock.json index 9bbe6a71a..67a001881 100644 --- a/src/Cake.Issues.PullRequests.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -62,15 +62,15 @@ }, "Verify.Xunit": { "type": "Direct", - "requested": "[28.6.0, )", - "resolved": "28.6.0", - "contentHash": "zZwslZ58taOOlDPA+8t5PgL26dKqfPN48yZ4I+aBRn+ohpxCC//cbrT26Wm5XpL1g0N2IUZWf4EkLsLf/VTDEQ==", + "requested": "[28.7.0, )", + "resolved": "28.7.0", + "contentHash": "i6/QuflCD9Ky3HVtTY9IaM9Z05jWtMq0hmu34gRXFYvPmEap8kKdFnT76K/06SkV8BbOYx6ZSnjeg4RyaW+B4g==", "dependencies": { "Argon": "0.26.0", "DiffEngine": "15.6.0", "SimpleInfoName": "3.1.0", "System.IO.Hashing": "9.0.0", - "Verify": "28.6.0", + "Verify": "28.7.0", "xunit.abstractions": "2.0.3", "xunit.extensibility.execution": "2.9.2" } @@ -224,8 +224,8 @@ }, "Verify": { "type": "Transitive", - "resolved": "28.6.0", - "contentHash": "8iWWokFQaHp9R/pEJqK8EoEU0XPLHXncluEpvVMRUMzsrGYBneYvxEcr2qe31XW/LMhWYzITjrhvx5Ec2qO7kQ==", + "resolved": "28.7.0", + "contentHash": "kbbDhWmzJXiijLuJ1ysL5jyJr2PJJ9sCgj/qbEG+LRKsXnYXCid6wVmUw/ciyVUeyH38iNtyAKtVj6YS7Q0zlg==", "dependencies": { "Argon": "0.26.0", "DiffEngine": "15.6.0", @@ -332,9 +332,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -390,15 +390,15 @@ }, "Verify.Xunit": { "type": "Direct", - "requested": "[28.6.0, )", - "resolved": "28.6.0", - "contentHash": "zZwslZ58taOOlDPA+8t5PgL26dKqfPN48yZ4I+aBRn+ohpxCC//cbrT26Wm5XpL1g0N2IUZWf4EkLsLf/VTDEQ==", + "requested": "[28.7.0, )", + "resolved": "28.7.0", + "contentHash": "i6/QuflCD9Ky3HVtTY9IaM9Z05jWtMq0hmu34gRXFYvPmEap8kKdFnT76K/06SkV8BbOYx6ZSnjeg4RyaW+B4g==", "dependencies": { "Argon": "0.26.0", "DiffEngine": "15.6.0", "SimpleInfoName": "3.1.0", "System.IO.Hashing": "9.0.0", - "Verify": "28.6.0", + "Verify": "28.7.0", "xunit.abstractions": "2.0.3", "xunit.extensibility.execution": "2.9.2" } @@ -552,8 +552,8 @@ }, "Verify": { "type": "Transitive", - "resolved": "28.6.0", - "contentHash": "8iWWokFQaHp9R/pEJqK8EoEU0XPLHXncluEpvVMRUMzsrGYBneYvxEcr2qe31XW/LMhWYzITjrhvx5Ec2qO7kQ==", + "resolved": "28.7.0", + "contentHash": "kbbDhWmzJXiijLuJ1ysL5jyJr2PJJ9sCgj/qbEG+LRKsXnYXCid6wVmUw/ciyVUeyH38iNtyAKtVj6YS7Q0zlg==", "dependencies": { "Argon": "0.26.0", "DiffEngine": "15.6.0", diff --git a/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json index 0ab9c888a..875efcf1c 100644 --- a/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -296,9 +296,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json index 5d984c9f7..3c6e04e34 100644 --- a/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json @@ -4,15 +4,15 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "HtmlAgilityPack": { "type": "Direct", - "requested": "[1.11.71, )", - "resolved": "1.11.71", - "contentHash": "HlEThQBnob4/29DIiyrPSYlGXXSZUtOH7571PRev+yu8FW8n5pdxqHyun+PMm17cp3ovCrxFhXedC+1HUSdRMA==" + "requested": "[1.11.72, )", + "resolved": "1.11.72", + "contentHash": "RNLgXxTFdIGFI+o5l8c2aJ2L5StIRn9Uv8HKR76p7QP4ZUL26wzpWUCWh08xWUdkL2kocl+Xhv6VUu0rA1npVg==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -379,15 +379,15 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "HtmlAgilityPack": { "type": "Direct", - "requested": "[1.11.71, )", - "resolved": "1.11.71", - "contentHash": "HlEThQBnob4/29DIiyrPSYlGXXSZUtOH7571PRev+yu8FW8n5pdxqHyun+PMm17cp3ovCrxFhXedC+1HUSdRMA==" + "requested": "[1.11.72, )", + "resolved": "1.11.72", + "contentHash": "RNLgXxTFdIGFI+o5l8c2aJ2L5StIRn9Uv8HKR76p7QP4ZUL26wzpWUCWh08xWUdkL2kocl+Xhv6VUu0rA1npVg==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json index 01b8e3fc3..559f74981 100644 --- a/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -503,9 +503,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Reporting.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Tests/packages.lock.json index 27ce40e5c..bcf111f6c 100644 --- a/src/Cake.Issues.Reporting.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs b/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs index 3fbb24cf3..18c5050f6 100644 --- a/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs +++ b/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs @@ -261,5 +261,18 @@ public void Should_Read_Issue_Correct_For_File_Generated_By_TFLint() .WithPriority(IssuePriority.Warning) .Create()); } + + [Fact] + public void Should_Read_Issue_Correct_For_File_Generated_By_InspectCode() + { + // Given + var fixture = new SarifIssuesProviderFixture("inspectcode.sarif"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(1106); + } } } diff --git a/src/Cake.Issues.Sarif.Tests/Testfiles/inspectcode.sarif b/src/Cake.Issues.Sarif.Tests/Testfiles/inspectcode.sarif new file mode 100644 index 000000000..f3e038d42 --- /dev/null +++ b/src/Cake.Issues.Sarif.Tests/Testfiles/inspectcode.sarif @@ -0,0 +1,40719 @@ +{ + "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.6.json", + "version": "2.1.0", + "runs": [ + { + "results": [ + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Html'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 143, + "startColumn": 14, + "endLine": 143, + "endColumn": 18, + "charOffset": 10853, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "84EF3A650C615DBC7A89C97BD2A1CF9A0B7F66BBD199A0611EA5579100E14DB3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Html'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 175, + "startColumn": 19, + "endLine": 175, + "endColumn": 23, + "charOffset": 11759, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "82E466ED17F1F146ACE169A8745F761B646C927EF3E42E2BE7F865C677380E08" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Html'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 201, + "startColumn": 46, + "endLine": 201, + "endColumn": 50, + "charOffset": 13120, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EBE98FC568D514861B9F7709684FA35E89CE09371886A0DCE98D992620966EE5" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Model'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic.Tests/Templates/TestTemplate.cshtml", + "uriBaseId": "solutionDir", + "index": 1 + }, + "region": { + "startLine": 4, + "startColumn": 28, + "endLine": 4, + "endColumn": 33, + "charOffset": 75, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "29485BDE0D54D694C3F8D9C4368A47CF1C941179F2C62DACD44F235D87F4A7B3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Model'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 53, + "startColumn": 27, + "endLine": 53, + "endColumn": 32, + "charOffset": 43106, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6776262C2AF92D018892C36BB67C9E068CC7B67B59750124B359691B4C67340B" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Model'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml", + "uriBaseId": "solutionDir", + "index": 3 + }, + "region": { + "startLine": 38, + "startColumn": 36, + "endLine": 38, + "endColumn": 41, + "charOffset": 1280, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D7933C1C43A3F94A9B07633943D81F4687217341F05157158BC37C8DFA5DAB8" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Model'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 26, + "startColumn": 72, + "endLine": 26, + "endColumn": 77, + "charOffset": 1636, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5EA79C50543D6AC0611A1C43F03B6D6E91CB2D9B6CDE7C3B4B4E7328413736C3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'Model'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 87, + "startColumn": 23, + "endLine": 87, + "endColumn": 28, + "charOffset": 7851, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BDB8689D82DD1BACD8A0323453A9DCB85634BB74DDE8F2FB8C5C2B75475C184A" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 13, + "startColumn": 46, + "endLine": 13, + "endColumn": 53, + "charOffset": 309, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "64C4CA56E507EFB23AF9AC89BEFA0162F0EEEC643BCBFE78F9B4B9ABE969AE60" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 14, + "startColumn": 58, + "endLine": 14, + "endColumn": 65, + "charOffset": 400, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "821331FC13B57AA5A8602FFFA4AD9DA3619132AB800A6CADDD7DE76AF98A2DAF" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 15, + "startColumn": 52, + "endLine": 15, + "endColumn": 59, + "charOffset": 491, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C62E0E2925262DDEC98DEE76A8C4790F8848764C5EA3495579B228D142D5870C" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 16, + "startColumn": 57, + "endLine": 16, + "endColumn": 64, + "charOffset": 575, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EBCA61F9B9184DA45A36EAADBB8BCB382E34418A6F702BD30EE51F6DA65CE6F1" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 17, + "startColumn": 56, + "endLine": 17, + "endColumn": 63, + "charOffset": 663, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3EB3FEBB165FB88D9978BF2ABFAF8C802E22E9132763DA37783105754E1B13D8" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 18, + "startColumn": 57, + "endLine": 18, + "endColumn": 64, + "charOffset": 751, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E179D12B03752733D3CCE69D18786B8BD5CA7EE1EB62E115E17B3CCAAF5E38CD" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 19, + "startColumn": 57, + "endLine": 19, + "endColumn": 64, + "charOffset": 840, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9FF9F76EB6D9F6B966AEC998CB1DE32060EA9C3B595BB0E6F1B2F19A49CCA8B3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 20, + "startColumn": 58, + "endLine": 20, + "endColumn": 65, + "charOffset": 931, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6DDDB1F7DA5A70F89D8714427F153495F0817D0F79076C1A303F649470E62336" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 21, + "startColumn": 76, + "endLine": 21, + "endColumn": 83, + "charOffset": 1048, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DC1A25B96D48F4200FEB9E061FB8EB58C4FBFE5E1EBC65CD268FE80E967EEEF8" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 22, + "startColumn": 61, + "endLine": 22, + "endColumn": 68, + "charOffset": 1166, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B9CAA6E094B84FA87622650790B1A0877E5A89546549B198B4355650D00C2250" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 23, + "startColumn": 74, + "endLine": 23, + "endColumn": 81, + "charOffset": 1277, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "144DEF8714049C6459BCC30F77E02CA0C3DE6C1FB4D8F11632B8E5602D9349DE" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 24, + "startColumn": 61, + "endLine": 24, + "endColumn": 68, + "charOffset": 1396, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "51C5E2839392DB79956326F14BDCC358160059E0F24DDF96A41A253D12F693C1" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 25, + "startColumn": 74, + "endLine": 25, + "endColumn": 81, + "charOffset": 1506, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BBE47F7BCC782A85588172CA149F2F69D735AB325A7C54239DCDB0CA6B885603" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 26, + "startColumn": 52, + "endLine": 26, + "endColumn": 59, + "charOffset": 1616, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5EA79C50543D6AC0611A1C43F03B6D6E91CB2D9B6CDE7C3B4B4E7328413736C3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 27, + "startColumn": 65, + "endLine": 27, + "endColumn": 72, + "charOffset": 1753, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C6C8BA549DE6A7C19525857EF9E34E5C0D2271DEB25000B0C5035AC84E142476" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 28, + "startColumn": 57, + "endLine": 28, + "endColumn": 64, + "charOffset": 1859, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "201983B78B920AC2F2B78FBCD9E538AE0592A47E8956BFC11D5F9BD16F3DE032" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 29, + "startColumn": 70, + "endLine": 29, + "endColumn": 77, + "charOffset": 1962, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "50935536DDE0C038F477BCFD7895F7C9C3C31173BAA6C6D7CB2F643CAF1A0F9E" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 30, + "startColumn": 61, + "endLine": 30, + "endColumn": 68, + "charOffset": 2079, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A71EE886122ABBD7FA6055AB3F8A57D6F2B1FFEE922083FCA5D37918A95E5D36" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 31, + "startColumn": 74, + "endLine": 31, + "endColumn": 81, + "charOffset": 2189, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6FA65BB52693BC8C266D693DF59A9E3F8942587B9F938C4FC9F041906F6FBBC6" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 32, + "startColumn": 60, + "endLine": 32, + "endColumn": 67, + "charOffset": 2309, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "992C7CF337EC46AFCA98E88DDE7BB33D91A091B3A96852B50E5E6A10A677A25A" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 33, + "startColumn": 73, + "endLine": 33, + "endColumn": 80, + "charOffset": 2418, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8437698B59EB23A18D94A606246AD2DF827ECC5CD04ED8B2B562A00205B3B0D7" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 34, + "startColumn": 60, + "endLine": 34, + "endColumn": 67, + "charOffset": 2535, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8C1DFA794AC504B366306170FCFF75FC8207064A6E243C001EAF562C6A33ADBD" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 35, + "startColumn": 73, + "endLine": 35, + "endColumn": 80, + "charOffset": 2643, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "82EF158DE6040CAE1C05D7CB8C0FAB8B6AB0CECB99D42492351CE8BEAFDCF25E" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 36, + "startColumn": 57, + "endLine": 36, + "endColumn": 64, + "charOffset": 2757, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "55625C9450AA3A822A05DD337AB33C6F2DD94DA6AA1C3C328F00729D420CDCC5" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 37, + "startColumn": 70, + "endLine": 37, + "endColumn": 77, + "charOffset": 2860, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0E3BC0D469AB4085C4FA7A8D01F6C3F26A4D321B8664507511B7105773199472" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 38, + "startColumn": 62, + "endLine": 38, + "endColumn": 69, + "charOffset": 2976, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D86D7B9B3D3472E8933DDD319F380619FB06DC664887FFB22479DC63CB002E2F" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 39, + "startColumn": 75, + "endLine": 39, + "endColumn": 82, + "charOffset": 3088, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DD690475A123825392BEC4E1F290724034166B2CF6D363E2F8FDB11A3D3336B4" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 40, + "startColumn": 57, + "endLine": 40, + "endColumn": 64, + "charOffset": 3204, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A87B0C840BF332634ECB89ED1D188A464138370E583A9F280773B38FC95ED120" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 41, + "startColumn": 70, + "endLine": 41, + "endColumn": 77, + "charOffset": 3306, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E872D852DA7D40EA9A637291D93040306B38E935A7A92F384E013449FCE3A622" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 42, + "startColumn": 53, + "endLine": 42, + "endColumn": 60, + "charOffset": 3413, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0554F662460073B32109CCC74A949096200E77DBA954B10A07C96BA1373A7A0B" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 43, + "startColumn": 66, + "endLine": 43, + "endColumn": 73, + "charOffset": 3508, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B780F90B13BB293F2BE72E7BFDCF3F331D4E2D2B846F0EC08E72C0A9BE9AAE2" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 44, + "startColumn": 56, + "endLine": 44, + "endColumn": 63, + "charOffset": 3614, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "88E315375B3C6BD1746D122DA8F1B8D78FDC0B16441F162C728AC2FCAFBA8482" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 45, + "startColumn": 69, + "endLine": 45, + "endColumn": 76, + "charOffset": 3715, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BD5654A432FA2A45E09CBFB5D05F2AB33BE5E3BB35A282DFCC4CC7916759931D" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 46, + "startColumn": 55, + "endLine": 46, + "endColumn": 62, + "charOffset": 3823, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D1DF1F28CC3720BE8D2A9F9871E19667681882C5CB5E8CEF8B9922EA6085DC2F" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 47, + "startColumn": 68, + "endLine": 47, + "endColumn": 75, + "charOffset": 3922, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AB5C24BCF1568138E0189BF8D06248DF120B687BA7AB7C9EBB25D4BBA645AF1C" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 48, + "startColumn": 58, + "endLine": 48, + "endColumn": 65, + "charOffset": 4032, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A82E4EA018B4F6FCC4D1910833FAB2BF97110C7E4C2CC6F80681D1E129414E80" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 49, + "startColumn": 71, + "endLine": 49, + "endColumn": 78, + "charOffset": 4137, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D3563EFC7BEF6F520E007C0446338E5A506D81A29F1A99F9A8826EE28B659F0" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 50, + "startColumn": 57, + "endLine": 50, + "endColumn": 64, + "charOffset": 4249, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9EAE6B8DC4D78C6E8D2843C69FB0B122E5D70DA91E8D0DEC65EEADE118419180" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 51, + "startColumn": 70, + "endLine": 51, + "endColumn": 77, + "charOffset": 4351, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B830F4DE42482F73FC3F40B8E914C7514E4130F500B8223809A218B3C13A9E22" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 52, + "startColumn": 55, + "endLine": 52, + "endColumn": 62, + "charOffset": 4460, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F98EA562D8003F151272213A190DF886B1541C9161042B6F8A06FC8B71D5BD55" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 53, + "startColumn": 68, + "endLine": 53, + "endColumn": 75, + "charOffset": 4558, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "75B0A42018D1068E94AA061CD4A4C4F6AF3686E2DFB28560B962FFC69A565292" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 54, + "startColumn": 57, + "endLine": 54, + "endColumn": 64, + "charOffset": 4667, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F8B2BE19339C4EF9F31C2879F6958C3C68167212E69F2525906D53D0536756F2" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 55, + "startColumn": 70, + "endLine": 55, + "endColumn": 77, + "charOffset": 4769, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1161EE34A5435DA30413A902ABD7BCA4622AF89351E7831729F8499B69AD2879" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 56, + "startColumn": 56, + "endLine": 56, + "endColumn": 63, + "charOffset": 4879, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6431F60F72432BADD3C60E42755563CE7C32C943B954BB163363AF0BF0DDFDA6" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 57, + "startColumn": 69, + "endLine": 57, + "endColumn": 76, + "charOffset": 4980, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C90851E51ED280E5E66DEEB4E9E7F649E9002C77FB87A64DB83F85DEDF65BFDF" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 58, + "startColumn": 56, + "endLine": 58, + "endColumn": 63, + "charOffset": 5089, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F16459221DCC7ACBD604992DB0E11554DB07C78FB7ACF935B2718C737D475418" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 59, + "startColumn": 69, + "endLine": 59, + "endColumn": 76, + "charOffset": 5189, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EEE70921114CE7A1C99BEFDADA8F1D4107E0F8EDCCB0FE26B8907DBE6B7E91CE" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 60, + "startColumn": 55, + "endLine": 60, + "endColumn": 62, + "charOffset": 5297, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21862F7D13E3DA39BFDAA20ECF044054EAE0ED5D75DDEBD748B53BDA467162CF" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 61, + "startColumn": 54, + "endLine": 61, + "endColumn": 61, + "charOffset": 5448, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "93920D7B368C40D8229A1057B5404E5D0F0D277CCDADC42ABDE8A16168D769C1" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 62, + "startColumn": 106, + "endLine": 62, + "endColumn": 113, + "charOffset": 5728, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "30984E26C3E8B299456311007F6E593D8487FE8DBB5FDDE61FD642918AF59E72" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 63, + "startColumn": 92, + "endLine": 63, + "endColumn": 99, + "charOffset": 5859, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9DE71A79C3009ED053F63CED08B59245B4D601A0377D939A71D85E3007CC3049" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 64, + "startColumn": 58, + "endLine": 64, + "endColumn": 65, + "charOffset": 5990, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9647FE29765DD4AF5B162A791881B99E8C92FC574828545EDDDB24EA247F3918" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 66, + "startColumn": 57, + "endLine": 66, + "endColumn": 64, + "charOffset": 6176, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03D82E6062B0CCFFBE85080E5FC98B40D61591F7BDDD97555D172454F17AF0A9" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 67, + "startColumn": 59, + "endLine": 67, + "endColumn": 66, + "charOffset": 6275, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AACB60DD2117FBF7AD98A3A2DB796A9C314990D083A6C783071A7CE9033D01E8" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 69, + "startColumn": 58, + "endLine": 69, + "endColumn": 65, + "charOffset": 6473, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E4DD419AC6AA762AE431BAAA8073057BED54A29EF5BD0468D544C932B2BA9F2E" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 70, + "startColumn": 63, + "endLine": 70, + "endColumn": 70, + "charOffset": 6577, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6C47CBEBA3DB16C956AD4744C674A0EABCC1FA693F809F2877DB69CB025614CD" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 72, + "startColumn": 62, + "endLine": 72, + "endColumn": 69, + "charOffset": 6796, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3B95CA5D3DB8005713D49EF13DEF3CF98696C631CF0F0D831C797A366763D4EF" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 73, + "startColumn": 57, + "endLine": 73, + "endColumn": 64, + "charOffset": 6898, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "83FAFA19813F5771E4B97DC9DD86C905403A04BE1283DC8A65E7A83105C54D67" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 75, + "startColumn": 56, + "endLine": 75, + "endColumn": 63, + "charOffset": 7086, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F57FF79AD7A008A6EA75563AF525BE2BB0A3F56C9DD91F5926CBD513A66BC784" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 76, + "startColumn": 66, + "endLine": 76, + "endColumn": 73, + "charOffset": 7197, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "63B2E3BFAA7F6AE10D1A329CAE4806D4603C10D2D7C097FDC5AC656B958595B3" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 78, + "startColumn": 65, + "endLine": 78, + "endColumn": 72, + "charOffset": 7428, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3E18827B67406CD7B5BF941288CC8603BB636C5AF1E9389855FEB35937467A6B" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 79, + "startColumn": 62, + "endLine": 79, + "endColumn": 69, + "charOffset": 7535, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7A55569F5992B88A1FE794DD0AFC349F7D2832424027F6B0DA6949E742917AB1" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Cannot resolve symbol 'ViewBag'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 81, + "startColumn": 61, + "endLine": 81, + "endColumn": 68, + "charOffset": 7732, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8E45518FF2D57E73892C13AB9703FA327BEADAD54B91E159BCDAF2C55FD4F4AA" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Interface member 'IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator()' is not implemented\r\nInterface member 'IEnumerator System.Collections.IEnumerable.GetEnumerator()' is not implemented" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 1, + "startColumn": 11, + "endLine": 1, + "endColumn": 42, + "charOffset": 10, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "26F59FDA9A4C5738D281D0F0E5110FD29CF480BA8E092EB08B1B575E82E4B6A4" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Interface member 'IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator()' is not implemented\r\nInterface member 'IEnumerator System.Collections.IEnumerable.GetEnumerator()' is not implemented" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml", + "uriBaseId": "solutionDir", + "index": 3 + }, + "region": { + "startLine": 1, + "startColumn": 11, + "endLine": 1, + "endColumn": 42, + "charOffset": 10, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "26F59FDA9A4C5738D281D0F0E5110FD29CF480BA8E092EB08B1B575E82E4B6A4" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": ".CSharpErrors", + "ruleIndex": 75, + "level": "error", + "message": { + "text": "Interface member 'IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator()' is not implemented\r\nInterface member 'IEnumerator System.Collections.IEnumerable.GetEnumerator()' is not implemented" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 1, + "startColumn": 11, + "endLine": 1, + "endColumn": 42, + "charOffset": 10, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "26F59FDA9A4C5738D281D0F0E5110FD29CF480BA8E092EB08B1B575E82E4B6A4" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AccessToDisposedClosure", + "ruleIndex": 0, + "message": { + "text": "Captured variable is disposed in the outer scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 34, + "startColumn": 49, + "endLine": 34, + "endColumn": 57, + "charOffset": 1116, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43800E61F1A5DFBBFA7AB5F71FFB0C58C192CC73DD0682F740920C793C97559F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AccessToDisposedClosure", + "ruleIndex": 0, + "message": { + "text": "Captured variable is disposed in the outer scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 35, + "startColumn": 50, + "endLine": 35, + "endColumn": 58, + "charOffset": 1199, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0FE483CB4DA0D60518EC28799C6F2EFD596AC60615690807626E18B617023200" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AccessToDisposedClosure", + "ruleIndex": 0, + "message": { + "text": "Captured variable is disposed in the outer scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 36, + "startColumn": 56, + "endLine": 36, + "endColumn": 64, + "charOffset": 1293, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9BB66B7000B26615C0E78D456E3514D7BB10161CAF6488F32CC92C6A676AA765" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AccessToDisposedClosure", + "ruleIndex": 0, + "message": { + "text": "Captured variable is disposed in the outer scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 7 + }, + "region": { + "startLine": 34, + "startColumn": 51, + "endLine": 34, + "endColumn": 59, + "charOffset": 1204, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8034E2450B71C74498930FAE84C389D6859095771213698C9927BB47392DD8FC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AccessToDisposedClosure", + "ruleIndex": 0, + "message": { + "text": "Captured variable is disposed in the outer scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 34, + "startColumn": 53, + "endLine": 34, + "endColumn": 61, + "charOffset": 1204, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "94AFEE9779B15D1381FDB1A7144EACD913B640D9E59CF6D1E76D694774DE7EB3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 248, + "startColumn": 17, + "endLine": 248, + "endColumn": 23, + "charOffset": 5829, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9FCADEE458D1BC0561AF34E5A2BE0E372ACA5E3395C6330DF2F9F2344E984FAA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 297, + "startColumn": 17, + "endLine": 297, + "endColumn": 23, + "charOffset": 7057, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C42F311D95FEEEEF647A2CB58D6EFE4617ED5D27E053803F699499032E9B2B4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 53, + "startColumn": 19, + "endLine": 53, + "endColumn": 31, + "charOffset": 1156, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1D93380DB7715CC7C93B62C0FFCFEEA01E4FF7760A85D6FC6238DC83E064D03B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 58, + "startColumn": 19, + "endLine": 58, + "endColumn": 25, + "charOffset": 1252, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2FEA93186914C300F27C0E861AC7E54C92388A85FA5792FABDA76CAEBE5F67E4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 59, + "startColumn": 19, + "endLine": 59, + "endColumn": 27, + "charOffset": 1290, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9DC041325C727BF6FAC01184D9BEDC47F5FECCAD271D8861194FAA69D956F08A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 64, + "startColumn": 19, + "endLine": 64, + "endColumn": 25, + "charOffset": 1381, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EF2589B74C5914D55E2A672657CF4C6D13DD0E0882475D6461EF57A4E1C23F54" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 65, + "startColumn": 19, + "endLine": 65, + "endColumn": 26, + "charOffset": 1418, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "81CF2276D1ABA38A12AA18C57AE35C4A4327ADFD842B46662C3711FCC9AB4EC5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 88, + "startColumn": 19, + "endLine": 88, + "endColumn": 31, + "charOffset": 1889, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1D93380DB7715CC7C93B62C0FFCFEEA01E4FF7760A85D6FC6238DC83E064D03B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 93, + "startColumn": 19, + "endLine": 93, + "endColumn": 25, + "charOffset": 1990, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0AE6DBA84644F3AD2A5DDF82C24BDDF2096B9FA423C60F3CB78D06B7AFAA3858" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 94, + "startColumn": 19, + "endLine": 94, + "endColumn": 32, + "charOffset": 2033, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "41C4FF623D9B223C2E3999C0A5E533F39460645E4F073967117B2DFBD50E2222" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 99, + "startColumn": 19, + "endLine": 99, + "endColumn": 25, + "charOffset": 2166, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A6C70D621DC5C2D792802B8185D711BCCEFE3DB685BC4893DA5F3095C83208D2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 100, + "startColumn": 19, + "endLine": 100, + "endColumn": 29, + "charOffset": 2206, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "71472221E1295721D2BB933885A4C0E44F0B13CE67C46CA478AF16F9CC6FB7D9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 59, + "startColumn": 19, + "endLine": 59, + "endColumn": 25, + "charOffset": 1931, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21BE250AE79ADCEA232A7062E55A4129B1B1D307E5F4DF1249D775D629D81C07" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 90, + "startColumn": 19, + "endLine": 90, + "endColumn": 25, + "charOffset": 2972, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21BE250AE79ADCEA232A7062E55A4129B1B1D307E5F4DF1249D775D629D81C07" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 104, + "startColumn": 19, + "endLine": 104, + "endColumn": 25, + "charOffset": 3388, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21BE250AE79ADCEA232A7062E55A4129B1B1D307E5F4DF1249D775D629D81C07" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 74, + "startColumn": 19, + "endLine": 74, + "endColumn": 25, + "charOffset": 1638, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2004D9AFEE394C40DC215375ACC8EA9EFEEE4A958D76B9ED314BAB83F09E465D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 75, + "startColumn": 19, + "endLine": 75, + "endColumn": 24, + "charOffset": 1687, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3487578CCCD8CE1742EDB9DF11167C422DEF4199C9BFFEB6093A956C199ED462" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 80, + "startColumn": 19, + "endLine": 80, + "endColumn": 25, + "charOffset": 1807, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "89DCCCEFA8762EC89C0D9120CA4AF0022045B62654A30780657AC31AC1F3A33B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 81, + "startColumn": 19, + "endLine": 81, + "endColumn": 24, + "charOffset": 1867, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BE319E44C7EB52AE3B51E5DCAC537941B8E63A3626C1DC091E471B5072052A64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 86, + "startColumn": 19, + "endLine": 86, + "endColumn": 25, + "charOffset": 1988, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E419D629B7E9C63E692C023171BE61D2718A764C2E6D778A11B62BA2BD336B1F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 87, + "startColumn": 19, + "endLine": 87, + "endColumn": 35, + "charOffset": 2034, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8547468248ED883C1C9DFC59F74CE8541580F074BE54E933285139FD2CBAD787" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 67, + "startColumn": 19, + "endLine": 67, + "endColumn": 25, + "charOffset": 1598, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CB1D5B84C14DDF2C47D503B5998562DDE148B07D00C8E7649DD6806C25CDEAF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 77, + "startColumn": 19, + "endLine": 77, + "endColumn": 25, + "charOffset": 1852, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3CD5781173B3D709E22B8A9E6CA64FF10EA9B5FF3C98905C48923E57132FBB63" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 78, + "startColumn": 19, + "endLine": 78, + "endColumn": 31, + "charOffset": 1894, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "63EFAF99B5825A34F407A1EB9FD0BAADEAA4F0B4CD5D43360A872284A120B13C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 88, + "startColumn": 19, + "endLine": 88, + "endColumn": 25, + "charOffset": 2089, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "06A201D2EE4F575B1E8D07B9D7F23F47F8013F8B06481D3133E2263A0012CF3F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 89, + "startColumn": 19, + "endLine": 89, + "endColumn": 27, + "charOffset": 2127, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E85F987A240A67CFE93AF92992EA57DFE73DAD14CA05A8654D5DE901D22FEE43" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 94, + "startColumn": 19, + "endLine": 94, + "endColumn": 25, + "charOffset": 2231, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D3A5B1B592A4AB3FF41E97657F1FCE760E296651A1A7FC1B4BFE687CB24B98AB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 95, + "startColumn": 19, + "endLine": 95, + "endColumn": 40, + "charOffset": 2282, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BAD974E87D68AE836110BF295082765FAD9886BEBFB7907B119EE7E1185EE0CF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 61, + "startColumn": 19, + "endLine": 61, + "endColumn": 25, + "charOffset": 1533, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EBF9CB0EDEDD215248E880442C4E35BDBDD1AEC0078E613B629E5F29E9DEE181" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 62, + "startColumn": 19, + "endLine": 62, + "endColumn": 33, + "charOffset": 1577, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "37C4B6D79A513EF37E636B5F4947502972DA25F4247711E6AAC84FD21EA0D956" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 67, + "startColumn": 19, + "endLine": 67, + "endColumn": 25, + "charOffset": 1692, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "356DE99A2CEE83C314F3BF1FE106A5C67898F8075A517DC800071DBB63274F52" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 68, + "startColumn": 19, + "endLine": 68, + "endColumn": 46, + "charOffset": 1749, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4F5459E2CD082637E56FFABD438D954824FE875C07C5DECACE6FA017335C95AC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 49, + "startColumn": 19, + "endLine": 49, + "endColumn": 25, + "charOffset": 1360, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CFCF82842A508E4B375AA98609AFA41A1FC5B8D6000D1B7ABC542FD158A8707C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 54, + "startColumn": 19, + "endLine": 54, + "endColumn": 25, + "charOffset": 1467, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EDE108A115C976A23B20D56CB4C88490513480BB468A23D2BD167984623F9B18" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 59, + "startColumn": 19, + "endLine": 59, + "endColumn": 25, + "charOffset": 1574, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AF8F8FC8D10C2520CB438895ADC80F4DBA8B796189254ECC8A42A976204C4746" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 64, + "startColumn": 19, + "endLine": 64, + "endColumn": 25, + "charOffset": 1682, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A4494415B3A2D485AA4C2E0EF8350200B75CAB189227F9B50B8E28FA5F54D0AE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 69, + "startColumn": 19, + "endLine": 69, + "endColumn": 25, + "charOffset": 1786, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E95924E604669171C2A73D5F4FB5359DF1EFBE93592A2A2B3B4584DE0D4B7350" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 74, + "startColumn": 19, + "endLine": 74, + "endColumn": 25, + "charOffset": 1888, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A75372EF2316420AB42397AE2366F0CF54A0F03AA6CADEA43C0F4A87DC133514" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 79, + "startColumn": 19, + "endLine": 79, + "endColumn": 25, + "charOffset": 1993, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08565E3C6F9B46651927271E03C0968E305BCBD6CC1A3E2A9D846244F6632CF6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 84, + "startColumn": 19, + "endLine": 84, + "endColumn": 25, + "charOffset": 2100, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "94E2BACB766F50397B2220EF9CD3AE3B34C32666819B59A00DABC6D32A388800" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 110, + "startColumn": 17, + "endLine": 110, + "endColumn": 23, + "charOffset": 2914, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1C09FF6C03A6A134BE41CE1CF5C762A47029FAA1C5100EAC92FABE78FAF03408" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 118, + "startColumn": 17, + "endLine": 118, + "endColumn": 23, + "charOffset": 3057, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21168790727A08A692CC8C034DF9B4B3ADE0A0A625CE57EC5B0CFA47B6C793B5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 126, + "startColumn": 17, + "endLine": 126, + "endColumn": 23, + "charOffset": 3224, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7043FCCE9F7559C04BD2A975AAD966591977A6854B5502BB15A53D0453B150D9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 137, + "startColumn": 17, + "endLine": 137, + "endColumn": 23, + "charOffset": 3448, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "93A659C2ACFB9CE75153A524C85B290F1844DA24E3E150A819EEAFB30F630D78" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 145, + "startColumn": 17, + "endLine": 145, + "endColumn": 23, + "charOffset": 3612, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ABF9FA424EE642C42D06FE4644DF44990EDBAEC0154D9000F86EB591C1505C28" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 189, + "startColumn": 19, + "endLine": 189, + "endColumn": 25, + "charOffset": 4694, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7C579C1478C6F03A983181D677BF65D5D38F5385817B61BC9B299729696C7058" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 194, + "startColumn": 19, + "endLine": 194, + "endColumn": 25, + "charOffset": 4792, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B70D988CD22B2235B136730AF7686E43FA3A356536A5B26E2BBF520D43403A73" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 199, + "startColumn": 19, + "endLine": 199, + "endColumn": 25, + "charOffset": 4891, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "680B5F389CEC6670D5BAEB6809527F306D635E92DD3B45D62C5CFB9011BD7AE6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 204, + "startColumn": 19, + "endLine": 204, + "endColumn": 25, + "charOffset": 4986, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AE9DCA2693D3F7917B2520324B03B2062B91AE8B21BCB470BB39B163050FDCBD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 209, + "startColumn": 19, + "endLine": 209, + "endColumn": 25, + "charOffset": 5079, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D2BE9C778790D77CA36B68617BD620ED0BCA2DB011254DBB3B23A478B9444850" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 214, + "startColumn": 19, + "endLine": 214, + "endColumn": 25, + "charOffset": 5175, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3CB29BBA22982E40EA167AE3D7169C527D20F04F70E0E253789B90302E689AE6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 219, + "startColumn": 19, + "endLine": 219, + "endColumn": 25, + "charOffset": 5273, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "090DF73911E7B79FC5359594556BBE31C65BB4A37BBC43E3336A647ADBC6EF81" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 229, + "startColumn": 17, + "endLine": 229, + "endColumn": 23, + "charOffset": 5453, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E8E140DCECF42E4380B0F7C7B0ACD81F0920CA9072BE417DBDD95FE8A5AB428B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 237, + "startColumn": 17, + "endLine": 237, + "endColumn": 23, + "charOffset": 5605, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C98FF93CE920B1DD1C38FEE5B1FD5571BD0BECD408485539E30C5EC8BB648B92" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1108, + "startColumn": 19, + "endLine": 1108, + "endColumn": 25, + "charOffset": 28914, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C898373C2C09E69E49A6F0B60F1D5F827A820310759C0D9731F9C6807E28404A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1122, + "startColumn": 19, + "endLine": 1122, + "endColumn": 25, + "charOffset": 29256, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "09FE758D4306FF1B58E92B16C8471352AEB75C411FB4770ECC8B54E0824F50BA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1127, + "startColumn": 19, + "endLine": 1127, + "endColumn": 25, + "charOffset": 29366, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F6E5A30278E8659CAFE84263CE105DC8A620A8E6CD80E664998026E0791E2B53" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 28, + "startColumn": 37, + "endLine": 28, + "endColumn": 43, + "charOffset": 707, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B976B44EED9593984A611FF54C4B80AC96AFF420226386640CB19AE84C86CA2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 29, + "startColumn": 39, + "endLine": 29, + "endColumn": 45, + "charOffset": 764, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A7668F451EDC888EC912C8DEBA33CE33011FB8442277958E7831E47097A41CEF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 30, + "startColumn": 38, + "endLine": 30, + "endColumn": 44, + "charOffset": 820, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D5D892F665F9C49DCA1981535C63A0413FC0DB1B4B32E0D040A960673D8F3662" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 31, + "startColumn": 35, + "endLine": 31, + "endColumn": 41, + "charOffset": 873, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2C6976453BE340E514C249BFAE0F482BEF1F639EBFDEB63D72F53E8CBA37F0DA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 32, + "startColumn": 36, + "endLine": 32, + "endColumn": 42, + "charOffset": 927, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D8DC780A0812E9A310E13C7F675591B563304F1A9473EC7FBEC50C2D67D47FA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 33, + "startColumn": 38, + "endLine": 33, + "endColumn": 44, + "charOffset": 983, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DF7C8B9EE4601DBF1851D9E12F59335871B474374914210B8120A1CE9A82F004" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 34, + "startColumn": 38, + "endLine": 34, + "endColumn": 44, + "charOffset": 1039, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "832E6C5478652933286FB4D244104B26DC421EE4A62AB0EF30DE167102A42615" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 54, + "startColumn": 40, + "endLine": 54, + "endColumn": 46, + "charOffset": 1788, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F0E27EF63C9EE25F6F758EAA425E7A412CE32D9AC787819B0EAA42AA4ED53A4D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 55, + "startColumn": 39, + "endLine": 55, + "endColumn": 45, + "charOffset": 1844, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "23DBB9F0BB7D3D7A0BF87562920365CC8EADF3AF6595EF040442232423B2834F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 72, + "startColumn": 39, + "endLine": 72, + "endColumn": 45, + "charOffset": 2360, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BCCB000A29D03397BFB8B89F60C3FEA56CE234671195C06786A37F10512B0398" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 73, + "startColumn": 49, + "endLine": 73, + "endColumn": 55, + "charOffset": 2423, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F24A540F4117075BAA56F10F6B97DA75C894939A3F29C16C5DEBE94C71834904" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 74, + "startColumn": 45, + "endLine": 74, + "endColumn": 51, + "charOffset": 2486, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9474FE594609CB292768E45EF3C880E093177FF2E93BC0CAAB5811309B903685" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 82, + "startColumn": 46, + "endLine": 82, + "endColumn": 52, + "charOffset": 2686, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD0935E4753E06B937725EA3CAA6E2F1FE9666E10252CD0A4DBF544A376ECCFA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 83, + "startColumn": 45, + "endLine": 83, + "endColumn": 51, + "charOffset": 2748, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "575CB97F51B6A97F0B5FD532E7563A9B13FC05568FE3365D3FF939E461CEBBD5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 85, + "startColumn": 46, + "endLine": 85, + "endColumn": 52, + "charOffset": 2813, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B7F3D9317A40D89940C27F3E2C42CAEC38B2C7CEB20E8B80FCCBE812BA7FF5B7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 86, + "startColumn": 48, + "endLine": 86, + "endColumn": 54, + "charOffset": 2878, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8902D1EE17F8C0FDC2D772906ACE67C247AEE23E58472D942BA87781BEC2D591" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 92, + "startColumn": 19, + "endLine": 92, + "endColumn": 25, + "charOffset": 2137, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1E03871E279D4548184B2AE9FFBDF5F765F3B12B4864B141BD1C66C01C8A1236" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 97, + "startColumn": 19, + "endLine": 97, + "endColumn": 25, + "charOffset": 2234, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "14E8278195CE28A89BD5AE7D93BBDADB6A91CE70A3FC98E69FDB44661B5FF45C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 102, + "startColumn": 19, + "endLine": 102, + "endColumn": 25, + "charOffset": 2331, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0D11678A553F4F2F75EE1DF56D4F6731929A956FA57CCEFEB4C05A6C584E3F8A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 107, + "startColumn": 19, + "endLine": 107, + "endColumn": 25, + "charOffset": 2419, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D45E9470431338FD80E983E6CDCF7FB6D48F362E2EE9042B01CECD9E08E81489" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 83, + "startColumn": 19, + "endLine": 83, + "endColumn": 25, + "charOffset": 1999, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D1DA1E94B1AB94C694F68948A376D5DD40A6666CB77F788DDFFC1FF04D87F03C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 73, + "startColumn": 19, + "endLine": 73, + "endColumn": 25, + "charOffset": 1863, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1E03871E279D4548184B2AE9FFBDF5F765F3B12B4864B141BD1C66C01C8A1236" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 78, + "startColumn": 19, + "endLine": 78, + "endColumn": 25, + "charOffset": 1955, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0D11678A553F4F2F75EE1DF56D4F6731929A956FA57CCEFEB4C05A6C584E3F8A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeAccessorOwnerBody", + "ruleIndex": 1, + "level": "note", + "message": { + "text": "Code body does not conform to code style settings: use expression-bodied property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 83, + "startColumn": 19, + "endLine": 83, + "endColumn": 25, + "charOffset": 2049, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E75F82583C0D43266A41CAF90CDF36EF004C2D6AAFF7A974D4630F2602CD63AA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 130, + "startColumn": 66, + "endLine": 130, + "endColumn": 72, + "charOffset": 3350, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7B9176D55B0C1BD3EEA71FDC3A515B4AA4A51D83F6DE1ACB4381E449E24E08B8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 134, + "startColumn": 60, + "endLine": 134, + "endColumn": 66, + "charOffset": 3531, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "240342256D49B57F8CA2771DA061F1497F27061516E5BDB67ECC7207C0065120" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 137, + "startColumn": 67, + "endLine": 137, + "endColumn": 73, + "charOffset": 3694, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B923B1B3F85CF85B19A91F26594EEDFBA844A6DB9DA26D077C9E1722543E844B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 141, + "startColumn": 67, + "endLine": 141, + "endColumn": 73, + "charOffset": 3883, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "64259723B78B6824459B821D405B8461F66B558F4CE3E51B0B95D0DB549E93AB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 144, + "startColumn": 65, + "endLine": 144, + "endColumn": 71, + "charOffset": 4019, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "37830DD8E79B18426F919A95D63A48F649A8E7B5FA9F6873C898BE050F5557CA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeObjectCreationWhenTypeEvident", + "ruleIndex": 2, + "level": "note", + "message": { + "text": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 15 + }, + "region": { + "startLine": 82, + "startColumn": 41, + "endLine": 82, + "endColumn": 57, + "charOffset": 3259, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1AF9612560C54A1EB5FC52D77C14F42443605B0690DA56054E785E2DBBAA42FC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ArrangeVarKeywordsInDeconstructingDeclaration", + "ruleIndex": 3, + "level": "note", + "message": { + "text": "Use single deconstruction declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/IssueDiagnostic.cs", + "uriBaseId": "solutionDir", + "index": 16 + }, + "region": { + "startLine": 70, + "startColumn": 18, + "endLine": 70, + "endColumn": 21, + "charOffset": 2364, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DA4ECDCC665555C3344C09A2CD2A91CA2004D3E11C30DF39D0DBED07DA7582D3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild/LogFileFormat/BinaryLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 17 + }, + "region": { + "startLine": 254, + "startColumn": 51, + "endLine": 254, + "endColumn": 67, + "charOffset": 10868, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9589292A0123EFC2E6FB183D53A80EE1BF02C6453C1C9C048E8D666745D12BEF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild/LogFileFormat/XmlFileLoggerLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 18 + }, + "region": { + "startLine": 181, + "startColumn": 55, + "endLine": 181, + "endColumn": 75, + "charOffset": 7549, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C4D7D14FAA59CDD971E19C620E0ACB4F624910AACADA95BFFD562A8AFC7B3410" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 19 + }, + "region": { + "startLine": 27, + "startColumn": 50, + "endLine": 27, + "endColumn": 56, + "charOffset": 1022, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D89334537AA8D84D1F1299EDB6037E203C20782DAC7F6F092E51B859E3686336" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 469, + "startColumn": 53, + "endLine": 469, + "endColumn": 62, + "charOffset": 14462, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "23C24C0C92FF5C3A7EA962679F75A2412927EC35A9EC02135EEFAF764E9153BA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 74, + "startColumn": 52, + "endLine": 74, + "endColumn": 56, + "charOffset": 2493, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9474FE594609CB292768E45EF3C880E093177FF2E93BC0CAAB5811309B903685" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 79, + "startColumn": 58, + "endLine": 79, + "endColumn": 62, + "charOffset": 2628, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5BCB8342C0821AED1C224DB90D5EE470AA62F2143A8D871FBC0516513BF4F220" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 85, + "startColumn": 53, + "endLine": 85, + "endColumn": 57, + "charOffset": 2820, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B7F3D9317A40D89940C27F3E2C42CAEC38B2C7CEB20E8B80FCCBE812BA7FF5B7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 86, + "startColumn": 55, + "endLine": 86, + "endColumn": 59, + "charOffset": 2885, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8902D1EE17F8C0FDC2D772906ACE67C247AEE23E58472D942BA87781BEC2D591" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 99, + "startColumn": 68, + "endLine": 99, + "endColumn": 72, + "charOffset": 3297, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3B69A9C833C03F397AE7825B981015A6A31EC7716B25CC06D08CD1A6780B33FA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "ruleIndex": 4, + "message": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 110, + "startColumn": 20, + "endLine": 110, + "endColumn": 24, + "charOffset": 3534, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9D2A62498F76E06F826D6305390273F025D9C347BD6CC9B6A8ABA30CC156AA59" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 12, + "startColumn": 46, + "endLine": 12, + "endColumn": 50, + "charOffset": 325, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "240418D8641A34734F45306FCDBA9F2CAEE869C9003C33A070DF89D11D5D0D60" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 13, + "startColumn": 52, + "endLine": 13, + "endColumn": 56, + "charOffset": 384, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B968F33F3555D814646B68E06C24C18C51281C295C28036A127EB40D3956A353" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 14, + "startColumn": 40, + "endLine": 14, + "endColumn": 44, + "charOffset": 431, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D51D2F39295A71F5C975FFE3C0894A2D51CDEA480E76A6AF316FC0CA22F781C0" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 15, + "startColumn": 36, + "endLine": 15, + "endColumn": 40, + "charOffset": 474, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "53A4757EFBE2844612A6B3E5DD3BC060B484050D6392B68D36FB87F99812B482" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 16, + "startColumn": 48, + "endLine": 16, + "endColumn": 52, + "charOffset": 529, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DCC8F3F2AAFA4A092A77CB025A6B1D2F930B257C1B7A6F2977B63567C232570B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 17, + "startColumn": 52, + "endLine": 17, + "endColumn": 56, + "charOffset": 588, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7A4D7BAF8447ADBFE16A585AC5418A8505FE1D28D54368E6AD6C264D72002DE6" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 18, + "startColumn": 42, + "endLine": 18, + "endColumn": 46, + "charOffset": 637, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B978919B426872259662320DA375E4CE98DA2C23901A7E0E85B81873E9CC49E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 19, + "startColumn": 42, + "endLine": 19, + "endColumn": 46, + "charOffset": 686, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6D4FE6B0BE0A5932E73ACC1D381B3E92C048A8EC06C59F040977A8E975D5E5DA" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 20, + "startColumn": 45, + "endLine": 20, + "endColumn": 49, + "charOffset": 738, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E9E2F47C22D3EBDE46EC23BE0127118B19B093791EB39C4BDB7B3A94E6307B7E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 21, + "startColumn": 56, + "endLine": 21, + "endColumn": 60, + "charOffset": 801, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DB67F680AF044F63FE5DA820AA57014F93769CD9A31BC31519321AADD7052BD4" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.GitHubActions/GitHubActionsBuildSettings.cs", + "uriBaseId": "solutionDir", + "index": 21 + }, + "region": { + "startLine": 12, + "startColumn": 40, + "endLine": 12, + "endColumn": 44, + "charOffset": 444, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7C563BE4E459F979E6D3DB83F9548FB953684BE42D58FCAC3D9F69080C6E8308" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 19 + }, + "region": { + "startLine": 16, + "startColumn": 35, + "endLine": 16, + "endColumn": 39, + "charOffset": 489, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 19 + }, + "region": { + "startLine": 18, + "startColumn": 89, + "endLine": 18, + "endColumn": 93, + "charOffset": 587, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "697F361B2947DF599B205145324AE56EEBBF08CEAFCC8E2F2C6886041165F24A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/HtmlDxDataGridColumnDescription.cs", + "uriBaseId": "solutionDir", + "index": 22 + }, + "region": { + "startLine": 51, + "startColumn": 43, + "endLine": 51, + "endColumn": 47, + "charOffset": 2001, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BDA200BB75C09605FAF203249A02633C0806F6B5AC265F98D70CFD09B9CC698B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/HtmlDxDataGridColumnDescription.cs", + "uriBaseId": "solutionDir", + "index": 22 + }, + "region": { + "startLine": 58, + "startColumn": 42, + "endLine": 58, + "endColumn": 46, + "charOffset": 2347, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6CE68760A20080D96D8693A2A09D619EBB3FBB6E7CBDA036134979F740F0D982" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/HtmlDxDataGridColumnDescription.cs", + "uriBaseId": "solutionDir", + "index": 22 + }, + "region": { + "startLine": 64, + "startColumn": 41, + "endLine": 64, + "endColumn": 45, + "charOffset": 2603, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C1AAA33E377C63A2C18BD795DC581E2FF03E5FA869E94D5C30348F227216F844" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/IdeIntegrationSettings.cs", + "uriBaseId": "solutionDir", + "index": 23 + }, + "region": { + "startLine": 23, + "startColumn": 44, + "endLine": 23, + "endColumn": 48, + "charOffset": 848, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5698AE3BE18349548A74B68C73462E1016E3B0FD5B911DF0D94D32F28CA456A9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 24 + }, + "region": { + "startLine": 16, + "startColumn": 35, + "endLine": 16, + "endColumn": 39, + "charOffset": 510, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 24 + }, + "region": { + "startLine": 18, + "startColumn": 85, + "endLine": 18, + "endColumn": 89, + "charOffset": 604, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A7A579A56AB5543BD4FB3B940407FA0D812F950F7EB7CAD1EBDD8965DF7A5E49" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatFixture.cs", + "uriBaseId": "solutionDir", + "index": 25 + }, + "region": { + "startLine": 24, + "startColumn": 63, + "endLine": 24, + "endColumn": 67, + "charOffset": 881, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "23521F9B41A607EAF4812C8896D4000927EBC7EE66DC512F28410A4922D8E1D8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatFixture.cs", + "uriBaseId": "solutionDir", + "index": 25 + }, + "region": { + "startLine": 28, + "startColumn": 109, + "endLine": 28, + "endColumn": 113, + "charOffset": 1083, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "22C394AC4D60F54B0E9E864A97C7AE31948C73CF5FE530002D822724C84420FD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "ruleIndex": 5, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseConfigurableIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 26 + }, + "region": { + "startLine": 45, + "startColumn": 45, + "endLine": 45, + "endColumn": 49, + "charOffset": 1923, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D49BDA7566A7CDE241F332F2F07DB9900E3CF6BD3770916A5CFCE2F51085054B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", + "ruleIndex": 6, + "level": "note", + "message": { + "text": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 74, + "startColumn": 76, + "endLine": 74, + "endColumn": 88, + "charOffset": 3226, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A1A535D097C212EF83DF65738B25CF052C884CE2729C1890674B8FC6598488E5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryAdd", + "ruleIndex": 7, + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryAdd'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IssueBuilder.cs", + "uriBaseId": "solutionDir", + "index": 28 + }, + "region": { + "startLine": 310, + "startColumn": 44, + "endLine": 310, + "endColumn": 55, + "charOffset": 14398, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B648B86E6D0B7D8B61DDA0295B7F5043A71E50F96A4A9B218F3C8CB8A849828F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", + "ruleIndex": 8, + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 494, + "startColumn": 43, + "endLine": 494, + "endColumn": 54, + "charOffset": 15242, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4BEBC6DFF99F2B0F5265C74BEF72A10741BBE587ECEE3E5498FA11083174FC95" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", + "ruleIndex": 8, + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 895, + "startColumn": 40, + "endLine": 895, + "endColumn": 51, + "charOffset": 29144, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "058E311DD0056FA4A5DF8504EDEC9533D8CBA0BA90ACC45A40ED7A5D61D9FAC0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", + "ruleIndex": 8, + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 904, + "startColumn": 38, + "endLine": 904, + "endColumn": 49, + "charOffset": 29433, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "011F00012002554DE9E933D802DE97935674E32699DF4877E267F7FBCEDDF83F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/IJsonWrapper.cs", + "uriBaseId": "solutionDir", + "index": 29 + }, + "region": { + "startLine": 24, + "startColumn": 11, + "endLine": 24, + "endColumn": 18, + "charOffset": 663, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 26, + "startColumn": 11, + "endLine": 26, + "endColumn": 18, + "charOffset": 670, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 21, + "startColumn": 11, + "endLine": 21, + "endColumn": 18, + "charOffset": 488, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 26, + "startColumn": 11, + "endLine": 26, + "endColumn": 18, + "charOffset": 613, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir", + "index": 11 + }, + "region": { + "startLine": 24, + "startColumn": 11, + "endLine": 24, + "endColumn": 18, + "charOffset": 601, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 25, + "startColumn": 11, + "endLine": 25, + "endColumn": 18, + "charOffset": 561, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 25, + "startColumn": 11, + "endLine": 25, + "endColumn": 18, + "charOffset": 570, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 24, + "startColumn": 11, + "endLine": 24, + "endColumn": 18, + "charOffset": 553, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CheckNamespace", + "ruleIndex": 9, + "message": { + "text": "Namespace does not correspond to file location, must be: 'Cake.Issues.Reporting.Generic.LitJson'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/ParserToken.cs", + "uriBaseId": "solutionDir", + "index": 31 + }, + "region": { + "startLine": 17, + "startColumn": 11, + "endLine": 17, + "endColumn": 18, + "charOffset": 478, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D46AF5CCB88E1CC17327729E3381FF620CD54DD9F16011F7A0596ACAF385AE05" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'AppVeyorBuildSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 32 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 51, + "charOffset": 78, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0E5C6555ECB22D4C762543B4D7E8286E4F23D4B1464BC274798D34250F76FF86" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'AppVeyorPullRequestSystemTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorPullRequestSystemTests.cs", + "uriBaseId": "solutionDir", + "index": 33 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 55, + "charOffset": 102, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A4670095292D8388F083A180C3815A793347EEE66795E991609B0695E392C514" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'AzureDevOpsFileLinkSettingsBuilderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/FileLinking/AzureDevOpsFileLinkSettingsBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 34 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 64, + "charOffset": 106, + "charLength": 39 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7614E484D00682A00FA60E2C909E56656490CAFEEE26C37CE65627FD6699EE60" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseCheckingCommitIdCapabilityTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseCheckingCommitIdCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 35 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 60, + "charOffset": 105, + "charLength": 35 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E9C41C76555C6F39DAF1F85ABC5B77ED468714B5728D07A8340C6A6D4D77AE27" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseConfigurableIssueProviderFixtureTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/BaseConfigurableIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir", + "index": 36 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 66, + "charOffset": 64, + "charLength": 41 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4D732BA93B37EB3F34D26EFD0B14BA7C4216599109893990F98020A78F481CCC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseConfigurableIssueProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseConfigurableIssueProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 37 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 59, + "charOffset": 92, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E82384CD00708FD7A7E5B4CD970B39596E600E3DF07FEA656D02FEF72AA5537E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseDiscussionThreadsCapabilityTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 61, + "charOffset": 130, + "charLength": 36 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "24BDFF4CB489DDB528245CC8D28EDCC47DF136630A86FBC797DAF65240EB7019" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseFilteringByModifiedFilesCapabilityTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 68, + "charOffset": 130, + "charLength": 43 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4761D0FE275CF1CF3F4FE097CFED4713306B1B551CFA0BACB66B895CF077E771" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseIssueComponentTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseIssueComponentTests.cs", + "uriBaseId": "solutionDir", + "index": 40 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 48, + "charOffset": 56, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "86A1E37BFC4AA200453BFA20391EC2F2CE3B24FAA94AAD514ED07DAD0706D10F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseIssueProviderFixtureTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/BaseIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir", + "index": 41 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 54, + "charOffset": 64, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0199A30CCF9979AC7CA2AE5310A62357C86B2C1E9ADF6F10749900B1C15478BC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseIssueProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseIssueProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 42 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 47, + "charOffset": 56, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F9B12452DAA220F5824D930BA07A050C4607E6DB55DB5D9F7F8162F7424140D3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 43 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 47, + "charOffset": 92, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40A358E4CE5474ADEC5F477BC61253DFE44ADACFFC5AB4F0B8A468D6AC9A98CF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseMsBuildLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/BaseMsBuildLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 44 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 54, + "charOffset": 64, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B10A190C3632B8448694AAE27C2F2EB54D891FC258ABD1FA14CA02B562BEB5AF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseMultiFormatIssueProviderFixtureTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/BaseMultiFormatIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir", + "index": 45 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 65, + "charOffset": 64, + "charLength": 40 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8572BF83BEFBAF54E78C0C72FCC34BAD089E2130F2FA37AAB6DF9B566DBEEA1D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseMultiFormatIssueProviderSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseMultiFormatIssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 46 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 66, + "charOffset": 83, + "charLength": 41 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8423DEB2B0710C60663624397B4FC6F24D2190FBC79BAD6463C170F77E3B998D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseMultiFormatIssueProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseMultiFormatIssueProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 47 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 58, + "charOffset": 92, + "charLength": 33 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67165CAC4966BA37ADD36CF62CCC382109368FA12C99058FA1A1A2AC4F129C5A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BasePullRequestSystemCapabilityTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BasePullRequestSystemCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 48 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 61, + "charOffset": 105, + "charLength": 36 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1BDF9BBFBF9316D5F7DFB25C6774048A8BECB051BBD2A7590D3460649DA2576F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BasePullRequestSystemTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BasePullRequestSystemTests.cs", + "uriBaseId": "solutionDir", + "index": 49 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 51, + "charOffset": 105, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F8C236756C26541820411BDC4A8415205FFE34DC1785A5651FA5A67154B66F4E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BaseRuleUrlResolverTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 50 + }, + "region": { + "startLine": 3, + "startColumn": 18, + "endLine": 3, + "endColumn": 42, + "charOffset": 49, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3AE28E46AEF9E5EACED6B4794EB27FC9C7DD9151E0082D7FA4E5EBB7E7B67627" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'BinaryLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/BinaryLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 51 + }, + "region": { + "startLine": 7, + "startColumn": 25, + "endLine": 7, + "endColumn": 49, + "charOffset": 203, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D9B55ED1E185461A59BBB2EEF202D77808414054951D62BCA8A030C2E0750F8B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ByteArrayExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/ByteArrayExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 52 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 49, + "charOffset": 82, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F379DD377D13C2B6550556252F056004823A212FA587B1ED101BB7749698FC3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ConsoleIssueReportGeneratorTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 53 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 57, + "charOffset": 74, + "charLength": 32 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D82EC4BAA882AF26753A5CDEA34142B01C4F85C719A78B6164E46EF23769C46C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'CreateIssueReportFromIssueProviderSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/CreateIssueReportFromIssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 54 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 72, + "charOffset": 93, + "charLength": 47 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "551AD0F2E2EE31057A12ED43082501A90F836D5C86D4541BA29A7845CE81E9E9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'CreateIssueReportSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/CreateIssueReportSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 55 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 55, + "charOffset": 93, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "20B301E24FC237B8E407F0F64E743A6927459432895C791E97FE7465F02BB6AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'DocFxProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 43, + "charOffset": 107, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B4B30CF1712ED6A82D4573411C9190690CE85EC598D9494B5D785790BD306177" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'DocFxSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 43, + "charOffset": 89, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD564F9E83B72B6495DF40FEC605FD5C4F9EDD01F464155B523A74DEFFE1A1EE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'EsLintIssuesProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 57 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 50, + "charOffset": 144, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3342E0615B22AE25E3193DAC950DBB739F6CCC6D80B250C218891F5C249C2EAE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'EsLintIssuesSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 50, + "charOffset": 135, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A5BB2B4C52B3599A1B722A8DE54674023421878CD876074AD242DCF04C28464D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'EsLintRuleUrlResolverTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 58 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 51, + "charOffset": 63, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A81FCD138A95CFF52C06DE0A429BB49BB6362F40B9CFA981F1E9CC23944B898F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ExceptionAssertExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/ExceptionAssertExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 59 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 55, + "charOffset": 64, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "71449B02DBC12CF46DF6E6D1AB04A0DF88516C525645EF53C4CAADD400193445" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'FileLinkOptionalSettingsBuilderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/FileLinking/FileLinkOptionalSettingsBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 60 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 61, + "charOffset": 106, + "charLength": 36 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6162EAC42140C9FB1631CDF88C6E0ED726453A983839C128A29D1285F8FF6A7C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'FileLinkSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/FileLinkSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 61 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 46, + "charOffset": 56, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2FA9B3D3B0526D00DA5D38612C0F6402364D5D98EA62320CA4ABE5452329FB6D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'GitHubActionsPullRequestSystemTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.GitHubActions.Tests/GitHubActionsPullRequestSystemTests.cs", + "uriBaseId": "solutionDir", + "index": 62 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 60, + "charOffset": 119, + "charLength": 35 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7A239BBD3336F45F63ADCD6D4EB775BB150F2ED2ECE3158FE757BD318314AE0E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'GitHubFileLinkSettingsBuilderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/FileLinking/GitHubFileLinkSettingsBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 63 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 59, + "charOffset": 106, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C67F4C37FC84F1C7D53F90616DBE409C17877B75B1AF6BC63D8B0E4329796990" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'GitRepositoryIssuesSettings' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesSettings.cs", + "uriBaseId": "solutionDir", + "index": 64 + }, + "region": { + "startLine": 6, + "startColumn": 18, + "endLine": 6, + "endColumn": 45, + "charOffset": 160, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8E5E876E42D0C399901C88235328C8F6C31964493543AEB3222C4088A9DA5501" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'GitRunnerTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository.Tests/GitRunnerTests.cs", + "uriBaseId": "solutionDir", + "index": 65 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 39, + "charOffset": 70, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F92B4A2B47F28F3A39133A89314DDE61FFB58A3297EC648618116F2416199A8F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueBuilderExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository.Tests/IssueBuilderExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 66 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 52, + "charOffset": 70, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FFD5C04170A02E3D0179652D4FB013AB5038AECCC3C0BABCD1050445694F8309" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueBuilderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 42, + "charOffset": 56, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "707920A9B6703D7CEB7A7A4AEB295D31071AEB4067D9DC07FD1ABFC0666FCBE9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueCheckerTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/IssueCheckerTests.cs", + "uriBaseId": "solutionDir", + "index": 68 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 42, + "charOffset": 64, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7C96EB43FE1314F40F6DC99BA2262FFFCA5B1FEFEAF2161D3200C833A87EC4B3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueCommentInfoTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 46, + "charOffset": 69, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7D3CD92C261426CA5B183651FC6F8C4DF822F35AF8905A04DBEBB962E2D9ECB5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueDeserializationExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueDeserializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 70 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 60, + "charOffset": 135, + "charLength": 35 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9B10E5191E579B8610F87937251C283C213135528E0974CF5751A14FD6E32F75" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueFiltererTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererTests.cs", + "uriBaseId": "solutionDir", + "index": 71 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 43, + "charOffset": 139, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EB243F30DE180D5FF311955BAA1E04C928AF3EC580BA06A002565AF035C0CB8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueProviderSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 72 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 51, + "charOffset": 83, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E9A3F6D805881E7B16EFFFAF73E41B0CB8416D13D9408FD0A6A3ABB933D1DE80" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueReaderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueReaderTests.cs", + "uriBaseId": "solutionDir", + "index": 73 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 41, + "charOffset": 56, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8494C8470EF538312D7FC61F6F88242C7CE75FEF75C76EE043B5AE5256F63198" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueReportCreatorTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportCreatorTests.cs", + "uriBaseId": "solutionDir", + "index": 74 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 48, + "charOffset": 66, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "94F384590FDB05ABA6F0F143DE5DF17B6025500318336ECDE5BC09D7211E5495" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueReportFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 75 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 47, + "charOffset": 66, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AAEDA9D6632F8BDA324A1FA7E0C9F7CB5C39B8B0C5C22A85C1160DCE3C57C0AF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssuesArgumentChecksTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssuesArgumentChecksTests.cs", + "uriBaseId": "solutionDir", + "index": 76 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 50, + "charOffset": 56, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9FE31796FC6B004560ED5560D93AA4E9C5959C8BA51CE731D4034D532BB44444" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueSerializationExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 58, + "charOffset": 135, + "charLength": 33 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7659CBEA072391ED8A31351C0B2E40F673CD2B9CAD12C2E7D06A79BD4424F69B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'IssueTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 35, + "charOffset": 101, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6C23CDD06A546B98AC722BE7717B04143CAF65EABCFEB116EC46DBF81E3B0163" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'JsonLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/LogFileFormat/JsonLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 79 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 47, + "charOffset": 124, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "490DA67DCBEE140CAB6704ABAAAEA82E4FE7EE4845F671663525F1E4D328A9CA" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'JsonMapper' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 114, + "startColumn": 20, + "endLine": 114, + "endColumn": 30, + "charOffset": 2606, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40AD4E490CD2ECD2B773B086AE266BE054D47F616D216A8922DE9910F62466FC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintCliJsonLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintCliJsonLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 80 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 62, + "charOffset": 136, + "charLength": 37 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E7A5390F484A3C6985307ADFEDFE39BE63E6120FADDCF4C56852A51670169918" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintCliLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintCliLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 81 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 58, + "charOffset": 136, + "charLength": 33 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B2010BCF2317E5603B46769A9EE028F81BACB2C053B6DB9F5CBF3D06FA6D91B9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintIssuesProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 82 + }, + "region": { + "startLine": 7, + "startColumn": 25, + "endLine": 7, + "endColumn": 56, + "charOffset": 193, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4D0A0FACCCD7D46645A496E1AC6B415F6E335C13BEADACA9EF17CD0D4D2C1971" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintIssuesSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 7, + "startColumn": 25, + "endLine": 7, + "endColumn": 56, + "charOffset": 184, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D86F572D0E739B7CC49F6755D29EF34F0BA4A26D771E6B51062D5CE632A7F343" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintRuleUrlResolverTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 83 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 57, + "charOffset": 69, + "charLength": 32 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CC51AEC60702EB4D8D72483A1464018C22FCF29805FAEEFAD9B8240C7302CA61" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MarkdownlintV1LogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintV1LogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 84 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 57, + "charOffset": 136, + "charLength": 32 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "65ECDBFD5AD2727155F640ED4C90066570CF30ACB28F23C9A9CEF58124F4B168" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MsBuildIssuesProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 85 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 51, + "charOffset": 146, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8234548088EEF3533173C63D4726E5106D231B63134ED7A538CBFCAC09062A1A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MsBuildIssuesSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 7 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 51, + "charOffset": 137, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BF58BE2BFE2ADBD105220448B53126807EF2AAEACE2EF280FA97DCEA4FB3164A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'MsBuildRuleUrlResolverTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 86 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 52, + "charOffset": 64, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "39A9C8812FB87CE505226EEBC1B8EC76CD0FD6F85C1C6E4FADB127EB10F47A9D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'OrchestratorTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 42, + "charOffset": 139, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C6CA5DB15BDBFA13F6E3ED58A59F1568CB4C57506A715C5A9124BC920548B949" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'PullRequestDiscussionThreadTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 57, + "charOffset": 114, + "charLength": 32 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "89D569AD68126FC3A9C6E7E870FA670D18D25D4F3E46546B87B585C401B89525" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'PullRequestIssueResultTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestIssueResultTests.cs", + "uriBaseId": "solutionDir", + "index": 89 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 52, + "charOffset": 69, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "25BB6C735C7669CABDC2E90AB1C99B165FF23AEE108A8AC4E545C10D2E3E8B6B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ReadIssuesSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/ReadIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 90 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 48, + "charOffset": 83, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5DB52B83F837F7E020916EA351AF76E4668B09CB120FEB01D7D94DBD08ABFC9F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ReportIssuesToPullRequestSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/ReportIssuesToPullRequestSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 91 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 63, + "charOffset": 96, + "charLength": 38 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "156E2648E7E9C60F98DDB33669293408233229DE9B4EAB5D2FD3E02055785AB9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'RepositorySettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/RepositorySettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 92 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 48, + "charOffset": 83, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E79538C68FB2D6A64C81426617C732D01464F5806857B519CB1356B3BCF071D9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'ResourceTempFileTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/ResourceTempFileTests.cs", + "uriBaseId": "solutionDir", + "index": 93 + }, + "region": { + "startLine": 4, + "startColumn": 25, + "endLine": 4, + "endColumn": 46, + "charOffset": 86, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A297CA8636D7D59B0465A55E516DCC0AE60D50BB2FCE9CC547CAF1EC54C55192" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SarifIssueReportGeneratorTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 94 + }, + "region": { + "startLine": 6, + "startColumn": 25, + "endLine": 6, + "endColumn": 55, + "charOffset": 143, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2934A099A881EDB2D8718EA93BDAE2B6A0C1EE4DC204BBE1204F96FE7FD9487F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SarifIssuesProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 95 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 49, + "charOffset": 62, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "47C04544FB2EFE637AAE3924F41BF5A986C39364B21B5D14A34B7635CAF7C239" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SarifIssuesSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 96 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 49, + "charOffset": 89, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8A7F523A2C2E6DFD733B4A8AE1AEC8198EDA767E5C8B5B386D9F5691B1E2E00A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SerializableIssueExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 97 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 57, + "charOffset": 110, + "charLength": 32 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BD45CA53CF3BE579CDCDB105B18820EFB5EA4040F77F8C49ECE6FC029EF2308A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SerializableIssueV2ExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV2ExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 98 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 59, + "charOffset": 110, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F4F1BE9757F17B9CA55A3BEA4AF520D7861ED5B5C970B913A6C254FE4B1A5DCC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SerializableIssueV3ExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV3ExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 99 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 59, + "charOffset": 110, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A9D3027893EA84A1DA6054FF9143A097ED01A2C5E2145F126BCFB3F7CDED5E7D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'SerializableIssueV4ExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV4ExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 100 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 59, + "charOffset": 110, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F36F759C3CB0756CCEED5CF79B71B9803653798395B88B786635EF71EE12B3E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'StringPathExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 50, + "charOffset": 101, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "571404ECA399E43098BFCB4EFFCDB0F9319572CD1CDA817CC070218BD67ACF74" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'TerraformProviderTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 102 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 47, + "charOffset": 111, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1EEE5E386E2B65FE1FAEF61260F1A75F5119996A328DEE7A488106BE6C700E72" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'TerraformSettingsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 47, + "charOffset": 93, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D7540499333A38E7885CBA8B5066EC6850E9E563076F924DA67BBA6D986BA1D9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'TheCtor' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 7, + "startColumn": 29, + "endLine": 7, + "endColumn": 36, + "charOffset": 148, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "381951798A34A7B000EC6A0CDE87202D9349CB223CD7AA2FCC07D0851DEFC5CB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'TheFilterIssuesByNumberMethod' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererTests.cs", + "uriBaseId": "solutionDir", + "index": 71 + }, + "region": { + "startLine": 377, + "startColumn": 33, + "endLine": 377, + "endColumn": 62, + "charOffset": 16067, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6B76880B73D7661C8B813EF73F715EEDEEA056773C147F44E0D3A70DA5307344" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'UriExtensionsTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/UriExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 103 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 43, + "charOffset": 56, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3556C081B4C05672E214A1D2B7558964B15EA1C7C2CBB7CD4792B50E260087C2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ClassNeverInstantiated.Global", + "ruleIndex": 10, + "level": "note", + "message": { + "text": "Class 'XmlFileLoggerLogFileFormatTests' is never instantiated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 104 + }, + "region": { + "startLine": 7, + "startColumn": 25, + "endLine": 7, + "endColumn": 56, + "charOffset": 203, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "631801D1148F5261963E8F7AE6B3D722C6D251AB323CC0432220CBC3E47C18A5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'activeComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 28, + "startColumn": 21, + "endLine": 28, + "endColumn": 35, + "charOffset": 986, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B6A868530185605BD38959EBF5BB5E75D0A96CAD12AB51A5AA57486A74E2164A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'activeComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 45, + "startColumn": 21, + "endLine": 45, + "endColumn": 35, + "charOffset": 1683, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2FFF59DA815BAEC92AC92A82F57F557CA655373E0E9E6D9CEF92F41F8A7BE24B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'activeComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 85, + "startColumn": 21, + "endLine": 85, + "endColumn": 35, + "charOffset": 3387, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "626E872129205E927BCAC2392040C59220B52666AD4D66F57B49B858D2F44628" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'activeComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 105, + "startColumn": 21, + "endLine": 105, + "endColumn": 35, + "charOffset": 4274, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A259C0322B5B5296E878660110465029E2B9EDA9F830EB66C568B91087D5B505" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 16, + "startColumn": 21, + "endLine": 16, + "endColumn": 38, + "charOffset": 486, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0533149724FECBA8A293F8D5FF20C2D722452F98D178F8D6438CF6441EB8B7D4" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 33, + "startColumn": 21, + "endLine": 33, + "endColumn": 38, + "charOffset": 1119, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FA78D0751F9CEC1DB72E31C3126DB0C9E4D440B7CB8D5AA4AE4FAF713C96D7DE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 50, + "startColumn": 21, + "endLine": 50, + "endColumn": 38, + "charOffset": 1741, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F365B7B01CD80F72707B8EE31374C9B886ACB9E86D3086A673E064D9BA2CF43B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 65, + "startColumn": 21, + "endLine": 65, + "endColumn": 38, + "charOffset": 2288, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F365B7B01CD80F72707B8EE31374C9B886ACB9E86D3086A673E064D9BA2CF43B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 83, + "startColumn": 21, + "endLine": 83, + "endColumn": 38, + "charOffset": 2949, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "139179500A080C2C3FA5648D3337DC36878C6080C7807BC971E5B9F67BE0E115" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 141, + "startColumn": 21, + "endLine": 141, + "endColumn": 38, + "charOffset": 5455, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "139179500A080C2C3FA5648D3337DC36878C6080C7807BC971E5B9F67BE0E115" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'discussionThreads' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 38 + }, + "region": { + "startLine": 223, + "startColumn": 21, + "endLine": 223, + "endColumn": 38, + "charOffset": 8977, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "139179500A080C2C3FA5648D3337DC36878C6080C7807BC971E5B9F67BE0E115" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 18, + "startColumn": 21, + "endLine": 18, + "endColumn": 27, + "charOffset": 497, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "12E8F99AD669EBD6595E3AF6EB6BE2FB5CD3E4056F7F3B82B0D4BFE996B78DD1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 63, + "startColumn": 21, + "endLine": 63, + "endColumn": 27, + "charOffset": 1963, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "12E8F99AD669EBD6595E3AF6EB6BE2FB5CD3E4056F7F3B82B0D4BFE996B78DD1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 80, + "startColumn": 21, + "endLine": 80, + "endColumn": 27, + "charOffset": 2504, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "12E8F99AD669EBD6595E3AF6EB6BE2FB5CD3E4056F7F3B82B0D4BFE996B78DD1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 94, + "startColumn": 21, + "endLine": 94, + "endColumn": 27, + "charOffset": 2966, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "904AA9DA7A79659CFA1BBBB58A468BC8A4DA9F9E2D837632EEA56AA59FD4AEC3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir", + "index": 87 + }, + "region": { + "startLine": 108, + "startColumn": 21, + "endLine": 108, + "endColumn": 27, + "charOffset": 3409, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "904AA9DA7A79659CFA1BBBB58A468BC8A4DA9F9E2D837632EEA56AA59FD4AEC3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'issues' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1628, + "startColumn": 21, + "endLine": 1628, + "endColumn": 27, + "charOffset": 61935, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "004C73613CB18A663B9FCAF3E5155C7BCF9A8CF8F51B522F0466B2E999EABDBB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'modifiedFiles' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 16, + "startColumn": 21, + "endLine": 16, + "endColumn": 34, + "charOffset": 493, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "26EBEEE27A905FF0113D36D30E7094BE6BE2D5AF17651861F85DA1E76C272671" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'modifiedFiles' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 33, + "startColumn": 21, + "endLine": 33, + "endColumn": 34, + "charOffset": 1105, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0BFD4C481E2CB539276988075CA61F1CEE23998D1E393D30780CE8405C207CDF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'modifiedFiles' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 50, + "startColumn": 21, + "endLine": 50, + "endColumn": 34, + "charOffset": 1706, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3660358A18014F52C38B3FE3F3A473F4F531488EFF2093BFFF3816B6696AA1BB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'modifiedFiles' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 65, + "startColumn": 21, + "endLine": 65, + "endColumn": 34, + "charOffset": 2232, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3660358A18014F52C38B3FE3F3A473F4F531488EFF2093BFFF3816B6696AA1BB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'modifiedFiles' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 83, + "startColumn": 21, + "endLine": 83, + "endColumn": 34, + "charOffset": 2879, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BC8B4113531057D7D3E775338CE3331CC217E5D9B4017E647384A85DB48B7CA9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'resolvedComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 13, + "startColumn": 21, + "endLine": 13, + "endColumn": 37, + "charOffset": 461, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1BBE849A3045B23338E8B447E93852839450970CF6BC7FB2395E0BADDBC36EA0" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'resolvedComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 30, + "startColumn": 21, + "endLine": 30, + "endColumn": 37, + "charOffset": 1157, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "16189EF32E88EDF119B99F8F03D39A79E1FFCB465B6DBE4B322226988C3BCE52" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'resolvedComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 67, + "startColumn": 21, + "endLine": 67, + "endColumn": 37, + "charOffset": 2687, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1BBE849A3045B23338E8B447E93852839450970CF6BC7FB2395E0BADDBC36EA0" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'resolvedComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 87, + "startColumn": 21, + "endLine": 87, + "endColumn": 37, + "charOffset": 3571, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FED5DF8809053E8280D6E5F7174A85796653AE13DB9FB40443F5B02DCCB0B1D9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'value' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssuesArgumentChecksTests.cs", + "uriBaseId": "solutionDir", + "index": 76 + }, + "region": { + "startLine": 156, + "startColumn": 21, + "endLine": 156, + "endColumn": 26, + "charOffset": 4564, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A712DA68BC9B667B3246C38725B2C1B24A42C8BB5A06009C2135E6E740A50D29" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'value' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssuesArgumentChecksTests.cs", + "uriBaseId": "solutionDir", + "index": 76 + }, + "region": { + "startLine": 200, + "startColumn": 21, + "endLine": 200, + "endColumn": 26, + "charOffset": 5814, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A712DA68BC9B667B3246C38725B2C1B24A42C8BB5A06009C2135E6E740A50D29" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'value' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssuesArgumentChecksTests.cs", + "uriBaseId": "solutionDir", + "index": 76 + }, + "region": { + "startLine": 255, + "startColumn": 21, + "endLine": 255, + "endColumn": 26, + "charOffset": 7370, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A712DA68BC9B667B3246C38725B2C1B24A42C8BB5A06009C2135E6E740A50D29" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'wontFixComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 12, + "startColumn": 21, + "endLine": 12, + "endColumn": 36, + "charOffset": 379, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7160264840EE005C4C97D6777DAD3966E385B31744ABAAB552B85F6CC8A57561" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'wontFixComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 46, + "startColumn": 21, + "endLine": 46, + "endColumn": 36, + "charOffset": 1764, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "941A4854F544BA2E4ED83EF2A0E49F3617DB1A197692F54EE00D5EE4B29C7699" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'wontFixComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 66, + "startColumn": 21, + "endLine": 66, + "endColumn": 36, + "charOffset": 2605, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EA1C498715CE6B7F31501562F5305F3C5045AE46388E6614E182285F2AE724FC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "CollectionNeverUpdated.Local", + "ruleIndex": 11, + "message": { + "text": "Content of collection 'wontFixComments' is never updated" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 106, + "startColumn": 21, + "endLine": 106, + "endColumn": 36, + "charOffset": 4355, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9354061B7FF0A7D95D51FB6FDD8D35A6B9C7B83A70734978E376E8E776473690" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ConditionIsAlwaysTrueOrFalse", + "ruleIndex": 12, + "message": { + "text": "Expression is always false" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir", + "index": 105 + }, + "region": { + "startLine": 93, + "startColumn": 17, + "endLine": 93, + "endColumn": 28, + "charOffset": 3911, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "73829EB40ACF8904407A1122E62581267F61C58FA403F8654DD721EF98FFD5A3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConstantNullCoalescingCondition", + "ruleIndex": 13, + "message": { + "text": "'??' left operand is never null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 186, + "startColumn": 20, + "endLine": 186, + "endColumn": 78, + "charOffset": 7785, + "charLength": 58 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F92A3DDB74118347AE6989C408AA993FBDC359650810B4D64A92A6340237795A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "ruleIndex": 14, + "level": "note", + "message": { + "text": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 51, + "startColumn": 36, + "endLine": 51, + "endColumn": 61, + "charOffset": 2154, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D20BDCB7F04C5C3ED7481516410000CBDCF2EBA7EC16271C1792873DC8A7B2CD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "ruleIndex": 14, + "level": "note", + "message": { + "text": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 55, + "startColumn": 36, + "endLine": 55, + "endColumn": 62, + "charOffset": 2351, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FE99E8CDE59E33BE66F92A6364324AD0672467BFF594CB3C8B6AE417586004DB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertConstructorToMemberInitializers", + "ruleIndex": 15, + "level": "note", + "message": { + "text": "Convert constructor into member initializers" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir", + "index": 20 + }, + "region": { + "startLine": 23, + "startColumn": 16, + "endLine": 23, + "endColumn": 34, + "charOffset": 826, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BE4C5E65B519D46FDED15C356C1AD5F08287A56C31A0D88FB8F9F4BD508B8581" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ConvertConstructorToMemberInitializers", + "ruleIndex": 15, + "level": "note", + "message": { + "text": "Convert constructor into member initializers" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 19 + }, + "region": { + "startLine": 10, + "startColumn": 16, + "endLine": 10, + "endColumn": 41, + "charOffset": 239, + "charLength": 25 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F65590DB407F9199A091722A17D953FEFD2E0FEAE3438D1D2DAC2928D3D3FAAB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ConvertConstructorToMemberInitializers", + "ruleIndex": 15, + "level": "note", + "message": { + "text": "Convert constructor into member initializers" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 24 + }, + "region": { + "startLine": 10, + "startColumn": 16, + "endLine": 10, + "endColumn": 39, + "charOffset": 266, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6A6D0B77A6C348D25D6472A6EB61361A3587FCD3CEA6B80DE2D91FF3C06BEEC6" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ConvertToAutoProperty", + "ruleIndex": 16, + "level": "note", + "message": { + "text": "Convert into auto-property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 56, + "startColumn": 21, + "endLine": 56, + "endColumn": 28, + "charOffset": 1214, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3FA990C8A381813903C1CDA66FEE2E617612F1719F532875252C2793731FFC79" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToAutoProperty", + "ruleIndex": 16, + "level": "note", + "message": { + "text": "Convert into auto-property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 62, + "startColumn": 21, + "endLine": 62, + "endColumn": 27, + "charOffset": 1344, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A7E6A4C7D760DC6AECA08D018E8CBCA9053159C55A8EB2AB76329EC25666C41E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToAutoProperty", + "ruleIndex": 16, + "level": "note", + "message": { + "text": "Convert into auto-property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 91, + "startColumn": 21, + "endLine": 91, + "endColumn": 33, + "charOffset": 1947, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "112F177366F14B9138899BCA620B20F75F887C75A20DEBDE4327857E97945C89" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToAutoProperty", + "ruleIndex": 16, + "level": "note", + "message": { + "text": "Convert into auto-property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 97, + "startColumn": 54, + "endLine": 97, + "endColumn": 64, + "charOffset": 2125, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "501F6AA02EB45AF0D47989E000ABEE079FCDDFC8EC505FF21208F8AEA33647E2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToAutoProperty", + "ruleIndex": 16, + "level": "note", + "message": { + "text": "Convert into auto-property" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 84, + "startColumn": 21, + "endLine": 84, + "endColumn": 35, + "charOffset": 1943, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6C45F5A6C8ECBBD6BB6A314CA4E46462B8944465ABB0DA813360DAAF46C17856" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 629, + "startColumn": 28, + "endLine": 629, + "endColumn": 34, + "charOffset": 19613, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "224F360AD50B36D9646256CB0F8D23AD6F78F2FEFB169AC863263E413E05CFF4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 691, + "startColumn": 17, + "endLine": 691, + "endColumn": 23, + "charOffset": 21990, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8F1CC5C2FA8B88AACDF82424CD0D3D7310322A20FDDCA22A82DBD5B85034F772" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 697, + "startColumn": 17, + "endLine": 697, + "endColumn": 23, + "charOffset": 22231, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E7059C3169A99DD542EA415C0120FF1809E8618AE8C0893266804D211507AA6C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 703, + "startColumn": 17, + "endLine": 703, + "endColumn": 23, + "charOffset": 22475, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "412E48E27773C852D01A2AF8FBDFF0A0C6E0CD6F12DE82ED31E6EAEBDBA52EBE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 709, + "startColumn": 17, + "endLine": 709, + "endColumn": 23, + "charOffset": 22717, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3439962389DB22A6E6F5FABF97FCD025254F05C447EC2ADD0FB3A34D69C1C539" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 715, + "startColumn": 17, + "endLine": 715, + "endColumn": 23, + "charOffset": 22960, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D841AE64C013422D7047E029D5ECD387FCD87F6382780E545B6E47805418027" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 721, + "startColumn": 17, + "endLine": 721, + "endColumn": 23, + "charOffset": 23203, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EBF55656E144E25C9E181CCE1EDAC2119772D1339E44D374195CCE9E33DFA0DC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 727, + "startColumn": 17, + "endLine": 727, + "endColumn": 23, + "charOffset": 23448, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "140F2EDE211AB65470BB28B3B3E006A12521B9EEBF50CEC8E4F3EACF44498EEE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 733, + "startColumn": 17, + "endLine": 733, + "endColumn": 23, + "charOffset": 23691, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1A6C9E9B982435CA86D53FC9EA61F614D14813AF84AA0E76D517EEBB81A593E1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 739, + "startColumn": 17, + "endLine": 739, + "endColumn": 23, + "charOffset": 23935, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E32FFF4F9515EF698EB8D266D44E49D9F61B636CAFEB6DD5B3409D63C2327A0D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 745, + "startColumn": 17, + "endLine": 745, + "endColumn": 23, + "charOffset": 24180, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E543E3E2F7B264933AB668C1A89A0F71ADC8B453EAE1F169D8300C3030CAB491" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 751, + "startColumn": 17, + "endLine": 751, + "endColumn": 23, + "charOffset": 24433, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7D88B4F50D944A4E9DA89A0103AFBB6C6BEF4792803BFD8E610AA15C4DE0F85F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 757, + "startColumn": 17, + "endLine": 757, + "endColumn": 23, + "charOffset": 24669, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "805F7C0A54545927008628F17CDBC14E7C5C505BFB2EE74699FB1DE980594A94" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 763, + "startColumn": 17, + "endLine": 763, + "endColumn": 23, + "charOffset": 24914, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "187EE364BCE77C9AC48ACA5B0D1000AC28677B916AB4A88DE03F014F0A172602" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 769, + "startColumn": 17, + "endLine": 769, + "endColumn": 23, + "charOffset": 25161, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "79DEAF81BCF46879FE7C389E04BB9A447633FACAB1B2781BFA8F932B4D5ED239" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 775, + "startColumn": 17, + "endLine": 775, + "endColumn": 23, + "charOffset": 25433, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D9C9C3ABF5751E375B30593BDC0D3E1488075BF0B7F8B64D3F8B30CDB7C8421B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 988, + "startColumn": 28, + "endLine": 988, + "endColumn": 34, + "charOffset": 32279, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D982493113AD8DD11E13077154BA4F4B204F12380B15F738E9D933F97E3F6F7D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 996, + "startColumn": 28, + "endLine": 996, + "endColumn": 34, + "charOffset": 32531, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5272726B27E58E9E999790C77BF1F0A77C3C077414F373C9049A99463368FBDE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1002, + "startColumn": 28, + "endLine": 1002, + "endColumn": 34, + "charOffset": 32718, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DA0134FFABC2701A42677602E3EF233D43B5F7AE0B19F636A2100A2E4676DE14" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLambdaExpression", + "ruleIndex": 17, + "level": "note", + "message": { + "text": "Use lambda expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1060, + "startColumn": 21, + "endLine": 1060, + "endColumn": 27, + "charOffset": 34524, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "303CF0162A77CFDD471864323925490892449F5EA7550F9F2DCFC7D629567B30" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLocalFunction", + "ruleIndex": 18, + "level": "note", + "message": { + "text": "Use local function" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1047, + "startColumn": 26, + "endLine": 1047, + "endColumn": 42, + "charOffset": 34064, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8775E18C6396B7C0EAD707F67EE5E33B122369D8BB2477D784E6AFD4E17B176F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToLocalFunction", + "ruleIndex": 18, + "level": "note", + "message": { + "text": "Use local function" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1058, + "startColumn": 26, + "endLine": 1058, + "endColumn": 42, + "charOffset": 34441, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "74A7D53996C0C29BDE6216BB0B0057FD1554C0000097FB55CFB2373E7FED7A12" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ConvertToPrimaryConstructor", + "ruleIndex": 19, + "level": "note", + "message": { + "text": "Convert into primary constructor" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository.Tests/GitRunnerFixture.cs", + "uriBaseId": "solutionDir", + "index": 106 + }, + "region": { + "startLine": 9, + "startColumn": 16, + "endLine": 9, + "endColumn": 32, + "charOffset": 236, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6CAC918848E9A4AA7BB3E7368F1B72508A974C29C2DE23F3EFA7885B021C46DA" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ConvertToPrimaryConstructor", + "ruleIndex": 19, + "level": "note", + "message": { + "text": "Convert into primary constructor" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1131, + "startColumn": 16, + "endLine": 1131, + "endColumn": 43, + "charOffset": 29437, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08DFB110BF9DCA6BD3D3328E393079E15C66EA17427E032E77DA4DBD6F84FC81" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CoVariantArrayConversion", + "ruleIndex": 20, + "message": { + "text": "Co-variant array conversion from string[] to object?[] can cause run-time exception on write operation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif/SarifIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 107 + }, + "region": { + "startLine": 127, + "startColumn": 33, + "endLine": 127, + "endColumn": 52, + "charOffset": 5036, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3E04E8FFD0362760A5CCC1B910B38FB388DDFFED47F5BF59674A39AAF2517C8E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "CoVariantArrayConversion", + "ruleIndex": 20, + "message": { + "text": "Co-variant array conversion from string[] to object?[] can cause run-time exception on write operation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif/SarifIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 107 + }, + "region": { + "startLine": 136, + "startColumn": 33, + "endLine": 136, + "endColumn": 52, + "charOffset": 5406, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BA3CC5F134A308FFB159B69EC82B6A09DB0642A18C127D362BB4F9A142D741E7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "EmptyStatement", + "ruleIndex": 21, + "message": { + "text": "Empty statement is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 103, + "startColumn": 46, + "endLine": 103, + "endColumn": 47, + "charOffset": 44885, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ED80196DFFB1059B2C92FF44807DA9B1B179B72C1908EB992D8CEC66FDFF681B" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 18, + "startColumn": 45, + "endLine": 18, + "endColumn": 56, + "charOffset": 524, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F65DDD78532E482FC9DA226817608357EE865DCA4ED0B639C23B2577638A9484" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 34, + "startColumn": 68, + "endLine": 34, + "endColumn": 79, + "charOffset": 1135, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43800E61F1A5DFBBFA7AB5F71FFB0C58C192CC73DD0682F740920C793C97559F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 49, + "startColumn": 77, + "endLine": 49, + "endColumn": 91, + "charOffset": 1629, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C948C4B6278B82068B0F0944572C2C859C4F524D49DEDE55B91EF144044EFF25" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 64, + "startColumn": 61, + "endLine": 64, + "endColumn": 72, + "charOffset": 2165, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A14D23645B4E9FB4D41E8EC75507DD3E1932B31FA411026390FC2CC99E3A08D0" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 57 + }, + "region": { + "startLine": 21, + "startColumn": 78, + "endLine": 21, + "endColumn": 81, + "charOffset": 673, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FFD3C7A7A1ABA87E1779BBB42B7F1A2349D8F391A3A25E4597A71172E2B65A0C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 57 + }, + "region": { + "startLine": 35, + "startColumn": 83, + "endLine": 35, + "endColumn": 91, + "charOffset": 1132, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FFD3C7A7A1ABA87E1779BBB42B7F1A2349D8F391A3A25E4597A71172E2B65A0C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 19, + "startColumn": 46, + "endLine": 19, + "endColumn": 57, + "charOffset": 580, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BDEB55B5DCE78F68E95E00C2F79430743229424164CC71EF6832D32BBDEDD444" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 35, + "startColumn": 69, + "endLine": 35, + "endColumn": 75, + "charOffset": 1218, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0FE483CB4DA0D60518EC28799C6F2EFD596AC60615690807626E18B617023200" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 51, + "startColumn": 46, + "endLine": 51, + "endColumn": 60, + "charOffset": 1726, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C3877D5066875DFF1FDFA01F6267EEC9FB870E9DDC404BEE11A80B7EFA9FC5DB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 5 + }, + "region": { + "startLine": 66, + "startColumn": 62, + "endLine": 66, + "endColumn": 68, + "charOffset": 2258, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C3877D5066875DFF1FDFA01F6267EEC9FB870E9DDC404BEE11A80B7EFA9FC5DB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository.Tests/IssueBuilderExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 66 + }, + "region": { + "startLine": 15, + "startColumn": 53, + "endLine": 15, + "endColumn": 65, + "charOffset": 504, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "830FB1C7E3A2314F6DC91428656CE2FB92C164177018C45020AA0745C5D27A7E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository.Tests/IssueBuilderExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 66 + }, + "region": { + "startLine": 29, + "startColumn": 73, + "endLine": 29, + "endColumn": 88, + "charOffset": 1062, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "830FB1C7E3A2314F6DC91428656CE2FB92C164177018C45020AA0745C5D27A7E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 82 + }, + "region": { + "startLine": 20, + "startColumn": 25, + "endLine": 20, + "endColumn": 28, + "charOffset": 592, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8253E2EAFB32F1E26631E5DE4CAA7B8E3424048BCC019700E4C18055246A68FC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 20, + "startColumn": 52, + "endLine": 20, + "endColumn": 63, + "charOffset": 651, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "988C42BCA6DA4FA186FF789882E44C4EC6B965AC90A8F7D909620B0118C832AB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 36, + "startColumn": 75, + "endLine": 36, + "endColumn": 81, + "charOffset": 1312, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9BB66B7000B26615C0E78D456E3514D7BB10161CAF6488F32CC92C6A676AA765" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 52, + "startColumn": 52, + "endLine": 52, + "endColumn": 66, + "charOffset": 1836, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1F9EE8E1CD0AC4A27F8C9E76FBCE9EDBD543DFF00FB9FA78FCD80DC038D5EF3A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 6 + }, + "region": { + "startLine": 67, + "startColumn": 68, + "endLine": 67, + "endColumn": 74, + "charOffset": 2380, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1F9EE8E1CD0AC4A27F8C9E76FBCE9EDBD543DFF00FB9FA78FCD80DC038D5EF3A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 32 + }, + "region": { + "startLine": 15, + "startColumn": 79, + "endLine": 15, + "endColumn": 93, + "charOffset": 501, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "168681DF4880BCDB490954A45C0A0C189881F5A2E77A5448F102EFC086B761BC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 32 + }, + "region": { + "startLine": 29, + "startColumn": 79, + "endLine": 29, + "endColumn": 93, + "charOffset": 961, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C60B483ABD1B646DDBE5BEA6A30FEE0BBB057931A43E943E6D280B0240CEB437" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir", + "index": 69 + }, + "region": { + "startLine": 18, + "startColumn": 46, + "endLine": 18, + "endColumn": 60, + "charOffset": 670, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7E9398C61405DD478694F1CDFDDD1132424883F8D35707D6367A4E223069DF04" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 96 + }, + "region": { + "startLine": 16, + "startColumn": 77, + "endLine": 16, + "endColumn": 88, + "charOffset": 443, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F7FA888FFC07B81837F3BA57E75D3A9A1B9ABFE252DA0D230C88EE20B1AAEFDE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 96 + }, + "region": { + "startLine": 29, + "startColumn": 77, + "endLine": 29, + "endColumn": 91, + "charOffset": 844, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BC2013E37E021665D906C14EAC11415C85C7A62D6A77583489F4A32C1180C847" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 18, + "startColumn": 49, + "endLine": 18, + "endColumn": 71, + "charOffset": 564, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03B6D0C43642D3256023AFBC7912B87A64D1094D550A6175177A2C15E4C140EF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 34, + "startColumn": 72, + "endLine": 34, + "endColumn": 89, + "charOffset": 1223, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "94AFEE9779B15D1381FDB1A7144EACD913B640D9E59CF6D1E76D694774DE7EB3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 49, + "startColumn": 81, + "endLine": 49, + "endColumn": 95, + "charOffset": 1739, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1EC750956D545A3B0AF1AEEADED22C8B5C6C2E45829A177A4CD9D88C7CAB636F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 64, + "startColumn": 65, + "endLine": 64, + "endColumn": 82, + "charOffset": 2297, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B55D53C2F5F8391BB17B8D8AAF01C161DA36444EC77EAD75AF2D3D270024961B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1703, + "startColumn": 63, + "endLine": 1703, + "endColumn": 71, + "charOffset": 57902, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E82ECEBDC38416C5F1A21D71C3D89832019A14352CC298A93C7533C5E8F6A210" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1706, + "startColumn": 41, + "endLine": 1706, + "endColumn": 49, + "charOffset": 57997, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "29FBDA8C9E9180A39EF310D080407EDCC367C2A68604396C2CD96917C884E5C8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1051, + "startColumn": 29, + "endLine": 1051, + "endColumn": 33, + "charOffset": 47403, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1052, + "startColumn": 29, + "endLine": 1052, + "endColumn": 36, + "charOffset": 47438, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1053, + "startColumn": 29, + "endLine": 1053, + "endColumn": 35, + "charOffset": 47476, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1054, + "startColumn": 29, + "endLine": 1054, + "endColumn": 38, + "charOffset": 47513, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1106, + "startColumn": 29, + "endLine": 1106, + "endColumn": 33, + "charOffset": 49800, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1107, + "startColumn": 29, + "endLine": 1107, + "endColumn": 36, + "charOffset": 49835, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1108, + "startColumn": 29, + "endLine": 1108, + "endColumn": 35, + "charOffset": 49873, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1109, + "startColumn": 29, + "endLine": 1109, + "endColumn": 38, + "charOffset": 49910, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1161, + "startColumn": 29, + "endLine": 1161, + "endColumn": 33, + "charOffset": 52202, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1162, + "startColumn": 29, + "endLine": 1162, + "endColumn": 36, + "charOffset": 52237, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1163, + "startColumn": 29, + "endLine": 1163, + "endColumn": 35, + "charOffset": 52275, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1164, + "startColumn": 29, + "endLine": 1164, + "endColumn": 38, + "charOffset": 52312, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1284, + "startColumn": 29, + "endLine": 1284, + "endColumn": 36, + "charOffset": 57871, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1285, + "startColumn": 29, + "endLine": 1285, + "endColumn": 35, + "charOffset": 57909, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1286, + "startColumn": 29, + "endLine": 1286, + "endColumn": 38, + "charOffset": 57946, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1339, + "startColumn": 29, + "endLine": 1339, + "endColumn": 36, + "charOffset": 60356, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1340, + "startColumn": 29, + "endLine": 1340, + "endColumn": 35, + "charOffset": 60394, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1341, + "startColumn": 29, + "endLine": 1341, + "endColumn": 38, + "charOffset": 60431, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1394, + "startColumn": 29, + "endLine": 1394, + "endColumn": 36, + "charOffset": 62774, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1395, + "startColumn": 29, + "endLine": 1395, + "endColumn": 35, + "charOffset": 62812, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1396, + "startColumn": 29, + "endLine": 1396, + "endColumn": 38, + "charOffset": 62849, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1397, + "startColumn": 29, + "endLine": 1397, + "endColumn": 37, + "charOffset": 62889, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "097CD90C900D4B7E64DC1092E3947F3057567C23538D521F9C898FB503FEA53B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1448, + "startColumn": 29, + "endLine": 1448, + "endColumn": 33, + "charOffset": 65202, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1449, + "startColumn": 29, + "endLine": 1449, + "endColumn": 36, + "charOffset": 65237, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1450, + "startColumn": 29, + "endLine": 1450, + "endColumn": 35, + "charOffset": 65275, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1451, + "startColumn": 29, + "endLine": 1451, + "endColumn": 38, + "charOffset": 65312, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1467, + "startColumn": 41, + "endLine": 1467, + "endColumn": 45, + "charOffset": 65931, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5385A43517BA88F130C469B06D93363E8E3387DE9B8A6B966348CC0DDFF1C7E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1505, + "startColumn": 29, + "endLine": 1505, + "endColumn": 36, + "charOffset": 67717, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1564, + "startColumn": 29, + "endLine": 1564, + "endColumn": 35, + "charOffset": 70313, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1565, + "startColumn": 29, + "endLine": 1565, + "endColumn": 38, + "charOffset": 70350, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1619, + "startColumn": 29, + "endLine": 1619, + "endColumn": 35, + "charOffset": 72807, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1620, + "startColumn": 29, + "endLine": 1620, + "endColumn": 38, + "charOffset": 72844, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1672, + "startColumn": 29, + "endLine": 1672, + "endColumn": 33, + "charOffset": 75237, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1674, + "startColumn": 29, + "endLine": 1674, + "endColumn": 35, + "charOffset": 75310, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1675, + "startColumn": 29, + "endLine": 1675, + "endColumn": 38, + "charOffset": 75347, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1729, + "startColumn": 29, + "endLine": 1729, + "endColumn": 35, + "charOffset": 77814, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1730, + "startColumn": 29, + "endLine": 1730, + "endColumn": 38, + "charOffset": 77851, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1783, + "startColumn": 29, + "endLine": 1783, + "endColumn": 36, + "charOffset": 80248, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1784, + "startColumn": 29, + "endLine": 1784, + "endColumn": 35, + "charOffset": 80286, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1785, + "startColumn": 29, + "endLine": 1785, + "endColumn": 38, + "charOffset": 80323, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1801, + "startColumn": 44, + "endLine": 1801, + "endColumn": 51, + "charOffset": 80945, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "01E3E70EF05D5D6487CF55FDDED9368B44EF7980BDCABA502F37668EE66B960E" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1839, + "startColumn": 29, + "endLine": 1839, + "endColumn": 35, + "charOffset": 82751, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1840, + "startColumn": 29, + "endLine": 1840, + "endColumn": 38, + "charOffset": 82788, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1954, + "startColumn": 29, + "endLine": 1954, + "endColumn": 38, + "charOffset": 87844, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2009, + "startColumn": 29, + "endLine": 2009, + "endColumn": 38, + "charOffset": 90339, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2061, + "startColumn": 29, + "endLine": 2061, + "endColumn": 33, + "charOffset": 92730, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "44299DFD63FBDD393EF75151D8B42F20508422FC18BD95095F97FED13AFD9A11" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2062, + "startColumn": 29, + "endLine": 2062, + "endColumn": 36, + "charOffset": 92765, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "43457F056F20183E7AE9886E577CCE6B8840622615AEABC38AB57734AA7536C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2064, + "startColumn": 29, + "endLine": 2064, + "endColumn": 38, + "charOffset": 92840, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2118, + "startColumn": 29, + "endLine": 2118, + "endColumn": 35, + "charOffset": 95276, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2119, + "startColumn": 29, + "endLine": 2119, + "endColumn": 38, + "charOffset": 95313, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2135, + "startColumn": 43, + "endLine": 2135, + "endColumn": 49, + "charOffset": 95934, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EBCDDA7599AE94FA5E6164AE55F7417F09F56229E8FA4F5D39673F1CB8D8BDFD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2176, + "startColumn": 29, + "endLine": 2176, + "endColumn": 38, + "charOffset": 97836, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2343, + "startColumn": 29, + "endLine": 2343, + "endColumn": 35, + "charOffset": 105390, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2453, + "startColumn": 29, + "endLine": 2453, + "endColumn": 35, + "charOffset": 110383, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C43283A94AD787EDABA2C21688E8B9B99D8BC8E81322A532D4BF9ED90FCB039" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2454, + "startColumn": 29, + "endLine": 2454, + "endColumn": 38, + "charOffset": 110420, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8D081B79D89E4942D3C4BD1D48BD8D800A76FBA0EC29F3B64849BF14119833B7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 2470, + "startColumn": 46, + "endLine": 2470, + "endColumn": 55, + "charOffset": 111044, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "779E43429EDE96EAE40BCAEC4ACB1AADBA39A54A124AD6D6001DC44551BB79C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1632, + "startColumn": 80, + "endLine": 1632, + "endColumn": 88, + "charOffset": 62114, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "501E1E6DEFC669CAEC95FA4F7ED96855B7EE3A0ECA531342C02FC13323A710B8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ExpressionIsAlwaysNull", + "ruleIndex": 22, + "message": { + "text": "Expression is always null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/UriExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 103 + }, + "region": { + "startLine": 16, + "startColumn": 21, + "endLine": 16, + "endColumn": 24, + "charOffset": 432, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B17B62ABDB9AD07EE3F47AB633F6ABED778D36EF00B1DA7D13790CA1FB9B7304" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1103, + "startColumn": 53, + "endLine": 1103, + "endColumn": 68, + "charOffset": 28832, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B6326136D51296B45B20396644448F813B75AB222D76B2EB1341657142BC610B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 54, + "startColumn": 28, + "endLine": 54, + "endColumn": 43, + "charOffset": 1024, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "85A6DAAF521ABB86E75518405D777192D6EC657C1E2E8B9CF01BEA0489C25871" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 59, + "startColumn": 23, + "endLine": 59, + "endColumn": 28, + "charOffset": 1208, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E1CA08580DB1F1050BEED6172B1CD8E996EC56FDB59EC67A73B71940E6F4B0EE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 64, + "startColumn": 22, + "endLine": 64, + "endColumn": 37, + "charOffset": 1386, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "811D21141EF6F41F9D4075C2400A6CC74A4D1AE3832048437734706BAD7A7041" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 56, + "startColumn": 31, + "endLine": 56, + "endColumn": 50, + "charOffset": 1314, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "59588EEDAF8872A1BC7E86E730A9409E421B56F2D9FE37B35C16CA9BF4B4FFF0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 60, + "startColumn": 28, + "endLine": 60, + "endColumn": 34, + "charOffset": 1476, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5195F278F300A8956380C72A5A434A24A4CD1AE83ED54C66B3E576060FDFCA32" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 46, + "startColumn": 28, + "endLine": 46, + "endColumn": 39, + "charOffset": 1129, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B7B77F8D69FDDE05EF0A243888AB185CA5D4EC1DD98C6A05B1A209C44A0E7ABE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 49, + "startColumn": 28, + "endLine": 49, + "endColumn": 34, + "charOffset": 1238, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "80A7D57374B976D0BC9C1354A286CBDF778686B626C65072D686E9833A8C3720" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "ruleIndex": 23, + "level": "note", + "message": { + "text": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 51, + "startColumn": 31, + "endLine": 51, + "endColumn": 44, + "charOffset": 1305, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A07D436C872116809C7165F01514EC2CAF2839A62B15B935B258FE87D9C16512" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "HeuristicUnreachableCode", + "ruleIndex": 24, + "message": { + "text": "Code is heuristically unreachable" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir", + "index": 105 + }, + "region": { + "startLine": 94, + "startColumn": 13, + "endLine": 96, + "endColumn": 14, + "charOffset": 3937, + "charLength": 43 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3606A2682389A7539C32F6C2B00E2F8F678119D34F4B76C2894148AF18DD28F9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "HeuristicUnreachableCode", + "ruleIndex": 24, + "message": { + "text": "Code is heuristically unreachable" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir", + "index": 105 + }, + "region": { + "startLine": 95, + "startColumn": 17, + "endLine": 95, + "endColumn": 26, + "charOffset": 3956, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ABD6C42FFD60B9DABF3A3E2D05A5088E734B374814A68BBE14EB4D4BD1E0CD8D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentlySynchronizedField", + "ruleIndex": 25, + "message": { + "text": "The field is sometimes used inside synchronized block and sometimes used without synchronization" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 322, + "startColumn": 17, + "endLine": 322, + "endColumn": 25, + "charOffset": 9534, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B1B42EDC44B037CA2CB6ED6D4B02A87FF5762B2DF618C4853CACA15DA6DD327A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentlySynchronizedField", + "ruleIndex": 25, + "message": { + "text": "The field is sometimes used inside synchronized block and sometimes used without synchronization" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 323, + "startColumn": 24, + "endLine": 323, + "endColumn": 32, + "charOffset": 9588, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C4F9AF0E3A0C8974DD03FE2C4A3CF9C441A00939C4D8870316A20FE4A1A78993" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'add_comma' does not match rule 'Parameters'. Suggested name is 'addComma'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 233, + "startColumn": 38, + "endLine": 233, + "endColumn": 47, + "charOffset": 6108, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AA672209EABFF203440F75A97E66BDDB8C14CA3AD794B98C12FF02BC8370E9A0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'allow_comments' does not match rule 'Instance fields (private)'. Suggested name is 'allowComments'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 43, + "startColumn": 22, + "endLine": 43, + "endColumn": 36, + "charOffset": 998, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A062185AEF5E413AB739AF0962C24CCEAC8A47C6E367260FEB446738B34B91B4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'allow_single_quoted_strings' does not match rule 'Instance fields (private)'. Suggested name is 'allowSingleQuotedStrings'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 44, + "startColumn": 22, + "endLine": 44, + "endColumn": 49, + "charOffset": 1036, + "charLength": 27 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21903EED69B9B0B190FD063FE0B307D6E23FC317EF5D31ED86FC6545FF0DB0B8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'array_metadata' does not match rule 'Static readonly fields (private)'. Suggested name is 'ArrayMetadata'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 129, + "startColumn": 66, + "endLine": 129, + "endColumn": 80, + "charOffset": 3268, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7CE4AEC0DDE0EE2B00145399336E4031F0D09BA35C1DB97306A7475DD0F0F3E3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'array_metadata_lock' does not match rule 'Static readonly fields (private)'. Suggested name is 'ArrayMetadataLock'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 130, + "startColumn": 40, + "endLine": 130, + "endColumn": 59, + "charOffset": 3324, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7B9176D55B0C1BD3EEA71FDC3A515B4AA4A51D83F6DE1ACB4381E449E24E08B8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'base_exporters_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'BaseExportersTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 121, + "startColumn": 65, + "endLine": 121, + "endColumn": 85, + "charOffset": 2839, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5D1EBA089EEFBFC703A41E186045F681BC6DDCBAC0A2067DF18DB2A50D595C10" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'base_importers_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'BaseImportersTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 125, + "startColumn": 50, + "endLine": 125, + "endColumn": 70, + "charOffset": 3053, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "55E9ED1629122F056BF56872D723D8B9A7E273525AFC4BF9FE83989DA1310AD5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'column' does not match rule 'Instance fields (not private)'. Suggested name is 'Column'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 37, + "startColumn": 20, + "endLine": 37, + "endColumn": 26, + "charOffset": 920, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "616E05D14A133F28C07AFA62F137EEE3C5BCDB2C1ABCF60BA1F1D7D2DEC41981" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'column' does not match rule 'Instance fields (not private)'. Suggested name is 'Column'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 64, + "startColumn": 20, + "endLine": 64, + "endColumn": 26, + "charOffset": 1469, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E7BACE6C859EF3F5D7C40AA8AA58DBDA59B2696A0E8E9C5D7C3B58B084464853" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'conv_op' does not match rule 'Local variables'. Suggested name is 'convOp'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 416, + "startColumn": 28, + "endLine": 416, + "endColumn": 35, + "charOffset": 12663, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C7E602B9537A3494581DD902A73FD3F9FAF19C906A3FC6BACDE3C3462FEC19CB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'conv_ops' does not match rule 'Static readonly fields (private)'. Suggested name is 'ConvOps'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 133, + "startColumn": 48, + "endLine": 133, + "endColumn": 56, + "charOffset": 3461, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E01C0135A974C55C16CC884668E5E20B739D7C445AB43D686A8679FB9CB6CA77" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'conv_ops_lock' does not match rule 'Static readonly fields (private)'. Suggested name is 'ConvOpsLock'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 134, + "startColumn": 40, + "endLine": 134, + "endColumn": 53, + "charOffset": 3511, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "240342256D49B57F8CA2771DA061F1497F27061516E5BDB67ECC7207C0065120" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ConvertType' does not match rule 'Parameters'. Suggested name is 'convertType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1024, + "startColumn": 57, + "endLine": 1024, + "endColumn": 68, + "charOffset": 33340, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A3F93741E716974F4CF5E6EC0306173785E029DA004BC42E7F3BFAEA284FECC3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ctx_stack' does not match rule 'Instance fields (private)'. Suggested name is 'ctxStack'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 51, + "startColumn": 38, + "endLine": 51, + "endColumn": 47, + "charOffset": 1131, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1B33C90A1CC74176D2A3A8F8A9D85C93528DD4CD6D28DDAD377B65BA844D445D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'current_input' does not match rule 'Instance fields (private)'. Suggested name is 'currentInput'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 55, + "startColumn": 21, + "endLine": 55, + "endColumn": 34, + "charOffset": 1062, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40C0093371D6D528EF4364AC54BA328AA8022B0A16B721A41C489C485FB0ED25" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'current_symbol' does not match rule 'Instance fields (private)'. Suggested name is 'currentSymbol'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 56, + "startColumn": 21, + "endLine": 56, + "endColumn": 35, + "charOffset": 1098, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "003ADD01F2D1526C30EFAD4BA1B3F59FC3442D9D42A90DEC9262408B4388F092" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'custom_exporters_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'CustomExportersTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 122, + "startColumn": 65, + "endLine": 122, + "endColumn": 87, + "charOffset": 2926, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "83EFE538BB01B381D4CCDDC4938D49B82EA8CB34A8DD34B8D915FFD8F0639766" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'custom_importers_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'CustomImportersTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 127, + "startColumn": 50, + "endLine": 127, + "endColumn": 72, + "charOffset": 3176, + "charLength": 22 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EC93CC9A0125C21C593F2C25E532895F3ACE278A36F20E2B9E5BC7FBD82E7F4F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'datetime_format' does not match rule 'Static readonly fields (private)'. Suggested name is 'DatetimeFormat'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 119, + "startColumn": 49, + "endLine": 119, + "endColumn": 64, + "charOffset": 2755, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B15C02EA229CD330E454FA2847495556D2F9883CF17E89AEAF139575C8765100" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'detail' does not match rule 'Instance fields (not private)'. Suggested name is 'Detail'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 38, + "startColumn": 23, + "endLine": 38, + "endColumn": 29, + "charOffset": 1024, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "788B7A4604739BCA3A8CCC23DD13F84D0B47C4ED5DBE3EE2481452AE32AE7423" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'diagnostics' does not match rule 'Instance fields (not private)'. Suggested name is 'Diagnostics'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 25, + "startColumn": 29, + "endLine": 25, + "endColumn": 40, + "charOffset": 786, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9E9C1C63CE28E4B2253088C069166B0B4C5BF61DACD23E0A17F1C1A929A3922B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'e_type' does not match rule 'Local variables'. Suggested name is 'eType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 915, + "startColumn": 22, + "endLine": 915, + "endColumn": 28, + "charOffset": 29750, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B449BB70432E90E8EAB04A0C2715E5648A69BC105FC4C1E0C1FA7B46C4F99E28" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'elem_type' does not match rule 'Local variables'. Suggested name is 'elemType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 442, + "startColumn": 22, + "endLine": 442, + "endColumn": 31, + "charOffset": 13614, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "867CB817A5A5DC9C59D26866905A86E81E8798519F1FE1FCDF29B0FFD3ABC9DB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'element_type' does not match rule 'Instance fields (private)'. Suggested name is 'elementType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 38, + "startColumn": 22, + "endLine": 38, + "endColumn": 34, + "charOffset": 834, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4FE8601870184ACBE9FDA9270407AFBCC7ABDB6A9042FFF95AF42803F3E87E80" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'element_type' does not match rule 'Instance fields (private)'. Suggested name is 'elementType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 72, + "startColumn": 22, + "endLine": 72, + "endColumn": 34, + "charOffset": 1524, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D3F69C06BF0E3AD751593A05FC11A67C0874F21F68006E829A3E1994A37AA57D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'end' does not match rule 'Instance fields (not private)'. Suggested name is 'End'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 54, + "startColumn": 25, + "endLine": 54, + "endColumn": 28, + "charOffset": 1307, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "65AB77337454F5CB27A9AFA5846BB01CD7F5ECA5BD30FD28373CA1DFFF86632F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'end_of_input' does not match rule 'Instance fields (private)'. Suggested name is 'endOfInput'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 58, + "startColumn": 22, + "endLine": 58, + "endColumn": 34, + "charOffset": 1171, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FE1B37F8A808072C816C8A4E3B1EE1F8D0C90858A77CE687753A9610AD8E749C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'end_of_input' does not match rule 'Instance fields (private)'. Suggested name is 'endOfInput'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 45, + "startColumn": 22, + "endLine": 45, + "endColumn": 34, + "charOffset": 1087, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0D4E4DF4334BC0D8CE0C916591AF0624FEB25EF0E782E467D83544C941BD6125" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'end_of_json' does not match rule 'Instance fields (private)'. Suggested name is 'endOfJson'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 57, + "startColumn": 22, + "endLine": 57, + "endColumn": 33, + "charOffset": 1136, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F183990CE4FA612C7A16B1B7DA462D92A9403EFB35950E3B0B2D1C5A1E9AC056" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'error_count' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorCount'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 19, + "startColumn": 20, + "endLine": 19, + "endColumn": 31, + "charOffset": 661, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9D7A612BF1E67D76F95ADAAC1483BAFFF63C26C002179520E82B1380F7C00948" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorContext' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorContext'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 29, + "startColumn": 23, + "endLine": 29, + "endColumn": 35, + "charOffset": 756, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "48A77D7D4D046128544126834EEA2D0C3FD2FDD6C1AA0E50D4A1FD1AE0872383" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorContext' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorContext'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 129, + "startColumn": 27, + "endLine": 129, + "endColumn": 39, + "charOffset": 5031, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A2955A053E11852A81416F784186CCD50F9F68472FA003EB312CE1A52C8559AF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorDetail' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorDetail'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 26, + "startColumn": 23, + "endLine": 26, + "endColumn": 34, + "charOffset": 696, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "84F61E9F4074F2B7E86154D37BCCD2EF793FCC18D37B93CC869A9CF658F10FAE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorDetail' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorDetail'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 126, + "startColumn": 27, + "endLine": 126, + "endColumn": 38, + "charOffset": 4963, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9D196468D452BCF6C3B83FCF95C7DEB38449D6F9A0A606B82781FAAECB6E0C5E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorRange' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorRange'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 32, + "startColumn": 22, + "endLine": 32, + "endColumn": 32, + "charOffset": 816, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DB33F90BAE2B81CDFD67A8FE06F6EC763E924B498EAF7498479FDDD5F33C0996" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'errorRange' does not match rule 'Instance fields (not private)'. Suggested name is 'ErrorRange'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 132, + "startColumn": 26, + "endLine": 132, + "endColumn": 36, + "charOffset": 5099, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0119E421784B7A5D0A75A1A7B6078E02DE0F4C4EA405B5DCABA1C6AE8C5A8DF6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'esc_char' does not match rule 'Parameters'. Suggested name is 'escChar'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 212, + "startColumn": 48, + "endLine": 212, + "endColumn": 56, + "charOffset": 5422, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4A3904D7EA578D03FCEF6FDCB95C009C59951F98BB325AE06D337863F30769C8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'f_info' does not match rule 'Local variables'. Suggested name is 'fInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 251, + "startColumn": 32, + "endLine": 251, + "endColumn": 38, + "charOffset": 7463, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD74D3747A8DA0DDD0294B43396A0E2EA915C44F1F3C4D70A1388F12E3AC1977" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'f_info' does not match rule 'Local variables'. Suggested name is 'fInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 292, + "startColumn": 32, + "endLine": 292, + "endColumn": 38, + "charOffset": 8702, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD74D3747A8DA0DDD0294B43396A0E2EA915C44F1F3C4D70A1388F12E3AC1977" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'file' does not match rule 'Instance fields (not private)'. Suggested name is 'File'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir", + "index": 112 + }, + "region": { + "startLine": 17, + "startColumn": 23, + "endLine": 17, + "endColumn": 27, + "charOffset": 537, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0EB86A71C04A49C8517361B0C145D18430E98AF24EBAFC229630C2ACC68B737" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'filename' does not match rule 'Instance fields (not private)'. Suggested name is 'Filename'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 48, + "startColumn": 23, + "endLine": 48, + "endColumn": 31, + "charOffset": 1192, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E05F2109F813315F45DF6A541B22D81F9A103D7BB10257C13E5A1FF5CDF53434" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'fileName' does not match rule 'Instance fields (not private)'. Suggested name is 'FileName'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 111, + "startColumn": 27, + "endLine": 111, + "endColumn": 35, + "charOffset": 4622, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F00DE456FB599A53514EB0C4EB6648EFF9D78CBDE9CAE4D44A9E41CBF6AE7C4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'filePath' does not match rule 'Instance fields (not private)'. Suggested name is 'FilePath'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 15, + "startColumn": 23, + "endLine": 15, + "endColumn": 31, + "charOffset": 529, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0C26E0262AA9C452FFA89039199D700E96C07BAE91984F37B0D98DBA36FCCB5B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'fsm_handler_table' does not match rule 'Parameters'. Suggested name is 'fsmHandlerTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 145, + "startColumn": 66, + "endLine": 145, + "endColumn": 83, + "charOffset": 3519, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E5558FDB2897F461311C3CAAC9477DB88CE92153B277965566930CEE3A872D8B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'fsm_handler_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'FsmHandlerTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 41, + "startColumn": 48, + "endLine": 41, + "endColumn": 65, + "charOffset": 955, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4AF58A04B3981F05B561D01D8BDB247516437A58DC673146967A804A10BCC3C8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'fsm_return_table' does not match rule 'Parameters'. Suggested name is 'fsmReturnTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 145, + "startColumn": 95, + "endLine": 145, + "endColumn": 111, + "charOffset": 3548, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E5558FDB2897F461311C3CAAC9477DB88CE92153B277965566930CEE3A872D8B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'fsm_return_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'FsmReturnTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 40, + "startColumn": 39, + "endLine": 40, + "endColumn": 55, + "charOffset": 889, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3A76381A9746598A3909B4C308D72DD1CBD013B729143345A02A02C7E7F09E40" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'has_reached_end' does not match rule 'Instance fields (private)'. Suggested name is 'hasReachedEnd'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 52, + "startColumn": 22, + "endLine": 52, + "endColumn": 37, + "charOffset": 1164, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DB6224ED6F456DA57118037C14E8DB9AAE7D3F9BAA77C59907842FA55038EF88" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'hex_seq' does not match rule 'Instance fields (private)'. Suggested name is 'hexSeq'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 53, + "startColumn": 24, + "endLine": 53, + "endColumn": 31, + "charOffset": 1205, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8C4C9D9BA658188F91D5193507CCAB89B4A4227AE07E66A25D983D87342FFC27" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IDictionaryExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'DictionaryExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/FileLinking/IDictionaryExtensions.cs", + "uriBaseId": "solutionDir", + "index": 113 + }, + "region": { + "startLine": 8, + "startColumn": 27, + "endLine": 8, + "endColumn": 48, + "charOffset": 209, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C9134EA6540699CD20A6E2342EC12C310DBA9557838B82ACAFE14B74B3BFECB4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IDictionaryExtensionsTests' does not match rule 'types_should_be_pascal_case'. Suggested name is 'DictionaryExtensionsTests'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/FileLinking/IDictionaryExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 114 + }, + "region": { + "startLine": 5, + "startColumn": 25, + "endLine": 5, + "endColumn": 51, + "charOffset": 106, + "charLength": 26 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "596D37463CF948CCB47E71B04ED6A3E540337126624BE25EE186E81FF77D23CC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueComparer' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueComparer'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir", + "index": 105 + }, + "region": { + "startLine": 40, + "startColumn": 18, + "endLine": 40, + "endColumn": 32, + "charOffset": 1521, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "476AA6EBFF04471388A7F3444650DF706CB7F3F1D9DD8E9B8841454F19A8F49C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueComparerTests' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueComparerTests'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir", + "index": 115 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 44, + "charOffset": 56, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "55DA5DB9E1D76D340CE7599F35D5F0CAEABC8558C324857C90241F32B825FEF8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor/IIssueExtensions.cs", + "uriBaseId": "solutionDir", + "index": 116 + }, + "region": { + "startLine": 8, + "startColumn": 27, + "endLine": 8, + "endColumn": 43, + "charOffset": 200, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "472A09B2B82B0630E99C32DBE57D69BEB39784003B2BBD7F1AA778B56048A750" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IIssueExtensions.cs", + "uriBaseId": "solutionDir", + "index": 117 + }, + "region": { + "startLine": 9, + "startColumn": 27, + "endLine": 9, + "endColumn": 43, + "charOffset": 216, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "472A09B2B82B0630E99C32DBE57D69BEB39784003B2BBD7F1AA778B56048A750" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/IIssueExtensions.cs", + "uriBaseId": "solutionDir", + "index": 118 + }, + "region": { + "startLine": 10, + "startColumn": 27, + "endLine": 10, + "endColumn": 43, + "charOffset": 240, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "472A09B2B82B0630E99C32DBE57D69BEB39784003B2BBD7F1AA778B56048A750" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueExtensions.cs", + "uriBaseId": "solutionDir", + "index": 119 + }, + "region": { + "startLine": 9, + "startColumn": 25, + "endLine": 9, + "endColumn": 41, + "charOffset": 195, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AFAC0F231F4527AC7308F69B3CA03F108BA79A85863141CDE5F506DDA4BD1FFE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensionsTests' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensionsTests'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 120 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 46, + "charOffset": 69, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BDE28CD524F476ED85FE8571076DB222DDE22C9D467ABA649CB013642ACF3FCC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'IIssueExtensionsTests' does not match rule 'types_should_be_pascal_case'. Suggested name is 'IssueExtensionsTests'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 46, + "charOffset": 56, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BDE28CD524F476ED85FE8571076DB222DDE22C9D467ABA649CB013642ACF3FCC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'indent_value' does not match rule 'Instance fields (private)'. Suggested name is 'indentValue'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 55, + "startColumn": 21, + "endLine": 55, + "endColumn": 33, + "charOffset": 1269, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CCAF32FA29AB32DBD3B4ECC093BC22828CB034927DA9019AB37F07BD97DB8FD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inner_exception' does not match rule 'Parameters'. Suggested name is 'innerException'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 41, + "startColumn": 43, + "endLine": 41, + "endColumn": 58, + "charOffset": 963, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C42FB69A04F7428A022BCC20F507E0261D883330000F2F81C3E94B575AF80F30" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inner_exception' does not match rule 'Parameters'. Suggested name is 'innerException'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 54, + "startColumn": 49, + "endLine": 54, + "endColumn": 64, + "charOffset": 1362, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ACA68484EA110700A748180607B157409F6B125718C9BB281F71F9C5F494C79D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inner_exception' does not match rule 'Parameters'. Suggested name is 'innerException'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 66, + "startColumn": 56, + "endLine": 66, + "endColumn": 71, + "charOffset": 1690, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "20D40CD340F3B07637BDC9B26E7741BB53AFF99AD1EB1119C76179F9C7E33BDD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'input_buffer' does not match rule 'Instance fields (private)'. Suggested name is 'inputBuffer'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 47, + "startColumn": 21, + "endLine": 47, + "endColumn": 33, + "charOffset": 1163, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21AB5D7BD7A40D62C7A1D021654056455EB4035D90DB56EDBACE61181C044C3B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'input_char' does not match rule 'Instance fields (private)'. Suggested name is 'inputChar'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 48, + "startColumn": 21, + "endLine": 48, + "endColumn": 31, + "charOffset": 1198, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E4497F31D6DFA466C0D49763F47D32686B470261BCA89D11FD381E022C931926" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_array' does not match rule 'Instance fields (private)'. Suggested name is 'instArray'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 31, + "startColumn": 33, + "endLine": 31, + "endColumn": 43, + "charOffset": 811, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8CF20F581BFE754EC181ABAF09CECEA21BFA9CD53733D026323D514617FFE73C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_boolean' does not match rule 'Instance fields (private)'. Suggested name is 'instBoolean'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 32, + "startColumn": 22, + "endLine": 32, + "endColumn": 34, + "charOffset": 845, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "61480BFB7F53C0D13066894A60945BC40372063A16D5DDE3F4194A9A9BACF260" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_double' does not match rule 'Instance fields (private)'. Suggested name is 'instDouble'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 33, + "startColumn": 24, + "endLine": 33, + "endColumn": 35, + "charOffset": 883, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7A9169AC01E93FF304521BCB47F15FC27E5AE79B9159F09D389E80271ABEBA06" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_int' does not match rule 'Instance fields (private)'. Suggested name is 'instInt'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 34, + "startColumn": 21, + "endLine": 34, + "endColumn": 29, + "charOffset": 917, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "010ED249A5565F1004E67281C888FFC7DAEF82432F5BE5020418D9B9E7DE2530" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_long' does not match rule 'Instance fields (private)'. Suggested name is 'instLong'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 35, + "startColumn": 22, + "endLine": 35, + "endColumn": 31, + "charOffset": 949, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5D72C486827D909D715895B6D97CB2C85487D2FF2811AB1C7A177B7D69B40BC1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_object' does not match rule 'Instance fields (private)'. Suggested name is 'instObject'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 36, + "startColumn": 47, + "endLine": 36, + "endColumn": 58, + "charOffset": 1007, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "27AA7ADFA56DAA824C2446F8E12438CB22995849757ADC73FC48637EF9FB2ECC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_string' does not match rule 'Instance fields (private)'. Suggested name is 'instString'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 37, + "startColumn": 24, + "endLine": 37, + "endColumn": 35, + "charOffset": 1044, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AD7CB0856A9F2B90BC1D6F0E4EF6AE7388384518C1605A182CD790F6DF273001" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'inst_type' does not match rule 'Parameters'. Suggested name is 'instType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 343, + "startColumn": 46, + "endLine": 343, + "endColumn": 55, + "charOffset": 10087, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4E101284543DE5D6EE487721451524C4B47C9E027C01A91CC57D8BAF5A016A76" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'is_array' does not match rule 'Instance fields (private)'. Suggested name is 'isArray'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 39, + "startColumn": 22, + "endLine": 39, + "endColumn": 30, + "charOffset": 870, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F8DE371378CD044C07326CD41CB690A77AEE2A5A8BD38283F8161C85E3B7E5F8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'is_dictionary' does not match rule 'Instance fields (private)'. Suggested name is 'isDictionary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 73, + "startColumn": 22, + "endLine": 73, + "endColumn": 35, + "charOffset": 1560, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E18D25C0001F8E0BE74D1E00A2AFC5DEB4EA738695297B38BD4F9A2BDE37CF9A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'is_list' does not match rule 'Instance fields (private)'. Suggested name is 'isList'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 40, + "startColumn": 22, + "endLine": 40, + "endColumn": 29, + "charOffset": 902, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A323D094DEA53B2118977BF3F5A6A859CFAC40923AE2658AFFFF75BA42FDE3BE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'issue1_1' does not match rule 'Local variables'. Suggested name is 'issue11'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir", + "index": 115 + }, + "region": { + "startLine": 875, + "startColumn": 21, + "endLine": 875, + "endColumn": 29, + "charOffset": 32806, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1DABB9E9D8965A540D3DF560DB692F30A01CD4A380A4A74450A37E0E1FD7D5D5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'issue1_1' does not match rule 'Local variables'. Suggested name is 'issue11'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir", + "index": 115 + }, + "region": { + "startLine": 1735, + "startColumn": 21, + "endLine": 1735, + "endColumn": 29, + "charOffset": 64837, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1DABB9E9D8965A540D3DF560DB692F30A01CD4A380A4A74450A37E0E1FD7D5D5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'issue1_2' does not match rule 'Local variables'. Suggested name is 'issue12'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir", + "index": 115 + }, + "region": { + "startLine": 879, + "startColumn": 21, + "endLine": 879, + "endColumn": 29, + "charOffset": 32989, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "72ADE76879F5653FDE2966D43BF648F892A046ACDE5B12614EBA5905F4278732" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'issue1_2' does not match rule 'Local variables'. Suggested name is 'issue12'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir", + "index": 115 + }, + "region": { + "startLine": 1740, + "startColumn": 21, + "endLine": 1740, + "endColumn": 29, + "charOffset": 65067, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "72ADE76879F5653FDE2966D43BF648F892A046ACDE5B12614EBA5905F4278732" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ISupportCheckingCommitIdExtensions' does not match rule 'types_should_be_pascal_case'. Suggested name is 'SupportCheckingCommitIdExtensions'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/ISupportCheckingCommitIdExtensions.cs", + "uriBaseId": "solutionDir", + "index": 122 + }, + "region": { + "startLine": 8, + "startColumn": 25, + "endLine": 8, + "endColumn": 59, + "charOffset": 201, + "charLength": 34 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CC1B848184233198EF6DFB53668A665B4D0713FF5EAD270A9BD76DFF8C3FB4ED" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ISupportCheckingCommitIdExtensionsTests' does not match rule 'types_should_be_pascal_case'. Suggested name is 'SupportCheckingCommitIdExtensionsTests'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/ISupportCheckingCommitIdExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 123 + }, + "region": { + "startLine": 3, + "startColumn": 25, + "endLine": 3, + "endColumn": 64, + "charOffset": 69, + "charLength": 39 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3FB63EB656B47548BB0C09701DDB396FFF031874EF12CCEF6D4B82B3C31E3797" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'json_reader' does not match rule 'Local variables'. Suggested name is 'jsonReader'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 993, + "startColumn": 24, + "endLine": 993, + "endColumn": 35, + "charOffset": 32422, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "091F3DF8898A82EB5D6719414C7C54D20C6216663D13D1F153AE24C5BB1C5F19" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'json_reader' does not match rule 'Local variables'. Suggested name is 'jsonReader'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1012, + "startColumn": 24, + "endLine": 1012, + "endColumn": 35, + "charOffset": 32988, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "091F3DF8898A82EB5D6719414C7C54D20C6216663D13D1F153AE24C5BB1C5F19" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'json_text' does not match rule 'Parameters'. Suggested name is 'jsonText'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 118, + "startColumn": 34, + "endLine": 118, + "endColumn": 43, + "charOffset": 2642, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E7A8D50F6964EEE8E07D2DECCAFBB303630BE12723397D4BAC9A0F4F6C567F82" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'json_type' does not match rule 'Local variables'. Suggested name is 'jsonType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 378, + "startColumn": 22, + "endLine": 378, + "endColumn": 31, + "charOffset": 11235, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BAE91AA603C95A0EA330A71D1D57CA8BEF5309D5B0D196B10E2DF27EA5C0D00C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'json_type' does not match rule 'Parameters'. Suggested name is 'jsonType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 783, + "startColumn": 18, + "endLine": 783, + "endColumn": 27, + "charOffset": 25779, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08B9A766070EF07EC3BF876880362F32B06765ED9FD678EBF9FA3694B009D56B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'line' does not match rule 'Instance fields (not private)'. Suggested name is 'Line'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir", + "index": 112 + }, + "region": { + "startLine": 20, + "startColumn": 21, + "endLine": 20, + "endColumn": 25, + "charOffset": 588, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "93F37C33D686DD99622BF9871EBF5190684B2B9A5BE7CFDC6C48574619F68C64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'line' does not match rule 'Instance fields (not private)'. Suggested name is 'Line'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 34, + "startColumn": 20, + "endLine": 34, + "endColumn": 24, + "charOffset": 870, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7CD19B4E2635C9050471940FA9A65604FDF6BAA0948BBD868B904315D879D8DA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'line' does not match rule 'Instance fields (not private)'. Suggested name is 'Line'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 61, + "startColumn": 20, + "endLine": 61, + "endColumn": 24, + "charOffset": 1419, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7CD19B4E2635C9050471940FA9A65604FDF6BAA0948BBD868B904315D879D8DA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'lineNumber' does not match rule 'Instance fields (not private)'. Suggested name is 'LineNumber'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 14, + "startColumn": 20, + "endLine": 14, + "endColumn": 30, + "charOffset": 458, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "113EFADAF8E5CE7F74558A1548612D32A138CFB2CEB7098DE7DD44763A52B86D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'lineNumber' does not match rule 'Instance fields (not private)'. Suggested name is 'LineNumber'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 114, + "startColumn": 24, + "endLine": 114, + "endColumn": 34, + "charOffset": 4684, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E192B1788AFB935178931DB42561B83C6314EB2F10A7D821BA52C91FF7B8006E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'lower_case_properties' does not match rule 'Instance fields (private)'. Suggested name is 'lowerCaseProperties'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 59, + "startColumn": 22, + "endLine": 59, + "endColumn": 43, + "charOffset": 1425, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8F039990CD1300175B4BC8378892A51680EAA0DCC091B9CFD89DD3B5E040867" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'max_nesting_depth' does not match rule 'Static readonly fields (private)'. Suggested name is 'MaxNestingDepth'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 117, + "startColumn": 37, + "endLine": 117, + "endColumn": 54, + "charOffset": 2685, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F16EAEFA49AAE3DEB07D2AC0493E3DBD9DB2D698DFACD8F9B6B626D2CB0945A8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'message' does not match rule 'Instance fields (not private)'. Suggested name is 'Message'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir", + "index": 112 + }, + "region": { + "startLine": 23, + "startColumn": 23, + "endLine": 23, + "endColumn": 30, + "charOffset": 641, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F2E9232AD7F6946BD5F49C0124BC9FAA2464547ABFA78A4CB11DAD8460445131" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'message' does not match rule 'Instance fields (not private)'. Suggested name is 'Message'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 31, + "startColumn": 23, + "endLine": 31, + "endColumn": 30, + "charOffset": 817, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F2E9232AD7F6946BD5F49C0124BC9FAA2464547ABFA78A4CB11DAD8460445131" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'message_severity' does not match rule 'Instance fields (not private)'. Suggested name is 'MessageSeverity'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir", + "index": 112 + }, + "region": { + "startLine": 14, + "startColumn": 23, + "endLine": 14, + "endColumn": 39, + "charOffset": 472, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "49599B07D3BF345721940A2DD23117FBC5E3321C9032D69296DACFAEADAD0A2E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'messages' does not match rule 'Instance fields (not private)'. Suggested name is 'Messages'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 18, + "startColumn": 26, + "endLine": 18, + "endColumn": 34, + "charOffset": 589, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E76F7B1C3FADB791A12A526FB90790E09A1AA63379225B731AC08B0D61DAEF1B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'new_entry' does not match rule 'Local variables'. Suggested name is 'newEntry'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 368, + "startColumn": 52, + "endLine": 368, + "endColumn": 61, + "charOffset": 8946, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EAE0151291327592BD57ABB1553E721064203493E4F394BA0F8BDB24EDCDACD6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'nodeType' does not match rule 'Instance fields (not private)'. Suggested name is 'NodeType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 40, + "startColumn": 23, + "endLine": 40, + "endColumn": 31, + "charOffset": 975, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D7483AE4A09ADCBD768A3C24714690F6E9CA971B4B19AA6F984981A656E39026" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'number_format' does not match rule 'Static readonly fields (private)'. Suggested name is 'NumberFormat'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 48, + "startColumn": 50, + "endLine": 48, + "endColumn": 63, + "charOffset": 1036, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5459EEB7EBB17674F48424FEF77C13DB68E7A40AE70BCD3386D4F78CF9B9ADF8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'obj_type' does not match rule 'Local variables'. Suggested name is 'objType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 892, + "startColumn": 18, + "endLine": 892, + "endColumn": 26, + "charOffset": 29012, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A5FC8403F9CDCC87F8D93DD179977C292FBBABADD3B1E6E5B1FF94E3D55FE3B3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'object_list' does not match rule 'Instance fields (private)'. Suggested name is 'objectList'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 42, + "startColumn": 55, + "endLine": 42, + "endColumn": 66, + "charOffset": 1239, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "611E589143FAB992190339A20481D899C46BF7A973FCF911EADC5622DF32E19F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'object_metadata' does not match rule 'Static readonly fields (private)'. Suggested name is 'ObjectMetadata'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 136, + "startColumn": 67, + "endLine": 136, + "endColumn": 82, + "charOffset": 3610, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8EEC1338AFA9C7EF20FB533CDA8E091D16843A2081B83D81EB78BA503C66FBA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'object_metadata_lock' does not match rule 'Static readonly fields (private)'. Suggested name is 'ObjectMetadataLock'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 137, + "startColumn": 40, + "endLine": 137, + "endColumn": 60, + "charOffset": 3667, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B923B1B3F85CF85B19A91F26594EEDFBA844A6DB9DA26D077C9E1722543E844B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'old_entry' does not match rule 'Local variables'. Suggested name is 'oldEntry'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 279, + "startColumn": 48, + "endLine": 279, + "endColumn": 57, + "charOffset": 6613, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "11D8E21F874A035BE029CA2BDD6662E305DCB2E6B7B8E7AC0DCEE495784107E1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'old_validate' does not match rule 'Local variables'. Suggested name is 'oldValidate'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1061, + "startColumn": 18, + "endLine": 1061, + "endColumn": 30, + "charOffset": 27729, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "119714D940B57D06F809B25E63487929D41B13FA9E6D8B8F72D47CDCA71D9EEC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_data' does not match rule 'Local variables'. Suggested name is 'pData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 244, + "startColumn": 34, + "endLine": 244, + "endColumn": 40, + "charOffset": 7229, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_data' does not match rule 'Local variables'. Suggested name is 'pData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 253, + "startColumn": 34, + "endLine": 253, + "endColumn": 40, + "charOffset": 7540, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_data' does not match rule 'Local variables'. Suggested name is 'pData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 286, + "startColumn": 34, + "endLine": 286, + "endColumn": 40, + "charOffset": 8504, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_data' does not match rule 'Local variables'. Suggested name is 'pData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 294, + "startColumn": 34, + "endLine": 294, + "endColumn": 40, + "charOffset": 8779, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_data' does not match rule 'Local variables'. Suggested name is 'pData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 943, + "startColumn": 39, + "endLine": 943, + "endColumn": 45, + "charOffset": 30875, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B5C6D918851120FC9071F9B3AB02BF3D4D77CDC61EFA13B7CC33C34822E70265" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_info' does not match rule 'Local variables'. Suggested name is 'pInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 190, + "startColumn": 35, + "endLine": 190, + "endColumn": 41, + "charOffset": 5558, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_info' does not match rule 'Local variables'. Suggested name is 'pInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 229, + "startColumn": 35, + "endLine": 229, + "endColumn": 41, + "charOffset": 6727, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_info' does not match rule 'Local variables'. Suggested name is 'pInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 281, + "startColumn": 35, + "endLine": 281, + "endColumn": 41, + "charOffset": 8346, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_info' does not match rule 'Local variables'. Suggested name is 'pInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 506, + "startColumn": 42, + "endLine": 506, + "endColumn": 48, + "charOffset": 15749, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C813B2FA0E7B7BC5B6878D97CC70A00C1CD19F02103B602ED48BEC25C97E5DFA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'p_info' does not match rule 'Local variables'. Suggested name is 'pInfo'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 953, + "startColumn": 34, + "endLine": 953, + "endColumn": 40, + "charOffset": 31266, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F867CD280D16156127CC06D82A10C6B6D305D3E7B99A8DCE30981A5A5045330" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'parse_table' does not match rule 'Parameters'. Suggested name is 'parseTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 264, + "startColumn": 83, + "endLine": 264, + "endColumn": 94, + "charOffset": 9056, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BC2170A936573B1E676FB2A2D6AA77A4E0EBBF420FCF4D0D7FAD914437382981" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'parse_table' does not match rule 'Parameters'. Suggested name is 'parseTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 270, + "startColumn": 83, + "endLine": 270, + "endColumn": 94, + "charOffset": 9320, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2AFBE075FF37A5C55785A694E6907D8FE407A710739BF2D94B62A8BEB0FB23AC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'parse_table' does not match rule 'Static readonly fields (private)'. Suggested name is 'ParseTable'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 52, + "startColumn": 75, + "endLine": 52, + "endColumn": 86, + "charOffset": 981, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "98D8D6E1B1B21BC91D045D5691E5B6139CC903F9F7F9B133402073902587ABCC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'parser_in_string' does not match rule 'Instance fields (private)'. Suggested name is 'parserInString'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 60, + "startColumn": 22, + "endLine": 60, + "endColumn": 38, + "charOffset": 1237, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4D242C297AE1296EAEEBD347B44368943F8B3634D6B208D2D387C1544ABDCD9E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'parser_return' does not match rule 'Instance fields (private)'. Suggested name is 'parserReturn'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 61, + "startColumn": 22, + "endLine": 61, + "endColumn": 35, + "charOffset": 1277, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3793B00380E3D31EA6DA14E24988A87A0F0447D160DEF797BD87FA4FC00204B8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'pretty_print' does not match rule 'Instance fields (private)'. Suggested name is 'prettyPrint'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 57, + "startColumn": 22, + "endLine": 57, + "endColumn": 34, + "charOffset": 1357, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6E3364D4B97A453A93B72835EDEC68C4F5B2E9DD0BCBA4AEF106CEFB697BA625" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'prop_data' does not match rule 'Local variables'. Suggested name is 'propData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 496, + "startColumn": 42, + "endLine": 496, + "endColumn": 51, + "charOffset": 15330, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CC00124E08D05FE369A89595344D98569A001049EF7A7A4C03D164F84566AA6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'prop_name' does not match rule 'Parameters'. Suggested name is 'propName'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 312, + "startColumn": 37, + "endLine": 312, + "endColumn": 46, + "charOffset": 7376, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ECDE8BE04C77E12B881A2459B3F08488FB17077058F74DB0FC162579A2D35874" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'property_name' does not match rule 'Parameters'. Suggested name is 'propertyName'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 477, + "startColumn": 46, + "endLine": 477, + "endColumn": 59, + "charOffset": 12282, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B91ACB6D4CF688DA010B2BD1D7AC56A3F55A5997EDC5DC2CEF41C783AFA4FDF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'range' does not match rule 'Instance fields (not private)'. Suggested name is 'Range'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 41, + "startColumn": 22, + "endLine": 41, + "endColumn": 27, + "charOffset": 1078, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1E6BB92DB0E674483AFC69BDC22C7170EB4AAE4350DFC7CDD7119CCAFFF69987" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'read_started' does not match rule 'Instance fields (private)'. Suggested name is 'readStarted'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 62, + "startColumn": 22, + "endLine": 62, + "endColumn": 34, + "charOffset": 1314, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "31A947A1992A80FB4B989B500D75835565FA2EC13DA2DEE87D74F9136295AFDD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleAlias' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleAlias'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 20, + "startColumn": 23, + "endLine": 20, + "endColumn": 32, + "charOffset": 574, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0C9488401FA727890D07D202FC78144F21B607FC0A46C19E960A19CCB0BBE186" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleDescription' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleDescription'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 23, + "startColumn": 23, + "endLine": 23, + "endColumn": 38, + "charOffset": 632, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8650B5FE1544CB1FA43B911F0796A0420E7E83D8232C62F28DB5552932F6B2F4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleDescription' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleDescription'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 120, + "startColumn": 27, + "endLine": 120, + "endColumn": 42, + "charOffset": 4819, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "935D8D372E6041790A5D0BEC34820B4732779E246AE6A44E24D32B0A431712F2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleId' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleId'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 25, + "startColumn": 23, + "endLine": 25, + "endColumn": 29, + "charOffset": 708, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "731D87CF6547EEE2D17F7440653ECA1699A5BB39C674EEA034729BAB12D44BC1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleInformation' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleInformation'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 123, + "startColumn": 27, + "endLine": 123, + "endColumn": 42, + "charOffset": 4891, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4911A9643B914B967C961FA2B32BCC7E94B95333392A2DADA2D5720C7EEEAD80" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleName' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleName'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir", + "index": 110 + }, + "region": { + "startLine": 17, + "startColumn": 23, + "endLine": 17, + "endColumn": 31, + "charOffset": 517, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5A3797229D75ABD777DD47D305EDF510941DCF138270AAFE895F1127177BBB19" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'ruleNames' does not match rule 'Instance fields (not private)'. Suggested name is 'RuleNames'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 117, + "startColumn": 29, + "endLine": 117, + "endColumn": 38, + "charOffset": 4753, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1298790757F79524FC6555D2A83A88C72B18F50AC5E5D258AA69DCABB4F17FDF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'severity' does not match rule 'Instance fields (not private)'. Suggested name is 'Severity'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 28, + "startColumn": 20, + "endLine": 28, + "endColumn": 28, + "charOffset": 760, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E2B2101A26D3BF3F2D73A9B12BB1A02F47D4F16D04D0213A2F6ED1270C22A250" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'severity' does not match rule 'Instance fields (not private)'. Suggested name is 'Severity'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 32, + "startColumn": 23, + "endLine": 32, + "endColumn": 31, + "charOffset": 911, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "535C420A0978DD5D0BD1AD4D2A8FC17BEDE5DBC43757F7432B8188FE1926A261" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'skip_non_members' does not match rule 'Instance fields (private)'. Suggested name is 'skipNonMembers'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 65, + "startColumn": 22, + "endLine": 65, + "endColumn": 38, + "charOffset": 1425, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5C918FFD763F7E91C5C6D0FD8FA49E6F7715FFB0D4ABD369D86CCDBBAF0DD3CD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'source' does not match rule 'Instance fields (not private)'. Suggested name is 'Source'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir", + "index": 112 + }, + "region": { + "startLine": 26, + "startColumn": 23, + "endLine": 26, + "endColumn": 29, + "charOffset": 697, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BE5F82E05B931758CBEA820DFC486B8509C91D6B4E2C7C83A854E9300E93E52B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'source' does not match rule 'Instance fields (not private)'. Suggested name is 'Source'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir", + "index": 108 + }, + "region": { + "startLine": 43, + "startColumn": 23, + "endLine": 43, + "endColumn": 29, + "charOffset": 1032, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BE5F82E05B931758CBEA820DFC486B8509C91D6B4E2C7C83A854E9300E93E52B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'start' does not match rule 'Instance fields (not private)'. Suggested name is 'Start'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 51, + "startColumn": 25, + "endLine": 51, + "endColumn": 30, + "charOffset": 1251, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C18F4601AED2508C4E14835F37379044C07B13189EB29DD4DF15624EBF6A0D49" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'static_writer' does not match rule 'Static readonly fields (private)'. Suggested name is 'StaticWriter'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 143, + "startColumn": 44, + "endLine": 143, + "endColumn": 57, + "charOffset": 3939, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21E2CA7773B7FCC52239D3E4F2D38A85772323006E55ABCB5997E9B2025BD92E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'static_writer_lock' does not match rule 'Static readonly fields (private)'. Suggested name is 'StaticWriterLock'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 144, + "startColumn": 40, + "endLine": 144, + "endColumn": 58, + "charOffset": 3994, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "37830DD8E79B18426F919A95D63A48F649A8E7B5FA9F6873C898BE050F5557CA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'string_value' does not match rule 'Instance fields (private)'. Suggested name is 'stringValue'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 52, + "startColumn": 24, + "endLine": 52, + "endColumn": 36, + "charOffset": 1344, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F4C0D2C4860077777311C406A5394ED27264F0362E278DE10B2126FFB2CCCC67" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'summary' does not match rule 'Instance fields (not private)'. Suggested name is 'Summary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 35, + "startColumn": 23, + "endLine": 35, + "endColumn": 30, + "charOffset": 968, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "06CEA07A729A90289DE46EF20BE44B332546E044620743E25A3E6E585C005975" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 't_data' does not match rule 'Local variables'. Suggested name is 'tData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 434, + "startColumn": 31, + "endLine": 434, + "endColumn": 37, + "charOffset": 13302, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BA40665B497349AD3D74A69EB017118C20DB7D571B5D6D97498388070A9F40AF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 't_data' does not match rule 'Local variables'. Suggested name is 'tData'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 481, + "startColumn": 32, + "endLine": 481, + "endColumn": 38, + "charOffset": 14845, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DF7AF07DCF8A5F67DBC9B9C33D65B0588DF9EF80A122C94306B8AC8E8D3AC507" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'token_value' does not match rule 'Instance fields (private)'. Suggested name is 'tokenValue'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 66, + "startColumn": 24, + "endLine": 66, + "endColumn": 35, + "charOffset": 1467, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BB31AD39412B20CBD85FF18F5A835893617686D7B85530C51A53981F6769B18A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'type_properties' does not match rule 'Static readonly fields (private)'. Suggested name is 'TypeProperties'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 140, + "startColumn": 42, + "endLine": 140, + "endColumn": 57, + "charOffset": 3799, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EDCC6D7111739604992B34DAD3899D455F8CCAB3CFA27F4A220474BBC6EDFD0B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'type_properties_lock' does not match rule 'Static readonly fields (private)'. Suggested name is 'TypePropertiesLock'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 141, + "startColumn": 40, + "endLine": 141, + "endColumn": 60, + "charOffset": 3856, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "64259723B78B6824459B821D405B8461F66B558F4CE3E51B0B95D0DB549E93AB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'underlying_type' does not match rule 'Local variables'. Suggested name is 'underlyingType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 350, + "startColumn": 18, + "endLine": 350, + "endColumn": 33, + "charOffset": 10261, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5A3DEA670C9D2F18EACD7449CB055492C3E3F9C18A55D54E139AF4645A1042FC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'valid' does not match rule 'Instance fields (not private)'. Suggested name is 'Valid'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 16, + "startColumn": 21, + "endLine": 16, + "endColumn": 26, + "charOffset": 610, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BD8B69485D02FFA2BFD0C4404F39C3EFB704476FA3A7EEE2B9E0FADA3764F768" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'value_type' does not match rule 'Local variables'. Suggested name is 'valueType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 351, + "startColumn": 18, + "endLine": 351, + "endColumn": 28, + "charOffset": 10336, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7330EC18E3A07E904096FF9DCC3FB51D146F39AEBE27E733E6D11E441A3CED1F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'value_type' does not match rule 'Parameters'. Suggested name is 'valueType'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 783, + "startColumn": 34, + "endLine": 783, + "endColumn": 44, + "charOffset": 25795, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08B9A766070EF07EC3BF876880362F32B06765ED9FD678EBF9FA3694B009D56B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'warning_count' does not match rule 'Instance fields (not private)'. Suggested name is 'WarningCount'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir", + "index": 109 + }, + "region": { + "startLine": 22, + "startColumn": 20, + "endLine": 22, + "endColumn": 33, + "charOffset": 718, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2CD07C5CD338092DF5A0436576A955E86A38677443FC3A0E5AB73A68BA993C27" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InconsistentNaming", + "ruleIndex": 26, + "level": "note", + "message": { + "text": "Name 'writer_is_private' does not match rule 'Parameters'. Suggested name is 'writerIsPrivate'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 792, + "startColumn": 46, + "endLine": 792, + "endColumn": 63, + "charOffset": 26152, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F62120DA13BC4900A622401B6A405283A11BBF7D60638FA02E019C39FEE0DFE9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InlineOutVariableDeclaration", + "ruleIndex": 27, + "level": "note", + "message": { + "text": "Inline 'out' variable declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 906, + "startColumn": 26, + "endLine": 906, + "endColumn": 31, + "charOffset": 22904, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DD192D72C9BEC714D2C84417223C3B575ECAF163842EEA1B082B70D51C0769A9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InlineOutVariableDeclaration", + "ruleIndex": 27, + "level": "note", + "message": { + "text": "Inline 'out' variable declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 285, + "startColumn": 24, + "endLine": 285, + "endColumn": 32, + "charOffset": 9740, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CD64E15FD05CF8005E22BC0666D061103D9B65F0CE1CC32BF0094079331AE29" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InlineOutVariableDeclaration", + "ruleIndex": 27, + "level": "note", + "message": { + "text": "Inline 'out' variable declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 295, + "startColumn": 17, + "endLine": 295, + "endColumn": 24, + "charOffset": 10053, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1A22A3A5DC1852F048ECCCE72135BDEF1DFCF7BA6108FFE9C535C4E481BC5976" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InlineOutVariableDeclaration", + "ruleIndex": 27, + "level": "note", + "message": { + "text": "Inline 'out' variable declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 304, + "startColumn": 18, + "endLine": 304, + "endColumn": 25, + "charOffset": 10323, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A5A497AB89F08071B8F60A907006E88BDB90BA4DBA08DF2A1A81819C04AFD8FB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InlineOutVariableDeclaration", + "ruleIndex": 27, + "level": "note", + "message": { + "text": "Inline 'out' variable declaration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 313, + "startColumn": 19, + "endLine": 313, + "endColumn": 27, + "charOffset": 10596, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "34DB77706D4B1B447CE2D5938F45E5E5FD26A1183465D92AB8EE27912FFF3893" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "IntroduceOptionalParameters.Local", + "ruleIndex": 28, + "level": "note", + "message": { + "text": "Introduce optional parameter(s) for method 'void PutNewline(bool)'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 230, + "startColumn": 24, + "endLine": 230, + "endColumn": 28, + "charOffset": 6050, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "21A197E61DF70FB6A2395AEFB961C415C09CB5730BF5C21B1F86F532EA249247" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "InvokeAsExtensionMethod", + "ruleIndex": 29, + "level": "note", + "message": { + "text": "Invoke as extension method" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir", + "index": 19 + }, + "region": { + "startLine": 36, + "startColumn": 61, + "endLine": 36, + "endColumn": 80, + "charOffset": 1349, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35D44ED08C0EBA45C211A9AE4A4B3D687036FA6AB23C0E738DA90B0422789474" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "JoinDeclarationAndInitializer", + "ruleIndex": 30, + "level": "note", + "message": { + "text": "Join declaration and assignment" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 124 + }, + "region": { + "startLine": 78, + "startColumn": 18, + "endLine": 78, + "endColumn": 24, + "charOffset": 3391, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FC3135BC4FBE6D5E11B5D9FC7A30DC60C3596131A44E105C93A304C56BE024B4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "JoinDeclarationAndInitializer", + "ruleIndex": 30, + "level": "note", + "message": { + "text": "Join declaration and assignment" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 688, + "startColumn": 26, + "endLine": 688, + "endColumn": 34, + "charOffset": 21911, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C5D723B4242EFBF9418F378C402CDE53A31B573AA91C758ABAE4C5E414E00831" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "JoinNullCheckWithUsage", + "ruleIndex": 31, + "level": "note", + "message": { + "text": "Join null check with assignment" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 121, + "startColumn": 24, + "endLine": 121, + "endColumn": 31, + "charOffset": 2879, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2C2F36B8DE7F609E792058174791F5F1150912C0C08EFD76F3A86BC115C0BAB5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "LocalVariableHidesMember", + "ruleIndex": 32, + "message": { + "text": "Local variable 'allFiles' hides field 'Lazy> Cake.Issues.GitRepository.GitRepositoryIssuesProvider.allFiles'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 179, + "startColumn": 17, + "endLine": 179, + "endColumn": 25, + "charOffset": 7522, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AB5087A2825EA6F1277CBE0B4E1477BB5F97774DE5183CD2F04CA0BE9BF29A15" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "LocalVariableHidesMember", + "ruleIndex": 32, + "message": { + "text": "Local variable 'binaryFiles' hides field 'Lazy> Cake.Issues.GitRepository.GitRepositoryIssuesProvider.binaryFiles'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 261, + "startColumn": 17, + "endLine": 261, + "endColumn": 28, + "charOffset": 10817, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2810E9075BE5A055D2088B068DCAAF819E69B92B9BE17FB28649BF2446307FF1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "LocalVariableHidesMember", + "ruleIndex": 32, + "message": { + "text": "Local variable 'parse_table' hides field 'IDictionary> LitJson.JsonReader.parse_table'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 158, + "startColumn": 55, + "endLine": 158, + "endColumn": 66, + "charOffset": 3785, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7EF9F55CC135FFD2331D997536C3E650AA5CDE782C99E2F6FAD09617EA5B76BA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "LocalVariableHidesMember", + "ruleIndex": 32, + "message": { + "text": "Local variable 'textFiles' hides field 'Lazy> Cake.Issues.GitRepository.GitRepositoryIssuesProvider.textFiles'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 210, + "startColumn": 17, + "endLine": 210, + "endColumn": 26, + "charOffset": 8743, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D731ED1372367666912DF0D90AC6334594A507A14E92796A00FCF8EE408C997" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 253, + "startColumn": 27, + "endLine": 253, + "endColumn": 29, + "charOffset": 5937, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2136CAEAA2FFA7A22B03DD10C98D85918928321499B26F40D6EE54E36017E632" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 412, + "startColumn": 21, + "endLine": 412, + "endColumn": 23, + "charOffset": 9927, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C3F12A3942EAF6F7AD36B46AC7B4307C5236768962D102E09BF9F0AA23CA851D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 419, + "startColumn": 21, + "endLine": 419, + "endColumn": 23, + "charOffset": 10102, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "05951E862E64915F82EDE4BED53E4219522BF2D62E4441DC084C8F14F62F7D8B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 426, + "startColumn": 21, + "endLine": 426, + "endColumn": 23, + "charOffset": 10276, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C95C135A5C9249CB70FA949AE4A02E7CE685CA6A523A38A9EAB820F475DE09C8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 433, + "startColumn": 21, + "endLine": 433, + "endColumn": 23, + "charOffset": 10440, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B6DC59B6728AC6B76778101A3E1187A4E35678366B92416CC44F7DD80F5D9F4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 440, + "startColumn": 21, + "endLine": 440, + "endColumn": 23, + "charOffset": 10607, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1451352DC409F4DE3028A615BF167DD508F739C9ED6FA5FA9896EBDACD4B7891" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 821, + "startColumn": 21, + "endLine": 821, + "endColumn": 23, + "charOffset": 20855, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4BB10A8BB9BE5C49FE4176E5D944D0662FD21489CC51FA5F1B4B0CC47DBE11AB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 807, + "startColumn": 21, + "endLine": 807, + "endColumn": 23, + "charOffset": 26669, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DD48B6CE4A84E8C227C691A8C9C65DCCF4D648DC9B1C7B21F2B3D3475E8C713E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 817, + "startColumn": 21, + "endLine": 817, + "endColumn": 23, + "charOffset": 26961, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1451352DC409F4DE3028A615BF167DD508F739C9ED6FA5FA9896EBDACD4B7891" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 823, + "startColumn": 21, + "endLine": 823, + "endColumn": 23, + "charOffset": 27094, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "05951E862E64915F82EDE4BED53E4219522BF2D62E4441DC084C8F14F62F7D8B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 829, + "startColumn": 21, + "endLine": 829, + "endColumn": 23, + "charOffset": 27227, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7749FF2B4B8A68DA2D7228069320C2B9172C795A52295AC3AA30857B044830CF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 835, + "startColumn": 21, + "endLine": 835, + "endColumn": 23, + "charOffset": 27359, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C95C135A5C9249CB70FA949AE4A02E7CE685CA6A523A38A9EAB820F475DE09C8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 841, + "startColumn": 21, + "endLine": 841, + "endColumn": 23, + "charOffset": 27488, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CE3AE9B8A62965A874F0BD7F2F80A820A38D360811A5A8CE5A4ED7FE6746D928" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 847, + "startColumn": 21, + "endLine": 847, + "endColumn": 23, + "charOffset": 27620, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B6DC59B6728AC6B76778101A3E1187A4E35678366B92416CC44F7DD80F5D9F4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 853, + "startColumn": 21, + "endLine": 853, + "endColumn": 23, + "charOffset": 27750, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "17BBBE1FC4E665816754F275EE8854B0EA695205F7D5784FF6D3E7974BF495E3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeCastWithTypeCheck", + "ruleIndex": 33, + "level": "note", + "message": { + "text": "Merge cast with type check" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 865, + "startColumn": 21, + "endLine": 865, + "endColumn": 23, + "charOffset": 28058, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "777D344B31B1BA632574538095F6070F3DE9E5D87EAFBFAD641926B76BD91808" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/DocFxIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 125 + }, + "region": { + "startLine": 95, + "startColumn": 31, + "endLine": 95, + "endColumn": 33, + "charOffset": 3846, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CE515D1AE295EF847A48196A094475594BA40F2FCE1F5E2D395DA544DA7EB080" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/ConsoleIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 126 + }, + "region": { + "startLine": 129, + "startColumn": 78, + "endLine": 129, + "endColumn": 80, + "charOffset": 4973, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9154D8A6D7039002DDF2114C4DDD19A2AA8FC2DEC7D2F4BB2BB6E07256502A91" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/ConsoleIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 126 + }, + "region": { + "startLine": 130, + "startColumn": 80, + "endLine": 130, + "endColumn": 82, + "charOffset": 5103, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A8BE151FC6434329FB14EC495FA20249D2FF9FE15F343480E34548A260AEB307" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/ConsoleIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 126 + }, + "region": { + "startLine": 131, + "startColumn": 77, + "endLine": 131, + "endColumn": 79, + "charOffset": 5232, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3B76E02BE2AAF9AAF7E5C9C55F6A16BD5C87F534A0B4CF9F9B79092F6550A6F8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/ConsoleIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 126 + }, + "region": { + "startLine": 132, + "startColumn": 83, + "endLine": 132, + "endColumn": 85, + "charOffset": 5364, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BC5FA3A663E89AE5AF744402AFDA7097251EF44D579D398C7B974E07619FA582" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 436, + "startColumn": 37, + "endLine": 436, + "endColumn": 39, + "charOffset": 13377, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A0193738137DA6066673789FA2DDB5368E6801B5E087ED5D163841D99B1742E1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 248, + "startColumn": 46, + "endLine": 248, + "endColumn": 48, + "charOffset": 6302, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7F078933F2E5562963BAC5F379D0659E2D17D5009832D4C2F662A5725ACE4194" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 251, + "startColumn": 45, + "endLine": 251, + "endColumn": 47, + "charOffset": 6409, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1DE441E43CD8F0C6A3F54318B5F8DC507A07C2A6B63896D931D3B1978AED64FE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 325, + "startColumn": 41, + "endLine": 325, + "endColumn": 43, + "charOffset": 8704, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0FCEA76BCA0258FB4F03165E005D89D821566365C3AA24F2C8163A0774F67B55" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 348, + "startColumn": 45, + "endLine": 348, + "endColumn": 47, + "charOffset": 9378, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F49A133162473B3DB0329AE5878295DE71A039CDAF8256966D4ED0D45EC72ADE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 355, + "startColumn": 46, + "endLine": 355, + "endColumn": 48, + "charOffset": 9644, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1318D52AAC30EE1BDECAB44EB2B75AF9B6638711A4F781932E35676EBFF3306B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 395, + "startColumn": 42, + "endLine": 395, + "endColumn": 44, + "charOffset": 10892, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "82EE98CA8206925363281D3C31CD5F43968D4A8AFE33643799DB5C5931A525D0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 432, + "startColumn": 41, + "endLine": 432, + "endColumn": 43, + "charOffset": 11950, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "50ED87A0DC2B817868123DB81ECAF6DFDF41621CD81FE7D89694BC153B42B554" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 446, + "startColumn": 45, + "endLine": 446, + "endColumn": 47, + "charOffset": 12345, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F49A133162473B3DB0329AE5878295DE71A039CDAF8256966D4ED0D45EC72ADE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 453, + "startColumn": 46, + "endLine": 453, + "endColumn": 48, + "charOffset": 12611, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1318D52AAC30EE1BDECAB44EB2B75AF9B6638711A4F781932E35676EBFF3306B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 488, + "startColumn": 41, + "endLine": 488, + "endColumn": 43, + "charOffset": 13624, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "50ED87A0DC2B817868123DB81ECAF6DFDF41621CD81FE7D89694BC153B42B554" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 512, + "startColumn": 45, + "endLine": 512, + "endColumn": 47, + "charOffset": 14325, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F49A133162473B3DB0329AE5878295DE71A039CDAF8256966D4ED0D45EC72ADE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 519, + "startColumn": 46, + "endLine": 519, + "endColumn": 48, + "charOffset": 14591, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1318D52AAC30EE1BDECAB44EB2B75AF9B6638711A4F781932E35676EBFF3306B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 778, + "startColumn": 45, + "endLine": 778, + "endColumn": 47, + "charOffset": 20980, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "46C3C47D8A58A0FE829C6BD8119ACBC1BE21F455DCA06E94043F12BBD3FE3881" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 779, + "startColumn": 45, + "endLine": 779, + "endColumn": 47, + "charOffset": 21055, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1E5DFA64525DC8D77E86FF302E870CD42099A91F55C1FFE17B682959BBA5CB8F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 780, + "startColumn": 45, + "endLine": 780, + "endColumn": 47, + "charOffset": 21130, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AB78D4DC079AD9574BBBF7AE85879F0D772E6C1C45C8495141B42CA25C9BDA2C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "MergeIntoPattern", + "ruleIndex": 34, + "level": "note", + "message": { + "text": "Merge into pattern" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif/SarifIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 107 + }, + "region": { + "startLine": 176, + "startColumn": 34, + "endLine": 176, + "endColumn": 36, + "charOffset": 6769, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D3951EB67497E88D4E72C62ABD456448935A92A9982E777B8A0788706BAA33B2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "NotAccessedField.Local", + "ruleIndex": 35, + "message": { + "text": "Field 'sarifIssueReportFormatSettings' is assigned but its value is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 15 + }, + "region": { + "startLine": 28, + "startColumn": 57, + "endLine": 28, + "endColumn": 87, + "charOffset": 985, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8F799BB417C70877232BE896E91F06FC76DFFD1D5A4EC7CD8D537308D90520C1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "NotDisposedResourceIsReturned", + "ruleIndex": 36, + "message": { + "text": "Return value must be disposed but method 'GetEnumerator' is not annotated with [MustDisposeResource]" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 576, + "startColumn": 47, + "endLine": 576, + "endColumn": 60, + "charOffset": 14525, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A925619277C88FC71F2FB64A705C7C9C41C6524554D9C3C6770D77A154CF9A88" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "NotDisposedResourceIsReturned", + "ruleIndex": 36, + "message": { + "text": "Return value must be disposed but method 'GetEnumerator' is not annotated with [MustDisposeResource]" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 600, + "startColumn": 39, + "endLine": 600, + "endColumn": 52, + "charOffset": 15112, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5599501971893B391D6E57E2967059DD7C392CBEE3B37209B689F1C3E774DB4D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "NotResolvedInText", + "ruleIndex": 37, + "message": { + "text": "Cannot resolve symbol 'Foo'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/ExceptionAssertExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 59 + }, + "region": { + "startLine": 39, + "startColumn": 67, + "endLine": 39, + "endColumn": 70, + "charOffset": 1446, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0D2CAF3943C8490A41688DFF396FD4731E20744ED86D342964D0B6295F29A3C5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "NotResolvedInText", + "ruleIndex": 37, + "message": { + "text": "Cannot resolve symbol 'Foo'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/ExceptionAssertExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 59 + }, + "region": { + "startLine": 114, + "startColumn": 60, + "endLine": 114, + "endColumn": 63, + "charOffset": 4195, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B399444CFBBC0353DED23879E13393352B2DF174C4B09E50AF3D76FF672D7E27" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "NotResolvedInText", + "ruleIndex": 37, + "message": { + "text": "Cannot resolve symbol 'Foo'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Testing/ExceptionAssertExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 59 + }, + "region": { + "startLine": 189, + "startColumn": 66, + "endLine": 189, + "endColumn": 69, + "charOffset": 6998, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8CBE2FF1B0DAED30DAEBE246CCF13850D03DA838E081026E8EA9AC2CBE1A09A1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ParameterOnlyUsedForPreconditionCheck.Local", + "ruleIndex": 38, + "message": { + "text": "Parameter 'depth' is only passed to itself and used for precondition check(s)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 793, + "startColumn": 45, + "endLine": 793, + "endColumn": 50, + "charOffset": 26216, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0E2D627BA112C835B546C66549FFE660D4B3100DF8883361CECA067C7BEA013A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInterfaceMemberAmbiguity", + "ruleIndex": 39, + "message": { + "text": "Possible ambiguity while accessing by this interface:\r\n void System.Collections.IDictionary.Clear()\r\n bool System.Collections.IDictionary.Contains(object)\r\n bool System.Collections.IDictionary.IsFixedSize\r\n bool System.Collections.IDictionary.IsFixedSize.get\r\n bool System.Collections.IDictionary.IsReadOnly\r\n bool System.Collections.IDictionary.IsReadOnly.get\r\n void System.Collections.IDictionary.Remove(object)\r\n void System.Collections.IList.Clear()\r\n bool System.Collections.IList.Contains(object?)\r\n bool System.Collections.IList.IsFixedSize\r\n bool System.Collections.IList.IsFixedSize.get\r\n bool System.Collections.IList.IsReadOnly\r\n bool System.Collections.IList.IsReadOnly.get\r\n void System.Collections.IList.Remove(object?)\r\n void System.Collections.IList.RemoveAt(int)\r\n object? System.Collections.IList.this[int]\r\n object? System.Collections.IList.this[int].get\r\n object? System.Collections.IList.this[int].set\r\n void System.Collections.Specialized.IOrderedDictionary.RemoveAt(int)\r\n object? System.Collections.Specialized.IOrderedDictionary.this[int]\r\n object? System.Collections.Specialized.IOrderedDictionary.this[int].get\r\n object? System.Collections.Specialized.IOrderedDictionary.this[int].set" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/IJsonWrapper.cs", + "uriBaseId": "solutionDir", + "index": 29 + }, + "region": { + "startLine": 39, + "startColumn": 24, + "endLine": 39, + "endColumn": 36, + "charOffset": 872, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "39FCC3145EEC20C828A489F8FBC18148E6D06F4D43B3DB27E02D7E698902FE67" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 918, + "startColumn": 34, + "endLine": 918, + "endColumn": 43, + "charOffset": 29874, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "638A8E5DC7EF2B5C3183EDCBDA23EAF0977B1EBDA23CC0DB81162E9BDEA363DC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 920, + "startColumn": 34, + "endLine": 920, + "endColumn": 43, + "charOffset": 29970, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8CB01FD4A858B55F886F8B61B68FE0BBD434007766EEDDFEEB0D6F214CD0DFE0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 922, + "startColumn": 34, + "endLine": 922, + "endColumn": 44, + "charOffset": 30067, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BCC74E3B8B6A73E12AF8245B6886BBDAAFF7A232C7B7FCF1E80B425B50FF04D6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 924, + "startColumn": 34, + "endLine": 924, + "endColumn": 45, + "charOffset": 30166, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DA02CBF652BE2B02479572E7802E837800538B2BAFF60BC63FD6C8B389A4C86D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 926, + "startColumn": 34, + "endLine": 926, + "endColumn": 44, + "charOffset": 30265, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CAD43DE5503FC154B0A426DE9BCE1467CE7F7910E8112CB90E508584E465E442" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 928, + "startColumn": 34, + "endLine": 928, + "endColumn": 43, + "charOffset": 30362, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "314541F9460BF08C2C923E33A5F1CD2CB171A36468F023FD7E2C5E8F5091793F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 930, + "startColumn": 34, + "endLine": 930, + "endColumn": 44, + "charOffset": 30459, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "135BE3CAE32867344F15B2627227A18B5C7DBFA3C3E861D702E96A0549C9AAEC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleInvalidCastException", + "ruleIndex": 40, + "message": { + "text": "Possible 'System.InvalidCastException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 932, + "startColumn": 34, + "endLine": 932, + "endColumn": 42, + "charOffset": 30528, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "27B9C619042D555B062B92D967CC99FD716CB363EB06CECEB8DC69BA54ADCCAD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 216, + "startColumn": 39, + "endLine": 216, + "endColumn": 49, + "charOffset": 9085, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E86B409007FD8372E576AD13DBF99F1AAD3D3221705A467FA5107C4FB0E09D7E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 218, + "startColumn": 46, + "endLine": 218, + "endColumn": 56, + "charOffset": 9164, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "59FDA072209653AB1161354A1A5F04B33C417810172A25BB646863EFE2AC5B5A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 246, + "startColumn": 63, + "endLine": 246, + "endColumn": 78, + "charOffset": 10216, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7DBCC2C93E4444DAEFA9832C5D90652C93F8C1D59CD23C71CE2B317B2624B0F1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 248, + "startColumn": 20, + "endLine": 248, + "endColumn": 35, + "charOffset": 10264, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4DD55BA0E6F3EB56A89A88C1164763603F4F3748B1C90252D269CF742C91C9E0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/IssueDiagnostic.cs", + "uriBaseId": "solutionDir", + "index": 16 + }, + "region": { + "startLine": 30, + "startColumn": 16, + "endLine": 30, + "endColumn": 22, + "charOffset": 999, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0D1F29C28EFFD26B01CED3FD1A18D347DC678B7C530C80133A587EBC435D183" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/IssueDiagnostic.cs", + "uriBaseId": "solutionDir", + "index": 16 + }, + "region": { + "startLine": 32, + "startColumn": 27, + "endLine": 32, + "endColumn": 33, + "charOffset": 1060, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A5FD0CC2EA9198EAD32A8FD10286ED4A2F7BB90C393B69E176E2A29F92ABAA82" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 15 + }, + "region": { + "startLine": 57, + "startColumn": 17, + "endLine": 57, + "endColumn": 23, + "charOffset": 2087, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B8D2183C035FB48E8B802EECB3D96DB297DF39C61D8D010737B27388717AA609" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleMultipleEnumeration", + "ruleIndex": 41, + "message": { + "text": "Possible multiple enumeration" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportGenerator.cs", + "uriBaseId": "solutionDir", + "index": 15 + }, + "region": { + "startLine": 60, + "startColumn": 58, + "endLine": 60, + "endColumn": 64, + "charOffset": 2219, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9D6152597C7547054A001F8E986835B6D1481FA3C6836DA5013BF98D1EF2E097" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 455, + "startColumn": 17, + "endLine": 455, + "endColumn": 21, + "charOffset": 14013, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9FB420D838E8C2D3ABA37593E3FB02FC56404BEEADCB2A9D8C0F54FC02E6FA94" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 538, + "startColumn": 26, + "endLine": 538, + "endColumn": 47, + "charOffset": 17004, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BC55999BC431ADCE63A875D8E813A9D2B846EDB33FCB7C5BBE262D761049D6D1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 489, + "startColumn": 21, + "endLine": 489, + "endColumn": 33, + "charOffset": 12662, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D91D6A2D61F8230239BC852F13DBCED0A98AADE55D12C041A3075326F1B2633F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/TerraformIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 127 + }, + "region": { + "startLine": 49, + "startColumn": 36, + "endLine": 49, + "endColumn": 48, + "charOffset": 2015, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5EDCCF37C819A776C35FC6BD2FDE803829E4ED6F3C1B96E31B72107004E78782" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 128 + }, + "region": { + "startLine": 75, + "startColumn": 13, + "endLine": 75, + "endColumn": 21, + "charOffset": 2642, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FFD8A262DFF725048DAF1A43CB239D38E4A2809CD5169DBEFA74A5B1D39C328E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PossibleNullReferenceException", + "ruleIndex": 42, + "message": { + "text": "Possible 'System.NullReferenceException'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/IssueDeserializationExtensions.cs", + "uriBaseId": "solutionDir", + "index": 129 + }, + "region": { + "startLine": 107, + "startColumn": 41, + "endLine": 107, + "endColumn": 45, + "charOffset": 4069, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5D4B72A8802E45BF4F58F71133B12370D06FE4CFF79F9A9F3D5989965CBF9BCE" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PrivateFieldCanBeConvertedToLocalVariable", + "ruleIndex": 43, + "message": { + "text": "The field is always assigned before being used and can be converted into a local variable" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 18, + "startColumn": 52, + "endLine": 18, + "endColumn": 61, + "charOffset": 556, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1D72B8FBB85295D1178228FAFED2341D93064F5CB645616F57563AC8CF0F14A3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererFixture.cs", + "uriBaseId": "solutionDir", + "index": 130 + }, + "region": { + "startLine": 29, + "startColumn": 35, + "endLine": 29, + "endColumn": 38, + "charOffset": 1045, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererFixture.cs", + "uriBaseId": "solutionDir", + "index": 130 + }, + "region": { + "startLine": 31, + "startColumn": 63, + "endLine": 31, + "endColumn": 66, + "charOffset": 1117, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "86E618EF31CCE047D94F1CC2B4CB061A49D264EF52AB98D213B7900BAE4C4598" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererFixture.cs", + "uriBaseId": "solutionDir", + "index": 130 + }, + "region": { + "startLine": 33, + "startColumn": 67, + "endLine": 33, + "endColumn": 70, + "charOffset": 1193, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "38338DDF5AD19FBB550B9BB28A2201CFCFBCA5EB3D9097C448A7B6ACDAD2E350" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssueProvidersFixture.cs", + "uriBaseId": "solutionDir", + "index": 131 + }, + "region": { + "startLine": 31, + "startColumn": 35, + "endLine": 31, + "endColumn": 38, + "charOffset": 1194, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssueProvidersFixture.cs", + "uriBaseId": "solutionDir", + "index": 131 + }, + "region": { + "startLine": 33, + "startColumn": 63, + "endLine": 33, + "endColumn": 66, + "charOffset": 1266, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AC29AE65A7E6A38DD3DEED67A248CEE9025CC36F0B6655E9A9B0B5A7FF1BF2BA" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssueProvidersFixture.cs", + "uriBaseId": "solutionDir", + "index": 131 + }, + "region": { + "startLine": 35, + "startColumn": 63, + "endLine": 35, + "endColumn": 66, + "charOffset": 1338, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "86E618EF31CCE047D94F1CC2B4CB061A49D264EF52AB98D213B7900BAE4C4598" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssueProvidersFixture.cs", + "uriBaseId": "solutionDir", + "index": 131 + }, + "region": { + "startLine": 37, + "startColumn": 84, + "endLine": 37, + "endColumn": 87, + "charOffset": 1431, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "18704920A232EC7E2FB6A36BBB4F8F3A3E089E0ED301A3A009BD4A3A1AE2A782" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssuesFixture.cs", + "uriBaseId": "solutionDir", + "index": 132 + }, + "region": { + "startLine": 29, + "startColumn": 35, + "endLine": 29, + "endColumn": 38, + "charOffset": 1069, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssuesFixture.cs", + "uriBaseId": "solutionDir", + "index": 132 + }, + "region": { + "startLine": 31, + "startColumn": 63, + "endLine": 31, + "endColumn": 66, + "charOffset": 1141, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "86E618EF31CCE047D94F1CC2B4CB061A49D264EF52AB98D213B7900BAE4C4598" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssuesFixture.cs", + "uriBaseId": "solutionDir", + "index": 132 + }, + "region": { + "startLine": 33, + "startColumn": 67, + "endLine": 33, + "endColumn": 70, + "charOffset": 1217, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "38338DDF5AD19FBB550B9BB28A2201CFCFBCA5EB3D9097C448A7B6ACDAD2E350" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatFixture.cs", + "uriBaseId": "solutionDir", + "index": 25 + }, + "region": { + "startLine": 22, + "startColumn": 35, + "endLine": 22, + "endColumn": 38, + "charOffset": 809, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD26A46A1DE75B3F79F52BBADF6AA4104CED278379FADEDA473F5408BB37F4F7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatFixture.cs", + "uriBaseId": "solutionDir", + "index": 25 + }, + "region": { + "startLine": 26, + "startColumn": 75, + "endLine": 26, + "endColumn": 78, + "charOffset": 965, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "083B1E063BFC2F905C5E2BD6FCD82BA89026FC81D1FD34D3E5C48CFA21F2344A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 128 + }, + "region": { + "startLine": 33, + "startColumn": 61, + "endLine": 33, + "endColumn": 64, + "charOffset": 1154, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "767699D16EE127E21B1CF81535BB2B7F443D36F5B3F09FF8678E8C1D70F92525" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 9, + "startColumn": 54, + "endLine": 9, + "endColumn": 57, + "charOffset": 326, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "53931293D6E9C62D89A1B149C39B351749231B9EFCB035BC686C932D3B38E28C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 12, + "startColumn": 42, + "endLine": 12, + "endColumn": 45, + "charOffset": 431, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EE24A619E26769F2D41747F3B25B4F24B85FB9584CADD65AD6589537F6A28B06" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 15, + "startColumn": 55, + "endLine": 15, + "endColumn": 58, + "charOffset": 562, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8F40DE2874B666EE02BAF7E7617ABAAE8F22D7BFFFFFD519D8F71645DC17B3C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 18, + "startColumn": 33, + "endLine": 18, + "endColumn": 36, + "charOffset": 651, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "219BB2A50F5D08FF30C3F47A09D9CD546A58AED271A6663C58518A7590025076" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 21, + "startColumn": 38, + "endLine": 21, + "endColumn": 41, + "charOffset": 752, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AD3A8AF59E1CF2209093B751F7851679E22C33974E03ED5AF623530AAC507845" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 24, + "startColumn": 37, + "endLine": 24, + "endColumn": 40, + "charOffset": 849, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E44E2BF8A8FF1B59BAE349094A1EF8182952D6CD80696196394C6E97F4FAE255" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 27, + "startColumn": 43, + "endLine": 27, + "endColumn": 46, + "charOffset": 956, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1DECF734E2810EAACB006F1274B63B7000B69A457F18107DF82C9519CB0516CA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 30, + "startColumn": 35, + "endLine": 30, + "endColumn": 38, + "charOffset": 1049, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A31EAE4367887D6A6CAACE5C5A1695800796136F72DEB5C0668B50936736CAC4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 33, + "startColumn": 38, + "endLine": 33, + "endColumn": 41, + "charOffset": 1146, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "99E8820D0BB847EE421E0927B1F60C027C0E6D8592A182FCC30462FF4C722A99" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 36, + "startColumn": 43, + "endLine": 36, + "endColumn": 46, + "charOffset": 1253, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2095A5EC18183D6AC922180886D72B5E42AD1775158F52776BED529E2F74C510" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "PropertyCanBeMadeInitOnly.Global", + "ruleIndex": 44, + "level": "note", + "message": { + "text": "Property can be made init-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir", + "index": 133 + }, + "region": { + "startLine": 39, + "startColumn": 43, + "endLine": 39, + "endColumn": 46, + "charOffset": 1360, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FECBB8B03810DB264E737BB6F9684BE09CF934FDEF0D7A5C66D28577A5055D7F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantAssignment", + "ruleIndex": 45, + "message": { + "text": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/DocFxIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 125 + }, + "region": { + "startLine": 40, + "startColumn": 62, + "endLine": 40, + "endColumn": 68, + "charOffset": 1554, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6D35D2378D555A5AF9662D474DB0D20F1D04F3B2D743AA0E30E0E5EF53E17668" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantAssignment", + "ruleIndex": 45, + "message": { + "text": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/LogFileFormat/JsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 134 + }, + "region": { + "startLine": 27, + "startColumn": 49, + "endLine": 27, + "endColumn": 55, + "charOffset": 970, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "65D11DD6C494BEFAA612BE97BB255E48316D0FC07997565E9293C428C6629831" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantAssignment", + "ruleIndex": 45, + "message": { + "text": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 111 + }, + "region": { + "startLine": 34, + "startColumn": 54, + "endLine": 34, + "endColumn": 60, + "charOffset": 1295, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CD6929CF0C87A11F20AF59861104AEF1EDD264F90338BF47C1636E76D6C424A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantAssignment", + "ruleIndex": 45, + "message": { + "text": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 906, + "startColumn": 32, + "endLine": 906, + "endColumn": 38, + "charOffset": 22910, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DD192D72C9BEC714D2C84417223C3B575ECAF163842EEA1B082B70D51C0769A9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantAssignment", + "ruleIndex": 45, + "message": { + "text": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform/TerraformIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 127 + }, + "region": { + "startLine": 38, + "startColumn": 39, + "endLine": 38, + "endColumn": 45, + "charOffset": 1552, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6550DA83486843E8FBB5827B3AAFFECEC3C0B5ECDF3435D395B1FEDFDE826C11" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantBaseConstructorCall", + "ruleIndex": 46, + "message": { + "text": "Redundant base constructor call" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 30, + "startColumn": 32, + "endLine": 30, + "endColumn": 40, + "charOffset": 658, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1A1D4188F55A2066DF95A8558A0EB82B7794CCF38A3CD3ECC6D13761D5D1750B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantCast", + "ruleIndex": 47, + "message": { + "text": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 601, + "startColumn": 22, + "endLine": 601, + "endColumn": 29, + "charOffset": 18859, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7067AC0E09EA19CA81D7071BC3C3EE2AF7FB337B461080FB1E406085BC065770" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantCast", + "ruleIndex": 47, + "message": { + "text": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 617, + "startColumn": 22, + "endLine": 617, + "endColumn": 35, + "charOffset": 19323, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "633CF4609A1361C965DA50FC68C72D3A235D4D7FF3225B341CA9A1EC178B8AA0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantCast", + "ruleIndex": 47, + "message": { + "text": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 281, + "startColumn": 21, + "endLine": 281, + "endColumn": 26, + "charOffset": 7455, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F950D310C023033D2E01961F48151A3A09BA258A233300A61FE5014457CA0CFA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantCast", + "ruleIndex": 47, + "message": { + "text": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 281, + "startColumn": 42, + "endLine": 281, + "endColumn": 47, + "charOffset": 7476, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F950D310C023033D2E01961F48151A3A09BA258A233300A61FE5014457CA0CFA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantCast", + "ruleIndex": 47, + "message": { + "text": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 288, + "startColumn": 26, + "endLine": 288, + "endColumn": 31, + "charOffset": 7693, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D32831C52FCE8CD24B252DE3C76F1D1C4EE9FC75EEC1B7712562567D08C51E15" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantDelegateCreation", + "ruleIndex": 48, + "message": { + "text": "Redundant explicit delegate creation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 50, + "startColumn": 21, + "endLine": 50, + "endColumn": 50, + "charOffset": 2087, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4DEFA3C2C972DD8467D9A1C946436EFC47347A453B79FB370D7FD8EF421A44FA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantDelegateCreation", + "ruleIndex": 48, + "message": { + "text": "Redundant explicit delegate creation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 54, + "startColumn": 21, + "endLine": 54, + "endColumn": 50, + "charOffset": 2284, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B314554B241AC5E9862C97BB51A94413CABC14E0A0A2DCDD56B1DB57FBA33132" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantDelegateCreation", + "ruleIndex": 48, + "message": { + "text": "Redundant explicit delegate creation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 27 + }, + "region": { + "startLine": 58, + "startColumn": 21, + "endLine": 58, + "endColumn": 50, + "charOffset": 2484, + "charLength": 29 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BFC9BBBE3BA96495A4403C61A527CE836107F10C9E177D6CD6DACEAA852F8601" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantExplicitArrayCreation", + "ruleIndex": 49, + "message": { + "text": "Redundant explicit array type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 326, + "startColumn": 36, + "endLine": 326, + "endColumn": 40, + "charOffset": 9687, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7D449E4063CB51761DEC188C7D5CE91EE1532882A545FC74419F21867CAE9289" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantExplicitArrayCreation", + "ruleIndex": 49, + "message": { + "text": "Redundant explicit array type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 420, + "startColumn": 48, + "endLine": 420, + "endColumn": 54, + "charOffset": 12844, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E5D0979DE629A16D77FCA88644A39A88D5056CBAE95E43DD5274BD0396AF63EF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantExplicitArraySize", + "ruleIndex": 50, + "message": { + "text": "Redundant explicit array size specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 149, + "startColumn": 50, + "endLine": 149, + "endColumn": 52, + "charOffset": 3731, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08B7158229440808ED248A647C736961FEA958A96E3B1CF94455DDBC2D759D6D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantExplicitArraySize", + "ruleIndex": 50, + "message": { + "text": "Redundant explicit array size specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 180, + "startColumn": 40, + "endLine": 180, + "endColumn": 42, + "charOffset": 4513, + "charLength": 2 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A84189CF6364DA285A6E80FAA8E270C20E6C15B0A534345D70BC20DE74F580E9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantJumpStatement", + "ruleIndex": 51, + "message": { + "text": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 886, + "startColumn": 17, + "endLine": 886, + "endColumn": 24, + "charOffset": 22517, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DAECDB6E9EBC50A95D212E77303C9B54F9A2A6863C46B50858B5B5AFD1AA97A9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantJumpStatement", + "ruleIndex": 51, + "message": { + "text": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 931, + "startColumn": 17, + "endLine": 931, + "endColumn": 24, + "charOffset": 23797, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1D08B4B3EC837A574209B6988D2AE030F926E8D9BA5956155FC7E64D56433C9E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantJumpStatement", + "ruleIndex": 51, + "message": { + "text": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 212, + "startColumn": 21, + "endLine": 212, + "endColumn": 28, + "charOffset": 6230, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8053FD88EC449DDEB5EDB3098A77F002270190E03679141508BE0E545B1E9350" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantJumpStatement", + "ruleIndex": 51, + "message": { + "text": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 269, + "startColumn": 21, + "endLine": 269, + "endColumn": 28, + "charOffset": 8031, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8053FD88EC449DDEB5EDB3098A77F002270190E03679141508BE0E545B1E9350" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantJumpStatement", + "ruleIndex": 51, + "message": { + "text": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 309, + "startColumn": 21, + "endLine": 309, + "endColumn": 28, + "charOffset": 9199, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8053FD88EC449DDEB5EDB3098A77F002270190E03679141508BE0E545B1E9350" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/BaseEsLintLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 135 + }, + "region": { + "startLine": 11, + "startColumn": 5, + "endLine": 12, + "endColumn": 6, + "charOffset": 381, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8E23815ACE8218647B30B49240961B101CA18B9733A535F3F4103D50FF000628" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/EsLintIssuesAliases.cs", + "uriBaseId": "solutionDir", + "index": 136 + }, + "region": { + "startLine": 10, + "startColumn": 5, + "endLine": 11, + "endColumn": 6, + "charOffset": 305, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0773ED38F5C94DF32284332AD7ED758ED4641E4279D849F4D492855993A489C2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/BaseMarkdownlintLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 137 + }, + "region": { + "startLine": 11, + "startColumn": 5, + "endLine": 12, + "endColumn": 6, + "charOffset": 428, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A2CA886C96D6BB9833CAAEF7D0176F839ABECAE331C64F34860E3ADCEF94959F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.cs", + "uriBaseId": "solutionDir", + "index": 138 + }, + "region": { + "startLine": 10, + "startColumn": 5, + "endLine": 11, + "endColumn": 6, + "charOffset": 326, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C8B26B6E6AC942F827E33D9C2FAED1D5BEA10750FB4AD587DEEAECF0047B00A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild/MsBuildIssuesAliases.cs", + "uriBaseId": "solutionDir", + "index": 139 + }, + "region": { + "startLine": 13, + "startColumn": 5, + "endLine": 14, + "endColumn": 6, + "charOffset": 496, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6FF5039762B265AFE6FED7F31582C3CEAAA7077B5ACB83161DDFB04A72AC56BA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.GitHubActions.Tests/GitHubActionsBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 140 + }, + "region": { + "startLine": 6, + "startColumn": 9, + "endLine": 7, + "endColumn": 10, + "charOffset": 168, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "93D5BE8248504DE461718A318AD6E903719478E4D5F225AEE4FE02FC1C027F68" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings.cs", + "uriBaseId": "solutionDir", + "index": 141 + }, + "region": { + "startLine": 7, + "startColumn": 5, + "endLine": 8, + "endColumn": 6, + "charOffset": 201, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E0916BB1F99B4F53ADAF8A496F5818C68C55B8257184C0E72001DFE55942C934" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/AssertionMethodAttribute.cs", + "uriBaseId": "solutionDir", + "index": 142 + }, + "region": { + "startLine": 9, + "startColumn": 5, + "endLine": 10, + "endColumn": 6, + "charOffset": 210, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FAB8CBAD5E26C0C8DC4A52D66E0E492B8AF88D6F823A29858F538E954176C098" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/FakeRuleDescription.cs", + "uriBaseId": "solutionDir", + "index": 143 + }, + "region": { + "startLine": 7, + "startColumn": 5, + "endLine": 8, + "endColumn": 6, + "charOffset": 223, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DA7D0DFF800B95FAA2EB7FCEA22A688F1EAD1960A19765F69169AAA227329483" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/Aliases.cs", + "uriBaseId": "solutionDir", + "index": 144 + }, + "region": { + "startLine": 10, + "startColumn": 5, + "endLine": 11, + "endColumn": 6, + "charOffset": 287, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9EDAC7DA223D436C8EE9EFC591B411C52DCD9F0AF4ED4C6914800F5E02A6E774" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty class declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/ValidatedNotNullAttribute.cs", + "uriBaseId": "solutionDir", + "index": 145 + }, + "region": { + "startLine": 10, + "startColumn": 5, + "endLine": 11, + "endColumn": 6, + "charOffset": 289, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "036D6E4FD6D761950C8B1729FF82D2B21128626310F5CB7A22C6BAC33A3A97EA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty interface declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestSystemCapability.cs", + "uriBaseId": "solutionDir", + "index": 146 + }, + "region": { + "startLine": 7, + "startColumn": 5, + "endLine": 8, + "endColumn": 6, + "charOffset": 203, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F4F514908DD2BF5D212B8FA51DDAB84E6DC8B82D381BE1EF56885A43DEE4E304" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty interface declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IReportIssuesToPullRequestFromIssueProviderSettings.cs", + "uriBaseId": "solutionDir", + "index": 147 + }, + "region": { + "startLine": 7, + "startColumn": 5, + "endLine": 8, + "endColumn": 6, + "charOffset": 324, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B1BEE362632BED27A23572DD081DE539D6F625766F0950AA08644E2B43EE0D4E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantTypeDeclarationBody", + "ruleIndex": 52, + "level": "note", + "message": { + "text": "Redundant empty interface declaration body" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting/ICreateIssueReportFromIssueProviderSettings.cs", + "uriBaseId": "solutionDir", + "index": 148 + }, + "region": { + "startLine": 7, + "startColumn": 5, + "endLine": 8, + "endColumn": 6, + "charOffset": 287, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4AA5EF9C265E6FC68AB8AA6B432EBE15274F045F7211CA616ABDAF0A19C597F2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx/DocFxIssuesProvider.cs", + "uriBaseId": "solutionDir", + "index": 125 + }, + "region": { + "startLine": 3, + "startColumn": 5, + "endLine": 3, + "endColumn": 18, + "charOffset": 36, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2F419EC55975954C8E93392964056FAF7A066FAB8EDE96704FB3A772E37A2F41" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint.Tests/Properties/ProjectInfo.cs", + "uriBaseId": "solutionDir", + "index": 149 + }, + "region": { + "startLine": 1, + "startColumn": 1, + "endLine": 1, + "endColumn": 25, + "charOffset": 0, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4CAA04C8200A7BACF0980AAAD7F3105858E8501153D8884655BDD243DBB233E3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/LogFileFormat/JsonLogFileFormat.cs", + "uriBaseId": "solutionDir", + "index": 134 + }, + "region": { + "startLine": 6, + "startColumn": 5, + "endLine": 6, + "endColumn": 43, + "charOffset": 136, + "charLength": 38 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C6C415352A54AF1B765FF98045FE0DFA47DB4514938827450550EA823E57FFC1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.EsLint/Properties/ProjectInfo.cs", + "uriBaseId": "solutionDir", + "index": 150 + }, + "region": { + "startLine": 2, + "startColumn": 1, + "endLine": 2, + "endColumn": 25, + "charOffset": 15, + "charLength": 24 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4029A836F69A2D9F4A987455EA8D6B1C1258A76D9BC22AA631CD0E9945D98BFD" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/PullRequestIssuesException.cs", + "uriBaseId": "solutionDir", + "index": 151 + }, + "region": { + "startLine": 4, + "startColumn": 5, + "endLine": 4, + "endColumn": 40, + "charOffset": 62, + "charLength": 35 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5497A12D2A0E0252D527337190C55F0B3EB5BEEA069C83E2381F52196351882E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 22, + "startColumn": 1, + "endLine": 22, + "endColumn": 19, + "charOffset": 527, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "371365285C6A86D4644F291BFC86D2E348316B59DAA3F735BE91F6AC69639F6A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 19, + "startColumn": 1, + "endLine": 19, + "endColumn": 34, + "charOffset": 466, + "charLength": 33 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D2AB74473F18C4D4DC5F310BED899AD60FADCD3C4B6EABBE60ED992D63AF4244" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 4, + "startColumn": 2, + "endLine": 4, + "endColumn": 19, + "charOffset": 81, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BF72F6569429F1FE11F18042C17D87F00576687EE5BC685A15FDBD89B98F7AAD" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 5, + "startColumn": 2, + "endLine": 5, + "endColumn": 19, + "charOffset": 101, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7403D13738799DB0AFF37F8F5719988905D06F33A3CF37008770AAB509AAA91F" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir", + "index": 2 + }, + "region": { + "startLine": 6, + "startColumn": 2, + "endLine": 6, + "endColumn": 37, + "charOffset": 121, + "charLength": 35 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "28B9545935923738D41750F2D18E11C2E4CDF28FAADEBB0DB815EB83CB314C4C" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml", + "uriBaseId": "solutionDir", + "index": 3 + }, + "region": { + "startLine": 4, + "startColumn": 2, + "endLine": 4, + "endColumn": 19, + "charOffset": 81, + "charLength": 17 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B4742AB7B95F8707B9533C9BF7CABAEEFF2962BA46C2AB708AB9CD96DE45D55" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir", + "index": 0 + }, + "region": { + "startLine": 6, + "startColumn": 2, + "endLine": 6, + "endColumn": 33, + "charOffset": 121, + "charLength": 31 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "965BE75B8C4C38C5CB5C0EFDADF64362D3059FFB3A1A1E0CD53B47669BEA89A0" + }, + "properties": { + "tags": ["C# HTML",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Sarif/IIssueExtensions.cs", + "uriBaseId": "solutionDir", + "index": 118 + }, + "region": { + "startLine": 4, + "startColumn": 5, + "endLine": 4, + "endColumn": 24, + "charOffset": 65, + "charLength": 19 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2EDBF16FA5E6BCAD1B3E0435A4C608F08AFF5070D0471CC90D3AA8B8C2FECF1A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseConfigurableIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 26 + }, + "region": { + "startLine": 6, + "startColumn": 5, + "endLine": 6, + "endColumn": 23, + "charOffset": 118, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AC4D4A1C42CB4D661395AF61AE0A9160363BF1363EC263885A050907BC3729A5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 128 + }, + "region": { + "startLine": 5, + "startColumn": 5, + "endLine": 5, + "endColumn": 23, + "charOffset": 96, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B07B80C21AF05CFCFED9A1C512F49C4498A04F0F810A4167EF5021411A7BF53" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantUsingDirective", + "ruleIndex": 53, + "message": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/StringPathExtensions.cs", + "uriBaseId": "solutionDir", + "index": 152 + }, + "region": { + "startLine": 5, + "startColumn": 5, + "endLine": 5, + "endColumn": 23, + "charOffset": 71, + "charLength": 18 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AC4D4A1C42CB4D661395AF61AE0A9160363BF1363EC263885A050907BC3729A5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 39, + "startColumn": 25, + "endLine": 39, + "endColumn": 26, + "charOffset": 1225, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4F98908BB236646E5E55F348FA0A4ED4FE4102A132132A056332014074F0E55F" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 43, + "startColumn": 25, + "endLine": 43, + "endColumn": 26, + "charOffset": 1451, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40B93BBE273D82F3E746B181DF36D79371496C727477D8DF78E4AEFDAACCF598" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 63, + "startColumn": 51, + "endLine": 63, + "endColumn": 52, + "charOffset": 2311, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7E742C0AABA5C32EDD6C4DB9A701041B48E0584EFA4D5C04961155AB48377A91" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 75, + "startColumn": 80, + "endLine": 75, + "endColumn": 81, + "charOffset": 2824, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7F2061F256BBDBA4D27CDF3E28908569ABF6C7D36F4860594185F989C0F42F89" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 88, + "startColumn": 33, + "endLine": 88, + "endColumn": 34, + "charOffset": 3294, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0A01B206F5A3E5BC65F76465D14CD043E3280B8CD987DC79E2AC8F096D684806" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 100, + "startColumn": 82, + "endLine": 100, + "endColumn": 83, + "charOffset": 3833, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9794D1F7606E5594D326F6908FCAEB84165135D4FFB5094DD1047A65CA970DB6" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 113, + "startColumn": 33, + "endLine": 113, + "endColumn": 34, + "charOffset": 4303, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CEB85CD3EC2FC3CC40E0CE0EC9DFAD787F3470F71B46C4D51134FDA949D596FF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 125, + "startColumn": 90, + "endLine": 125, + "endColumn": 91, + "charOffset": 4869, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "95AE442809D83B7ED768C714E82D1078B6BFC0FCAB9D6D1C52F4F5F23175C52B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 56 + }, + "region": { + "startLine": 138, + "startColumn": 33, + "endLine": 138, + "endColumn": 34, + "charOffset": 5339, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0A01B206F5A3E5BC65F76465D14CD043E3280B8CD987DC79E2AC8F096D684806" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 103, + "startColumn": 35, + "endLine": 103, + "endColumn": 36, + "charOffset": 3414, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40CDE473A14FC29359F83C1902DAAB9CF774C5122DA9699F5AFC8F6A91DA79CE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 4 + }, + "region": { + "startLine": 131, + "startColumn": 35, + "endLine": 131, + "endColumn": 36, + "charOffset": 4424, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "41953B0CAD228EE9D602576B426B60BDD9301F5A47AAFC475A263C3F98D9724A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.InspectCode.Tests/InspectCodeIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 153 + }, + "region": { + "startLine": 81, + "startColumn": 25, + "endLine": 81, + "endColumn": 26, + "charOffset": 2989, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AAEB6C11B80276DC4AA57C6AD62220CCA14396B22EA788928602A6CFC5BC98D2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.InspectCode.Tests/InspectCodeIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 153 + }, + "region": { + "startLine": 112, + "startColumn": 25, + "endLine": 112, + "endColumn": 26, + "charOffset": 4352, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AAEB6C11B80276DC4AA57C6AD62220CCA14396B22EA788928602A6CFC5BC98D2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/BaseMsBuildLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 44 + }, + "region": { + "startLine": 88, + "startColumn": 55, + "endLine": 88, + "endColumn": 56, + "charOffset": 3200, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "763607CE0BF082D0D9B1E06EDA986BB0D83FF8981885B04D6EE72AD5D453C78D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/BaseMsBuildLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 44 + }, + "region": { + "startLine": 89, + "startColumn": 54, + "endLine": 89, + "endColumn": 55, + "charOffset": 3266, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D256AE5CEE0D51268F548DAEE757B9E7C2B2AC762B9349B8A66BB884C9ACB849" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/BaseMsBuildLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 44 + }, + "region": { + "startLine": 90, + "startColumn": 54, + "endLine": 90, + "endColumn": 55, + "charOffset": 3332, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "537A47017CF64CC518B4146C5D30ECDE63312219BB2AC05550704E3FA5DCD0E0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 104 + }, + "region": { + "startLine": 248, + "startColumn": 25, + "endLine": 248, + "endColumn": 26, + "charOffset": 14943, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C4B0EB02EEA47D97216CA7CB091E826B61895D3CD98C04E5A42FE654F4EAA9D9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 104 + }, + "region": { + "startLine": 427, + "startColumn": 29, + "endLine": 427, + "endColumn": 30, + "charOffset": 22772, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03D78422CA19416CFB9BB14F39FB0E5F29DF866E6974676893610CA32AB2E261" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 104 + }, + "region": { + "startLine": 450, + "startColumn": 29, + "endLine": 450, + "endColumn": 30, + "charOffset": 23813, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "824308DB10915BB7B72F5A2574689AC5622D5BA9C1D97C9D124A0EA749A7E92D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir", + "index": 104 + }, + "region": { + "startLine": 460, + "startColumn": 29, + "endLine": 460, + "endColumn": 30, + "charOffset": 24712, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03D78422CA19416CFB9BB14F39FB0E5F29DF866E6974676893610CA32AB2E261" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir", + "index": 39 + }, + "region": { + "startLine": 102, + "startColumn": 58, + "endLine": 102, + "endColumn": 59, + "charOffset": 3736, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FF5E7372309BD156FA5D18DE4EB6B03468FFC71A93CA7466E9C12CD55F823D66" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererTests.cs", + "uriBaseId": "solutionDir", + "index": 71 + }, + "region": { + "startLine": 160, + "startColumn": 25, + "endLine": 160, + "endColumn": 26, + "charOffset": 5725, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F9F314457AEBC88A39B30AA38B750739AEB2C0811795CA04572175F707AFF15D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererTests.cs", + "uriBaseId": "solutionDir", + "index": 71 + }, + "region": { + "startLine": 161, + "startColumn": 25, + "endLine": 161, + "endColumn": 26, + "charOffset": 5835, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8766161FBD6E4D3666A3C9EDEDB04E875270E06EA47E746BF91B256B03294BD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 10, + "startColumn": 25, + "endLine": 10, + "endColumn": 26, + "charOffset": 249, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "97687D494F6606DD8CEA43FCFF5A0160F98CBE4ECB9F7866B356C90DBFA178BA" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 49, + "startColumn": 124, + "endLine": 49, + "endColumn": 125, + "charOffset": 1847, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D1AF9D5F0F495A013602EBFB0581AD239FC65E9CBD3E459C4E2805AC8D0F24E4" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 137, + "startColumn": 25, + "endLine": 137, + "endColumn": 26, + "charOffset": 4820, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 137, + "startColumn": 33, + "endLine": 137, + "endColumn": 34, + "charOffset": 4828, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 138, + "startColumn": 37, + "endLine": 138, + "endColumn": 38, + "charOffset": 4874, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F5AA87B534616363AB83D881E7D666BBBF97023452CFF54BAE5B3AA377BEF5D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 139, + "startColumn": 25, + "endLine": 139, + "endColumn": 26, + "charOffset": 4912, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 139, + "startColumn": 37, + "endLine": 139, + "endColumn": 38, + "charOffset": 4924, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 140, + "startColumn": 38, + "endLine": 140, + "endColumn": 39, + "charOffset": 4975, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "209056D1B57735D2E65ADF0E511917F1E8F521C06E2A54DC5147B126952DF1AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 141, + "startColumn": 25, + "endLine": 141, + "endColumn": 26, + "charOffset": 5013, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 141, + "startColumn": 38, + "endLine": 141, + "endColumn": 39, + "charOffset": 5026, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 142, + "startColumn": 35, + "endLine": 142, + "endColumn": 36, + "charOffset": 5074, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67139B1490AAD402E4D9ED1CA3F4C4177C48299BD5F616CD01E885D14C698A01" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 143, + "startColumn": 25, + "endLine": 143, + "endColumn": 26, + "charOffset": 5108, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 143, + "startColumn": 35, + "endLine": 143, + "endColumn": 36, + "charOffset": 5118, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 144, + "startColumn": 40, + "endLine": 144, + "endColumn": 41, + "charOffset": 5167, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C2DF504E25A585D7778353D645E5E1CC7CE333B7DAF3D1EDEFA9F9CD552ABFC8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 145, + "startColumn": 25, + "endLine": 145, + "endColumn": 26, + "charOffset": 5208, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1EA9A701B091748F0A4252C2054175367EB3643EF428002F1E4AE220A7613867" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir", + "index": 88 + }, + "region": { + "startLine": 145, + "startColumn": 40, + "endLine": 145, + "endColumn": 41, + "charOffset": 5223, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1EA9A701B091748F0A4252C2054175367EB3643EF428002F1E4AE220A7613867" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic.Tests/GenericIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 154 + }, + "region": { + "startLine": 96, + "startColumn": 21, + "endLine": 96, + "endColumn": 22, + "charOffset": 4239, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "23060FBEA47B54EAED9C26244FA3A5B133DB71280C35300A54B54BDA0BCA7126" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 155 + }, + "region": { + "startLine": 178, + "startColumn": 55, + "endLine": 178, + "endColumn": 56, + "charOffset": 6778, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "04E334AB253CE0096F338D059E7B43F5EEEC16B70F3A94A37A400AE760CA2A35" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 95 + }, + "region": { + "startLine": 140, + "startColumn": 33, + "endLine": 140, + "endColumn": 34, + "charOffset": 5310, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "ADDCAEC552438453616383782C6C029B336FE52A8C10104F2CE80494A7ABE6C6" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 95 + }, + "region": { + "startLine": 153, + "startColumn": 33, + "endLine": 153, + "endColumn": 34, + "charOffset": 5957, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D9032FF883222796EDF9B31583D87661EBD1C239981DE138280737B3000C9BFC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 95 + }, + "region": { + "startLine": 165, + "startColumn": 33, + "endLine": 165, + "endColumn": 34, + "charOffset": 6567, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "28E269BF8C91D1CA84AC56F7CA851686D5D11B0DB314C47F273E69B3573DE9EB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 102 + }, + "region": { + "startLine": 45, + "startColumn": 74, + "endLine": 45, + "endColumn": 75, + "charOffset": 1565, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7056A9C3C4BAEA123762C48E7BC4EA52A05828E44E591FB5DAAAC7FE724692DC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 102 + }, + "region": { + "startLine": 77, + "startColumn": 74, + "endLine": 77, + "endColumn": 75, + "charOffset": 2992, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1A47064947855F87BF324D72EDE135F0DEA14A8BF7D3684600E70CC9B6511E50" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformProviderTests.cs", + "uriBaseId": "solutionDir", + "index": 102 + }, + "region": { + "startLine": 101, + "startColumn": 98, + "endLine": 101, + "endColumn": 99, + "charOffset": 3964, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6BB218E4BB8259C0791A362C9AD5923D2CC66424E7CFA6303B22446562F455EF" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 103, + "startColumn": 41, + "endLine": 103, + "endColumn": 42, + "charOffset": 3602, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8F2524B16A8228BA35A3F7750D70A663CB861622F8C25D6BCC8DE64A3E0534B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 8 + }, + "region": { + "startLine": 131, + "startColumn": 41, + "endLine": 131, + "endColumn": 42, + "charOffset": 4688, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "28959D53CDB1E2F890E796F84CEC59D64F9A6B70C1F6FABC3B894B7F2F695CDB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 127, + "startColumn": 33, + "endLine": 127, + "endColumn": 34, + "charOffset": 4419, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "28F957A848D51E511574BD581C5216EA10A08E88C8B3CBCBD9F3AD6850AAB7B5" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 177, + "startColumn": 33, + "endLine": 177, + "endColumn": 34, + "charOffset": 5969, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D4BA3FD262337E3AA576DE06509255E73D17ACE27C0048193180188FD974FE12" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 227, + "startColumn": 33, + "endLine": 227, + "endColumn": 34, + "charOffset": 7471, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C365975D0C35C44171799950259BD3DE51CB127B7686541B9822654B6F30F518" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 277, + "startColumn": 33, + "endLine": 277, + "endColumn": 34, + "charOffset": 8987, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D4BA3FD262337E3AA576DE06509255E73D17ACE27C0048193180188FD974FE12" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 474, + "startColumn": 33, + "endLine": 474, + "endColumn": 34, + "charOffset": 16406, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9572EE71C25DFCCA0891787796E3E7D662D663C498A4631E29D6673BCAC5AD18" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 121 + }, + "region": { + "startLine": 475, + "startColumn": 36, + "endLine": 475, + "endColumn": 37, + "charOffset": 16487, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4A7DC92918D4DA7D6C3C591827D6E7F10356A7A316C4D45C4EE113BB4D4CAF73" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 870, + "startColumn": 25, + "endLine": 870, + "endColumn": 26, + "charOffset": 30003, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5BE3A3C44AF98E96951204F939574698C800C3720D2967E604AB08D0B7F2A80B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1036, + "startColumn": 25, + "endLine": 1036, + "endColumn": 26, + "charOffset": 35573, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5BE3A3C44AF98E96951204F939574698C800C3720D2967E604AB08D0B7F2A80B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1108, + "startColumn": 25, + "endLine": 1108, + "endColumn": 26, + "charOffset": 37887, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1108, + "startColumn": 33, + "endLine": 1108, + "endColumn": 34, + "charOffset": 37895, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1109, + "startColumn": 37, + "endLine": 1109, + "endColumn": 38, + "charOffset": 37941, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F5AA87B534616363AB83D881E7D666BBBF97023452CFF54BAE5B3AA377BEF5D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1110, + "startColumn": 25, + "endLine": 1110, + "endColumn": 26, + "charOffset": 37979, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1110, + "startColumn": 37, + "endLine": 1110, + "endColumn": 38, + "charOffset": 37991, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1111, + "startColumn": 38, + "endLine": 1111, + "endColumn": 39, + "charOffset": 38042, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "209056D1B57735D2E65ADF0E511917F1E8F521C06E2A54DC5147B126952DF1AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1112, + "startColumn": 25, + "endLine": 1112, + "endColumn": 26, + "charOffset": 38080, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1112, + "startColumn": 38, + "endLine": 1112, + "endColumn": 39, + "charOffset": 38093, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1113, + "startColumn": 35, + "endLine": 1113, + "endColumn": 36, + "charOffset": 38141, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67139B1490AAD402E4D9ED1CA3F4C4177C48299BD5F616CD01E885D14C698A01" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1114, + "startColumn": 25, + "endLine": 1114, + "endColumn": 26, + "charOffset": 38175, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1114, + "startColumn": 35, + "endLine": 1114, + "endColumn": 36, + "charOffset": 38185, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1115, + "startColumn": 40, + "endLine": 1115, + "endColumn": 41, + "charOffset": 38234, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C2DF504E25A585D7778353D645E5E1CC7CE333B7DAF3D1EDEFA9F9CD552ABFC8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1116, + "startColumn": 25, + "endLine": 1116, + "endColumn": 26, + "charOffset": 38275, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1116, + "startColumn": 40, + "endLine": 1116, + "endColumn": 41, + "charOffset": 38290, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1175, + "startColumn": 25, + "endLine": 1175, + "endColumn": 26, + "charOffset": 40183, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1175, + "startColumn": 33, + "endLine": 1175, + "endColumn": 34, + "charOffset": 40191, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1176, + "startColumn": 37, + "endLine": 1176, + "endColumn": 38, + "charOffset": 40237, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F5AA87B534616363AB83D881E7D666BBBF97023452CFF54BAE5B3AA377BEF5D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1177, + "startColumn": 25, + "endLine": 1177, + "endColumn": 26, + "charOffset": 40275, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1177, + "startColumn": 37, + "endLine": 1177, + "endColumn": 38, + "charOffset": 40287, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1178, + "startColumn": 38, + "endLine": 1178, + "endColumn": 39, + "charOffset": 40338, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "209056D1B57735D2E65ADF0E511917F1E8F521C06E2A54DC5147B126952DF1AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1179, + "startColumn": 25, + "endLine": 1179, + "endColumn": 26, + "charOffset": 40376, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1179, + "startColumn": 38, + "endLine": 1179, + "endColumn": 39, + "charOffset": 40389, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1180, + "startColumn": 35, + "endLine": 1180, + "endColumn": 36, + "charOffset": 40437, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67139B1490AAD402E4D9ED1CA3F4C4177C48299BD5F616CD01E885D14C698A01" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1181, + "startColumn": 25, + "endLine": 1181, + "endColumn": 26, + "charOffset": 40471, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1181, + "startColumn": 35, + "endLine": 1181, + "endColumn": 36, + "charOffset": 40481, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1182, + "startColumn": 40, + "endLine": 1182, + "endColumn": 41, + "charOffset": 40530, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C2DF504E25A585D7778353D645E5E1CC7CE333B7DAF3D1EDEFA9F9CD552ABFC8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1183, + "startColumn": 25, + "endLine": 1183, + "endColumn": 26, + "charOffset": 40571, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1183, + "startColumn": 40, + "endLine": 1183, + "endColumn": 41, + "charOffset": 40586, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1298, + "startColumn": 25, + "endLine": 1298, + "endColumn": 26, + "charOffset": 44191, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1298, + "startColumn": 33, + "endLine": 1298, + "endColumn": 34, + "charOffset": 44199, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1299, + "startColumn": 37, + "endLine": 1299, + "endColumn": 38, + "charOffset": 44245, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F5AA87B534616363AB83D881E7D666BBBF97023452CFF54BAE5B3AA377BEF5D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1300, + "startColumn": 25, + "endLine": 1300, + "endColumn": 26, + "charOffset": 44283, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1300, + "startColumn": 37, + "endLine": 1300, + "endColumn": 38, + "charOffset": 44295, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1301, + "startColumn": 38, + "endLine": 1301, + "endColumn": 39, + "charOffset": 44346, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "209056D1B57735D2E65ADF0E511917F1E8F521C06E2A54DC5147B126952DF1AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1302, + "startColumn": 25, + "endLine": 1302, + "endColumn": 26, + "charOffset": 44384, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1302, + "startColumn": 38, + "endLine": 1302, + "endColumn": 39, + "charOffset": 44397, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1303, + "startColumn": 35, + "endLine": 1303, + "endColumn": 36, + "charOffset": 44445, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67139B1490AAD402E4D9ED1CA3F4C4177C48299BD5F616CD01E885D14C698A01" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1304, + "startColumn": 25, + "endLine": 1304, + "endColumn": 26, + "charOffset": 44479, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1304, + "startColumn": 35, + "endLine": 1304, + "endColumn": 36, + "charOffset": 44489, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1305, + "startColumn": 40, + "endLine": 1305, + "endColumn": 41, + "charOffset": 44538, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C2DF504E25A585D7778353D645E5E1CC7CE333B7DAF3D1EDEFA9F9CD552ABFC8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1306, + "startColumn": 25, + "endLine": 1306, + "endColumn": 26, + "charOffset": 44579, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1306, + "startColumn": 40, + "endLine": 1306, + "endColumn": 41, + "charOffset": 44594, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1518, + "startColumn": 25, + "endLine": 1518, + "endColumn": 26, + "charOffset": 51327, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1518, + "startColumn": 33, + "endLine": 1518, + "endColumn": 34, + "charOffset": 51335, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0EC77EC42690D20B82CA55CD5D5C7C675B1CBDC61A6730931A8380EB0BD53C94" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1519, + "startColumn": 37, + "endLine": 1519, + "endColumn": 38, + "charOffset": 51381, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F5AA87B534616363AB83D881E7D666BBBF97023452CFF54BAE5B3AA377BEF5D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1520, + "startColumn": 25, + "endLine": 1520, + "endColumn": 26, + "charOffset": 51419, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1520, + "startColumn": 37, + "endLine": 1520, + "endColumn": 38, + "charOffset": 51431, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "750C61D38DBA6F2B8613FCEC2271DA7250E3BEB494CA3185EAB7562BD9CD40E1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1521, + "startColumn": 38, + "endLine": 1521, + "endColumn": 39, + "charOffset": 51482, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "209056D1B57735D2E65ADF0E511917F1E8F521C06E2A54DC5147B126952DF1AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1522, + "startColumn": 25, + "endLine": 1522, + "endColumn": 26, + "charOffset": 51520, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1522, + "startColumn": 38, + "endLine": 1522, + "endColumn": 39, + "charOffset": 51533, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D0120424E01EC3430C32C53051EA4C0854229FEFAA681CEAE8DA92FA7286E951" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1523, + "startColumn": 35, + "endLine": 1523, + "endColumn": 36, + "charOffset": 51581, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "67139B1490AAD402E4D9ED1CA3F4C4177C48299BD5F616CD01E885D14C698A01" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1524, + "startColumn": 25, + "endLine": 1524, + "endColumn": 26, + "charOffset": 51615, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1524, + "startColumn": 35, + "endLine": 1524, + "endColumn": 36, + "charOffset": 51625, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8B0BDE81CC3325ED105940AF16784CEE4D094D9CF274DB56412F43AED0E0F559" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1525, + "startColumn": 40, + "endLine": 1525, + "endColumn": 41, + "charOffset": 51674, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C2DF504E25A585D7778353D645E5E1CC7CE333B7DAF3D1EDEFA9F9CD552ABFC8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1526, + "startColumn": 25, + "endLine": 1526, + "endColumn": 26, + "charOffset": 51715, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir", + "index": 67 + }, + "region": { + "startLine": 1526, + "startColumn": 40, + "endLine": 1526, + "endColumn": 41, + "charOffset": 51730, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AEE0618E5EDEEDCE7BE3B4B5CC9DD0EE108CD8B15EB7290BCCF43CB46D0C6F96" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 290, + "startColumn": 29, + "endLine": 290, + "endColumn": 30, + "charOffset": 12854, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B3B6C827A0BD134AA241C18C1AECE1F6B654AA00F74B015DB6E306E4BE6B40F2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 905, + "startColumn": 29, + "endLine": 905, + "endColumn": 30, + "charOffset": 40587, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B3B6C827A0BD134AA241C18C1AECE1F6B654AA00F74B015DB6E306E4BE6B40F2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1184, + "startColumn": 29, + "endLine": 1184, + "endColumn": 30, + "charOffset": 53034, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D137CA10820D706D9FBDDA38F4C9FB9B97415EFC971F309D7B4461E65497FF1C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1184, + "startColumn": 37, + "endLine": 1184, + "endColumn": 38, + "charOffset": 53042, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D137CA10820D706D9FBDDA38F4C9FB9B97415EFC971F309D7B4461E65497FF1C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1185, + "startColumn": 41, + "endLine": 1185, + "endColumn": 42, + "charOffset": 53092, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "912976200BF2FDBE5ABBEA7F446CEB1B0BA7F3FCD3CF36B4399C8DB8D9086659" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1186, + "startColumn": 29, + "endLine": 1186, + "endColumn": 30, + "charOffset": 53134, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03486CA3342B57A22BB12633993E09349015144ADF2CF719E60D8E5B0E3CCC72" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1186, + "startColumn": 41, + "endLine": 1186, + "endColumn": 42, + "charOffset": 53146, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "03486CA3342B57A22BB12633993E09349015144ADF2CF719E60D8E5B0E3CCC72" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1187, + "startColumn": 42, + "endLine": 1187, + "endColumn": 43, + "charOffset": 53201, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5DEC3655B24D3BAFE0AC76A513E208C3252DFFFCFD1079D92865AC97343C9354" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1188, + "startColumn": 29, + "endLine": 1188, + "endColumn": 30, + "charOffset": 53243, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F3602C737D8D93428D3C0C208C5AC39C2BE52966D86F2539A9344C8DEAA55F78" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1188, + "startColumn": 42, + "endLine": 1188, + "endColumn": 43, + "charOffset": 53256, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F3602C737D8D93428D3C0C208C5AC39C2BE52966D86F2539A9344C8DEAA55F78" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1189, + "startColumn": 39, + "endLine": 1189, + "endColumn": 40, + "charOffset": 53308, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F1EC93053225E2738CC7C08911F3A71B45ABB895CDF0D945EA26850DC51E266" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1190, + "startColumn": 29, + "endLine": 1190, + "endColumn": 30, + "charOffset": 53346, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A2559494C7B45BEB612A9DFEAE31B3101FAE73713A58A047CD91F2D3F2C2D0C2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1190, + "startColumn": 39, + "endLine": 1190, + "endColumn": 40, + "charOffset": 53356, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A2559494C7B45BEB612A9DFEAE31B3101FAE73713A58A047CD91F2D3F2C2D0C2" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1191, + "startColumn": 44, + "endLine": 1191, + "endColumn": 45, + "charOffset": 53409, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1683E5E9C96F5113448076E184A596E3DD061A818BAD8A6D5F2CDDA2D00C99CD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1192, + "startColumn": 29, + "endLine": 1192, + "endColumn": 30, + "charOffset": 53454, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B74266975F5F51F23082F86955E8FF25C7A783D7BD5ED3425E589DFFB730CB41" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir", + "index": 78 + }, + "region": { + "startLine": 1192, + "startColumn": 44, + "endLine": 1192, + "endColumn": 45, + "charOffset": 53469, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B74266975F5F51F23082F86955E8FF25C7A783D7BD5ED3425E589DFFB730CB41" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 149, + "startColumn": 56, + "endLine": 149, + "endColumn": 57, + "charOffset": 5172, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F3BD6FC8BFD562A5DD0922B6EB5A18446004D7286C6259E3C25709A9BC03C99A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 185, + "startColumn": 57, + "endLine": 185, + "endColumn": 58, + "charOffset": 6546, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "42F1080D7482014E903436168674CD8D53780EE1FC01ED65E2EE1F6A160326C7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 207, + "startColumn": 33, + "endLine": 207, + "endColumn": 34, + "charOffset": 7397, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "13BFE6B648129572BF4BC3FE2D127D36829B0E07760C5266FDD40235112736AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 225, + "startColumn": 33, + "endLine": 225, + "endColumn": 34, + "charOffset": 8012, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B1003BCE8347DC5044AE8033F1FB1BD6CF1C5C48D6F022ACBD962D12FF4FD120" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 243, + "startColumn": 33, + "endLine": 243, + "endColumn": 34, + "charOffset": 8649, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8FE836A170BF2700E86D666AAAC9FC45B2E4DCEC8C9404F8AC46435E4EC9D7A7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 261, + "startColumn": 33, + "endLine": 261, + "endColumn": 34, + "charOffset": 9278, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5C470849B257C9A86D873BEFD16FEFD1B03E8AD5BF507DC5EB511F4CB94DD213" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 587, + "startColumn": 57, + "endLine": 587, + "endColumn": 58, + "charOffset": 21913, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CF5DF65EBB2A0C93E8F1464DA1A4517BAFA7DB86508991FD4FE9B7C7CD367AAC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 588, + "startColumn": 57, + "endLine": 588, + "endColumn": 58, + "charOffset": 21991, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D0F9FC023DE75287B67C3E7A30A5D5B842F1D081F5114A58387F1F618170C6C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 643, + "startColumn": 58, + "endLine": 643, + "endColumn": 59, + "charOffset": 24387, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7BBDD64C83CB7C45E00DF5201EFA481312F7855EF52FF342D0787936F2129FFC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 644, + "startColumn": 58, + "endLine": 644, + "endColumn": 59, + "charOffset": 24462, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B855EEBDA39F89A33E150313F9AEC543FF8C008FCCB874FC81301BB703EF2057" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 678, + "startColumn": 37, + "endLine": 678, + "endColumn": 38, + "charOffset": 25925, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "10F92178052AD6730527CFC7A03B124F2D7D70AD6E0BA08BFCE2BA65FCB359BE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 682, + "startColumn": 37, + "endLine": 682, + "endColumn": 38, + "charOffset": 26148, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0A2485587FC10334AB356A9D825C2AFD6A0ADEE90EC8FF353259A6ECEA651737" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 706, + "startColumn": 37, + "endLine": 706, + "endColumn": 38, + "charOffset": 27027, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "90570CE80836617D3B015F0A4C948C284E548BC9909951F3B2C64106BFA84A6C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 710, + "startColumn": 37, + "endLine": 710, + "endColumn": 38, + "charOffset": 27269, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2094D966468BFBA63810BCB28392EE5BEB9CE7E832D5B0BD45DCC87580A8C768" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 734, + "startColumn": 37, + "endLine": 734, + "endColumn": 38, + "charOffset": 28174, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B32D9FA4800A5FC1D88EA7189544EF24F9381269A3C8F7236DAFB23D38C77B8C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 738, + "startColumn": 37, + "endLine": 738, + "endColumn": 38, + "charOffset": 28404, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A61AC493BBABC829377D7BB55B27BC5D7671691D23D5F0DDF9B06082647EDA4D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 762, + "startColumn": 37, + "endLine": 762, + "endColumn": 38, + "charOffset": 29304, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "17EBF67230ACDAE75B2C8055512074A3D803D124622AB8243129CE8D572B4E92" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 766, + "startColumn": 37, + "endLine": 766, + "endColumn": 38, + "charOffset": 29543, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CFF3EC624AC15FA5EE4B944462E6D5DFB7CB26A673D7255AAF5993826ED5383A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1221, + "startColumn": 56, + "endLine": 1221, + "endColumn": 57, + "charOffset": 46995, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F3BD6FC8BFD562A5DD0922B6EB5A18446004D7286C6259E3C25709A9BC03C99A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1281, + "startColumn": 57, + "endLine": 1281, + "endColumn": 58, + "charOffset": 49285, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "42F1080D7482014E903436168674CD8D53780EE1FC01ED65E2EE1F6A160326C7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1315, + "startColumn": 33, + "endLine": 1315, + "endColumn": 34, + "charOffset": 50594, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "13BFE6B648129572BF4BC3FE2D127D36829B0E07760C5266FDD40235112736AD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1345, + "startColumn": 33, + "endLine": 1345, + "endColumn": 34, + "charOffset": 51667, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B1003BCE8347DC5044AE8033F1FB1BD6CF1C5C48D6F022ACBD962D12FF4FD120" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1375, + "startColumn": 33, + "endLine": 1375, + "endColumn": 34, + "charOffset": 52762, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8FE836A170BF2700E86D666AAAC9FC45B2E4DCEC8C9404F8AC46435E4EC9D7A7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1405, + "startColumn": 33, + "endLine": 1405, + "endColumn": 34, + "charOffset": 53849, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FB28524B338989C49396F00F31FE5833DF187B2266DCB10E410A90C859C36427" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1914, + "startColumn": 57, + "endLine": 1914, + "endColumn": 58, + "charOffset": 73452, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CF5DF65EBB2A0C93E8F1464DA1A4517BAFA7DB86508991FD4FE9B7C7CD367AAC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1915, + "startColumn": 57, + "endLine": 1915, + "endColumn": 58, + "charOffset": 73530, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3D0F9FC023DE75287B67C3E7A30A5D5B842F1D081F5114A58387F1F618170C6C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1994, + "startColumn": 58, + "endLine": 1994, + "endColumn": 59, + "charOffset": 76858, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7BBDD64C83CB7C45E00DF5201EFA481312F7855EF52FF342D0787936F2129FFC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 1995, + "startColumn": 58, + "endLine": 1995, + "endColumn": 59, + "charOffset": 76933, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B855EEBDA39F89A33E150313F9AEC543FF8C008FCCB874FC81301BB703EF2057" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2041, + "startColumn": 37, + "endLine": 2041, + "endColumn": 38, + "charOffset": 78862, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "10F92178052AD6730527CFC7A03B124F2D7D70AD6E0BA08BFCE2BA65FCB359BE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2045, + "startColumn": 37, + "endLine": 2045, + "endColumn": 38, + "charOffset": 79085, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0A2485587FC10334AB356A9D825C2AFD6A0ADEE90EC8FF353259A6ECEA651737" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2081, + "startColumn": 37, + "endLine": 2081, + "endColumn": 38, + "charOffset": 80430, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "90570CE80836617D3B015F0A4C948C284E548BC9909951F3B2C64106BFA84A6C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2085, + "startColumn": 37, + "endLine": 2085, + "endColumn": 38, + "charOffset": 80672, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2094D966468BFBA63810BCB28392EE5BEB9CE7E832D5B0BD45DCC87580A8C768" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2121, + "startColumn": 37, + "endLine": 2121, + "endColumn": 38, + "charOffset": 82043, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B32D9FA4800A5FC1D88EA7189544EF24F9381269A3C8F7236DAFB23D38C77B8C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2125, + "startColumn": 37, + "endLine": 2125, + "endColumn": 38, + "charOffset": 82273, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A61AC493BBABC829377D7BB55B27BC5D7671691D23D5F0DDF9B06082647EDA4D" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2161, + "startColumn": 37, + "endLine": 2161, + "endColumn": 38, + "charOffset": 83637, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2F3532E18665F65A5D94124E9265C51EB3A19855812302492835AB883634C4C3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 77 + }, + "region": { + "startLine": 2165, + "startColumn": 37, + "endLine": 2165, + "endColumn": 38, + "charOffset": 83875, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2D17FB91EF42E63372B3059C928C3E3D397E955918C5F3FD717097974886496C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 40, + "startColumn": 25, + "endLine": 40, + "endColumn": 26, + "charOffset": 1178, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "47B4FBAF0551FB5D4F316B83A20F4B94DED992FBD9374BA647B3290D1BE31474" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 49, + "startColumn": 25, + "endLine": 49, + "endColumn": 26, + "charOffset": 1511, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "58E429061C8783D97528301BC60192EF9671F4CE608EE6E6AF82CD5CC1119776" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 50, + "startColumn": 25, + "endLine": 50, + "endColumn": 26, + "charOffset": 1546, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B189306E3D69B888A864DA182C0878CDD9C7332B2423209ED9F2C81B533C63B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 51, + "startColumn": 25, + "endLine": 51, + "endColumn": 26, + "charOffset": 1582, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "944FC9816B0856A2626847E08DC24AA3BF6988055270FC517771C451ECED42A1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 132, + "startColumn": 25, + "endLine": 132, + "endColumn": 26, + "charOffset": 4057, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "47B4FBAF0551FB5D4F316B83A20F4B94DED992FBD9374BA647B3290D1BE31474" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 138, + "startColumn": 25, + "endLine": 138, + "endColumn": 26, + "charOffset": 4274, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1512E945ACB149C662F5D29AD62DE21E8E7425D75A90B60177D02FCDF6605CD7" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 139, + "startColumn": 25, + "endLine": 139, + "endColumn": 26, + "charOffset": 4309, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5B189306E3D69B888A864DA182C0878CDD9C7332B2423209ED9F2C81B533C63B" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 140, + "startColumn": 25, + "endLine": 140, + "endColumn": 26, + "charOffset": 4345, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C312020250303CDE8C647EA1C12885E75B0868BB5B25997C90C71E5E2F3CAA63" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 234, + "startColumn": 36, + "endLine": 234, + "endColumn": 37, + "charOffset": 7331, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "27E963FEABFD78948CAA0176FFE8A7718AD9717AF310E1DC3899C046367FDED9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 290, + "startColumn": 25, + "endLine": 290, + "endColumn": 26, + "charOffset": 9421, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5CACC12F2D5C54F84D00DAF1F6A70D2B840E05520999E87F509D59A4DB913AFB" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 291, + "startColumn": 42, + "endLine": 291, + "endColumn": 43, + "charOffset": 9498, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BD4AF4FA8682CE29CA8009916FF0A6DD2EEE14EBF2D2DEDC21C389C13F725F71" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 292, + "startColumn": 25, + "endLine": 292, + "endColumn": 26, + "charOffset": 9541, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "00329CFB44E54D83EC1CAD500E69FF555AAB677423518A9FBDDF5CE67FE1A716" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 292, + "startColumn": 42, + "endLine": 292, + "endColumn": 43, + "charOffset": 9558, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "00329CFB44E54D83EC1CAD500E69FF555AAB677423518A9FBDDF5CE67FE1A716" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 319, + "startColumn": 37, + "endLine": 319, + "endColumn": 38, + "charOffset": 10602, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B5F5E7A59236CBD6FD33048355B8233D02CC5019C0B8C7FBC1B9DBF8D59552C1" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 375, + "startColumn": 25, + "endLine": 375, + "endColumn": 26, + "charOffset": 12407, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E772D718BC460FDBFE298DB3D189889EA6781DE4EDDCF46220F45A7240D1B5BE" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 376, + "startColumn": 25, + "endLine": 376, + "endColumn": 26, + "charOffset": 12455, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "85F2E8722AB8A29EE60451D96E0845F883CC5BEFD66FDE70D06A04D78F914C8A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 504, + "startColumn": 53, + "endLine": 504, + "endColumn": 54, + "charOffset": 17057, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E9C07C056BD16F63CFC70C1C04DAEE05AE910B3D0338B11B2CDF22C0D7DB0BD9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 672, + "startColumn": 53, + "endLine": 672, + "endColumn": 54, + "charOffset": 23132, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E9C07C056BD16F63CFC70C1C04DAEE05AE910B3D0338B11B2CDF22C0D7DB0BD9" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "ruleIndex": 54, + "level": "note", + "message": { + "text": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 101 + }, + "region": { + "startLine": 736, + "startColumn": 34, + "endLine": 736, + "endColumn": 35, + "charOffset": 25446, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E186023F6562287F637AD8A31FE8EAD4DA3609B92F0E6DBD53387495A8D9E4FC" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "ReplaceConditionalExpressionWithNullCoalescing", + "ruleIndex": 55, + "level": "note", + "message": { + "text": "Conditional expression can be rewritten as null-coalescing" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 880, + "startColumn": 60, + "endLine": 880, + "endColumn": 63, + "charOffset": 28590, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "90BD225ADB1FC22F7C77746EEB08B6D0A711B6DA3DB39808C92885BC83B72280" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ReplaceWithPrimaryConstructorParameter", + "ruleIndex": 56, + "level": "note", + "message": { + "text": "Replace with primary constructor parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console/FileSystemRepository.cs", + "uriBaseId": "solutionDir", + "index": 156 + }, + "region": { + "startLine": 14, + "startColumn": 9, + "endLine": 14, + "endColumn": 73, + "charOffset": 441, + "charLength": 64 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "81F4F71007231F015E2353FB9EFC251921D4CD14F30666517265349761AAFC14" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "ReplaceWithPrimaryConstructorParameter", + "ruleIndex": 56, + "level": "note", + "message": { + "text": "Replace with primary constructor parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir", + "index": 105 + }, + "region": { + "startLine": 42, + "startColumn": 9, + "endLine": 42, + "endColumn": 97, + "charOffset": 1618, + "charLength": 88 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "42C2CFD23DD4429693C5AD64137AD803C3B6121E23B2BDD46B63B7520EBB9F8C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SpecifyACultureInStringConversionExplicitly", + "ruleIndex": 57, + "message": { + "text": "Specify string culture explicitly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1081, + "startColumn": 40, + "endLine": 1081, + "endColumn": 48, + "charOffset": 28257, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "000883915309854C9107A90FF4AA0C743EA6CE365C5193B9DBA45756B67F2069" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 329, + "startColumn": 26, + "endLine": 329, + "endColumn": 29, + "charOffset": 7838, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D7DD3835BF0899CD380394369E835E34B32BF347BE9F1101AB095664BB1E3BD6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 583, + "startColumn": 18, + "endLine": 583, + "endColumn": 21, + "charOffset": 14676, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "117FFF3EDDBFC9FE13D072A4E403CC34DC48335F9F130AA6F962183292FC3120" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 751, + "startColumn": 13, + "endLine": 751, + "endColumn": 19, + "charOffset": 18799, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AB0D27E5ACDD28C310F83124D62DB07F63A8F401C0DEE921D802C9000F112657" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 868, + "startColumn": 26, + "endLine": 868, + "endColumn": 32, + "charOffset": 21958, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FCFF000F68EB87A3ED0B5FC4E5E2F3B862B009520D586F8019F34E55F206FF01" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1061, + "startColumn": 13, + "endLine": 1061, + "endColumn": 17, + "charOffset": 27724, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "119714D940B57D06F809B25E63487929D41B13FA9E6D8B8F72D47CDCA71D9EEC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 459, + "startColumn": 21, + "endLine": 459, + "endColumn": 27, + "charOffset": 14099, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "633A96F666C3D430BDD131D36D7D529C7ACF3C3B429A69306D5A4016A55DEC8D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 468, + "startColumn": 21, + "endLine": 468, + "endColumn": 24, + "charOffset": 14389, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B78198A85F05A531D12BB0066E62C3DE23568E20C5DC0EE2E137D2B308E3E5C7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 471, + "startColumn": 26, + "endLine": 471, + "endColumn": 29, + "charOffset": 14505, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "25EDBF46369FF8E083F3D896168EC1C1D16B0625C7BC5444AAD0EEABC9B43C0D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 492, + "startColumn": 21, + "endLine": 492, + "endColumn": 27, + "charOffset": 15157, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "80C11446CCD58F42A7E61761F3E4CBCD2DA443809FBDBDC1EA594C7E8BC89D90" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 615, + "startColumn": 21, + "endLine": 615, + "endColumn": 27, + "charOffset": 19259, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "80C11446CCD58F42A7E61761F3E4CBCD2DA443809FBDBDC1EA594C7E8BC89D90" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 857, + "startColumn": 26, + "endLine": 857, + "endColumn": 32, + "charOffset": 27846, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "75807AE855E2FB5A8C7522416BE8E5E554C258C9176672366AEE66706FE1726F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 868, + "startColumn": 26, + "endLine": 868, + "endColumn": 32, + "charOffset": 28152, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D3D3D00A54B35C032A2BE5E8A97E44F1C66AFA59A667EE7824675ED76CFF7D9B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 523, + "startColumn": 22, + "endLine": 523, + "endColumn": 25, + "charOffset": 16041, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E2044A3136515CAAF7E576E5F22E7BCF597A2B5134C7F34D65B4C498135451DA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 199, + "startColumn": 18, + "endLine": 199, + "endColumn": 21, + "charOffset": 5304, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5CF3257A97138850478AD66FB9A7CD4FD8FE36759DA0C1D833EFF3278E94D72D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 222, + "startColumn": 22, + "endLine": 222, + "endColumn": 25, + "charOffset": 5860, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4DFD5129584927723690DF3560AB7833B2AF817FC322FF6F0D56DD6F9BB179FF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 249, + "startColumn": 13, + "endLine": 249, + "endColumn": 16, + "charOffset": 6520, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E1C9847876398C44DFC85D9FA0586C2BC18E9B0E3D7142E9A41869E47EF9E5B3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 250, + "startColumn": 18, + "endLine": 250, + "endColumn": 21, + "charOffset": 6558, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5FE47A59CE24EEC1A1F13078BFB21D71FE0ECB834C8258A8FB7D80CAC85FCF1E" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 349, + "startColumn": 13, + "endLine": 349, + "endColumn": 19, + "charOffset": 9164, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D681A2580E67EE64B46633B1BE10803C6B036061642CCEA84BE4C64653D1B917" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 364, + "startColumn": 13, + "endLine": 364, + "endColumn": 19, + "charOffset": 9562, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D681A2580E67EE64B46633B1BE10803C6B036061642CCEA84BE4C64653D1B917" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 481, + "startColumn": 13, + "endLine": 481, + "endColumn": 19, + "charOffset": 12395, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6DDB52AD87C3078270FE9DCDF4C8892B4AB014D158BFFBC75E35F184085CAA4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 492, + "startColumn": 22, + "endLine": 492, + "endColumn": 25, + "charOffset": 12785, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "082B06C295A6418386DA8C7452809F0A4E6169C2E67D7BAD7485988729C19850" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 770, + "startColumn": 13, + "endLine": 770, + "endColumn": 16, + "charOffset": 20798, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F199D4E06FF58EFE96532B5ED4D5D15307C1100F4444A6ADFA6D93AFF6222128" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 771, + "startColumn": 13, + "endLine": 771, + "endColumn": 16, + "charOffset": 20828, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "55137D9E491EEE05E07EA61E4D1A73D26439A85144AC5078FD75721349C9286B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "ruleIndex": 58, + "level": "note", + "message": { + "text": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 930, + "startColumn": 17, + "endLine": 930, + "endColumn": 20, + "charOffset": 24866, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AD723ABC6E9F226351E996BC45EE3A9226E16058DDF5C223B24989D94C703560" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 156, + "startColumn": 26, + "endLine": 156, + "endColumn": 56, + "charOffset": 3882, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8A041E599A0C80C81AE1837AD58F9479EFADFB913FBC32294B74DA5615CBCF8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 173, + "startColumn": 26, + "endLine": 173, + "endColumn": 56, + "charOffset": 4326, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C8A041E599A0C80C81AE1837AD58F9479EFADFB913FBC32294B74DA5615CBCF8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 279, + "startColumn": 17, + "endLine": 279, + "endColumn": 47, + "charOffset": 6582, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "11D8E21F874A035BE029CA2BDD6662E305DCB2E6B7B8E7AC0DCEE495784107E1" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 283, + "startColumn": 17, + "endLine": 283, + "endColumn": 47, + "charOffset": 6716, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0A4F29EDDD577412227D03B82FF0AAF8CF8296CE964B942C63C0EC9296656C6A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 324, + "startColumn": 17, + "endLine": 324, + "endColumn": 47, + "charOffset": 7620, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BE775B028450C9D20CCB3994AE3B3B1F0D015025DE6C898DF5BBA6D69FDB5C60" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 367, + "startColumn": 21, + "endLine": 367, + "endColumn": 51, + "charOffset": 8835, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B525E97A521ECFE96A5B83671C084678BC6E0BA8C37A17A46146731FFA4D7903" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 368, + "startColumn": 21, + "endLine": 368, + "endColumn": 51, + "charOffset": 8915, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EAE0151291327592BD57ABB1553E721064203493E4F394BA0F8BDB24EDCDACD6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 555, + "startColumn": 13, + "endLine": 555, + "endColumn": 43, + "charOffset": 13935, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "87FA76D294FFD73F87AAE176363949CF3B2E79614A505FC2B5A6B405D7721204" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 756, + "startColumn": 13, + "endLine": 756, + "endColumn": 43, + "charOffset": 18931, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F75135A334B47E770B298059110792666B97763D766E0323B9C58DA8B8DC08E2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1115, + "startColumn": 17, + "endLine": 1115, + "endColumn": 47, + "charOffset": 29041, + "charLength": 30 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "295F42F2D236D987389EEE4844D73FD0B8A2D6847E5032CAB7AEE374AA8C0177" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 195, + "startColumn": 17, + "endLine": 195, + "endColumn": 32, + "charOffset": 5699, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0B4C89DBBA39547364D1272884B2FE1B634FD7644CA36DE9D829D6B6184A2740" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 233, + "startColumn": 21, + "endLine": 233, + "endColumn": 36, + "charOffset": 6858, + "charLength": 15 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B486B0858688E0A221B080FD65C195CF0B2D3E99785F85A843325A309E43652D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "ruleIndex": 59, + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 940, + "startColumn": 13, + "endLine": 940, + "endColumn": 36, + "charOffset": 30735, + "charLength": 23 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AB97B014922DC04609E21C44F66D274F0F49100EB0DA69F7E212E22F0DF569A3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 257, + "startColumn": 17, + "endLine": 257, + "endColumn": 25, + "charOffset": 6074, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E02380D0A90A1714D959972524DFE1E4438EA8C27FC6EF2B7C4B011AC28688AB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 277, + "startColumn": 17, + "endLine": 277, + "endColumn": 25, + "charOffset": 6528, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DC167F3E66EE5627CBA2558DED5EE45AAD3BFE0BC6D56A7AB3931A54119134FA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 303, + "startColumn": 17, + "endLine": 303, + "endColumn": 25, + "charOffset": 7182, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "56D97AD555D06CC29F8FF28313BC9B452517BD27559AB4FFB6426F51563631B8" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 551, + "startColumn": 13, + "endLine": 551, + "endColumn": 21, + "charOffset": 13835, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EDE2F4E2065BD47816AD861DCA63061BE6EC84888FF6A3F5F3165712034DE5FF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 752, + "startColumn": 13, + "endLine": 752, + "endColumn": 21, + "charOffset": 18843, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "586892DFE0C1E3EBD84EDBB79414D49671CC5B14DAA5E0D255CB8957CC09A7CB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 894, + "startColumn": 13, + "endLine": 894, + "endColumn": 21, + "charOffset": 22637, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "EDE2F4E2065BD47816AD861DCA63061BE6EC84888FF6A3F5F3165712034DE5FF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1049, + "startColumn": 13, + "endLine": 1049, + "endColumn": 25, + "charOffset": 27408, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "40C665BB25815164D2158BE23C00DFC22CB9EFE0167235B656438ECC3F739991" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1050, + "startColumn": 13, + "endLine": 1050, + "endColumn": 23, + "charOffset": 27459, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C554A2F58D1DE66557A29748D2786625F54FC00958D66443FC159B542785768A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 183, + "startColumn": 13, + "endLine": 183, + "endColumn": 26, + "charOffset": 5324, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2ED32999F866E4F8F14F4FEFDCFD08EC8CE4B2192E9964CD6C35395F5FC79311" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 190, + "startColumn": 22, + "endLine": 190, + "endColumn": 34, + "charOffset": 5545, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 222, + "startColumn": 13, + "endLine": 222, + "endColumn": 27, + "charOffset": 6446, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2856FFAA0AE067D28708850D78A997C3D8372A59DAB52132D0930161E108F4B6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 229, + "startColumn": 22, + "endLine": 229, + "endColumn": 34, + "charOffset": 6714, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 244, + "startColumn": 17, + "endLine": 244, + "endColumn": 33, + "charOffset": 7212, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 251, + "startColumn": 22, + "endLine": 251, + "endColumn": 31, + "charOffset": 7453, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD74D3747A8DA0DDD0294B43396A0E2EA915C44F1F3C4D70A1388F12E3AC1977" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 253, + "startColumn": 17, + "endLine": 253, + "endColumn": 33, + "charOffset": 7523, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 281, + "startColumn": 22, + "endLine": 281, + "endColumn": 34, + "charOffset": 8333, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "35AFBCA5292F8648E7AD7FE9D147CBA4EAC71B2313BDB9EC7966A1A6E658A55B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 286, + "startColumn": 17, + "endLine": 286, + "endColumn": 33, + "charOffset": 8487, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 292, + "startColumn": 22, + "endLine": 292, + "endColumn": 31, + "charOffset": 8692, + "charLength": 9 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "FD74D3747A8DA0DDD0294B43396A0E2EA915C44F1F3C4D70A1388F12E3AC1977" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 294, + "startColumn": 17, + "endLine": 294, + "endColumn": 33, + "charOffset": 8762, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 325, + "startColumn": 13, + "endLine": 325, + "endColumn": 23, + "charOffset": 9621, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "06A8B9E60369DEF1ECF691E0229EA5D88AB3CAD33A4D59DAA812B0F4A79CFA22" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 350, + "startColumn": 13, + "endLine": 350, + "endColumn": 17, + "charOffset": 10256, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5A3DEA670C9D2F18EACD7449CB055492C3E3F9C18A55D54E139AF4645A1042FC" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 351, + "startColumn": 13, + "endLine": 351, + "endColumn": 17, + "charOffset": 10331, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7330EC18E3A07E904096FF9DCC3FB51D146F39AEBE27E733E6D11E441A3CED1F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 378, + "startColumn": 17, + "endLine": 378, + "endColumn": 21, + "charOffset": 11230, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BAE91AA603C95A0EA330A71D1D57CA8BEF5309D5B0D196B10E2DF27EA5C0D00C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 389, + "startColumn": 21, + "endLine": 389, + "endColumn": 33, + "charOffset": 11663, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9DBA2A00B8832738141CA3DA2C9F4BBA3FCEEEBF03B661E7BD3FC33D216E891C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 401, + "startColumn": 21, + "endLine": 401, + "endColumn": 33, + "charOffset": 12109, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A3E22DCEAFBF7A9B8BCEC88831522D15D03B98DE79488D4039B426C34DF030B5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 416, + "startColumn": 17, + "endLine": 416, + "endColumn": 27, + "charOffset": 12652, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C7E602B9537A3494581DD902A73FD3F9FAF19C906A3FC6BACDE3C3462FEC19CB" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 434, + "startColumn": 17, + "endLine": 434, + "endColumn": 30, + "charOffset": 13288, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BA40665B497349AD3D74A69EB017118C20DB7D571B5D6D97498388070A9F40AF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 481, + "startColumn": 17, + "endLine": 481, + "endColumn": 31, + "charOffset": 14830, + "charLength": 14 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DF7AF07DCF8A5F67DBC9B9C33D65B0588DF9EF80A122C94306B8AC8E8D3AC507" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 496, + "startColumn": 25, + "endLine": 496, + "endColumn": 41, + "charOffset": 15313, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1CC00124E08D05FE369A89595344D98569A001049EF7A7A4C03D164F84566AA6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 506, + "startColumn": 29, + "endLine": 506, + "endColumn": 41, + "charOffset": 15736, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C813B2FA0E7B7BC5B6878D97CC70A00C1CD19F02103B602ED48BEC25C97E5DFA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 559, + "startColumn": 13, + "endLine": 559, + "endColumn": 25, + "charOffset": 17579, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "80CC6BF9A2BBD16A1BD450671194993688F47A0C6D1460C8F9C48CB6E9EC6695" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 597, + "startColumn": 21, + "endLine": 597, + "endColumn": 33, + "charOffset": 18678, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "07FF7AB25A40DC1A548E7E55615EC746C77312224A670DE46BEB0EFCE2731B83" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 892, + "startColumn": 13, + "endLine": 892, + "endColumn": 17, + "charOffset": 29007, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A5FC8403F9CDCC87F8D93DD179977C292FBBABADD3B1E6E5B1FF94E3D55FE3B3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 897, + "startColumn": 17, + "endLine": 897, + "endColumn": 29, + "charOffset": 29199, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "4C933DDB8DD6C323FE40D6245E63CDB8FA4F1C676B0D227916DF8CC95A989519" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 906, + "startColumn": 17, + "endLine": 906, + "endColumn": 29, + "charOffset": 29488, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8E3ACCDC2B79AA00186F6C8AFEF1ABBFC974F29477340FCE117399EBABC71417" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 915, + "startColumn": 17, + "endLine": 915, + "endColumn": 21, + "charOffset": 29745, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B449BB70432E90E8EAB04A0C2715E5648A69BC105FC4C1E0C1FA7B46C4F99E28" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 943, + "startColumn": 22, + "endLine": 943, + "endColumn": 38, + "charOffset": 30858, + "charLength": 16 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B5C6D918851120FC9071F9B3AB02BF3D4D77CDC61EFA13B7CC33C34822E70265" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 953, + "startColumn": 21, + "endLine": 953, + "endColumn": 33, + "charOffset": 31253, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "0F867CD280D16156127CC06D82A10C6B6D305D3E7B99A8DCE30981A5A5045330" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 993, + "startColumn": 13, + "endLine": 993, + "endColumn": 23, + "charOffset": 32411, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "091F3DF8898A82EB5D6719414C7C54D20C6216663D13D1F153AE24C5BB1C5F19" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1012, + "startColumn": 13, + "endLine": 1012, + "endColumn": 23, + "charOffset": 32977, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "091F3DF8898A82EB5D6719414C7C54D20C6216663D13D1F153AE24C5BB1C5F19" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1019, + "startColumn": 13, + "endLine": 1019, + "endColumn": 23, + "charOffset": 33173, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B82EFB523512CCC6894BF7D61DAB571B595D79046C0B43577AA031279F372577" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1026, + "startColumn": 13, + "endLine": 1026, + "endColumn": 23, + "charOffset": 33377, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B82EFB523512CCC6894BF7D61DAB571B595D79046C0B43577AA031279F372577" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "ruleIndex": 60, + "level": "note", + "message": { + "text": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 1040, + "startColumn": 13, + "endLine": 1040, + "endColumn": 23, + "charOffset": 33848, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B82EFB523512CCC6894BF7D61DAB571B595D79046C0B43577AA031279F372577" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TooWideLocalVariableScope", + "ruleIndex": 61, + "level": "note", + "message": { + "text": "Local variable 'entry_symbols' can be declared in inner scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 475, + "startColumn": 19, + "endLine": 475, + "endColumn": 32, + "charOffset": 14650, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "DA99B28C31671AB321495718935B247D23A20DD335ACDDDE8CA21B97EF4858F5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TooWideLocalVariableScope", + "ruleIndex": 61, + "level": "note", + "message": { + "text": "Local variable 'handler' can be declared in inner scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 941, + "startColumn": 26, + "endLine": 941, + "endColumn": 33, + "charOffset": 25091, + "charLength": 7 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "8A1B71A73104B455FDBB91AC704212D89CCC20B71A4E9F81215540284BDF5B37" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TooWideLocalVariableScope", + "ruleIndex": 61, + "level": "note", + "message": { + "text": "Local variable 'num' can be declared in inner scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 197, + "startColumn": 17, + "endLine": 197, + "endColumn": 20, + "charOffset": 5279, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "BB175056F33682CFBEA68F4D48295BC4C29049906417B663295A5808BAB03877" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TypeParameterCanBeVariant", + "ruleIndex": 62, + "level": "note", + "message": { + "text": "The type parameter 'T' could be declared as contravariant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 106, + "startColumn": 41, + "endLine": 106, + "endColumn": 42, + "charOffset": 2364, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1687F366DE1F9C88D35666FA8315143284FDF8375A58CAA05C0E000B2583186F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TypeParameterCanBeVariant", + "ruleIndex": 62, + "level": "note", + "message": { + "text": "The type parameter 'TJson' could be declared as contravariant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 109, + "startColumn": 43, + "endLine": 109, + "endColumn": 48, + "charOffset": 2497, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "07784AD70E3D051ED8B5AA2FE601C15A540CF3A250051B9943B8AF508D028AD7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "TypeParameterCanBeVariant", + "ruleIndex": 62, + "level": "note", + "message": { + "text": "The type parameter 'TValue' could be declared as covariant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 109, + "startColumn": 50, + "endLine": 109, + "endColumn": 56, + "charOffset": 2504, + "charLength": 6 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "07784AD70E3D051ED8B5AA2FE601C15A540CF3A250051B9943B8AF508D028AD7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Global", + "ruleIndex": 63, + "message": { + "text": "Auto-property accessor 'CheckBinaryFilesTrackedByLfs.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesSettings.cs", + "uriBaseId": "solutionDir", + "index": 64 + }, + "region": { + "startLine": 13, + "startColumn": 57, + "endLine": 13, + "endColumn": 61, + "charOffset": 523, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "91935DD9402FECAA76735F6665CD027FEC3F4F64C0FA9B4A6CCF812225649156" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Global", + "ruleIndex": 63, + "message": { + "text": "Auto-property accessor 'CheckFilesPathLength.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesSettings.cs", + "uriBaseId": "solutionDir", + "index": 64 + }, + "region": { + "startLine": 19, + "startColumn": 49, + "endLine": 19, + "endColumn": 53, + "charOffset": 787, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "27C76E0DC6BC01B4C7BA18032909E3F8FF5720A506EF86559150D42949354B7B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Global", + "ruleIndex": 63, + "message": { + "text": "Auto-property accessor 'JavaScript.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/IdeIntegrationSettings.cs", + "uriBaseId": "solutionDir", + "index": 23 + }, + "region": { + "startLine": 11, + "startColumn": 41, + "endLine": 11, + "endColumn": 45, + "charOffset": 348, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9C63BD798853344C81C295319401A29E5C7FADCBD1EDCF6C72AC3B1A1995A883" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Global", + "ruleIndex": 63, + "message": { + "text": "Auto-property accessor 'MaxFilePathLength.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesSettings.cs", + "uriBaseId": "solutionDir", + "index": 64 + }, + "region": { + "startLine": 25, + "startColumn": 45, + "endLine": 25, + "endColumn": 49, + "charOffset": 1037, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1207F6CA8C391E9261304DD9D631EC7C81F435C12F4AFE1E6D6EC38E6A75B320" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Global", + "ruleIndex": 63, + "message": { + "text": "Auto-property accessor 'VisibleIndex.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/HtmlDxDataGridColumnDescription.cs", + "uriBaseId": "solutionDir", + "index": 22 + }, + "region": { + "startLine": 44, + "startColumn": 40, + "endLine": 44, + "endColumn": 44, + "charOffset": 1674, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B2E48EC8BC95496A2224E1714F56D736F6B0C4F5A6F859DE6F3AA6B57873A25C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedAutoPropertyAccessor.Local", + "ruleIndex": 64, + "message": { + "text": "Auto-property accessor 'Format.set' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/FakeMultiFormatIssueProvider.cs", + "uriBaseId": "solutionDir", + "index": 157 + }, + "region": { + "startLine": 31, + "startColumn": 49, + "endLine": 31, + "endColumn": 61, + "charOffset": 1272, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "3DCA2E37016FF540158377F5E144262D95DC6E3835E213B9276DC079433BAA42" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'AffectedFileRelativePath.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 31, + "startColumn": 50, + "endLine": 31, + "endColumn": 53, + "charOffset": 1180, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2ABC359EB2A5EF4CC219024E70D82777E7816A6F20F819D9AFD4747FFACA6E40" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'CommentSource.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 36, + "startColumn": 37, + "endLine": 36, + "endColumn": 40, + "charOffset": 1357, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "6B15DF5BA312DDD25346D60E98C682E6B8557BB1B47036B90CA03C4157C4AFEF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'Id.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 14, + "startColumn": 23, + "endLine": 14, + "endColumn": 26, + "charOffset": 416, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1233C66CFE6937065E1CD0A2F43D59986B63018B36C009EAEE17E7F5B33CB789" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'IsDeleted.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionComment.cs", + "uriBaseId": "solutionDir", + "index": 159 + }, + "region": { + "startLine": 16, + "startColumn": 31, + "endLine": 16, + "endColumn": 34, + "charOffset": 492, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "826DE7257BDC1EA3DB95B69F18F1326D81670EF01BC4D2A94B6AADCE5515D3A7" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'ProviderType.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 42, + "startColumn": 36, + "endLine": 42, + "endColumn": 39, + "charOffset": 1597, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5FF258A0CCEA1D5370BD248E591D8F13832A8024EA482E3D2E32574BE5063FB2" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'Resolution.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 24, + "startColumn": 59, + "endLine": 24, + "endColumn": 62, + "charOffset": 840, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "CE4B2F471C5F4F1DE42E90002C2ECAAE68220AC5F9A8BEA8EA60ADF542FF58E6" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of accessor 'Status.set' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir", + "index": 158 + }, + "region": { + "startLine": 19, + "startColumn": 51, + "endLine": 19, + "endColumn": 54, + "charOffset": 591, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "98F4A58782716AE511AC9A3D740DFDD508216DBD5EA62ABED6686C891DC7820C" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMemberInSuper.Global", + "ruleIndex": 65, + "level": "note", + "message": { + "text": "Only implementations of method 'AddCapability' are used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests/IPullRequestSystem.cs", + "uriBaseId": "solutionDir", + "index": 160 + }, + "region": { + "startLine": 14, + "startColumn": 14, + "endLine": 14, + "endColumn": 27, + "charOffset": 435, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E0C8E08B2EAD325419303C563131377408762B977AB3743B5C08FD9BCDC175E0" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMethodReturnValue.Global", + "ruleIndex": 66, + "level": "note", + "message": { + "text": "Method 'NextToken' return value is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 939, + "startColumn": 16, + "endLine": 939, + "endColumn": 20, + "charOffset": 25037, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "D345BCCD66A4093082A7C6BA777A0C9DDBBF2DE6C150FC79B66DA217674BB241" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedMethodReturnValue.Global", + "ruleIndex": 66, + "level": "note", + "message": { + "text": "Method 'Read' return value is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 447, + "startColumn": 16, + "endLine": 447, + "endColumn": 20, + "charOffset": 13954, + "charLength": 4 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "94DAAFEFFBCB0B03A518AD1C6E9BD79C1202531744F65DFDAAD16342C9BAFA25" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UnusedParameter.Local", + "ruleIndex": 67, + "message": { + "text": "Parameter 'x' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic.Tests/HtmlDxDataGridTemplateTests.cs", + "uriBaseId": "solutionDir", + "index": 161 + }, + "region": { + "startLine": 809, + "startColumn": 55, + "endLine": 809, + "endColumn": 56, + "charOffset": 30383, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "459DC31AF36C3F036CC52190479EAEBC71BA6B7C4A145EE35B73B17C915D34F3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedParameter.Local", + "ruleIndex": 67, + "message": { + "text": "Parameter 'x' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 50 + }, + "region": { + "startLine": 68, + "startColumn": 44, + "endLine": 68, + "endColumn": 45, + "charOffset": 2257, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A3F6CFDDCBE46CA75E4C2C1FE970CA7D5EE63795B869E112BE1FF7ECA471252C" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedParameter.Local", + "ruleIndex": 67, + "message": { + "text": "Parameter 'x' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 50 + }, + "region": { + "startLine": 124, + "startColumn": 44, + "endLine": 124, + "endColumn": 45, + "charOffset": 4449, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "66BBD1F6BD7BD907CF1170521CE6CACA1B062CF139E7ADE79146A649377A5C5A" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedParameter.Local", + "ruleIndex": 67, + "message": { + "text": "Parameter 'x' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 50 + }, + "region": { + "startLine": 125, + "startColumn": 44, + "endLine": 125, + "endColumn": 45, + "charOffset": 4519, + "charLength": 1 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "90CDDF29080FC2810A06D8642A85BE0B400101A137C0960350FD6E80C000FBBD" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedType.Local", + "ruleIndex": 68, + "message": { + "text": "Class 'FakeRuleUrlResolverForBaseRuleDescription' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir", + "index": 50 + }, + "region": { + "startLine": 7, + "startColumn": 27, + "endLine": 7, + "endColumn": 68, + "charOffset": 157, + "charLength": 41 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "56001EEBA8B7586792C5992A1E2DA0EBD518C803B745E5822A2AB0895628A885" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedVariable", + "ruleIndex": 69, + "message": { + "text": "Local variable 'logContents' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 53 + }, + "region": { + "startLine": 62, + "startColumn": 21, + "endLine": 62, + "endColumn": 32, + "charOffset": 2423, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AE91E71384FAD90862BFB11B8C1C721A8FF5483E82102600EEB03A4B8254EAF3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UnusedVariable", + "ruleIndex": 69, + "message": { + "text": "Local variable 'logContents' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 53 + }, + "region": { + "startLine": 88, + "startColumn": 21, + "endLine": 88, + "endColumn": 32, + "charOffset": 3599, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AE91E71384FAD90862BFB11B8C1C721A8FF5483E82102600EEB03A4B8254EAF3" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseCollectionExpression", + "ruleIndex": 70, + "level": "note", + "message": { + "text": "Use collection expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic.Tests/DevExtremeThemeExtensionsTests.cs", + "uriBaseId": "solutionDir", + "index": 162 + }, + "region": { + "startLine": 15, + "startColumn": 34, + "endLine": 15, + "endColumn": 39, + "charOffset": 661, + "charLength": 5 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "793E907AAEF7F474A1738B9AF3A5DEBD5BF71C9AAEA1CF18B384486EE0402761" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseCollectionExpression", + "ruleIndex": 70, + "level": "note", + "message": { + "text": "Use collection expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 326, + "startColumn": 32, + "endLine": 326, + "endColumn": 42, + "charOffset": 9683, + "charLength": 10 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7D449E4063CB51761DEC188C7D5CE91EE1532882A545FC74419F21867CAE9289" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseCollectionExpression", + "ruleIndex": 70, + "level": "note", + "message": { + "text": "Use collection expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 420, + "startColumn": 44, + "endLine": 420, + "endColumn": 56, + "charOffset": 12840, + "charLength": 12 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E5D0979DE629A16D77FCA88644A39A88D5056CBAE95E43DD5274BD0396AF63EF" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseCollectionExpression", + "ruleIndex": 70, + "level": "note", + "message": { + "text": "Use collection expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 149, + "startColumn": 33, + "endLine": 149, + "endColumn": 53, + "charOffset": 3714, + "charLength": 20 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "08B7158229440808ED248A647C736961FEA958A96E3B1CF94455DDBC2D759D6D" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseCollectionExpression", + "ruleIndex": 70, + "level": "note", + "message": { + "text": "Use collection expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 180, + "startColumn": 32, + "endLine": 180, + "endColumn": 43, + "charOffset": 4505, + "charLength": 11 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "A84189CF6364DA285A6E80FAA8E270C20E6C15B0A534345D70BC20DE74F580E9" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseNameofExpression", + "ruleIndex": 71, + "level": "note", + "message": { + "text": "Use 'nameof' expression to reference parameter 'reader' name" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir", + "index": 12 + }, + "region": { + "startLine": 131, + "startColumn": 49, + "endLine": 131, + "endColumn": 57, + "charOffset": 2989, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "B7266B68F51D11CFD1A07BEF7B0B070270F04F52B86FA495D14E1C2D9B6A4C09" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseNameofExpression", + "ruleIndex": 71, + "level": "note", + "message": { + "text": "Use 'nameof' expression to reference parameter 'writer' name" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 122, + "startColumn": 49, + "endLine": 122, + "endColumn": 57, + "charOffset": 2937, + "charLength": 8 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "445C556F43C9CFBE3CBDC84705785F26B30F0DA487465E4DF59C2D3B99ADA12B" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 32 + }, + "region": { + "startLine": 42, + "startColumn": 32, + "endLine": 42, + "endColumn": 35, + "charOffset": 1343, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9592EBE6BB3AD976984CE5F8EE93A8FB24DAA057609C5AAA489FE6B82C943D92" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir", + "index": 32 + }, + "region": { + "startLine": 58, + "startColumn": 32, + "endLine": 58, + "endColumn": 35, + "charOffset": 1832, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9592EBE6BB3AD976984CE5F8EE93A8FB24DAA057609C5AAA489FE6B82C943D92" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 53 + }, + "region": { + "startLine": 54, + "startColumn": 31, + "endLine": 54, + "endColumn": 34, + "charOffset": 1885, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AE7BB45BB11B36CE6EDC6E380ECB5ED54D5A511E2705AAAB5BC73332AF569AD8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir", + "index": 53 + }, + "region": { + "startLine": 80, + "startColumn": 31, + "endLine": 80, + "endColumn": 34, + "charOffset": 3061, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "AE7BB45BB11B36CE6EDC6E380ECB5ED54D5A511E2705AAAB5BC73332AF569AD8" + }, + "properties": { + "tags": ["C#",".NET 6.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir", + "index": 9 + }, + "region": { + "startLine": 1050, + "startColumn": 33, + "endLine": 1050, + "endColumn": 36, + "charOffset": 27479, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C554A2F58D1DE66557A29748D2786625F54FC00958D66443FC159B542785768A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 183, + "startColumn": 34, + "endLine": 183, + "endColumn": 37, + "charOffset": 5345, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2ED32999F866E4F8F14F4FEFDCFD08EC8CE4B2192E9964CD6C35395F5FC79311" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 244, + "startColumn": 43, + "endLine": 244, + "endColumn": 46, + "charOffset": 7238, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 253, + "startColumn": 43, + "endLine": 253, + "endColumn": 46, + "charOffset": 7549, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 286, + "startColumn": 43, + "endLine": 286, + "endColumn": 46, + "charOffset": 8513, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "62645936EA094CA7B79DDD41787736C6DE73E319AB5A430C40EEECE167D0F430" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 294, + "startColumn": 43, + "endLine": 294, + "endColumn": 46, + "charOffset": 8788, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "E921238BF8DB48C03D41B6B2DC6999EA72E3D068B1ABD57FDB039840A44BDE64" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 438, + "startColumn": 23, + "endLine": 438, + "endColumn": 26, + "charOffset": 11343, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9244588DA93E41344CC2C258D81E5730AC007D755455889A9A16F4AFF51AE6B4" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir", + "index": 13 + }, + "region": { + "startLine": 470, + "startColumn": 23, + "endLine": 470, + "endColumn": 26, + "charOffset": 12101, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "9B145958C9C5271733660540C6E00D540F71B2398D3BE34F98403BE86740E962" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "ruleIndex": 72, + "level": "note", + "message": { + "text": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir", + "index": 14 + }, + "region": { + "startLine": 105, + "startColumn": 27, + "endLine": 105, + "endColumn": 30, + "charOffset": 2608, + "charLength": 3 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "80010B40403EECBD50D54FDC098E97B0AE0704E155A0E54B508CA33750DE5E4F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 35, + "startColumn": 18, + "endLine": 35, + "endColumn": 31, + "charOffset": 762, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "1EFFE2C02F73FA95AF9D5002068D529100530389E3EF9B7907F1D53E32433363" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 42, + "startColumn": 18, + "endLine": 42, + "endColumn": 31, + "charOffset": 1000, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "C9A3372AFBD8C6A2A67FC2E40E15E1173F0505FE56F3EDEFC2F7499C7826F27F" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 49, + "startColumn": 18, + "endLine": 49, + "endColumn": 31, + "charOffset": 1200, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "7A001EB98290F35F0046D642F3E426622B87F7ADD1F619037F753C8389D09F4A" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir", + "index": 30 + }, + "region": { + "startLine": 55, + "startColumn": 18, + "endLine": 55, + "endColumn": 31, + "charOffset": 1399, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "16A3D04F3188B303722D17D3DB5B7D8CB977F27831305D7B005CDA0A982F91D3" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 366, + "startColumn": 41, + "endLine": 366, + "endColumn": 54, + "charOffset": 10786, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "5E07898379EC47D9AE2C9D5C43772CC7DD865A0EEC22CE222F3C1231143EC6A5" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 437, + "startColumn": 45, + "endLine": 437, + "endColumn": 58, + "charOffset": 13441, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2F439B5BBD481E04C25F2FDA10C7E5EFD9B8BFD7E9E935334ACCCD54B7796ACA" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "UseStringInterpolation", + "ruleIndex": 73, + "level": "note", + "message": { + "text": "Use string interpolation expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir", + "index": 10 + }, + "region": { + "startLine": 797, + "startColumn": 21, + "endLine": 797, + "endColumn": 34, + "charOffset": 26341, + "charLength": 13 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "F17391C068F5B9E093E3B52326DAAE217F97AD4FE4AB73FB9C326865CDADF847" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + }, + { + "ruleId": "VirtualMemberCallInConstructor", + "ruleIndex": 74, + "message": { + "text": "Virtual member call in constructor" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "Cake.Issues.Testing/BaseConfigurableIssueProviderFixture.cs", + "uriBaseId": "solutionDir", + "index": 26 + }, + "region": { + "startLine": 25, + "startColumn": 37, + "endLine": 25, + "endColumn": 58, + "charOffset": 1211, + "charLength": 21 + } + } + } + ], + "partialFingerprints": { + "contextRegionHash/v1": "2E0036225EADB1A7F578E4B4EF09F1E9BBAAF454ADC8CD7A9E56B0A1AC4B5B85" + }, + "properties": { + "tags": ["C#",".NET 6.0",".NET 7.0",".NET 8.0"] + } + } + ], + "tool": { + "driver": { + "name": "InspectCode", + "organization": "JetBrains, Inc", + "fullName": "JetBrains Inspect Code 2024.1.2", + "semanticVersion": "241.0.20240506.152321", + "informationUri": "http://www.jetbrains.com/resharper/features/command-line.html", + "rules": [ + { + "id": "AccessToDisposedClosure", + "fullDescription": { + "text": "Access to captured variable from anonymous method when the variable is disposed" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=AccessToDisposedClosure" + }, + "shortDescription": { + "text": "Access to disposed captured variable" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=AccessToDisposedClosure", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeAccessorOwnerBody", + "fullDescription": { + "text": "Use expression or block body" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeAccessorOwnerBody" + }, + "shortDescription": { + "text": "Use preferred body style: Convert into property, indexer, or event with preferred body style" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeAccessorOwnerBody", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeObjectCreationWhenTypeEvident", + "fullDescription": { + "text": "Add or remove explicit type specification in 'new' expression when type is evident from the usage" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeObjectCreationWhenTypeEvident" + }, + "shortDescription": { + "text": "Use preferred style of 'new' expression when created type is evident" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeObjectCreationWhenTypeEvident", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeVarKeywordsInDeconstructingDeclaration", + "fullDescription": { + "text": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeVarKeywordsInDeconstructingDeclaration" + }, + "shortDescription": { + "text": "Join or separate 'var' in deconstruction declarations" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ArrangeVarKeywordsInDeconstructingDeclaration", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignNullToNotNullAttribute", + "fullDescription": { + "text": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute." + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=AssignNullToNotNullAttribute" + }, + "shortDescription": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=AssignNullToNotNullAttribute", + "relationships": [ + { + "target": { + "id": "CSHARP.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AutoPropertyCanBeMadeGetOnly.Global", + "fullDescription": { + "text": "Auto-property has no write usages after initialization and can be made get-only" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=AutoPropertyCanBeMadeGetOnly.Global" + }, + "shortDescription": { + "text": "Auto-property can be made get-only: Non-private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=AutoPropertyCanBeMadeGetOnly.Global", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AutoPropertyCanBeMadeGetOnly.Local", + "fullDescription": { + "text": "Auto-property has no write usages after initialization and can be made get-only" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=AutoPropertyCanBeMadeGetOnly.Local" + }, + "shortDescription": { + "text": "Auto-property can be made get-only: Private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=AutoPropertyCanBeMadeGetOnly.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CanSimplifyDictionaryLookupWithTryAdd", + "fullDescription": { + "text": "Dictionary lookup can be simplified with 'TryAdd'" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=CanSimplifyDictionaryLookupWithTryAdd" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=CanSimplifyDictionaryLookupWithTryAdd", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CanSimplifyDictionaryLookupWithTryGetValue", + "fullDescription": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckNamespace", + "fullDescription": { + "text": "Namespace in file does not have a form of 'project Default Namespace plus folder names in the path to the file'. You can configure which folders form the namespace on the folder's Properties page." + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=CheckNamespace" + }, + "shortDescription": { + "text": "Namespace does not correspond to file location" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=CheckNamespace", + "relationships": [ + { + "target": { + "id": "CSHARP.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ClassNeverInstantiated.Global", + "fullDescription": { + "text": "Non-static class is never instantiated" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ClassNeverInstantiated.Global" + }, + "shortDescription": { + "text": "Class is never instantiated: Non-private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ClassNeverInstantiated.Global", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CollectionNeverUpdated.Local", + "fullDescription": { + "text": "New elements are never added to the collection" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=CollectionNeverUpdated.Local" + }, + "shortDescription": { + "text": "Collection is never updated: Private accessibility" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=CollectionNeverUpdated.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConditionIsAlwaysTrueOrFalse", + "fullDescription": { + "text": "Value of a boolean expression is always the same at this point" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConditionIsAlwaysTrueOrFalse" + }, + "shortDescription": { + "text": "Expression is always 'true' or always 'false'" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConditionIsAlwaysTrueOrFalse", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstantNullCoalescingCondition", + "fullDescription": { + "text": "Operand of '??' expression condition is known to be null or not null" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConstantNullCoalescingCondition" + }, + "shortDescription": { + "text": "'??' condition is known to be null or not null" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConstantNullCoalescingCondition", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertClosureToMethodGroup", + "fullDescription": { + "text": "Convert lambda expression or anonymous method into method group" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertClosureToMethodGroup" + }, + "shortDescription": { + "text": "Convert lambda expression into method group" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertClosureToMethodGroup", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertConstructorToMemberInitializers", + "fullDescription": { + "text": "Replace constructor with members initialized inline" + }, + "shortDescription": { + "text": "Convert constructor into member initializers" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToAutoProperty", + "fullDescription": { + "text": "Converts property declaration into C# auto-property syntax" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToAutoProperty" + }, + "shortDescription": { + "text": "Convert property into auto-property" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToAutoProperty", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToLambdaExpression", + "fullDescription": { + "text": "Convert statement-bodied lambda into expression-bodied. Does not suggest the conversion when the expression contains nested closures or explicit side-effects." + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToLambdaExpression" + }, + "shortDescription": { + "text": "Convert into lambda expression" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToLambdaExpression", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToLocalFunction", + "fullDescription": { + "text": "Replace delegate variable with local function" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToLocalFunction" + }, + "shortDescription": { + "text": "Convert delegate variable into local function" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ConvertToLocalFunction", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToPrimaryConstructor", + "fullDescription": { + "text": "Replace ordinary constructor with primary constructor" + }, + "shortDescription": { + "text": "Convert constructor into primary constructor" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CoVariantArrayConversion", + "fullDescription": { + "text": "Co-variant conversion of array could cause run-time exceptions" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=CoVariantArrayConversion" + }, + "shortDescription": { + "text": "Co-variant array conversion" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=CoVariantArrayConversion", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyStatement", + "fullDescription": { + "text": "Empty statement is redundant" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=EmptyStatement" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=EmptyStatement", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ExpressionIsAlwaysNull", + "fullDescription": { + "text": "The expression is always evaluated to 'null' at this point" + }, + "shortDescription": { + "text": "Expression is always 'null'" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FieldCanBeMadeReadOnly.Local", + "fullDescription": { + "text": "Field has no write usages after initialization and can be made readonly" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=FieldCanBeMadeReadOnly.Local" + }, + "shortDescription": { + "text": "Field can be made readonly: Private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=FieldCanBeMadeReadOnly.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HeuristicUnreachableCode", + "fullDescription": { + "text": "Heuristically unreachable code detected" + }, + "shortDescription": { + "text": "Heuristically unreachable code" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InconsistentlySynchronizedField", + "fullDescription": { + "text": "The field is sometimes used inside synchronized block and sometimes used without synchronization" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=InconsistentlySynchronizedField" + }, + "shortDescription": { + "text": "Inconsistent synchronization on field" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=InconsistentlySynchronizedField", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InconsistentNaming", + "fullDescription": { + "text": "Name doesn't match naming style defined for this kind of symbol" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=InconsistentNaming" + }, + "shortDescription": { + "text": "Inconsistent Naming" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=InconsistentNaming", + "relationships": [ + { + "target": { + "id": "CSHARP.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "XAML.ConstraintViolation", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InlineOutVariableDeclaration", + "fullDescription": { + "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument" + }, + "shortDescription": { + "text": "Inline 'out' variable declaration" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IntroduceOptionalParameters.Local", + "fullDescription": { + "text": "Introduce optional parameters to overload method" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=IntroduceOptionalParameters.Local" + }, + "shortDescription": { + "text": "Introduce optional parameters: Private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=IntroduceOptionalParameters.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InvokeAsExtensionMethod", + "fullDescription": { + "text": "When extension method is invoked as static method, convert invocation into extension method syntax" + }, + "shortDescription": { + "text": "Convert static method invocation into extension method call" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JoinDeclarationAndInitializer", + "fullDescription": { + "text": "Join local variable declaration and assignment" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=JoinDeclarationAndInitializer" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=JoinDeclarationAndInitializer", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JoinNullCheckWithUsage", + "fullDescription": { + "text": "Replaces if statement with code using ?? operator and throw expression" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=JoinNullCheckWithUsage" + }, + "shortDescription": { + "text": "Join null check with assignment" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=JoinNullCheckWithUsage", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LocalVariableHidesMember", + "fullDescription": { + "text": "Local variable has the same name as a field/property and hides it" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=LocalVariableHidesMember" + }, + "shortDescription": { + "text": "Local variable hides member" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=LocalVariableHidesMember", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MergeCastWithTypeCheck", + "fullDescription": { + "text": "Type check ('is' expression) and direct cast(s) after it can be merged" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=MergeCastWithTypeCheck" + }, + "shortDescription": { + "text": "Type check and casts can be merged" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=MergeCastWithTypeCheck", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MergeIntoPattern", + "fullDescription": { + "text": "Merge sequential null/pattern checks into single recursive/logical pattern check" + }, + "shortDescription": { + "text": "Merge null/pattern checks into complex pattern" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotAccessedField.Local", + "fullDescription": { + "text": "Field is assigned but its value is never used" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotAccessedField.Local" + }, + "shortDescription": { + "text": "Non-accessed field: Private accessibility" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotAccessedField.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "XAML.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotDisposedResourceIsReturned", + "fullDescription": { + "text": "Return value must be disposed but the method or function is not annotated with [MustDisposeResource]" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotDisposedResourceIsReturned" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotDisposedResourceIsReturned", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotResolvedInText", + "fullDescription": { + "text": "Cannot resolve symbol in text argument" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotResolvedInText" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=NotResolvedInText", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ParameterOnlyUsedForPreconditionCheck.Local", + "fullDescription": { + "text": "Parameter is only used for precondition check" + }, + "shortDescription": { + "text": "Parameter is only used for precondition check: Private accessibility" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInterfaceMemberAmbiguity", + "fullDescription": { + "text": "Possible ambiguity while accessing member by interface" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInvalidCastException", + "fullDescription": { + "text": "Possible cast expression of incompatible type" + }, + "shortDescription": { + "text": "Possible 'System.InvalidCastException'" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleMultipleEnumeration", + "fullDescription": { + "text": "Possible multiple enumeration of IEnumerable or IAsyncEnumerable" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=PossibleMultipleEnumeration" + }, + "shortDescription": { + "text": "Possible multiple enumeration" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=PossibleMultipleEnumeration", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleNullReferenceException", + "fullDescription": { + "text": "Dereferencing an expression that can have 'null' value. This warning is detected either when there is a comparison with 'null' earlier in the code or when this value is returned by a member marked with 'Value can be null' attribute." + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=PossibleNullReferenceException" + }, + "shortDescription": { + "text": "Possible 'System.NullReferenceException'" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=PossibleNullReferenceException", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PrivateFieldCanBeConvertedToLocalVariable", + "fullDescription": { + "text": "Private field is always assigned before being used and can be converted into a local variable" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=PrivateFieldCanBeConvertedToLocalVariable" + }, + "shortDescription": { + "text": "Private field can be converted into local variable" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=PrivateFieldCanBeConvertedToLocalVariable", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PropertyCanBeMadeInitOnly.Global", + "fullDescription": { + "text": "Property setter can be replaced with 'init' accessor to enforce property immutability" + }, + "shortDescription": { + "text": "Property can be made init-only: Non-private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantAssignment", + "fullDescription": { + "text": "Value assigned to a local variable or parameter is not used in any execution path" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantAssignment" + }, + "shortDescription": { + "text": "Assignment is not used" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantAssignment", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantBaseConstructorCall", + "fullDescription": { + "text": "Explicit call to the base class constructor with no arguments. It is generated by the compiler by default and can be omitted." + }, + "shortDescription": { + "text": "Redundant base constructor call" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantCast", + "fullDescription": { + "text": "Type cast can be safely removed" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantCast" + }, + "shortDescription": { + "text": "Redundant cast" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantCast", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantDelegateCreation", + "fullDescription": { + "text": "Explicit delegate creation expression is redundant" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantDelegateCreation" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantDelegateCreation", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitArrayCreation", + "fullDescription": { + "text": "When array type can be inferred from the initializer, you can use an implicitly-typed array" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantExplicitArrayCreation" + }, + "shortDescription": { + "text": "Redundant explicit type in array creation" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantExplicitArrayCreation", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitArraySize", + "fullDescription": { + "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantExplicitArraySize" + }, + "shortDescription": { + "text": "Redundant explicit size specification in array creation" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantExplicitArraySize", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantJumpStatement", + "fullDescription": { + "text": "Redundant control flow jump statement" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantJumpStatement" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantJumpStatement", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantTypeDeclarationBody", + "fullDescription": { + "text": "Empty type declaration body can be replaced with semicolon" + }, + "shortDescription": { + "text": "Redundant type declaration body" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantUsingDirective", + "fullDescription": { + "text": "Using directive is not required by the code and can be safely removed" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantUsingDirective" + }, + "shortDescription": { + "text": "Redundant using directive" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=RedundantUsingDirective", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "ASPX.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantVerbatimStringPrefix", + "fullDescription": { + "text": "String can be converted into a regular string without any changes" + }, + "shortDescription": { + "text": "Redundant verbatim string prefix" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceConditionalExpressionWithNullCoalescing", + "fullDescription": { + "text": "Conditonal expression with a null check ('expr is {} x') or a type pattern ('expr is T x') can be rewritten as a null-coalescing ('??') expression" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=ReplaceConditionalExpressionWithNullCoalescing" + }, + "shortDescription": { + "text": "Conditional expression can be rewritten as null-coalescing" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=ReplaceConditionalExpressionWithNullCoalescing", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithPrimaryConstructorParameter", + "fullDescription": { + "text": "Replace explicit field declaration with a corresponding primary constructor parameter" + }, + "shortDescription": { + "text": "Replace with primary constructor parameter" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SpecifyACultureInStringConversionExplicitly", + "fullDescription": { + "text": "Specify a culture in string conversion explicitly" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=SpecifyACultureInStringConversionExplicitly" + }, + "shortDescription": { + "text": "Specify string culture explicitly" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=SpecifyACultureInStringConversionExplicitly", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SuggestVarOrType_BuiltInTypes", + "fullDescription": { + "text": "Convert if declaration is of a built-in type (e.g. string)" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_BuiltInTypes" + }, + "shortDescription": { + "text": "Use preferred 'var' style: For built-in types" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_BuiltInTypes", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SuggestVarOrType_Elsewhere", + "fullDescription": { + "text": "Convert if declaration is not of a built-in or simple type and is not evident from the usage" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_Elsewhere" + }, + "shortDescription": { + "text": "Use preferred 'var' style: Elsewhere" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_Elsewhere", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SuggestVarOrType_SimpleTypes", + "fullDescription": { + "text": "Convert if simple type (not an array and does not have generic parameters)" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_SimpleTypes" + }, + "shortDescription": { + "text": "Use preferred 'var' style: When type is simple" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=SuggestVarOrType_SimpleTypes", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeStyleIssues", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TooWideLocalVariableScope", + "fullDescription": { + "text": "Local variable is declared in a wider scope than the scope of its actual use" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=TooWideLocalVariableScope" + }, + "shortDescription": { + "text": "Local variable has too wide declaration scope" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=TooWideLocalVariableScope", + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeParameterCanBeVariant", + "fullDescription": { + "text": "Type parameter could be declared as covariant or contravariant" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.BestPractice", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedAutoPropertyAccessor.Global", + "fullDescription": { + "text": "Accessor in auto-property is never used" + }, + "shortDescription": { + "text": "Auto-property accessor is never used: Non-private accessibility" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedAutoPropertyAccessor.Local", + "fullDescription": { + "text": "Accessor in auto-property is never used" + }, + "shortDescription": { + "text": "Auto-property accessor is never used: Private accessibility" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedMemberInSuper.Global", + "fullDescription": { + "text": "Type member is never used with base type or interface, it is always accessed via more specific type" + }, + "shortDescription": { + "text": "Type member is never accessed via base type: Non-private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedMethodReturnValue.Global", + "fullDescription": { + "text": "Method return value is never used" + }, + "shortDescription": { + "text": "Method return value is never used: Non-private accessibility" + }, + "defaultConfiguration": { + "level": "note" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedParameter.Local", + "fullDescription": { + "text": "Parameter is never used" + }, + "shortDescription": { + "text": "Unused parameter: Private accessibility" + }, + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedType.Local", + "fullDescription": { + "text": "Type is never used" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UnusedType.Local" + }, + "shortDescription": { + "text": "Type is never used: Private accessibility" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UnusedType.Local", + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "XAML.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedVariable", + "fullDescription": { + "text": "Local variable is never used" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UnusedVariable" + }, + "shortDescription": { + "text": "Unused local variable" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UnusedVariable", + "relationships": [ + { + "target": { + "id": "CSHARP.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.DeclarationRedundancy", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseCollectionExpression", + "fullDescription": { + "text": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseCollectionExpression" + }, + "shortDescription": { + "text": "Use collection expression syntax" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseCollectionExpression", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseNameofExpression", + "fullDescription": { + "text": "Replace string literal with statically typed 'nameof' expression" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseNameofExpression" + }, + "shortDescription": { + "text": "Use 'nameof' expression to reference name" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseNameofExpression", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseObjectOrCollectionInitializer", + "fullDescription": { + "text": "Suggest to replace object sequential assignments to newly created object fields by object initializer" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseObjectOrCollectionInitializer" + }, + "shortDescription": { + "text": "Use object or collection initializer when possible" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseObjectOrCollectionInitializer", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseStringInterpolation", + "fullDescription": { + "text": "Replace string construction by 'String.Format()' method invocation with string interpolation expression" + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseStringInterpolation" + }, + "shortDescription": { + "text": "Use string interpolation expression" + }, + "defaultConfiguration": { + "level": "note" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=UseStringInterpolation", + "relationships": [ + { + "target": { + "id": "CSHARP.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + }, + { + "target": { + "id": "VBASIC.LanguageUsage", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VirtualMemberCallInConstructor", + "fullDescription": { + "text": "When a virtual method is called, the actual type that executes the method\r\n is not selected until run time. When a constructor calls a virtual method,\r\n it is possible that the constructor for the instance that invokes the method\r\n has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx." + }, + "help": { + "text": "https://www.jetbrains.com/resharperplatform/help?Keyword=VirtualMemberCallInConstructor" + }, + "shortDescription": { + "text": "Virtual member call in constructor" + }, + "helpUri": "https://www.jetbrains.com/resharperplatform/help?Keyword=VirtualMemberCallInConstructor", + "relationships": [ + { + "target": { + "id": "CSHARP.CodeSmell", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": ".CSharpErrors" + } + ], + "taxa": [ + { + "id": ".CSharpErrors", + "name": "C# Compiler Errors", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ASPX", + "name": "Aspx" + }, + { + "id": "ASPX.CodeRedundancy", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "ASPX", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP", + "name": "C#" + }, + { + "id": "CSHARP.BestPractice", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.CodeRedundancy", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.CodeSmell", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.CodeStyleIssues", + "name": "Syntax Style", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.ConstraintViolation", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.DeclarationRedundancy", + "name": "Redundancies in Symbol Declarations", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSHARP.LanguageUsage", + "name": "Language Usage Opportunities", + "relationships": [ + { + "target": { + "id": "CSHARP", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC", + "name": "VB.NET" + }, + { + "id": "VBASIC.BestPractice", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC.CodeRedundancy", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC.CodeSmell", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC.ConstraintViolation", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC.DeclarationRedundancy", + "name": "Redundancies in Symbol Declarations", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBASIC.LanguageUsage", + "name": "Language Usage Opportunities", + "relationships": [ + { + "target": { + "id": "VBASIC", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML", + "name": "XAML" + }, + { + "id": "XAML.CodeSmell", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "XAML", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML.ConstraintViolation", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "XAML", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML.DeclarationRedundancy", + "name": "Redundancies in Symbol Declarations", + "relationships": [ + { + "target": { + "id": "XAML", + "toolComponent": { + "name": "InspectCode" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ] + } + }, + "invocations": [ + { + "executionSuccessful": true + } + ], + "versionControlProvenance": [ + { + "repositoryUri": "https://github.com/pascalberger/Cake.Issues", + "revisionId": "51a193aac63e79268d09d84d1f3a0bf28dda507f", + "branch": "feature/update-inspectcode" + } + ], + "originalUriBaseIds": { + "solutionDir": { + "uri": "file:///C:/git/github/cake-contrib/Cake.Issues/src/", + "description": { + "text": "Solution Directory" + } + } + }, + "artifacts": [ + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DxDataGrid.cshtml", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "746F06873B5C086E0681DF50BBEE58BF", + "sha-1": "936A01340DA02A9481818D06854C7DAEDD14FECD", + "sha-256": "FE334BA116F4437E9210AE200F6147D5E88C090C6BAC805F8DB5FC6CA137E7B9" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic.Tests/Templates/TestTemplate.cshtml", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "972A95976DA06CDE5CC03A398622C19B", + "sha-1": "2E50DC84722A2B590C5DCA265906D9F1A3CC20E8", + "sha-256": "CD732C4354E2D2F68DD589EF15F10F8022D08C4C7FD7AB0AD8FE021052FF4B54" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/Templates/DataTable.cshtml", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5A3C21B59C5E7B9D5C6F353613BD34BE", + "sha-1": "BA8145CBB7F062890D3E911BDD5E9A7698DDA211", + "sha-256": "4AEAC7091B377C8755A657AE838241AA742D24484EFF4AA889B49C521DDC62F1" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/Templates/Diagnostic.cshtml", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "14444CF84035031C8C6BE86ED88C5426", + "sha-1": "1577805B7B9CD4397C31F950D77CDD915D5758CA", + "sha-256": "8EC224B2E2874AF1D78182D20F4B3D9823E4247883D09FF370FD5B5E067DF6A0" + } + }, + { + "location": { + "uri": "Cake.Issues.DocFx.Tests/DocFxSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1609D5118ED369476435ADDA5B7C4BE8", + "sha-1": "DD52CC366B55B5C7BF5F598A98AB450D26EA644C", + "sha-256": "67DAB33FF5B521020734040FAF0097C14380FB0261A053E0E99224D48EECE417" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "9CADDFFE18490D484792401645205D24", + "sha-1": "D34A768A5A77A00A0580CF592392282700858C98", + "sha-256": "73FF47FF0C3169E5F6E685D832178B0A433DF7E62E22E6640BAA8A2D6971166D" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "7C704D0E6D295D1813944E4915A36ABF", + "sha-1": "4C7110494C6A950638817687993B7E3EF27DFD1A", + "sha-256": "AACFACFC5DCAB264C61321E550D70876797C76421BC0A0D270CC5B2084DB1725" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildIssuesSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "59A4F35885AD2E05A0FEE759DBB8F9BD", + "sha-1": "2FF641EDC835FD62F1F139FCE315ADE431788FF3", + "sha-256": "E5F32E544A14C48EF826DAAAA71B98DF57C32206C8F9916EFDB70CE763848A8A" + } + }, + { + "location": { + "uri": "Cake.Issues.Terraform.Tests/TerraformSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "ADE1DC7E1A29A9B05350767F859EE7DC", + "sha-1": "7A0D4C40701ACD54D306EEE9DDDC9879E85A060D", + "sha-256": "5A00F73736BB89EDF2273301D55462214124FC6EB299D264E33606796A94CF10" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonData.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "762B6523CEE97CD242AF3F18FF614FD1", + "sha-1": "746E5009B5C00D9BF4F95B4F76CC0F2EE69122BD", + "sha-256": "A0B7E2E74512A0A7AC3CD190B466B525B47169DF5683C5A60F5CE7F4D4185BFC" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMapper.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "634D18799D63F575271870DA802DB9C7", + "sha-1": "340729C54563E66BCC804229D27B1F791E0881F0", + "sha-256": "A865E72F35D0076C0F455CF25B035F898319F437E5C55E9DE9869DC34030272E" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonMockWrapper.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "58BEF6FD4CDFC2A828B3FCBB4EAA48EF", + "sha-1": "6AA68FE9BE3A6B9569A4E0C477DB763EFABD053F", + "sha-256": "53673E4CF4A1AF872180F0B0F67CCB0FC5CB132A9B8407BEC295BA6983AB0CBC" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonReader.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2E7BDF1F71E49A3A908FC8FC70652103", + "sha-1": "751105A80132C518E35ACDB1452A71ECA41C8457", + "sha-256": "DF9F3E5EC6F22C8CFE945106F1BF2EFE9164AEC8152D4B227099AA9E36502292" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonWriter.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5B0BDAF0685EC48FEAC669D1A43A25BB", + "sha-1": "453E041C40EC27A46B8D31E109CCAD45A736DA04", + "sha-256": "A39E8EBB495396B49A98E3144F7EEE574252C9851FFF5D050519F15686EDBD24" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/Lexer.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2A9FC4F41C2E29B45CF0FEF405769BBE", + "sha-1": "0A1B97179B4D0187B1F7EBE97CC88FD1B0940A67", + "sha-256": "C27DDD68772EA018FBBDAF7AA75ECC1019FC13FE63A7D2D6E88422C0555E9072" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportGenerator.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "70D326CB0330EFA28CE6D408549EBED6", + "sha-1": "744F11CD73C516E2A95B80EB52243D46F298BD2C", + "sha-256": "AA8C2AC2A1720288FED2A7BAD031EEAE4CC5E77BFD22C6FA6859074F95DF148A" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Console/IssueDiagnostic.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "888A3CF710FD19CBD940C3AF14BFEF28", + "sha-1": "FB6BEED7107AE65A6251E606C115BD5DB361CF30", + "sha-256": "84C404F18175DA2446D5C745461DAAB3F402BDA8E9210D5932B6A9ED54CDCCDA" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild/LogFileFormat/BinaryLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "DA2A1AB86199EBFFF678533ECAB935E9", + "sha-1": "51C96E374AAE4FE74F19F5CF3A41695835E0052C", + "sha-256": "B8273DE0B94F5B77FEB9D164C1C47CE98829E751E8005BF3ACF6A9F23E91BD8A" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild/LogFileFormat/XmlFileLoggerLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "0BA97437F18046611DAAC3D58083AA51", + "sha-1": "C671424AC5BB3695040926FF5963EA081982FE1F", + "sha-256": "66A27165DA43F74329ECC4008D1B77EFA55B2E87BA7ADAEC8F164E4D544DE881" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "C6EA4B14A0847178DF3580F1145881AA", + "sha-1": "57650CBBB08F73F200EAEB21AC62A23902B9414A", + "sha-256": "F776E6C452B0B7DE6E7B380A31DE28C49BCCA434FFDEC9996D4CBCE493A4D2EA" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/CakeContextFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "006FEFC6234A485D9112656995F7D579", + "sha-1": "647A19CBB600CCEA58ADC717FB823770E9FE125A", + "sha-256": "565BFDA811D156C45AB2E30F37C19F213C03142A3393FB98CF285CEDBF8E48DF" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.GitHubActions/GitHubActionsBuildSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "93B8E8DDB2B2B31A8D4E8E83BCFC7F23", + "sha-1": "719B1419A64F1412E6777DDD03EBAA0B3A393D6D", + "sha-256": "C8B881E3F5476D9F9725817D172148EB90A6EEA778B500FA604337AA7BAB0BE1" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/HtmlDxDataGridColumnDescription.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5AB274AFE07A4BC4F688C007453EEE00", + "sha-1": "8328281465FD8FDD478FDCDCA84394A30241CBA4", + "sha-256": "1EBB278EDF6BC6C52A0C0840B78EECFA18461BC98E0DA92AA031C4B8D62888FC" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/IdeIntegrationSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "DCD319E6EE69D4DF82E4169D1E2FE577", + "sha-1": "7B71AF65B747E76777C9E8437685363B1DDA04F1", + "sha-256": "5C1F3A33BCD5E05124E6A731855D405A1744186B1F85C27A49389E71D52B0AA7" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "E766F8460F109AD4764C1FB0FD4B2931", + "sha-1": "C73BB3928F511283D39269B0E656F20CAADA678E", + "sha-256": "41C6294258C47C1515CA47AF50D22FA418ABF99EB0E9E6918094530B84338B0B" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "ABEFB4960F43272B95C33AFF234EB4FC", + "sha-1": "E542905BD19601EC65752E7E8AB2298949921376", + "sha-256": "C9784F1F0A9A6424E80191B93BCB0B8901383EACF3B3178CB0CEE5169A4F8B1C" + } + }, + { + "location": { + "uri": "Cake.Issues.Testing/BaseConfigurableIssueProviderFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "FAA926232CD91402707F7ED392FFF5A6", + "sha-1": "DFFF0AB0F8AA753ADC017525E9BD581A71C2C865", + "sha-256": "15E3C11DEF6FA930D908E70CA0F508F6598EA18F0D084ECCE68207BF3022B03C" + } + }, + { + "location": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesProvider.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4600B6EE66D952200A1ADFA8B920D4C5", + "sha-1": "975891BAA9FB91A93F45BF7FBD9B90B0C5B16452", + "sha-256": "4A6D0A9A2A405497B0F05E37500E82CD4DBFABC285ECB6FBD0A4F0FFA8767D87" + } + }, + { + "location": { + "uri": "Cake.Issues/IssueBuilder.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "739A823C693DD6C76798BFF6A90144FB", + "sha-1": "6D85FC0327D2607BDD21807042CAE8E63888EE51", + "sha-256": "96DF373873B93761B90AA6030349F2CE02B7E49E12B32A595DC3CC490E4EAD65" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/IJsonWrapper.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "83EF36AB44AF799D8F878DDC6358653E", + "sha-1": "C4DFE6228AB009CABB2A4EFCE1A1578D0B36B2C0", + "sha-256": "44B93962FB775A47C05436C6D78FBA9F3ADB37A283917FBCC101170886E76127" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/JsonException.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "CA9801AB2987215435E69BAE8E637371", + "sha-1": "6FD2CEBC64D2F8C67D35314B54ACBD7F1B747AB4", + "sha-256": "102E5B0E05EE321416F448B2DBDD7FE105EEDD81BF74A2960F526ED8A8F408B2" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic/LitJson/ParserToken.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "568B3196A6CD9648052739BAB1FE3A3C", + "sha-1": "C813437F8FDA93BB3978F1864CCEC36131DFD445", + "sha-256": "C9FD9E5AFFAC6CBD4C229B02F00F108487CF5FDC62AF9E3C9E3B181563FDE817" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorBuildSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "46EEEEEAB5351E4034DC1AAEFD232A60", + "sha-1": "C288AD6EA72EA5334CDD2F4E10857E3626905877", + "sha-256": "02DDB5B15D1979EA329507DC8A6703BD8C3E2E68720F2CC5A6582FB976BAC7B2" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.AppVeyor.Tests/AppVeyorPullRequestSystemTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "63E8C8E53D802F9A27D0D5DCCFB4B26F", + "sha-1": "69F0D35AA316A506011DE2036508586FFE98C02E", + "sha-256": "4902164449BCFF9EB70FB14BD7E443FC2884605CD44E1228A1AB43ED727CA1E0" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/FileLinking/AzureDevOpsFileLinkSettingsBuilderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "9F9F6CD8113E98FC7E73CA49D68D655B", + "sha-1": "9F8FBE3C832CED0FEBBAB3F892FA54FC48952C29", + "sha-256": "ACCD5D70959C5D9837E5BA3660051012B98BBEC4770494537013AD94E57FE94C" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/BaseCheckingCommitIdCapabilityTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "070AD7606EFF7133AFDFB8C5384FFDDB", + "sha-1": "959CE768811F9E2D82FC1D75F6DB008AA6BA84CA", + "sha-256": "C9ED7020CBFE3111A7CFAEB168E07CA0A3AEC9F65BFBE3D0E069432FFD6218AC" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/BaseConfigurableIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "0DB19F946D65368FB5702139690A2330", + "sha-1": "E297986EDED6AECB1C60F7AD2CD7DB4B97B33CCE", + "sha-256": "7C9804C9C7759B8D3F1FBC670C36161A164E8D622F9D940F729CCCE197048188" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseConfigurableIssueProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "977545D4DC465EF4B89B5D44AC646ECE", + "sha-1": "124DAFFC18DFC017AA2BA9AC2CEE780C2D44E047", + "sha-256": "766C1960ACBB28B20339E5AAB9268B1674B77111BC27129ED00586549166144E" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/BaseDiscussionThreadsCapabilityTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "E760F5166B03CEEDEB856AB1A2AC3075", + "sha-1": "5F474E7070AF0EF4DE59AAC2F0270D11412CD439", + "sha-256": "91A611A4EB1428480E302D3DBC16ED5F77AFF19C34980108B9E52BA9CE3CF9E0" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/BaseFilteringByModifiedFilesCapabilityTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "7252D1ED9200565BDC2245B9641BA598", + "sha-1": "A32638AD3DE4E64B35021FE0FBA3A9E3A5FEF81B", + "sha-256": "32E24F1620386A6CD6019E2A7B4DB538CF2DE8F18C6311B5E69EE927C1706EE5" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseIssueComponentTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "3AB3D8459F185BDC653B3B46CA3B92EE", + "sha-1": "34923ECF2915FB2DB54653323C8F77EDF9B2C757", + "sha-256": "766F99F3EBCB6B263484E660BAC440589F505D0DE7BBAEC3DBA3FABCF5BCAF6C" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/BaseIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5857AFEC43A5FDC6FD79CF9E659FCB03", + "sha-1": "257259558759ED3F97380582DAC1D1ECD9818F95", + "sha-256": "33A7E37B5F33302D4BD4BE000E5A74DE0836F606409B6E965A6DEF74F1208632" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseIssueProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "07D429DB88522AECE137118D3791EF12", + "sha-1": "A90B28E2BD6414D286E94452C7FE6F5B3BE300B9", + "sha-256": "A6595F6B484FBF991C53C2683F33267686458802E04C3568B007D4E0DCAC32D3" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "70D143D7E732F3F5015FB4315D8C4945", + "sha-1": "9B8A61282AA8F73882195A50D1690CE4636EF4A4", + "sha-256": "F87CA1AAF400FA31AFE96B6209257C5AC2FFF3C4E7AE03F3B4F110D68FD375DF" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/BaseMsBuildLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4DFCC3BCAB6E03600AD62DB2B5492544", + "sha-1": "1BD5CA153C98A56AD124D786654C8184AAEFC30A", + "sha-256": "193A4A800305150D727305B0804B0FE0ED984A3CA0456DAED1942408CD59690A" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/BaseMultiFormatIssueProviderFixtureTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1CD6C76CBC6916BF5DE61648E28B52BF", + "sha-1": "8F8F62E59A9134B9EA3BD833FECE7F0C49D7669F", + "sha-256": "E7D173C19F9884E4C33ED8A048C8A50BD0DB6BA70BED0172F29BF0A32CE167B5" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseMultiFormatIssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "69EC85A05E35776733F270F51BCD92D6", + "sha-1": "0832038411BEBE5DDF176352301971DBFC5C0281", + "sha-256": "02D759D3849C2EC8E1032D0B34203A0968B0221FAC91AF5871D2B3FB7E97CBE3" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseMultiFormatIssueProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "C6E8330CA8F37D9DE27594E72B3B93FA", + "sha-1": "E4367CFAA7AD1489F48ED320977BA3E90EF9ECF5", + "sha-256": "89972DD98CECB46759D410C8BA9BD0277652A46096DB64A6797566DBEB9E83BE" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/BasePullRequestSystemCapabilityTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "8AD2D8EF4B348A62DEE4CBCF4FEB84FD", + "sha-1": "79E117657D84B5A53FBE44D47B37C04E8B66DA33", + "sha-256": "357D6C6C7B67589FAE40C5927D2123955C6CC608FF8FCB2CCB4B1176D6EF129B" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/BasePullRequestSystemTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4B78D6F0E65186F2EA3E914AE63AE628", + "sha-1": "2D0EE9C015B2ED1069B9436AC455F3AEDE75F8AF", + "sha-256": "F4CE1F67E2C439ACC42D5DB9BA470746AE8EDCEE21509EEF25AA67D825F30E90" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/BaseRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "E19B39EA3AF41B3198EFDA3FDEFA2A62", + "sha-1": "36139D201AE5B40CFEC86C124D27AA5E01FFB7FB", + "sha-256": "26DFEE1772D4C91FE4AD22205CF3BF27CCC0E9D875F81E3BD56CD1889EA2DFDC" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/BinaryLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1DBD40427C1397E9C04D69FBE25993FB", + "sha-1": "19ADBBC6CC08E604F1052013D27385CB82AF8182", + "sha-256": "1A82B3FD47C3865642E87A48CDD1E8C081687C5D4E710DA28EBEE29CE398ACD3" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/ByteArrayExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "287D92F42162DA55689652773608EE48", + "sha-1": "A4D8AEFACC229CA3E053D929B11935D89C94E820", + "sha-256": "55DC908EDFA33DD2A1C6F64F9A758AC276930CDEF6F8B9AB192F3621E122536D" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Console.Tests/ConsoleIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "CF3D236B3ECCD26B5349FB2F07E928DB", + "sha-1": "42949104592488C513691B70EA7597EF4FB0ADE0", + "sha-256": "FBE3CE8D1B519686CA243C27A91395F0502EDBA2F7C363A9FADD7ECE0143B4EB" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Tests/CreateIssueReportFromIssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B92E8A6098F3AADBD75A6ED282846CC9", + "sha-1": "EDE56D46B7D18789BAE3F9EF4DF0E72012F2E001", + "sha-256": "5E8A81704EF1595F6D265D6AD3E88EC95DFB3A5FCED9E501B2E611418D46AB04" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Tests/CreateIssueReportSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "0D9A10CE9696F2F4152AFFC8D1E9D2C0", + "sha-1": "D31BCFC51282F25DD56356F21F99D267607766C4", + "sha-256": "4139B8DA2D6E614BAF8FFFFBC5849C578D4B2EB6A9CFB568356D8EA0B885F005" + } + }, + { + "location": { + "uri": "Cake.Issues.DocFx.Tests/DocFxProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "FE20DD316F94754AC8144B1B670E14C8", + "sha-1": "97AC25D4E3FE41CB0279979B01C43358E058B52D", + "sha-256": "4D0E011C057E7018F7427AE7F0B766EF50F484FEE54F426A3413A0B7289850AE" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint.Tests/EsLintIssuesProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "21F489B1121DAEE9800CC6AF9E439A2C", + "sha-1": "0D371B7182B135E98832D970069EACB74BE024BD", + "sha-256": "7F219178C240F25780D60ADCA2BBFDBF1F2C2D329E4D9D5976CC52C750135B2C" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint.Tests/EsLintRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5CC3B295F780C54FD2EF155F51CCE444", + "sha-1": "47AD13D2F359586E915BC2EE4A85F971380D8375", + "sha-256": "DE3DD37651B1F5C78403FBF263AF45BABEBE129D77F7089B3DF9BCC16302F4EB" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/ExceptionAssertExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D3601A4BEA9CBF16173DA950C116F1BA", + "sha-1": "158105EE440020A767E15A862809B34698121674", + "sha-256": "CDB9F7E478C959A0A88CA4CA0F5F6B67AC10CD31C38F02D4887D716F9C72DC82" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/FileLinking/FileLinkOptionalSettingsBuilderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D8CFE29987172BDF8FC8EA216D2F2880", + "sha-1": "9880E504E356B99E65A562F8D4F2C5EE9C2C1424", + "sha-256": "6D3DB92CC90053817B89743BEFD50AB13AF5114B8D32C567DC57A8FE3927C748" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/FileLinkSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "015B961928F7DCA708B35FC63677CD18", + "sha-1": "03B6BC721E6D153309EB941B0CD8437D556B7664", + "sha-256": "B4244AFEEC955FEB5E90B6F561063FC7757F0691A6930BA8E99F0195CC8C0BDD" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.GitHubActions.Tests/GitHubActionsPullRequestSystemTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "8911DFE3256FBA85A5221918F88B4960", + "sha-1": "D3DBD3420201E589993C455DA14CB33F551F8FA8", + "sha-256": "DC5E1D2A2E17C14D4648DF699D85223C8C8AC6F642F8E3E151FFF9CA55525BE4" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/FileLinking/GitHubFileLinkSettingsBuilderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "C7F41F499F23EF0D5F05CA52E225DFA8", + "sha-1": "A1A9658ABB12F3FCBC75F34024DD21AB2EF5381B", + "sha-256": "1AC16624607D902C9ABAF9253A5230FB58313C6A5C8F24B50268C46379B839D1" + } + }, + { + "location": { + "uri": "Cake.Issues.GitRepository/GitRepositoryIssuesSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "3CA41101AA97395F8ABD8FE6426AB371", + "sha-1": "52CC89D770BA484989A8943BC361A2AA0B096F76", + "sha-256": "0C278CFE653C50741C07ACE406AED047029F3E149518C7F7E9CB443C5FC0C773" + } + }, + { + "location": { + "uri": "Cake.Issues.GitRepository.Tests/GitRunnerTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "827EA476101C5E31A2C27862C2A8E4B9", + "sha-1": "9CFEFC0AF5710C900225E0F94C9CCF36FC260F31", + "sha-256": "D8CB8997D0BD4026E97E84ACA9D57370250CF10050A0995119ED7B81535D6DF0" + } + }, + { + "location": { + "uri": "Cake.Issues.GitRepository.Tests/IssueBuilderExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "DB3F16DC25CB3A810B66022041E7565E", + "sha-1": "79E30F53034BEA4061A3DF67E058A8019F2C9763", + "sha-256": "310228868D955670E366F579B8031279BFF8A4D718B2F43DFE84FF32D79C7DFC" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IssueBuilderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "7099EBC86747A016C236DD3FB31A7863", + "sha-1": "49899E6CE4586638B12B9407CA28DB8653393DD3", + "sha-256": "66BACD43D0DA906BEAFB97EDB308780B72501AB2FA176CD3A687CC925F392E32" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/IssueCheckerTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "807B11C39D73791454B95068727BF967", + "sha-1": "7E8B56A79789971EE83628518691D2B5952D1ABC", + "sha-256": "6E2EDF83DAA4111D1180257DCA92BE0D4912212C5E6D1D85DC439B5C36F9A7B5" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/IssueCommentInfoTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2A00A87DD8611AC1252234444E491031", + "sha-1": "AFDC31B32D65DE3331B9D132575E8927C6E78279", + "sha-256": "42C1442E294113B4F6A42125D464A064A66038BAF2BA6997EE7D5CB77DC8A1AD" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/IssueDeserializationExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "39224448FE60BBDA41FE8F77AA878258", + "sha-1": "AA8234B3E5C567B6B7C44BF986E51DE394A4C4A0", + "sha-256": "2A0D48E200FE0ADB15C4AAFC4D398C1444BAE6F55B9F4601EA130C5320475D4B" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D9CDFE16A40901E786C46AB7753EAC20", + "sha-1": "9FAF334330C2D83BC20914720C5F48BA9088C886", + "sha-256": "A23553BCAD890B1BE28B360F728E8A1C99160C2545D3B3EDF55467854EEF9814" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IssueProviderSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F6B2763AF454255C992176B6DC15F3E4", + "sha-1": "8893D6C959FA188A4F21CBAEAE7AE61A833A49D3", + "sha-256": "8ACDC1A3B5F39F33CB3F9C2CB9962C669CA6DFE0D4EA3023172B12C8C47DA798" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IssueReaderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F4A88E15FE3BBD108467DDD9D897E2CA", + "sha-1": "848A4B2B728F81701D4AA05686A1D75886386A80", + "sha-256": "EFCCE57890578466D69AFC369294D9E0F48DF9CE8B3A802FEFC3A92E14D5AD5F" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportCreatorTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5CAFF75DDAE6871DBCD85D9C628B11B3", + "sha-1": "5ECFB8CCD281012997865E8AF67D810DA5C922AD", + "sha-256": "F8C9899F7C4277746EBBB804DAC8590165C07F9C69D6EF9474EA7CB692C44022" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Tests/IssueReportFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "35EE61410E4A0800C96F165CC09D10D2", + "sha-1": "2A96D04E7C5BBC018FCECD50400B7D899EC01DDC", + "sha-256": "6454EC72E90188E96970C5CFE29AC3FF1070FBD185D4A76F6F627BBA2B78F2E4" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IssuesArgumentChecksTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "939D2A0BAA862C1AB4BDDED511E75D65", + "sha-1": "883DBAA294C05DFD676D2A6362262398BA169FA8", + "sha-256": "DD57F90C8BFBEC62AB2E7993753BCDEDFEA8055E474EA93F1B7C48292F46E257" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/IssueSerializationExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5D015B9463801C580046E1F53DCF9662", + "sha-1": "DC7BDC52EE6FE0C115F0826A2DC675952DD8F011", + "sha-256": "C6D9E1C71E7CE031A40BF5CF8B7AEA2B4D20874F4B4720C84D270F58C4BDD912" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IssueTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "54CCD273E0B020F7F94B6B23EAEA9D45", + "sha-1": "099077B84A8DF4EE93CE9905942B08FBE4534868", + "sha-256": "A15AD00D6CBF7BE4EBACD073C4C81ADF0060466F16F5C50CA3E17B6A280C560E" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint.Tests/LogFileFormat/JsonLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "364F31B19D89F5B4BED5B3E7BC86BC33", + "sha-1": "E70BEB17B9A42AC2A2FA395FF11CDED59AC12A90", + "sha-256": "B9DAB12A858087B9C862A9056653885026C89A81C8859B4DEFD11CD9FBC5E9D2" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintCliJsonLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "8E13B510F9503A18A1D6B8BE9697F2C7", + "sha-1": "E8440D0CE5344AF0610822EC2827A15560B3682F", + "sha-256": "EB53273A227B41F360CE31EA87AF4B8180E327BAE129140D6360F87E11B90668" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintCliLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5EDD2ABB7198247A46CA5ED5A6F5D3AC", + "sha-1": "EDB4DEDE26E91264305D93B22FEC6FFB2CC3ED3A", + "sha-256": "D8576DACCF6FA154E7A9E10B022DB0C9BC35000A190F3FA44DD44055DDC2E098" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintIssuesProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "790DEA5592ADBDABEE344D18B58CEEDD", + "sha-1": "E520A9FA1A7FA7704FB91E7A734232B37105904F", + "sha-256": "E75DC5A7044EA7E33F42BFC987FEB30F0993AB335D27F291E95AC193FB8690F8" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/MarkdownlintRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2A1B6DD76E6345651C93CB64FFA3F50E", + "sha-1": "B8A95AFAC30889847734C45A29CC93759C63F45B", + "sha-256": "95F7F5068BF35601266DA6A434263CE16BBDD90CC0093E073B5F645468C4A2FC" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint.Tests/LogFileFormat/MarkdownlintV1LogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "0F8C1F9B926BB4CA612D77A14993BF11", + "sha-1": "C21A4C49195EB3AC9EC818DB1D995AECB412E4AA", + "sha-256": "0892066AD8A9E03872DF4CD7C6BB144953BE990B0383B5FFA77B8344F3EC0D6E" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildIssuesProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2EFC66D4F822B22D49B7F35E150748C5", + "sha-1": "56D2442A911F91211B4A5D7C72EB76A49E385F24", + "sha-256": "81C956AE4092F1AC30916F822E4B841590BD92C9F1BA9D3F14B0D5035869A698" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/MsBuildRuleUrlResolverTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1D85754490EC3A13C78BC7BE0A44511E", + "sha-1": "12ED876D65411AD376987E240876F93CF57E53A7", + "sha-256": "0AC8C75D858C335317C370FD736DE4D4CEC051CA8D8DA34BF26B1DC8512936BF" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "482F86246EFB1E58F1E8C828F95B884F", + "sha-1": "167AA6D0792E2A931C1441596D4DC635515EB8C8", + "sha-256": "D65D04475F0659B43780731189117DCF75E7B0B73F801E550A4BA7C72781C36D" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestDiscussionThreadTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "68BFF14DC1285A96EA6C9E0181B52FAC", + "sha-1": "BD5C7CDB54AA2D7C3F79ABB7BE27F48561B40E11", + "sha-256": "64429D690D4F197BAFA0145FE1B802BA76C51A21FA80629108A3DF78E6D231D8" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/PullRequestIssueResultTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4F6B29CA67DBC9369627A1EDA1E3A938", + "sha-1": "BBF39D70631D377D016C54CFDDC78CA9C9BE887D", + "sha-256": "E8B0AA0F215350CD00B44CFF8B63F71B378F45A223B83D9F32C2390D55AC4C8F" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/ReadIssuesSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "C524BCD9E4408B0385D26B2245F8393E", + "sha-1": "DE4B2435EDE290207C2FFC8736204160BB6F4572", + "sha-256": "4DDFA2C4D98E60370ACABB3DA9B25A0C703EDF07EFA2031A01E1596FAB0D4F93" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/ReportIssuesToPullRequestSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2F232BF0903451A38D631B4A8861313E", + "sha-1": "3E9789726F027CB7C21408550FB6858A28D77511", + "sha-256": "656B6ABBC505E3A2B4526F08E9D12E56C55F255A4677E0ADF466923E8B23A3C5" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/RepositorySettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "79C699977280C55CB142117BD2A2C2CF", + "sha-1": "88E5475CB9F131F21EAF50CB52CE7EA6B9D14898", + "sha-256": "F9C210E2DCA77ED5BB895C61AC35815F5F1973C9EBA4728F72E6B539B3CE656F" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Testing/ResourceTempFileTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "869798F5DE5DEA16E90220A18BC4AD4C", + "sha-1": "9992A0F93FBE01A42F9FD5B67B24632CD63D0DAD", + "sha-256": "F4C8F1EB93E71170087C5C3BA2466BC2EBF97A2BB3DA393E62558F4720227883" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Sarif.Tests/SarifIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "FA6CDB568A654EA220475B33BD5522AE", + "sha-1": "AA417483555F0B3D3C29AB6F2AFB69EA33A9B33A", + "sha-256": "28672538F560FFB7D047C633B27AE35F6D1C69C6228092DCB811B808A254759F" + } + }, + { + "location": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1DF2F223E5CB19833C68822D374688CD", + "sha-1": "04783ABB88B1C636D613F0A2B9EC929B19989F28", + "sha-256": "806956B70A23ED9E99AFB739C23C03A783A122422F41E163D29A33D375DB9CB3" + } + }, + { + "location": { + "uri": "Cake.Issues.Sarif.Tests/SarifIssuesSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "075F7A10D77DBDC78A13C5557E8B006B", + "sha-1": "0B3A058EED1863305E35C734CB6190744BD7F020", + "sha-256": "465C413C9180BD7A53A3CA920660737C17C1044508410D835359231CD9A762BD" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B60D4028936133696F6A910F57AA273A", + "sha-1": "4137A3352EF9082803B771E98AAE545AAC509966", + "sha-256": "785E4554F2BB2ED2970F1F3E0558D34231EE99B739EE694014B13EE2F077A395" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV2ExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "EA2BA6AE471FB3297B450382AB94F2D2", + "sha-1": "8FBD1DD35F4BA4256CDAF8CCB785045620D465DE", + "sha-256": "FB87319CD2CD8CC9AE0768F8CA316D58C1DFB1C51FEBB48A4844E69099392937" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV3ExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "DF2F29A5617A75497B91A7C950D7C215", + "sha-1": "2EA4CF84EB3D2CE57EDFD0F82C2142D0B0DB5ED7", + "sha-256": "CC8F53A4C48BA444CB474E421243EE36B67A729E0767BE50E91124D6411858D3" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/Serialization/SerializableIssueV4ExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "A8B3C1DC321E7951C60FB5668DD692D6", + "sha-1": "6CFE45709D3E5CA70808E7BBFB1AE34E489B61E2", + "sha-256": "9185A2F62C825A3D5202748C9934822D966E65A8EFD52D9584193624C33A3A0F" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/StringPathExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D603689784EE5389C20EED640FF34B50", + "sha-1": "2B729113CE13A8DF9454B03CA503FE056BD7C995", + "sha-256": "006F6DCC13510A02FC94936568D6C240D1673CD2B4724AA377C5C1775531217C" + } + }, + { + "location": { + "uri": "Cake.Issues.Terraform.Tests/TerraformProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "00F82345BCB32C79CE3140526C7249F2", + "sha-1": "7ADCE24DA3154CAC728E13B535DEE3A35F7E0247", + "sha-256": "00DBA2B6872E68C1DD86D4C9800C7259B38BB618ED4386B85A2BC5355F73C461" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/UriExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4F06DA41F12B2354500A731896E6D29B", + "sha-1": "1192B930843A5CDA607A61589514427092993A2A", + "sha-256": "FC718586C4C447C0E2764EB2C6E58B07BAAE6B5E8FF8173BC7F201C3FF85DEBF" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild.Tests/LogFileFormat/XmlFileLoggerLogFileFormatTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1B79972CB45F8AEEE1A3425F72419651", + "sha-1": "73A29B05323C60738E10AB9972FD1D5F52044C26", + "sha-256": "7581A68791B8F460B2F69BC98E83BBF214B08EDEC62540C61C07BD6CABEB10A3" + } + }, + { + "location": { + "uri": "Cake.Issues/IIssueComparer.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "E959AABCDABB8A24720FAD8CA07FFE71", + "sha-1": "A24F11645F075116CD163A3438862D14BD23BE81", + "sha-256": "1B38BF9C90A707B8C1B716B9D497592E683334ACA9389706F7EED394A9D784B9" + } + }, + { + "location": { + "uri": "Cake.Issues.GitRepository.Tests/GitRunnerFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "36297902F6EFE90D0B7D50079E0E3768", + "sha-1": "ACC0C28ED41FA0A7D64367634682D376853F2FA2", + "sha-256": "0B16039DE50BA98D3534DE913581A6D556A74065C958F03438496F128D067FEA" + } + }, + { + "location": { + "uri": "Cake.Issues.Sarif/SarifIssuesProvider.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "CCE8C831150749DF2A2E154B04331421", + "sha-1": "69C388952139276DA84FBA2271DD2D23981C4B39", + "sha-256": "11726A5C9380D03F8A499FB504E01BE8A88057F518834A1129CFE82D5504C5BE" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint/EsLintDataContracts.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "FE93E7070F7BA2DC36C1B2D96B5E3A91", + "sha-1": "0C278D623C94E80774CF9BD914343922697F3A3C", + "sha-256": "DF838C647FF124CD559527578AE0AEBBAEDA1C3393EE940AACB5C70ED2D86B0B" + } + }, + { + "location": { + "uri": "Cake.Issues.Terraform/ValidateOutputDataContract.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "E82677867040F2420096BED895D951A6", + "sha-1": "FBE6546B3E45DFEEB24F07D653C109878C871B2C", + "sha-256": "25744BF5645398FDC57044D2A3E6F4ED5ED5217EF5754D77D2E7778BC741A6F9" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint/IssueDataContract.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "70F139DB37C8BC90AF71058DBBE64119", + "sha-1": "797F334A000C33CD16E8947602C154A3F7704ADF", + "sha-256": "B82EBE2F67DDBE81FA19FDDE00C597A1257629803C6A1E080A69628A92175AA8" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliJsonLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "41AD12FA77FD380A15E5ABA2B60E4329", + "sha-1": "4C54B0B785B96B0A3D7AA82029257D528901734E", + "sha-256": "FD3E2A4BC708F772841F7E3070415779944E7584D5490790CF0E4851C945F4BF" + } + }, + { + "location": { + "uri": "Cake.Issues.DocFx/LogEntryDataContract.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B6DCF9BA76F1F0C2B2CBEE7186B5555B", + "sha-1": "881A20399F0ADABACEC63EA868622B1F79611C5B", + "sha-256": "A56D8E85DCE6EE4191CE1E523A10D8AD66F82FBE51EC02A3161FD91C75A20337" + } + }, + { + "location": { + "uri": "Cake.Issues/FileLinking/IDictionaryExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "BDE2F4CB00FA0C9AC2636B1D3130AB63", + "sha-1": "7E7A0BABBC9B3E608980413B7F3987B33B30629D", + "sha-256": "92CB77ABEA61DAC8DA7120DCA5D1CDFEFDBEB7B7009CEEBF44BB21830F5333E8" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/FileLinking/IDictionaryExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "92D391D7FBD9611105B7553F7068EA4A", + "sha-1": "8CF4C0499CEFF298597C4935B5F9268FB8145098", + "sha-256": "D85FABA4F92A96E93D708CBE87280A1FC68226AFDA578CB5BC4820A2C59521A8" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IIssueComparerTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F537AB61E0793A98BCAEA858188A8EB5", + "sha-1": "28CDF489C145D3F80C5F637C12907BF7263855CD", + "sha-256": "B8EFCDBE8960991E57D4F2EC4D02D8E53DF3DBC068560B28C31E93041C8D917E" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.AppVeyor/IIssueExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F9389F1911865D8EC64C67B9E507C794", + "sha-1": "562021B48BDDE3BCBCB35734BF8E1C4028E27200", + "sha-256": "0C3B1D5ED2B6A32497DDDA84793B047AFA8CDE6A5B90013C05E9E9F5AAED96CB" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IIssueExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "DEAB165BD9533E3F5BB76F76F3599B5E", + "sha-1": "512C0C0D99D4AB488BD03097836144BBF8AE524C", + "sha-256": "6BD49F46479575B036A6216B0A25E75E0285AC104F9681C468453C44BE2BB431" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Sarif/IIssueExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "9BA54FF1BA2EF7E6A45253C108EFA4E0", + "sha-1": "7CFB893DE8F36650494CFF825B738E3B4BEC1BCD", + "sha-256": "7E0F954F28A52A05B8BB6AE0C9543F71B876A13C1E61B8E3D263C69F54A89CFC" + } + }, + { + "location": { + "uri": "Cake.Issues/IIssueExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "45D2792EECC5C80224B88F8D8A4A522D", + "sha-1": "F644A15A4661D764F93AA42ADF78858C18D59D99", + "sha-256": "54B67AE914D058B1D2E44E2C0B40A258B089E43BE09D3931D7E66FB588F86DEC" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "6C00CCC52BBEDDA6C8E9FCE8ADFFC2A8", + "sha-1": "739B71F577FB98149E94509E57ED031F6C3E72CA", + "sha-256": "DE70C63A1B2DA9DA7442FA72F81717CA3E1CDBC4813C750AA5B0088FB98DA411" + } + }, + { + "location": { + "uri": "Cake.Issues.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "85831847EB71CD3A6E72DB1BD40B81E3", + "sha-1": "DE39F9AD26A10406502BDBDEDECB6905D2262F5D", + "sha-256": "F528122668BCB61596C5DB68EF17E93CB2B5F947B15CE5D6B93A3ED9BB63D654" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/ISupportCheckingCommitIdExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B4FEA35F0806783867D0469B2D0B5BC5", + "sha-1": "982ED57027D1C82E6E203DC4A3D7DCF371378744", + "sha-256": "39D9623184EBEBAA49736A884E638F768B9E74D567B884DA71C523CF64FBCC0B" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/ISupportCheckingCommitIdExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B88F9E405D69017EB43B9E3C03076D09", + "sha-1": "D3FCD8C17B84CF7B3FCE9B9BD0639E2886339E68", + "sha-256": "BD7E19FE5A65CABAF663AD1F27FEBB098DF7771C46C2D3C3EEB380B96D746EE2" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint/LogFileFormat/MarkdownlintCliLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D408205A7262903E6C9ABEFCB66175CD", + "sha-1": "EC42976D01E9E916EF57232B61C45878F82B1716", + "sha-256": "777E37545DCA1E4A79D061A6835D194C8F829DA35789ACB051E32EB5BAFB5196" + } + }, + { + "location": { + "uri": "Cake.Issues.DocFx/DocFxIssuesProvider.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "3837C3B9979F82D3391F1231336CC39D", + "sha-1": "1ABDF530CA4A7046E5E6E3AC5EA6B0ACD1202CDC", + "sha-256": "999B10E7A30B36824C12A0A7CD31B6D2C18B57CE8EEBA76082AD0080624DFD90" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Console/ConsoleIssueReportGenerator.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4CFFD85F7CA61859196BE1E69839DD4E", + "sha-1": "91E42BC9C7742572C69CFCDF7376D9F2677311FB", + "sha-256": "5D7375F0BD3F4B9C9110197C9A2A7525F64504BED46A332344CBCE8EED1C0A94" + } + }, + { + "location": { + "uri": "Cake.Issues.Terraform/TerraformIssuesProvider.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "B57F12D9F9BA2C78FA37086FD3C9EE1C", + "sha-1": "DABB4DC013D3B48007E0240A21BAC1814E8AE3E6", + "sha-256": "1F456FA49E647C6CE9BA15E95B8EC3AE521D0CB19969EEE76A1B584C38A425F8" + } + }, + { + "location": { + "uri": "Cake.Issues.Testing/BaseIssueProviderFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "459734F4D327330670B8FD12BB7D4DCC", + "sha-1": "F17B61F4C2128AA5206A15AF7081FA5F5EC85EEB", + "sha-256": "52BA90D29EFF805120F0303AB83556374E1CAEC38770D30AF1D022985C882520" + } + }, + { + "location": { + "uri": "Cake.Issues/Serialization/IssueDeserializationExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4246F2002CE6926076A03F7EB928C010", + "sha-1": "B9223A5302570C8F0D31ABBA50CD6D8EDBD94CAD", + "sha-256": "8A47A1B00C2A7527E97F4C8191AEBC754739DE79D25523ACA5D342DAE8470647" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/IssueFiltererFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "391F97D79A76284F9FBF968618D72560", + "sha-1": "5E0172BBF7CBC296E96B5A917FC2EE2E36DC6C1D", + "sha-256": "26C031C8A988B4610778A5ED79D33A2082CB190430A122F2C77EA29BFCDF1060" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssueProvidersFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "BA7E7004830BFFDC9BF223200CC8319B", + "sha-1": "1DA33B96B4281451B2EDCF18B51936B73EE10103", + "sha-256": "11EBDC1FEE50D04ED92977D9CF77A1776B173912ACA2598D19B1CE586EC60465" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.Tests/OrchestratorForIssuesFixture.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "5BA33AD83F318E618386A8B3369820CF", + "sha-1": "805A25542E3505A6B5D08C7DED145F6A89AF7A24", + "sha-256": "F6CE15CE5B75A9A7E7ADD58B5446D76819389B29EF47A78995DA3E411D65AF82" + } + }, + { + "location": { + "uri": "Cake.Issues/Serialization/SerializableIssue.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "8E98589DA1639F9A942C9774770C8E53", + "sha-1": "4C38B66EF89D129EE17FAB0DD8D356E58229F1E7", + "sha-256": "735EC020ED65B9C03F16B9915ECC905B55A907AD0A1A9692776CCD38494CAE61" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint/LogFileFormat/JsonLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "36B901C4AED86C37318E3EF5E684D289", + "sha-1": "9486AEABB8F35F2D95D8C9CC6566D9C49522932B", + "sha-256": "A488555B8419C1B23C56DE3D40ACF605879B30586565F10E6ADEB6AF47C2F4BF" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint/BaseEsLintLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "95ACF40AEA6E8D898D0BC1CC29894D71", + "sha-1": "C5C2AF5B4D8B21D9C454561DE1BA05F7D24D7059", + "sha-256": "7A16A82263249BBCB65737364B3178DBFA6D388F6767990873916B3A95C53210" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint/EsLintIssuesAliases.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "4871EF68E37D2CD576799CF6AF69BFB5", + "sha-1": "15AEB7CA83D4FA7A66103193E6DD335FE3DBC521", + "sha-256": "88BA37FE4C67F5009D93DF49AAB54F4F0914DF26C075E9186310B9685C044715" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint/BaseMarkdownlintLogFileFormat.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2E3B89139A31E215E356E43837D7EB51", + "sha-1": "7D383916DF5CB415E08675B9C39504B1D2421FBC", + "sha-256": "2457E9C8BA850FA6DEF9BC493D5785D4A4627AA42C72EA1E452E33CD7F2633A1" + } + }, + { + "location": { + "uri": "Cake.Issues.Markdownlint/MarkdownlintIssuesAliases.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "38203DF6C4A5CD5946ADC2CA120BA9B9", + "sha-1": "BB3FC0609A0BF5F698DFAFFE63E6E98E06A888A8", + "sha-256": "FBDF122C51920CAC46B06C1F461C4A4CD5E92BB5EF1CD26BEF0AB41E37D40D83" + } + }, + { + "location": { + "uri": "Cake.Issues.MsBuild/MsBuildIssuesAliases.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "7C92D744BA626C42E8EEE33546478388", + "sha-1": "F7F1AC6356A3085F5B905B5AF0A508B896231369", + "sha-256": "ED993EA907B4B8469F2039D5ED6CECAB8FC2D36CCB71DA1B0CDFF7A806878EE3" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests.GitHubActions.Tests/GitHubActionsBuildSettingsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "747D1E6EFF57BD851C965A71594DF2F6", + "sha-1": "50DA80F39F48707E82582B1F81CE1C8F1915C703", + "sha-256": "3F257B04E6B750BDE58FBE22A9E6D35AC080237D66581C43F035C7251D52B769" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Sarif/SarifIssueReportFormatSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "2A3D0B3C7BF1109EC45AF96C21BD6EE4", + "sha-1": "AB3102CB99EB4738ACE7F9365D55CE1103D22FB0", + "sha-256": "483C1426384E07489C5C3E2D574325A137B2C65EEF1BACEA927801A574922011" + } + }, + { + "location": { + "uri": "Cake.Issues.Testing/AssertionMethodAttribute.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "9C36A53158E69915F3889C9E81EF7454", + "sha-1": "1E9BA0B75BFC529091CC1C7806800BF8E15B603A", + "sha-256": "B3EBC38CB781552A24CE31ECFF587C8272DECB5C2E83942E11BF2CEC8E3BCAB6" + } + }, + { + "location": { + "uri": "Cake.Issues.Testing/FakeRuleDescription.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "8765034520FA573D18E0A90F323E17A7", + "sha-1": "F4921CE2FE21981680D68F021C63337D6400C9CE", + "sha-256": "9B631EDA7A58F17509A0F88FDDBBBEDFE6CE65752858D2BF0A7ADD361B08EFA1" + } + }, + { + "location": { + "uri": "Cake.Issues/Aliases.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "79784252E6E2113588DDE7126D507131", + "sha-1": "971B012CB3B83FE93ACD33E9C17ABCF2D8CF87F6", + "sha-256": "39D65F449D45550907E3C36C0E042767D585E55D919E7ADD4559F47E14ADA1B0" + } + }, + { + "location": { + "uri": "Cake.Issues/ValidatedNotNullAttribute.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "3A669D3F069B596977F0623868004882", + "sha-1": "F5404406D32BD9B21619BB45959D6CEE51AF2F89", + "sha-256": "126ED68FB0A4E18125C448D5991284D67A0AE356C154454E2D9E7D132A31B847" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IPullRequestSystemCapability.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "12EF114D9DA5319E4C58FFEDD6672CAB", + "sha-1": "DA4318B11B39F3A6EA4765FD198FFC039EBD5BB3", + "sha-256": "1821A26E2B728728DF85BF121858FDDD7EAD574AAAE2D0C67F3EB51F5E0F1C2F" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IReportIssuesToPullRequestFromIssueProviderSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "54CFB5EB6A4FE664F92CE0C293D6A750", + "sha-1": "C4656EAEFC73C86BAD207DC39F5ED088C1B08558", + "sha-256": "2E9B10B1E0861FD8B7531CE777D29E35E594AA43649F644666192263D336F528" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting/ICreateIssueReportFromIssueProviderSettings.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "02795155AE4BC3C040CA972B540EF12B", + "sha-1": "1BF8FCB44AA5507258D6C5F24EA00697A2AD2B9A", + "sha-256": "F26F3F88599960D39933BA0F2D742B0081A1A146D40B59014211D342483C3257" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint.Tests/Properties/ProjectInfo.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F66F9F2E08443B98BC57825545C14D83", + "sha-1": "993A8A57479E85C1E58C6755ED9EDCD5A79DE93C", + "sha-256": "A6B1F63A1FC78C2C9D4CE2263438B2B66516844B23375344AC7748FBD07AECF5" + } + }, + { + "location": { + "uri": "Cake.Issues.EsLint/Properties/ProjectInfo.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F9D6CA8D4501EB10C045CA6B53BC3AD6", + "sha-1": "7A8329AEDFF6DDA5A94F0894A9ED94B53526B4A0", + "sha-256": "D958026F36F9F2AB6DC18B857E25C0FCEA50B7BAAD351284DCC79E28F9AEBDD9" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/PullRequestIssuesException.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "C41E0DCBE39D82DDD73D0B554C0CA227", + "sha-1": "885DCED8ADE2868FA913C9959A7101A95F9D7EAC", + "sha-256": "F5D6372A05A1048D28262507750BB483916128EFF6FD232A58BABEC214BD2D8A" + } + }, + { + "location": { + "uri": "Cake.Issues/StringPathExtensions.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "A24C866A059320FFBA6F9EEE808F91FF", + "sha-1": "48D43C89600A2F7B4D0BD39303C2D328630003FE", + "sha-256": "0BF47B456E0D32793A2F0C1B6BFCDEB664B9D84A65BCB39C5975812A80EAAC33" + } + }, + { + "location": { + "uri": "Cake.Issues.InspectCode.Tests/InspectCodeIssuesProviderTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "6A44BB39B9646F8035C2BE10B5B08898", + "sha-1": "C33FD9EDA0B40800EA9F318F827CC46883AD7F38", + "sha-256": "EAE5534B3BE141C2478269239B5C6429049A2CC84E3845F25A78CA777DDCD876" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic.Tests/GenericIssueReportGeneratorTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "AFE3FF72DAC4F4741AA7096738280180", + "sha-1": "DFB7F65746870F13A9E785D9343EE0EDFE7F2870", + "sha-256": "C2A28CDC3CE497971647BC0F77127F4FE5A6D686A137FAEC815D0249959C58F0" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic.Tests/IIssueExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "47441E8AECD692299E761A45F08FFDF7", + "sha-1": "B499EF6D3832B9F7E4147188019BA25CD00E38B6", + "sha-256": "559F7856864189A08B7D0427D4F3AE3B0DC7F9A32EE111CC395819C56D244EA7" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Console/FileSystemRepository.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "D3AADD612376D2F9A4C37F56BFFE9CC9", + "sha-1": "141E871703AF6A532D759871BC3AD1114799E253", + "sha-256": "2F9B3DD10976237678FE359519B27669D272A8F3B66512C3821F9DAD9115B6FD" + } + }, + { + "location": { + "uri": "Cake.Issues.Testing/FakeMultiFormatIssueProvider.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "33205AD0259C7528AD92CAA1519CE9C2", + "sha-1": "E07D6FB6D296977F87E6A5F9C1A5E0968257EC62", + "sha-256": "FB68C3EEC30DC9906D1BE5D47CC90740CABFED8777467B16DFC7023AC91F2323" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionThread.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "199327CBB45A27A015F10025BB9FCC74", + "sha-1": "C71210FFAF6DD978CC260E443DB95EF495931962", + "sha-256": "74C1277D9AFF5CA9AA4FC8BCABE13C07FFA0894179D4095EA0551FBAE5DB0ED7" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IPullRequestDiscussionComment.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "1B129682158FB87DBA453B3EFA2905A0", + "sha-1": "19E9379E65A8BE9D4CD683379F1DB080C9F07042", + "sha-256": "BE1B2F7609D237CA1F6F00FC76CA4154FA5DECAAC15F719DB5DB65854537EDC6" + } + }, + { + "location": { + "uri": "Cake.Issues.PullRequests/IPullRequestSystem.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "6CDB1B1FE53B811BBD7C85B4B05FD8A4", + "sha-1": "8BF17FA08B232732D5ED333391EEA99B1B968586", + "sha-256": "FECD7125AB61BBF21A5626702D621D9E797B47AAC782B2E10CC7EE55E564A478" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic.Tests/HtmlDxDataGridTemplateTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "3A491D773E161E7B15824264FCB77C55", + "sha-1": "A34A5E8472C6209E0A9564155564254CD767DF25", + "sha-256": "C2D154CD02EE903B35B6265705C354BEB8FB935A939C584CB21D1A7C8712DF67" + } + }, + { + "location": { + "uri": "Cake.Issues.Reporting.Generic.Tests/DevExtremeThemeExtensionsTests.cs", + "uriBaseId": "solutionDir" + }, + "hashes": { + "md5": "F5F46884DEB3ECC2C8D1174C0470DCEC", + "sha-1": "66841D1FFE91E8C2A99F289EAB164FEE300ED71D", + "sha-256": "1F67C4241B595F4571C5D7029CEA7CC14793E8177E9CD86E0782A9CA836BB935" + } + } + ], + "columnKind": "utf16CodeUnits" + } + ] +} \ No newline at end of file diff --git a/src/Cake.Issues.Sarif.Tests/packages.lock.json b/src/Cake.Issues.Sarif.Tests/packages.lock.json index ce1679c28..ea2bbde04 100644 --- a/src/Cake.Issues.Sarif.Tests/packages.lock.json +++ b/src/Cake.Issues.Sarif.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -497,9 +497,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Tap.Tests/Cake.Issues.Tap.Tests.csproj b/src/Cake.Issues.Tap.Tests/Cake.Issues.Tap.Tests.csproj new file mode 100644 index 000000000..7525b1639 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Cake.Issues.Tap.Tests.csproj @@ -0,0 +1,19 @@ + + + Tests for the Cake.Issues.Tap addin + + + + + + + + + + + + + + + + diff --git a/src/Cake.Issues.Tap.Tests/LogFileFormat/GenericLogFileFormatTests.cs b/src/Cake.Issues.Tap.Tests/LogFileFormat/GenericLogFileFormatTests.cs new file mode 100644 index 000000000..63a47be40 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/LogFileFormat/GenericLogFileFormatTests.cs @@ -0,0 +1,132 @@ +namespace Cake.Issues.Tap.Tests.LogFileFormat; + +using Cake.Issues.Tap.LogFileFormat; + +public sealed class GenericLogFileFormatTests +{ + public sealed class TheCtor + { + [Fact] + public void Should_Throw_If_Log_Is_Null() + { + // Given / When + var result = Record.Exception(() => new GenericLogFileFormat(null)); + + // Then + result.IsArgumentNullException("log"); + } + } + + public sealed class TheReadIssuesMethod + { + [Fact] + public void Should_Read_Issue_Correct_For_Specification_File() + { + // Given + var fixture = new TapIssuesProviderFixture("specification.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(2); + + var issue = issues[0]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "First line of the input valid", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .Create()); + + issue = issues[1]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Summarized correctly", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .Create()); + } + + [Fact] + public void Should_Read_Issue_Correct_For_Kubeconform_File_From_Invalid_Yaml() + { + // Given + var fixture = new TapIssuesProviderFixture("kubeconform-invalid.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(1); + + var issue = issues.Single(); + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + ".\\invalid.yaml (v1/ReplicationController//bob): problem validating schema. Check JSON formatting: jsonschema: '/spec/replicas' does not validate with https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/replicationcontroller-v1.json#/properties/spec/properties/replicas/type: expected integer or null, but got string", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .Create()); + } + + [Fact] + public void Should_Read_Issue_Correct_For_Kubeconform_File_From_Valid_Yaml() + { + // Given + var fixture = new TapIssuesProviderFixture("kubeconform-valid.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.ShouldBeEmpty(); + } + + [Fact] + public void Should_Read_Issue_Correct_For_Kubeconform_File_From_Yaml_With_Invalid_List() + { + // Given + var fixture = new TapIssuesProviderFixture("kubeconform-list-invalid.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(1); + + var issue = issues.Single(); + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + ".\\list_invalid.yaml (v1/ReplicationController//bob): problem validating schema. Check JSON formatting: jsonschema: '/spec/replicas' does not validate with https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/replicationcontroller-v1.json#/properties/spec/properties/replicas/type: expected integer or null, but got string", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .Create()); + } + + [Fact] + public void Should_Read_Issue_Correct_For_Kubeconform_File_From_Yaml_With_Missing_Api_Version() + { + // Given + var fixture = new TapIssuesProviderFixture("kubeconform-missing-apiversion.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(1); + + var issue = issues.Single(); + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + ".\\missing_apiversion.yaml: error while parsing: missing 'apiVersion' key", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .Create()); + } + } +} diff --git a/src/Cake.Issues.Tap.Tests/LogFileFormat/StylelintLogFileFormatTests.cs b/src/Cake.Issues.Tap.Tests/LogFileFormat/StylelintLogFileFormatTests.cs new file mode 100644 index 000000000..12264422a --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/LogFileFormat/StylelintLogFileFormatTests.cs @@ -0,0 +1,133 @@ +namespace Cake.Issues.Tap.Tests.LogFileFormat; + +using Cake.Issues.Tap.LogFileFormat; + +public sealed class StylelintLogFileFormatTests +{ + public sealed class TheCtor + { + [Fact] + public void Should_Throw_If_Log_Is_Null() + { + // Given / When + var result = Record.Exception(() => new StylelintLogFileFormat(null)); + + // Then + result.IsArgumentNullException("log"); + } + } + + public sealed class TheReadIssuesMethod + { + [Fact] + public void Should_Read_Issue_Correct_When_No_Warnings() + { + // Given + var fixture = new TapIssuesProviderFixture("no-warnings.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(0); + } + + [Fact] + public void Should_Read_Issue_Correct_When_Warnings() + { + // Given + var fixture = new TapIssuesProviderFixture("warnings.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(4); + + var issue = issues[0]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Unexpected bar", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file1.css", 2, 3, 1, 3) + .WithPriority(IssuePriority.Error) + .OfRule("baz") + .Create()); + + issue = issues[1]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Unexpected foo", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file2.css", 1, 2, 1, 3) + .WithPriority(IssuePriority.Error) + .OfRule("bar") + .Create()); + + issue = issues[2]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Unexpected foo", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file2.css", 4, 5, 1, 3) + .WithPriority(IssuePriority.Error) + .OfRule("bar") + .Create()); + + issue = issues[3]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Unexpected foo 2", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file2.css", 10, 11, 1, 2) + .WithPriority(IssuePriority.Error) + .OfRule("bar2") + .Create()); + } + + [Fact] + public void Should_Read_Issue_Correct_When_Parse_Error() + { + // Given + var fixture = new TapIssuesProviderFixture("parse-error.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(2); + + var issue = issues[0]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Cannot parse selector (parseError)", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file.css", 1, 1) + .WithPriority(IssuePriority.Error) + .OfRule("parseError") + .Create()); + + issue = issues[1]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Unexpected foo", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile("path/to/file.css", 2, 1) + .WithPriority(IssuePriority.Error) + .OfRule("unknown") + .Create()); + } + } +} diff --git a/src/Cake.Issues.Tap.Tests/LogFileFormat/TextlintLogFileFormatTests.cs b/src/Cake.Issues.Tap.Tests/LogFileFormat/TextlintLogFileFormatTests.cs new file mode 100644 index 000000000..15afaea5a --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/LogFileFormat/TextlintLogFileFormatTests.cs @@ -0,0 +1,47 @@ +namespace Cake.Issues.Tap.Tests.LogFileFormat; + +using Cake.Issues.Tap.LogFileFormat; + +public sealed class TextlintLogFileFormatTests +{ + public sealed class TheCtor + { + [Fact] + public void Should_Throw_If_Log_Is_Null() + { + // Given / When + var result = Record.Exception(() => new TextlintLogFileFormat(null)); + + // Then + result.IsArgumentNullException("log"); + } + } + + public sealed class TheReadIssuesMethod + { + [Fact] + public void Should_Read_Issue_Correct() + { + // Given + var fixture = new TapIssuesProviderFixture("textlint.tap"); + + // When + var issues = fixture.ReadIssues().ToList(); + + // Then + issues.Count.ShouldBe(1); + + var issue = issues[0]; + IssueChecker.Check( + issue, + IssueBuilder.NewIssue( + "Found TODO: '- [ ] Write usage instructions'", + "Cake.Issues.Tap.TapIssuesProvider", + "TAP") + .InFile(@"file.md", 3, 3) + .WithPriority(IssuePriority.Error) + .OfRule("no-todo") + .Create()); + } + } +} diff --git a/src/Cake.Issues.Tap.Tests/Properties/ProjectInfo.cs b/src/Cake.Issues.Tap.Tests/Properties/ProjectInfo.cs new file mode 100644 index 000000000..a7600a93d --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Properties/ProjectInfo.cs @@ -0,0 +1,13 @@ +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e8b8a9c1-c71c-4136-b879-d4959fbf78f3")] diff --git a/src/Cake.Issues.Tap.Tests/TapIssuesProviderFixture.cs b/src/Cake.Issues.Tap.Tests/TapIssuesProviderFixture.cs new file mode 100644 index 000000000..7983a5d09 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/TapIssuesProviderFixture.cs @@ -0,0 +1,15 @@ +namespace Cake.Issues.Tap.Tests; + +internal class TapIssuesProviderFixture + : BaseMultiFormatIssueProviderFixture + where T : BaseTapLogFileFormat +{ + public TapIssuesProviderFixture(string fileResourceName) + : base(fileResourceName) + { + this.ReadIssuesSettings = + new ReadIssuesSettings(@"c:\Source\Cake.Issues"); + } + + protected override string FileResourceNamespace => "Cake.Issues.Tap.Tests.Testfiles." + typeof(T).Name + "."; +} diff --git a/src/Cake.Issues.Tap.Tests/TapIssuesProviderTests.cs b/src/Cake.Issues.Tap.Tests/TapIssuesProviderTests.cs new file mode 100644 index 000000000..ef1f4260f --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/TapIssuesProviderTests.cs @@ -0,0 +1,117 @@ +namespace Cake.Issues.Tap.Tests; + +using Cake.Core.Diagnostics; +using Cake.Issues.Tap.LogFileFormat; + +public sealed class TapIssuesProviderTests +{ + public sealed class TheCtor + { + [Fact] + public void Should_Throw_If_Log_Is_Null() + { + // Given + ICakeLog log = null; + + // When + var result = Record.Exception(() => + new TapIssuesProvider( + log, + new TapIssuesSettings("Foo".ToByteArray(), new GenericLogFileFormat(new FakeLog())))); + + // Then + result.IsArgumentNullException("log"); + } + + [Fact] + public void Should_Throw_If_IssueProviderSettings_Are_Null() + { + var result = Record.Exception(() => + new TapIssuesProvider( + new FakeLog(), + null)); + + // Then + result.IsArgumentNullException("issueProviderSettings"); + } + } + + //public sealed class TheReadIssuesMethod + //{ + // [Fact] + // public void Should_Read_Issue_Correct_For_Specification_File() + // { + // // Given + // var fixture = new TapIssuesProviderFixture("specification.tap"); + + // // When + // var issues = fixture.ReadIssues().ToList(); + + // // Then + // issues.Count.ShouldBe(2); + // } + + // [Fact] + // public void Should_Read_Issue_Correct_For_Stylelint_File_Without_Warnings() + // { + // // Given + // var fixture = new TapIssuesProviderFixture("stylelint-no-warnings.tap"); + + // // When + // var issues = fixture.ReadIssues().ToList(); + + // // Then + // issues.Count.ShouldBe(0); + // } + + // [Fact] + // public void Should_Read_Issue_Correct_For_Stylelint_File_With_Warnings() + // { + // // Given + // var fixture = new TapIssuesProviderFixture("stylelint-warnings.tap"); + + // // When + // var issues = fixture.ReadIssues().ToList(); + + // // Then + // issues.Count.ShouldBe(2); + + // var issue = issues[0]; + // IssueChecker.Check( + // issue, + // IssueBuilder.NewIssue( + // "Message Foo.", + // "Cake.Issues.Tap.TapIssuesProvider", + // "TAP") + // .InFile("path/to/file1.css") + // //.OfRule("Rule Foo") + // //.WithPriority(IssuePriority.Error) + // .Create()); + + // issue = issues[1]; + // IssueChecker.Check( + // issue, + // IssueBuilder.NewIssue( + // "Message Foo.", + // "Cake.Issues.Tap.TapIssuesProvider", + // "TAP") + // .InFile("path/to/file2.css") + // //.OfRule("Rule Foo") + // //.WithPriority(IssuePriority.Error) + // .Create()); + // } + + // [Fact] + // public void Should_Read_Issue_Correct_For_Stylelint_File_With_Parse_Error() + // { + // // Given + // var fixture = new TapIssuesProviderFixture("stylelint-parse-error.tap"); + + // // When + // var issues = fixture.ReadIssues().ToList(); + + // // Then + // issues.Count.ShouldBe(1); + // } + //} +} diff --git a/src/Cake.Issues.Tap.Tests/TapIssuesSettingsTests.cs b/src/Cake.Issues.Tap.Tests/TapIssuesSettingsTests.cs new file mode 100644 index 000000000..bf53e0b17 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/TapIssuesSettingsTests.cs @@ -0,0 +1,115 @@ +namespace Cake.Issues.Tap.Tests; + +using Cake.Core.IO; +using Cake.Issues.Tap.LogFileFormat; + +public sealed class TapIssuesSettingsTests +{ + public sealed class TheCtor + { + [Fact] + public void Should_Throw_If_LogFilePath_Is_Null() + { + // Given + FilePath logFilePath = null; + var format = new GenericLogFileFormat(new FakeLog()); + + // When + var result = Record.Exception(() => + new TapIssuesSettings(logFilePath, format)); + + // Then + result.IsArgumentNullException("logFilePath"); + } + + [Fact] + public void Should_Throw_If_Format_For_LogFilePath_Is_Null() + { + // Given + BaseTapLogFileFormat format = null; + + using (var tempFile = new ResourceTempFile("Cake.Issues.Tap.Tests.Testfiles.GenericLogFileFormat.specification.tap")) + { + // When + var result = Record.Exception(() => + new TapIssuesSettings(tempFile.FileName, format)); + + // Then + result.IsArgumentNullException("format"); + } + } + + [Fact] + public void Should_Throw_If_LogFileContent_Is_Null() + { + // Given + byte[] logFileContent = null; + var format = new GenericLogFileFormat(new FakeLog()); + + // When + var result = Record.Exception(() => + new TapIssuesSettings(logFileContent, format)); + + // Then + result.IsArgumentNullException("logFileContent"); + } + + [Fact] + public void Should_Throw_If_Format_For_LogFileContent_Is_Null() + { + // Given + var logFileContent = "foo".ToByteArray(); + BaseTapLogFileFormat format = null; + + // When + var result = Record.Exception(() => + new TapIssuesSettings(logFileContent, format)); + + // Then + result.IsArgumentNullException("format"); + } + + [Fact] + public void Should_Set_LogFileContent() + { + // Given + var logFileContent = "Foo".ToByteArray(); + var format = new GenericLogFileFormat(new FakeLog()); + + // When + var settings = new TapIssuesSettings(logFileContent, format); + + // Then + settings.LogFileContent.ShouldBe(logFileContent); + } + + [Fact] + public void Should_Set_LogFileContent_If_Empty() + { + // Given + byte[] logFileContent = []; + var format = new GenericLogFileFormat(new FakeLog()); + + // When + var settings = new TapIssuesSettings(logFileContent, format); + + // Then + settings.LogFileContent.ShouldBe(logFileContent); + } + + [Fact] + public void Should_Set_LogFileContent_From_LogFilePath() + { + // Given + var format = new GenericLogFileFormat(new FakeLog()); + using (var tempFile = new ResourceTempFile("Cake.Issues.Tap.Tests.Testfiles.GenericLogFileFormat.specification.tap")) + { + // When + var settings = new TapIssuesSettings(tempFile.FileName, format); + + // Then + settings.LogFileContent.ShouldBe(tempFile.Content); + } + } + } +} diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-invalid.tap b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-invalid.tap new file mode 100644 index 000000000..ebb8053d4 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-invalid.tap @@ -0,0 +1,3 @@ +TAP version 13 +not ok 1 - .\invalid.yaml (v1/ReplicationController//bob): problem validating schema. Check JSON formatting: jsonschema: '/spec/replicas' does not validate with https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/replicationcontroller-v1.json#/properties/spec/properties/replicas/type: expected integer or null, but got string +1..1 diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-list-invalid.tap b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-list-invalid.tap new file mode 100644 index 000000000..57a1775cb --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-list-invalid.tap @@ -0,0 +1,4 @@ +TAP version 13 +ok 1 - .\list_invalid.yaml (v1/Service//redis-master) +not ok 2 - .\list_invalid.yaml (v1/ReplicationController//bob): problem validating schema. Check JSON formatting: jsonschema: '/spec/replicas' does not validate with https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/replicationcontroller-v1.json#/properties/spec/properties/replicas/type: expected integer or null, but got string +1..2 diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-missing-apiversion.tap b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-missing-apiversion.tap new file mode 100644 index 000000000..f7d0ea6e0 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-missing-apiversion.tap @@ -0,0 +1,3 @@ +TAP version 13 +not ok 1 - .\missing_apiversion.yaml: error while parsing: missing 'apiVersion' key +1..1 diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-valid.tap b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-valid.tap new file mode 100644 index 000000000..05c7ec453 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/kubeconform-valid.tap @@ -0,0 +1,3 @@ +TAP version 13 +ok 1 - .\valid.yaml (v1/ReplicationController//bob) +1..1 diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/specification.tap b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/specification.tap new file mode 100644 index 000000000..75ed01047 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/GenericLogFileFormat/specification.tap @@ -0,0 +1,17 @@ +TAP version 14 +1..4 +ok 1 - Input file opened +not ok 2 - First line of the input valid + --- + message: 'First line invalid' + severity: fail + data: + got: 'Flirble' + expect: 'Fnible' + ... +ok 3 - Read the rest of the file +not ok 4 - Summarized correctly # TODO Not written yet + --- + message: "Can't make summary yet" + severity: todo + ... \ No newline at end of file diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/no-warnings.tap b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/no-warnings.tap new file mode 100644 index 000000000..4aa86a61d --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/no-warnings.tap @@ -0,0 +1,3 @@ +TAP version 14 +1..1 +ok 1 - path/to/file.css diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/parse-error.tap b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/parse-error.tap new file mode 100644 index 000000000..3b10f831b --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/parse-error.tap @@ -0,0 +1,15 @@ +TAP version 14 +1..1 +not ok 1 - path/to/file.css + --- + parseError: + - message: "Cannot parse selector (parseError)" + severity: error + line: 1 + column: 1 + unknown: + - message: "Unexpected foo" + severity: error + line: 2 + column: 1 + ... diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/warnings.tap b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/warnings.tap new file mode 100644 index 000000000..52e8fa443 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/StylelintLogFileFormat/warnings.tap @@ -0,0 +1,35 @@ +TAP version 14 +1..2 +not ok 1 - path/to/file1.css + --- + baz: + - message: "Unexpected bar" + severity: error + line: 2 + column: 1 + endLine: 3 + endColumn: 3 + ... +not ok 2 - path/to/file2.css + --- + bar: + - message: "Unexpected foo" + severity: error + line: 1 + column: 1 + endLine: 2 + endColumn: 3 + - message: "Unexpected foo" + severity: error + line: 4 + column: 1 + endLine: 5 + endColumn: 3 + bar2: + - message: "Unexpected foo 2" + severity: error + line: 10 + column: 1 + endLine: 11 + endColumn: 2 + ... diff --git a/src/Cake.Issues.Tap.Tests/Testfiles/TextlintLogFileFormat/textlint.tap b/src/Cake.Issues.Tap.Tests/Testfiles/TextlintLogFileFormat/textlint.tap new file mode 100644 index 000000000..67ec93c48 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/Testfiles/TextlintLogFileFormat/textlint.tap @@ -0,0 +1,11 @@ +TAP version 13 +1..1 +not ok 1 - c:\Source\Cake.Issues\file.md + --- + message: 'Found TODO: ''- [ ] Write usage instructions''' + severity: error + data: + line: 3 + column: 3 + ruleId: no-todo + ... diff --git a/src/Cake.Issues.Tap.Tests/packages.lock.json b/src/Cake.Issues.Tap.Tests/packages.lock.json new file mode 100644 index 000000000..f96580656 --- /dev/null +++ b/src/Cake.Issues.Tap.Tests/packages.lock.json @@ -0,0 +1,543 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "coverlet.msbuild": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "JajbvkrBgtdRghavIjcJuNHMOja4lqBmEezbhZyqWPYh2cpLhT5mPpfC7NQVDO4IehWQum9t/nwF4v+qQGtYWg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Shouldly": { + "type": "Direct", + "requested": "[4.2.1, )", + "resolved": "4.2.1", + "contentHash": "dKAKiSuhLKqD2TXwLKtqNg1nwzJcIKOOMncZjk9LYe4W+h+SCftpWdxwR79YZUIHMH+3Vu9s0s0UHNrgICLwRQ==", + "dependencies": { + "DiffEngine": "11.3.0", + "EmptyFiles": "4.4.0" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.2, )", + "resolved": "2.9.2", + "contentHash": "7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==", + "dependencies": { + "xunit.analyzers": "1.16.0", + "xunit.assert": "2.9.2", + "xunit.core": "[2.9.2]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[3.0.0, )", + "resolved": "3.0.0", + "contentHash": "HggUqjQJe8PtDxcP25Q+CnR6Lz4oX3GElhD9V4oU2+75x9HI6A6sxbfKGS4UwU4t4yJaS9fBmAuriz8bQApNjw==" + }, + "Xunit.SkippableFact": { + "type": "Direct", + "requested": "[1.5.23, )", + "resolved": "1.5.23", + "contentHash": "JlKobLTlsGcuJ8OtoodxL63bUagHSVBnF+oQ2GgnkwNqK+XYjeYyhQasULi5Ebx1MNDGNbOMplQYr89mR+nItQ==", + "dependencies": { + "Validation": "2.5.51", + "xunit.extensibility.execution": "2.4.0" + } + }, + "DiffEngine": { + "type": "Transitive", + "resolved": "11.3.0", + "contentHash": "k0ZgZqd09jLZQjR8FyQbSQE86Q7QZnjEzq1LPHtj1R2AoWO8sjV5x+jlSisL7NZAbUOI4y+7Bog8gkr9WIRBGw==", + "dependencies": { + "EmptyFiles": "4.4.0", + "System.Management": "6.0.1" + } + }, + "EmptyFiles": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==" + }, + "System.Management": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "10J1D0h/lioojphfJ4Fuh5ZUThT/xOVHdV9roGBittKKNP2PMjrvibEdbVTGZcPra1399Ja3tqIJLyQrc5Wmhg==", + "dependencies": { + "System.CodeDom": "6.0.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "Validation": { + "type": "Transitive", + "resolved": "2.5.51", + "contentHash": "g/Aug7PVWaenlJ0QUyt/mEetngkQNsMCuNeRVXbcJED1nZS7JcK+GTU4kz3jcQ7bFuKfi8PF4ExXH7XSFNuSLQ==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.16.0", + "contentHash": "hptYM7vGr46GUIgZt21YHO4rfuBAQS2eINbFo16CV/Dqq+24Tp+P5gDCACu1AbFfW4Sp/WRfDPSK8fmUUb8s0Q==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]", + "xunit.extensibility.execution": "[2.9.2]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]" + } + }, + "cake.issues": { + "type": "Project", + "dependencies": { + "Cake.Core": "[5.0.0, )" + } + }, + "cake.issues.tap": { + "type": "Project", + "dependencies": { + "Cake.Issues": "[1.0.0, )", + "YamlDotNet": "[16.3.0, )" + } + }, + "cake.issues.testing": { + "type": "Project", + "dependencies": { + "Cake.Issues": "[1.0.0, )", + "Cake.Testing": "[5.0.0, )" + } + }, + "Cake.Core": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "hq0HlI6bdRoMjUQTKioVjJZxQRxT7SuIjLjfTXO7fWe/alEU4OJumxq6LhTqz06pTRC7e5OrQqXyGKJnq5I+rw==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Cake.Testing": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "oEERVvRww03yd54aFtbSFYc7w4xou9X1An8za8JVOM8JvOhp8mNqh53a4+ogJ9qVOgTSFzK/MvbVfZQNeJECjg==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Microsoft.CSharp": { + "type": "CentralTransitive", + "requested": "[4.7.0, )", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Newtonsoft.Json": { + "type": "CentralTransitive", + "requested": "[13.0.1, )", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "YamlDotNet": { + "type": "CentralTransitive", + "requested": "[16.3.0, )", + "resolved": "16.3.0", + "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==" + } + }, + "net9.0": { + "coverlet.msbuild": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "JajbvkrBgtdRghavIjcJuNHMOja4lqBmEezbhZyqWPYh2cpLhT5mPpfC7NQVDO4IehWQum9t/nwF4v+qQGtYWg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Shouldly": { + "type": "Direct", + "requested": "[4.2.1, )", + "resolved": "4.2.1", + "contentHash": "dKAKiSuhLKqD2TXwLKtqNg1nwzJcIKOOMncZjk9LYe4W+h+SCftpWdxwR79YZUIHMH+3Vu9s0s0UHNrgICLwRQ==", + "dependencies": { + "DiffEngine": "11.3.0", + "EmptyFiles": "4.4.0" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.2, )", + "resolved": "2.9.2", + "contentHash": "7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==", + "dependencies": { + "xunit.analyzers": "1.16.0", + "xunit.assert": "2.9.2", + "xunit.core": "[2.9.2]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[3.0.0, )", + "resolved": "3.0.0", + "contentHash": "HggUqjQJe8PtDxcP25Q+CnR6Lz4oX3GElhD9V4oU2+75x9HI6A6sxbfKGS4UwU4t4yJaS9fBmAuriz8bQApNjw==" + }, + "Xunit.SkippableFact": { + "type": "Direct", + "requested": "[1.5.23, )", + "resolved": "1.5.23", + "contentHash": "JlKobLTlsGcuJ8OtoodxL63bUagHSVBnF+oQ2GgnkwNqK+XYjeYyhQasULi5Ebx1MNDGNbOMplQYr89mR+nItQ==", + "dependencies": { + "Validation": "2.5.51", + "xunit.extensibility.execution": "2.4.0" + } + }, + "DiffEngine": { + "type": "Transitive", + "resolved": "11.3.0", + "contentHash": "k0ZgZqd09jLZQjR8FyQbSQE86Q7QZnjEzq1LPHtj1R2AoWO8sjV5x+jlSisL7NZAbUOI4y+7Bog8gkr9WIRBGw==", + "dependencies": { + "EmptyFiles": "4.4.0", + "System.Management": "6.0.1" + } + }, + "EmptyFiles": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==" + }, + "System.Management": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "10J1D0h/lioojphfJ4Fuh5ZUThT/xOVHdV9roGBittKKNP2PMjrvibEdbVTGZcPra1399Ja3tqIJLyQrc5Wmhg==", + "dependencies": { + "System.CodeDom": "6.0.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "Validation": { + "type": "Transitive", + "resolved": "2.5.51", + "contentHash": "g/Aug7PVWaenlJ0QUyt/mEetngkQNsMCuNeRVXbcJED1nZS7JcK+GTU4kz3jcQ7bFuKfi8PF4ExXH7XSFNuSLQ==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.16.0", + "contentHash": "hptYM7vGr46GUIgZt21YHO4rfuBAQS2eINbFo16CV/Dqq+24Tp+P5gDCACu1AbFfW4Sp/WRfDPSK8fmUUb8s0Q==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]", + "xunit.extensibility.execution": "[2.9.2]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.2", + "contentHash": "rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]" + } + }, + "cake.issues": { + "type": "Project", + "dependencies": { + "Cake.Core": "[5.0.0, )" + } + }, + "cake.issues.tap": { + "type": "Project", + "dependencies": { + "Cake.Issues": "[1.0.0, )", + "YamlDotNet": "[16.3.0, )" + } + }, + "cake.issues.testing": { + "type": "Project", + "dependencies": { + "Cake.Issues": "[1.0.0, )", + "Cake.Testing": "[5.0.0, )" + } + }, + "Cake.Core": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "hq0HlI6bdRoMjUQTKioVjJZxQRxT7SuIjLjfTXO7fWe/alEU4OJumxq6LhTqz06pTRC7e5OrQqXyGKJnq5I+rw==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Cake.Testing": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "oEERVvRww03yd54aFtbSFYc7w4xou9X1An8za8JVOM8JvOhp8mNqh53a4+ogJ9qVOgTSFzK/MvbVfZQNeJECjg==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Microsoft.CSharp": { + "type": "CentralTransitive", + "requested": "[4.7.0, )", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Newtonsoft.Json": { + "type": "CentralTransitive", + "requested": "[13.0.1, )", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "YamlDotNet": { + "type": "CentralTransitive", + "requested": "[16.3.0, )", + "resolved": "16.3.0", + "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==" + } + } + } +} \ No newline at end of file diff --git a/src/Cake.Issues.Tap/BaseTapLogFileFormat.cs b/src/Cake.Issues.Tap/BaseTapLogFileFormat.cs new file mode 100644 index 000000000..289577f98 --- /dev/null +++ b/src/Cake.Issues.Tap/BaseTapLogFileFormat.cs @@ -0,0 +1,12 @@ +namespace Cake.Issues.Tap; + +using Cake.Core.Diagnostics; + +/// +/// Base class for all log file formats supported by the TAP issue provider. +/// +/// The Cake log instance. +public abstract class BaseTapLogFileFormat(ICakeLog log) + : BaseLogFileFormat(log) +{ +} diff --git a/src/Cake.Issues.Tap/Cake.Issues.Tap.csproj b/src/Cake.Issues.Tap/Cake.Issues.Tap.csproj new file mode 100644 index 000000000..bbdd00091 --- /dev/null +++ b/src/Cake.Issues.Tap/Cake.Issues.Tap.csproj @@ -0,0 +1,17 @@ + + + Support for TAP compatible files for the Cake.Issues Addin for Cake Build Automation System + + + + true + + + + + + + + + + \ No newline at end of file diff --git a/src/Cake.Issues.Tap/LogFileFormat/GenericLogFileFormat.cs b/src/Cake.Issues.Tap/LogFileFormat/GenericLogFileFormat.cs new file mode 100644 index 000000000..d4970b0a3 --- /dev/null +++ b/src/Cake.Issues.Tap/LogFileFormat/GenericLogFileFormat.cs @@ -0,0 +1,42 @@ +namespace Cake.Issues.Tap.LogFileFormat; + +using System.Collections.Generic; +using System.Linq; +using Cake.Core.Diagnostics; +using Cake.Issues.Tap.Parser; + +/// +/// Generic log file format for parsing TAP files. +/// Ignores any tooling specific information in YAML blocks and just reads the issues. +/// +/// The Cake log instance. +internal class GenericLogFileFormat(ICakeLog log) + : BaseTapLogFileFormat(log) +{ + /// + public override IEnumerable ReadIssues( + TapIssuesProvider issueProvider, + IRepositorySettings repositorySettings, + TapIssuesSettings tapIssuesSettings) + { + issueProvider.NotNull(); + repositorySettings.NotNull(); + tapIssuesSettings.NotNull(); + + var result = new List(); + + var parser = new TapParser(); + parser.Parse(tapIssuesSettings.LogFileContent.RemovePreamble().ToStringUsingEncoding()); + + foreach (var tapResult in parser.Results.Where(x => !x.TestStatus)) + { + // Build issue. + var issueBuilder = + IssueBuilder + .NewIssue(tapResult.Description, issueProvider); + result.Add(issueBuilder.Create()); + } + + return result; + } +} diff --git a/src/Cake.Issues.Tap/LogFileFormat/StylelintLogFileFormat.cs b/src/Cake.Issues.Tap/LogFileFormat/StylelintLogFileFormat.cs new file mode 100644 index 000000000..fc346b184 --- /dev/null +++ b/src/Cake.Issues.Tap/LogFileFormat/StylelintLogFileFormat.cs @@ -0,0 +1,68 @@ +namespace Cake.Issues.Tap.LogFileFormat; + +using System.Collections.Generic; +using System.Linq; +using Cake.Core.Diagnostics; +using Cake.Issues.Tap.Parser; + +/// +/// Log file format for parsing TAP files as written by Stylelint. +/// +/// The Cake log instance. +internal class StylelintLogFileFormat(ICakeLog log) + : BaseTapLogFileFormat(log) +{ + /// + public override IEnumerable ReadIssues( + TapIssuesProvider issueProvider, + IRepositorySettings repositorySettings, + TapIssuesSettings tapIssuesSettings) + { + issueProvider.NotNull(); + repositorySettings.NotNull(); + tapIssuesSettings.NotNull(); + + var result = new List(); + + var parser = new TapParser(); + parser.Parse(tapIssuesSettings.LogFileContent.RemovePreamble().ToStringUsingEncoding()); + + foreach (var tapResult in parser.Results.Where(x => !x.TestStatus)) + { + foreach (var diagnosticKey in tapResult.Diagnostics.Keys) + { + if (tapResult.Diagnostics[diagnosticKey] is List diagnosticList) + { + foreach (var diagnostic in diagnosticList) + { + if (diagnostic is Dictionary diagnosticDict) + { + // Build issue. + var issueBuilder = + IssueBuilder + .NewIssue(diagnosticDict["message"].ToString(), issueProvider) + .InFile( + tapResult.Description.ToString(), + diagnosticDict.ContainsKey("line") ? int.Parse(diagnosticDict["line"].ToString()) : null, + diagnosticDict.ContainsKey("endLine") ? int.Parse(diagnosticDict["endLine"].ToString()) : null, + diagnosticDict.ContainsKey("column") ? int.Parse(diagnosticDict["column"].ToString()) : null, + diagnosticDict.ContainsKey("endColumn") ? int.Parse(diagnosticDict["endColumn"].ToString()) : null) + .OfRule(diagnosticKey) + .WithPriority(GetPriority(diagnosticDict["severity"].ToString())); + result.Add(issueBuilder.Create()); + } + } + } + } + } + + return result; + } + + private static IssuePriority GetPriority(string severity) => severity switch + { + "error" => IssuePriority.Error, + "warning" => IssuePriority.Warning, + _ => IssuePriority.Undefined, + }; +} diff --git a/src/Cake.Issues.Tap/LogFileFormat/TextlintLogFileFormat.cs b/src/Cake.Issues.Tap/LogFileFormat/TextlintLogFileFormat.cs new file mode 100644 index 000000000..9a93848c7 --- /dev/null +++ b/src/Cake.Issues.Tap/LogFileFormat/TextlintLogFileFormat.cs @@ -0,0 +1,65 @@ +namespace Cake.Issues.Tap.LogFileFormat; + +using System.Collections.Generic; +using System.Linq; +using Cake.Core.Diagnostics; +using Cake.Issues.Tap.Parser; + +/// +/// Log file format for parsing TAP files as written by Textlint. +/// +/// The Cake log instance. +internal class TextlintLogFileFormat(ICakeLog log) + : BaseTapLogFileFormat(log) +{ + /// + public override IEnumerable ReadIssues( + TapIssuesProvider issueProvider, + IRepositorySettings repositorySettings, + TapIssuesSettings tapIssuesSettings) + { + issueProvider.NotNull(); + repositorySettings.NotNull(); + tapIssuesSettings.NotNull(); + + var result = new List(); + + var parser = new TapParser(); + parser.Parse(tapIssuesSettings.LogFileContent.RemovePreamble().ToStringUsingEncoding()); + + foreach (var tapResult in parser.Results.Where(x => !x.TestStatus)) + { + var dataDict = tapResult.Diagnostics["data"] as Dictionary; + + // Make path relative to repository root. + var filePath = tapResult.Description.ToString(); + filePath = filePath.MakeFilePathRelativeToRepositoryRoot(repositorySettings); + + // Build issue. + var issueBuilder = + IssueBuilder + .NewIssue(tapResult.Diagnostics["message"].ToString(), issueProvider) + .InFile( + filePath, + dataDict != null && dataDict.ContainsKey("line") ? int.Parse(dataDict["line"].ToString()) : null, + dataDict != null && dataDict.ContainsKey("column") ? int.Parse(dataDict["column"].ToString()) : null) + .WithPriority(GetPriority(tapResult.Diagnostics["severity"].ToString())); + + if (dataDict != null && dataDict.ContainsKey("line")) + { + issueBuilder = issueBuilder.OfRule(dataDict["ruleId"].ToString()); + } + + result.Add(issueBuilder.Create()); + } + + return result; + } + + private static IssuePriority GetPriority(string severity) => severity switch + { + "error" => IssuePriority.Error, + "warning" => IssuePriority.Warning, + _ => IssuePriority.Undefined, + }; +} diff --git a/src/Cake.Issues.Tap/Parser/TapParser.cs b/src/Cake.Issues.Tap/Parser/TapParser.cs new file mode 100644 index 000000000..8b92e88b3 --- /dev/null +++ b/src/Cake.Issues.Tap/Parser/TapParser.cs @@ -0,0 +1,184 @@ +namespace Cake.Issues.Tap.Parser; + +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using YamlDotNet.Serialization; +using YamlDotNet.Serialization.NamingConventions; + +/// +/// Parser for issues reported in TAP format. +/// +internal partial class TapParser +{ + /// + /// Gets the start of the test plan. + /// + public int? PlanStart { get; private set; } + + /// + /// Gets the end of the test plan. + /// + public int? PlanEnd { get; private set; } + + /// + /// Gets the test points of the test plan. + /// + public List Results { get; private set; } = []; + + /// + /// Gets the comments in the TAP file. + /// + public List Comments { get; private set; } = []; + + /// + /// Parses the content of a TAP file. + /// + /// Content of the TAP file. + public void Parse(string tapContent) + { + tapContent.NotNullOrEmpty(); + + var lines = tapContent.Split(['\r', '\n'], StringSplitOptions.RemoveEmptyEntries); + var firstLine = lines[0]; + + if (!VersionRegEx().IsMatch(firstLine)) + { + throw new Exception($"Missing or invalid TAP version declaration. First line is: {firstLine}"); + } + + var match = VersionRegEx().Match(firstLine); + var version = int.Parse(match.Groups[1].Value); + + switch (version) + { + case 14: + this.ParseVersion14(lines); + break; + case 13: + // TAP version 13 should be compatible with version 14. + this.ParseVersion14(lines); + break; + default: + throw new Exception($"Unsupported TAP version {version}. Expected version 14."); + } + } + + [GeneratedRegex(@"^TAP version (\d+)$")] + private static partial Regex VersionRegEx(); + + [GeneratedRegex(@"^\d+\.\.\d+$")] + private static partial Regex PlanRegEx14(); + + [GeneratedRegex(@"^(ok|not ok)\s*(\d+)?\s*-?\s*(.*?)(# (TODO|SKIP)(\S*)\s+(.*))?$")] + private static partial Regex ResultRegEx14(); + + [GeneratedRegex(@"^#\s*(.*)$")] + private static partial Regex CommentRegEx14(); + + /// + /// Parses the content of a TAP file. + /// + /// Content of the TAP file. + private void ParseVersion14(string[] lines) + { + var planParsed = false; + var insideYaml = false; + List yamlLines = null; + + foreach (var line in lines) + { + if (insideYaml) + { + if (line.Trim() == "...") + { + insideYaml = false; + this.ParseYamlVersion14(yamlLines); + yamlLines = null; + } + else + { + yamlLines.Add(line); + } + + continue; + } + + if (PlanRegEx14().IsMatch(line)) + { + if (planParsed) + { + throw new Exception("Multiple plans found"); + } + + var parts = line.Split(".."); + this.PlanStart = int.Parse(parts[0]); + this.PlanEnd = int.Parse(parts[1]); + planParsed = true; + } + else if (ResultRegEx14().IsMatch(line)) + { + var match = ResultRegEx14().Match(line); + var directive = match.Groups[5].Value; + var explanation = match.Groups[7].Value.Trim(); + var result = new TapTestPoint + { + TestStatus = match.Groups[1].Value == "ok", + TestPointID = match.Groups[2].Success ? int.Parse(match.Groups[2].Value) : null, + Description = match.Groups[3].Value.Trim(), + IsTodo = directive == "TODO", + TodoExplanation = directive == "TODO" ? explanation : null, + IsSkip = directive == "SKIP", + SkipExplanation = directive == "SKIP" ? explanation : null, + }; + this.Results.Add(result); + } + else if (CommentRegEx14().IsMatch(line)) + { + var commentMatch = CommentRegEx14().Match(line); + this.Comments.Add(commentMatch.Groups[1].Value.Trim()); + } + else if (line.Trim() == "---") + { + insideYaml = true; + yamlLines = []; + } + else + { + Console.WriteLine($"Warning: Unrecognized line: {line}"); + } + } + + if (!planParsed) + { + throw new Exception("No test plan found"); + } + } + + private void ParseYamlVersion14(List yamlLines) + { + if (this.Results.Count == 0) + { + return; + } + + var lastResult = this.Results[^1]; + var yamlContent = string.Join("\n", yamlLines); + + try + { + var deserializer = new DeserializerBuilder() + .WithNamingConvention(CamelCaseNamingConvention.Instance) + .Build(); + var yamlData = deserializer.Deserialize>(yamlContent); + foreach (var entry in yamlData) + { + lastResult.Diagnostics[entry.Key] = entry.Value; + } + } + catch (Exception ex) + { + throw new Exception($"Error parsing YAML diagnostics: {ex.Message}", ex); + } + } +} \ No newline at end of file diff --git a/src/Cake.Issues.Tap/Parser/TapTestPoint.cs b/src/Cake.Issues.Tap/Parser/TapTestPoint.cs new file mode 100644 index 000000000..dc6af7c5b --- /dev/null +++ b/src/Cake.Issues.Tap/Parser/TapTestPoint.cs @@ -0,0 +1,49 @@ +namespace Cake.Issues.Tap.Parser; + +using System.Collections.Generic; + +/// +/// Represents a result of a test point in a TAP file. +/// +internal class TapTestPoint +{ + /// + /// Gets or sets a value indicating whether the test point passed or failed. + /// + public bool TestStatus { get; set; } + + /// + /// Gets or sets the unique ID of the test point. + /// + public int? TestPointID { get; set; } + + /// + /// Gets or sets the description of the test point. + /// + public string Description { get; set; } + + /// + /// Gets or sets a value indicating whether the test point has been marked with TODO. + /// + public bool IsTodo { get; set; } + + /// + /// Gets or sets the explanation why the test point has been marked with TODO. + /// + public string TodoExplanation { get; set; } + + /// + /// Gets or sets a value indicating whether the test point has been marked as SKIP. + /// + public bool IsSkip { get; set; } + + /// + /// Gets or sets the explanation why the test point has been marked as SKIP. + /// + public string SkipExplanation { get; set; } + + /// + /// Gets or sets additional YAML diagnostics of the test. + /// + public Dictionary Diagnostics { get; set; } = []; +} diff --git a/src/Cake.Issues.Tap/Properties/ProjectInfo.cs b/src/Cake.Issues.Tap/Properties/ProjectInfo.cs new file mode 100644 index 000000000..c8fb369f5 --- /dev/null +++ b/src/Cake.Issues.Tap/Properties/ProjectInfo.cs @@ -0,0 +1,14 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4feda681-f168-4909-90be-f1df94043f3d")] + +[assembly: CLSCompliant(true)] +[assembly: InternalsVisibleTo("Cake.Issues.Tap.Tests")] \ No newline at end of file diff --git a/src/Cake.Issues.Tap/TapIssuesAliases.GenericLogFileFormat.cs b/src/Cake.Issues.Tap/TapIssuesAliases.GenericLogFileFormat.cs new file mode 100644 index 000000000..911b45d9d --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesAliases.GenericLogFileFormat.cs @@ -0,0 +1,26 @@ +namespace Cake.Issues.Tap; + +using Cake.Core; +using Cake.Core.Annotations; +using Cake.Issues.Tap.LogFileFormat; + +/// +/// Aliases for provider to read issues in Test Anything Protocol format. +/// +public static partial class TapIssuesAliases +{ + /// + /// Gets an instance for the log format for any file compatible with Test Anything Protocol format. + /// + /// The context. + /// Instance for the Test Anything Protocol format. + [CakePropertyAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static BaseTapLogFileFormat GenericLogFileFormat( + this ICakeContext context) + { + context.NotNull(); + + return new GenericLogFileFormat(context.Log); + } +} diff --git a/src/Cake.Issues.Tap/TapIssuesAliases.IssueProvider.cs b/src/Cake.Issues.Tap/TapIssuesAliases.IssueProvider.cs new file mode 100644 index 000000000..8a228cffc --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesAliases.IssueProvider.cs @@ -0,0 +1,131 @@ +namespace Cake.Issues.Tap; + +using Cake.Core; +using Cake.Core.Annotations; +using Cake.Core.IO; + +/// +/// Aliases to read issues from Test Anything Protocol files. +/// +public static partial class TapIssuesAliases +{ + /// + /// Gets the name of the TAP issue provider. + /// This name can be used to identify issues based on the property. + /// + /// The context. + /// Name of the TAP issue provider. + [CakePropertyAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static string TapIssuesProviderTypeName( + this ICakeContext context) + { + context.NotNull(); + + return TapIssuesProvider.ProviderTypeName; + } + + /// + /// Gets an instance of a provider for issues in a TAP compatible file from disk. + /// + /// The context. + /// Path to the TAP file. + /// The log file needs to be in the format as defined by the parameter. + /// Format of the provided TAP file. + /// Instance of a provider for issues in TAP format. + /// + /// Read issues in Test Anything Protocol format: + /// + /// + /// + /// + [CakeMethodAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static IIssueProvider TapIssuesFromFilePath( + this ICakeContext context, + FilePath logFilePath, + BaseTapLogFileFormat format) + { + context.NotNull(); + logFilePath.NotNull(); + format.NotNull(); + + return context.TapIssues(new TapIssuesSettings(logFilePath, format)); + } + + /// + /// Gets an instance of a provider for issues in a TAP compatible file from memory. + /// + /// The context. + /// Content of the TAP file. + /// The log file needs to be in the format as defined by the parameter. + /// Format of the provided TAP file. + /// Instance of a provider for issues in TAP format. + /// + /// Read issues in Test Anything Protocol format: + /// + /// + /// + /// + [CakeMethodAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static IIssueProvider TapIssuesFromContent( + this ICakeContext context, + string logFileContent, + BaseTapLogFileFormat format) + { + context.NotNull(); + logFileContent.NotNullOrWhiteSpace(); + format.NotNull(); + + return context.TapIssues(new TapIssuesSettings(logFileContent, format)); + } + + /// + /// Gets an instance of a provider for issues in a TAP compatible file using specified settings. + /// + /// The context. + /// Settings for reading the TAP file. + /// Instance of a provider for issues in TAP format. + /// + /// Read issues in Test Anything Protocol format: + /// + /// + /// + /// + [CakeMethodAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static IIssueProvider TapIssues( + this ICakeContext context, + TapIssuesSettings settings) + { + context.NotNull(); + settings.NotNull(); + + return new TapIssuesProvider(context.Log, settings); + } +} diff --git a/src/Cake.Issues.Tap/TapIssuesAliases.StylelintLogFileFormat.cs b/src/Cake.Issues.Tap/TapIssuesAliases.StylelintLogFileFormat.cs new file mode 100644 index 000000000..4e39c62a7 --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesAliases.StylelintLogFileFormat.cs @@ -0,0 +1,26 @@ +namespace Cake.Issues.Tap; + +using Cake.Core; +using Cake.Core.Annotations; +using Cake.Issues.Tap.LogFileFormat; + +/// +/// Aliases for provider to read issues in Test Anything Protocol file generated by Stylelint. +/// +public static partial class TapIssuesAliases +{ + /// + /// Gets an instance for the log format for Test Anything Protocol file generated by Stylelint. + /// + /// The context. + /// Instance for the Test Anything Protocol format generated by Stylelint. + [CakePropertyAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static BaseTapLogFileFormat StylelintLogFileFormat( + this ICakeContext context) + { + context.NotNull(); + + return new StylelintLogFileFormat(context.Log); + } +} diff --git a/src/Cake.Issues.Tap/TapIssuesAliases.TextlintLogFileFormat.cs b/src/Cake.Issues.Tap/TapIssuesAliases.TextlintLogFileFormat.cs new file mode 100644 index 000000000..8e45465a1 --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesAliases.TextlintLogFileFormat.cs @@ -0,0 +1,26 @@ +namespace Cake.Issues.Tap; + +using Cake.Core; +using Cake.Core.Annotations; +using Cake.Issues.Tap.LogFileFormat; + +/// +/// Aliases for provider to read issues in Test Anything Protocol file generated by Textlint. +/// +public static partial class TapIssuesAliases +{ + /// + /// Gets an instance for the log format for Test Anything Protocol file generated by Textlint. + /// + /// The context. + /// Instance for the Test Anything Protocol format generated by Textlint. + [CakePropertyAlias] + [CakeAliasCategory(IssuesAliasConstants.IssueProviderCakeAliasCategory)] + public static BaseTapLogFileFormat TextlintLogFileFormat( + this ICakeContext context) + { + context.NotNull(); + + return new TextlintLogFileFormat(context.Log); + } +} diff --git a/src/Cake.Issues.Tap/TapIssuesAliases.cs b/src/Cake.Issues.Tap/TapIssuesAliases.cs new file mode 100644 index 000000000..18afa4099 --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesAliases.cs @@ -0,0 +1,11 @@ +namespace Cake.Issues.Tap; + +using Cake.Core.Annotations; + +/// +/// Contains functionality for reading issues from Test Anything Protocol files. +/// +[CakeAliasCategory(IssuesAliasConstants.MainCakeAliasCategory)] +public static partial class TapIssuesAliases +{ +} diff --git a/src/Cake.Issues.Tap/TapIssuesProvider.cs b/src/Cake.Issues.Tap/TapIssuesProvider.cs new file mode 100644 index 000000000..89a0447da --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesProvider.cs @@ -0,0 +1,22 @@ +namespace Cake.Issues.Tap; + +using Cake.Core.Diagnostics; +using Cake.Issues; + +/// +/// Provider for issues in TAP compatible format. +/// +/// The Cake log context. +/// Settings for the issue provider. +public class TapIssuesProvider(ICakeLog log, TapIssuesSettings issueProviderSettings) + : BaseMultiFormatIssueProvider(log, issueProviderSettings) +{ + /// + /// Gets the name of the Markdownlint issue provider. + /// This name can be used to identify issues based on the property. + /// + public static string ProviderTypeName => typeof(TapIssuesProvider).FullName; + + /// + public override string ProviderName => "TAP"; +} \ No newline at end of file diff --git a/src/Cake.Issues.Tap/TapIssuesSettings.cs b/src/Cake.Issues.Tap/TapIssuesSettings.cs new file mode 100644 index 000000000..bb7fca28c --- /dev/null +++ b/src/Cake.Issues.Tap/TapIssuesSettings.cs @@ -0,0 +1,31 @@ +namespace Cake.Issues.Tap; + +using Cake.Core.IO; + +/// +/// Settings for . +/// +public class TapIssuesSettings : BaseMultiFormatIssueProviderSettings +{ + /// + /// Initializes a new instance of the class. + /// + /// Path to the TAP file. + /// The TAP file needs to be in the format as defined by the parameter. + /// Format of the provided log file. + public TapIssuesSettings(FilePath logFilePath, BaseTapLogFileFormat format) + : base(logFilePath, format) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// Content of the TAP file. + /// The TAP file needs to be in the format as defined by the parameter. + /// Format of the provided log file. + public TapIssuesSettings(byte[] logFileContent, BaseTapLogFileFormat format) + : base(logFileContent, format) + { + } +} \ No newline at end of file diff --git a/src/Cake.Issues.Tap/packages.lock.json b/src/Cake.Issues.Tap/packages.lock.json new file mode 100644 index 000000000..c92950ace --- /dev/null +++ b/src/Cake.Issues.Tap/packages.lock.json @@ -0,0 +1,163 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "JajbvkrBgtdRghavIjcJuNHMOja4lqBmEezbhZyqWPYh2cpLhT5mPpfC7NQVDO4IehWQum9t/nwF4v+qQGtYWg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.2.0-beta.556, )", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", + "dependencies": { + "StyleCop.Analyzers.Unstable": "1.2.0.556" + } + }, + "YamlDotNet": { + "type": "Direct", + "requested": "[16.3.0, )", + "resolved": "16.3.0", + "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "StyleCop.Analyzers.Unstable": { + "type": "Transitive", + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "cake.issues": { + "type": "Project", + "dependencies": { + "Cake.Core": "[5.0.0, )" + } + }, + "Cake.Core": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "hq0HlI6bdRoMjUQTKioVjJZxQRxT7SuIjLjfTXO7fWe/alEU4OJumxq6LhTqz06pTRC7e5OrQqXyGKJnq5I+rw==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Microsoft.CSharp": { + "type": "CentralTransitive", + "requested": "[4.7.0, )", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + } + }, + "net9.0": { + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "JajbvkrBgtdRghavIjcJuNHMOja4lqBmEezbhZyqWPYh2cpLhT5mPpfC7NQVDO4IehWQum9t/nwF4v+qQGtYWg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.2.0-beta.556, )", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", + "dependencies": { + "StyleCop.Analyzers.Unstable": "1.2.0.556" + } + }, + "YamlDotNet": { + "type": "Direct", + "requested": "[16.3.0, )", + "resolved": "16.3.0", + "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "StyleCop.Analyzers.Unstable": { + "type": "Transitive", + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "cake.issues": { + "type": "Project", + "dependencies": { + "Cake.Core": "[5.0.0, )" + } + }, + "Cake.Core": { + "type": "CentralTransitive", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "hq0HlI6bdRoMjUQTKioVjJZxQRxT7SuIjLjfTXO7fWe/alEU4OJumxq6LhTqz06pTRC7e5OrQqXyGKJnq5I+rw==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Microsoft.CSharp": { + "type": "CentralTransitive", + "requested": "[4.7.0, )", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + } + } + } +} \ No newline at end of file diff --git a/src/Cake.Issues.Terraform.Tests/packages.lock.json b/src/Cake.Issues.Terraform.Tests/packages.lock.json index c59133e62..72d4d640c 100644 --- a/src/Cake.Issues.Terraform.Tests/packages.lock.json +++ b/src/Cake.Issues.Terraform.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -266,9 +266,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.Tests/packages.lock.json b/src/Cake.Issues.Tests/packages.lock.json index 5ac8d58f8..38b6591b5 100644 --- a/src/Cake.Issues.Tests/packages.lock.json +++ b/src/Cake.Issues.Tests/packages.lock.json @@ -4,9 +4,9 @@ "net8.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", @@ -260,9 +260,9 @@ "net9.0": { "coverlet.msbuild": { "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "QptuqnNCaVlSJcO4lfAPv+9X1Ke+TW216HYD5gSkSb1mbK4K+di1MtsWa3zGCAjnTHDN2TvWVs/Wuw6+mQDhhA==" }, "Microsoft.CodeAnalysis.NetAnalyzers": { "type": "Direct", diff --git a/src/Cake.Issues.sln b/src/Cake.Issues.sln index 241d82c22..740ba5c81 100644 --- a/src/Cake.Issues.sln +++ b/src/Cake.Issues.sln @@ -286,6 +286,21 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{2CC3359B ..\nuspec\nuget\Cake.Issues.Sarif.nuspec = ..\nuspec\nuget\Cake.Issues.Sarif.nuspec EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tap", "Tap", "{D3CEEB00-3E23-40F3-8BFE-321AC511E725}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Issues.Tap", "Cake.Issues.Tap\Cake.Issues.Tap.csproj", "{3B3452CA-3B1A-4390-B5D2-A906E2AD64B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Issues.Tap.Tests", "Cake.Issues.Tap.Tests\Cake.Issues.Tap.Tests.csproj", "{58C5D37D-18B1-4F44-9527-F515C319C7BE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{9887889A-9AAC-440F-9D82-5D297A731785}" + ProjectSection(SolutionItems) = preProject + ..\nuspec\nuget\Cake.Frosting.Issues.Tap.md = ..\nuspec\nuget\Cake.Frosting.Issues.Tap.md + ..\nuspec\nuget\Cake.Frosting.Issues.Tap.nuspec = ..\nuspec\nuget\Cake.Frosting.Issues.Tap.nuspec + ..\nuspec\nuget\Cake.Frosting.Issues.Tap.targets = ..\nuspec\nuget\Cake.Frosting.Issues.Tap.targets + ..\nuspec\nuget\Cake.Issues.Tap.md = ..\nuspec\nuget\Cake.Issues.Tap.md + ..\nuspec\nuget\Cake.Issues.Tap.nuspec = ..\nuspec\nuget\Cake.Issues.Tap.nuspec + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -432,6 +447,14 @@ Global {7BFDC8EC-9CFB-4A15-8B00-41A922DD6019}.Debug|Any CPU.Build.0 = Debug|Any CPU {7BFDC8EC-9CFB-4A15-8B00-41A922DD6019}.Release|Any CPU.ActiveCfg = Release|Any CPU {7BFDC8EC-9CFB-4A15-8B00-41A922DD6019}.Release|Any CPU.Build.0 = Release|Any CPU + {3B3452CA-3B1A-4390-B5D2-A906E2AD64B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B3452CA-3B1A-4390-B5D2-A906E2AD64B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B3452CA-3B1A-4390-B5D2-A906E2AD64B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B3452CA-3B1A-4390-B5D2-A906E2AD64B4}.Release|Any CPU.Build.0 = Release|Any CPU + {58C5D37D-18B1-4F44-9527-F515C319C7BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58C5D37D-18B1-4F44-9527-F515C319C7BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58C5D37D-18B1-4F44-9527-F515C319C7BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58C5D37D-18B1-4F44-9527-F515C319C7BE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -508,6 +531,10 @@ Global {FC68CD80-8D3E-4614-BD59-90DC16DE89A5} = {49FA3C0C-6261-41D0-9644-D6AFEDF89E6D} {C05B7E5C-28D3-4F27-AC8B-ED17277398C7} = {1FDAECA8-746E-4B18-BC89-D0876171CE58} {2CC3359B-2DBA-4D41-BAF7-86342B8A1729} = {43506DCC-B86E-418A-8626-F5C7E053B2D5} + {D3CEEB00-3E23-40F3-8BFE-321AC511E725} = {D404813F-4EBD-4093-BA1C-B5BFEB781A65} + {3B3452CA-3B1A-4390-B5D2-A906E2AD64B4} = {D3CEEB00-3E23-40F3-8BFE-321AC511E725} + {58C5D37D-18B1-4F44-9527-F515C319C7BE} = {D3CEEB00-3E23-40F3-8BFE-321AC511E725} + {9887889A-9AAC-440F-9D82-5D297A731785} = {D3CEEB00-3E23-40F3-8BFE-321AC511E725} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E9F2EC94-9A1B-4834-A464-E5208B210F11} diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 004789605..056ea91a7 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -10,7 +10,7 @@ - + @@ -20,9 +20,10 @@ - + + @@ -43,7 +44,7 @@ - + diff --git a/src/Images/Dockerfile.net8-bookworm b/src/Images/Dockerfile.net8-bookworm index 1dfb9652a..ac126fa06 100644 --- a/src/Images/Dockerfile.net8-bookworm +++ b/src/Images/Dockerfile.net8-bookworm @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0.404-bookworm-slim@sha256:032381bcea86fa0a408af5df63a930f1ff5b03116c940a7cd744d3b648e66749 +FROM mcr.microsoft.com/dotnet/sdk:8.0.404-bookworm-slim@sha256:f25e4f51fa06e3b14af1a1135013a3e96055b76caa0e76afc0096d64a77879fd RUN wget https://aka.ms/getvsdbgsh && \ sh getvsdbgsh -v latest -l /vsdbg \ No newline at end of file diff --git a/src/Images/Dockerfile.net9-bookworm b/src/Images/Dockerfile.net9-bookworm index f55e24169..e78664e44 100644 --- a/src/Images/Dockerfile.net9-bookworm +++ b/src/Images/Dockerfile.net9-bookworm @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:9.0.101-bookworm-slim@sha256:fe8ceeca5ee197deba95419e3b85c32744970b730ae11645e13f1cb74a848d98 +FROM mcr.microsoft.com/dotnet/sdk:9.0.101-bookworm-slim@sha256:3fcf6f1e809c0553f9feb222369f58749af314af6f063f389cbd2f913b4ad556 RUN wget https://aka.ms/getvsdbgsh && \ sh getvsdbgsh -v latest -l /vsdbg \ No newline at end of file diff --git a/tests/Cake.Issues.Reporting.Generic/frosting/build/BuildContext.cs b/tests/Cake.Issues.Reporting.Generic/frosting/build/BuildContext.cs index 6547cbbaf..15ebb3893 100644 --- a/tests/Cake.Issues.Reporting.Generic/frosting/build/BuildContext.cs +++ b/tests/Cake.Issues.Reporting.Generic/frosting/build/BuildContext.cs @@ -13,7 +13,7 @@ public BuildContext(ICakeContext context) : base(context) { this.RepoRootFolder = context.MakeAbsolute(context.Directory("./../..")); - this.TemplateGalleryFolder = this.RepoRootFolder.Combine("../../docs/input/docs/report-formats/generic/templates"); + this.TemplateGalleryFolder = this.RepoRootFolder.Combine("../../docs/input/documentation/report-formats/generic/templates"); this.Issues = new List(); } diff --git a/tests/Cake.Issues.Reporting.Generic/script-runner/build.cake b/tests/Cake.Issues.Reporting.Generic/script-runner/build.cake index 8f0d44afc..effbe39ec 100644 --- a/tests/Cake.Issues.Reporting.Generic/script-runner/build.cake +++ b/tests/Cake.Issues.Reporting.Generic/script-runner/build.cake @@ -16,7 +16,7 @@ public class BuildData public BuildData(ICakeContext context) { this.RepoRootFolder = context.MakeAbsolute(context.Directory("./")); - this.TemplateGalleryFolder = this.RepoRootFolder.Combine("../../../docs/input/docs/report-formats/generic/templates"); + this.TemplateGalleryFolder = this.RepoRootFolder.Combine("../../../docs/input/documentation/report-formats/generic/templates"); this.Issues = new List(); }