From 42e5585cf321198bf3bfd518a0ae2cee7a11d568 Mon Sep 17 00:00:00 2001 From: Michael Mainer <8527305+MIchaelMainer@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:37:38 -0800 Subject: [PATCH 1/4] Convert pipeline to 1ES --- apidoctor.validation.yml | 126 ++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 60 deletions(-) diff --git a/apidoctor.validation.yml b/apidoctor.validation.yml index dd00d0ff2a8..5e8160d2564 100644 --- a/apidoctor.validation.yml +++ b/apidoctor.validation.yml @@ -1,8 +1,7 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -# Pipeline for validating Microsoft Graph docs using API Doctor - +# This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool. +# Please make sure to check all the converted content, it is your team's responsibility to make sure that the pipeline is still valid and functions as expected. +# This pipeline will be extended to the OneESPT template +# If you are not using the E+D shared hosted pool with windows-2022, replace the pool section with your hosted pool, os, and image name. If you are using a Linux image, you must specify an additional windows image for SDL: https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/overview#how-to-specify-a-windows-pool-for-the-sdl-source-analysis-stage trigger: branches: include: @@ -11,7 +10,6 @@ trigger: paths: include: - api-reference/* - pr: branches: include: @@ -20,58 +18,66 @@ pr: paths: include: - api-reference/* - -pool: - vmImage: 'windows-latest' - parameters: - - name: useNuGetPackage - displayName: "Use API Doctor NuGet Package (If disabled, source code from GitHub will be used)?" - type: boolean - default: true - - - name: apiDoctorNuGetVersion - default: "1.2.2312.152" - displayName: "API Doctor NuGet Package Version" - - - name: apiDoctorGitRepoUrl - default: "https://github.com/OneDrive/apidoctor.git" - displayName: "API Doctor Git Repo URL" - - - name: apiDoctorGitBranch - default: "master" - displayName: "API Doctor Git branch" - -steps: - - checkout: self - displayName: 'Checkout Microsoft Graph docs' - clean: true - fetchDepth: 1 - - - task: UseDotNet@2 - displayName: 'Use .NET Core SDK 6.x' - inputs: - version: 6.x - - - task: PowerShell@2 - displayName: 'Run API Doctor Script' - env: - USE_NUGET_PACKAGE: ${{ parameters.useNuGetPackage }} - API_DOCTOR_NUGET_VERSION: ${{ parameters.apiDoctorNuGetVersion }} - API_DOCTOR_GIT_REPO_URL: ${{ parameters.apiDoctorGitRepoUrl }} - API_DOCTOR_GIT_BRANCH: ${{ parameters.apiDoctorGitBranch }} - inputs: - filePath: Test-Docs.ps1 - arguments: -cleanUp - script: | - Write-Host "Executing API Doctor script with the following parameters:" - - if($env:USE_NUGET_PACKAGE -eq 'True') { - Write-Host " - API Doctor NuGet Version: $($env:API_DOCTOR_NUGET_VERSION)" - } - else - { - Write-Host "API Doctor Git Repo:" - Write-Host "- URL: $($env:API_DOCTOR_GIT_REPO_URL)" - Write-Host "- Branch: $($env:API_DOCTOR_GIT_BRANCH)" - } +- name: useNuGetPackage + displayName: "Use API Doctor NuGet Package (If disabled, source code from GitHub will be used)?" + type: boolean + default: true +- name: apiDoctorNuGetVersion + default: "1.2.2312.152" + displayName: "API Doctor NuGet Package Version" +- name: apiDoctorGitRepoUrl + default: "https://github.com/OneDrive/apidoctor.git" + displayName: "API Doctor Git Repo URL" +- name: apiDoctorGitBranch + default: "master" + displayName: "API Doctor Git branch" +resources: + repositories: + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates + parameters: + pool: + name: Azure-Pipelines-1ESPT-ExDShared + image: windows-2022 + os: windows + customBuildTags: + - ES365AIMigrationTooling + stages: + - stage: stage + jobs: + - job: job + steps: + - checkout: self + displayName: 'Checkout Microsoft Graph docs' + clean: true + fetchDepth: 1 + - task: UseDotNet@2 + displayName: 'Use .NET Core SDK 6.x' + inputs: + version: 6.x + - task: PowerShell@2 + displayName: 'Run API Doctor Script' + env: + USE_NUGET_PACKAGE: ${{ parameters.useNuGetPackage }} + API_DOCTOR_NUGET_VERSION: ${{ parameters.apiDoctorNuGetVersion }} + API_DOCTOR_GIT_REPO_URL: ${{ parameters.apiDoctorGitRepoUrl }} + API_DOCTOR_GIT_BRANCH: ${{ parameters.apiDoctorGitBranch }} + inputs: + filePath: Test-Docs.ps1 + arguments: -cleanUp + script: | + Write-Host "Executing API Doctor script with the following parameters:" + if($env:USE_NUGET_PACKAGE -eq 'True') { + Write-Host " - API Doctor NuGet Version: $($env:API_DOCTOR_NUGET_VERSION)" + } + else + { + Write-Host "API Doctor Git Repo:" + Write-Host "- URL: $($env:API_DOCTOR_GIT_REPO_URL)" + Write-Host "- Branch: $($env:API_DOCTOR_GIT_BRANCH)" + } \ No newline at end of file From 219ccf362cccd6e5030c41c104eaa574c444b645 Mon Sep 17 00:00:00 2001 From: Millicent Achieng Date: Sat, 27 Jan 2024 21:00:11 +0300 Subject: [PATCH 2/4] Configure API Doctor validation pipeline to excute on v1.0 and beta docs in one job --- Test-Docs.ps1 | 22 ++++-- apidoctor.validation.yml | 153 +++++++++++++++++++++++---------------- 2 files changed, 108 insertions(+), 67 deletions(-) diff --git a/Test-Docs.ps1 b/Test-Docs.ps1 index 6d8d1c5b9c9..3bfca00dc1b 100644 --- a/Test-Docs.ps1 +++ b/Test-Docs.ps1 @@ -8,18 +8,28 @@ $apiDoctorNuGetVersion = $env:API_DOCTOR_NUGET_VERSION $apiDoctorGitRepoUrl = $env:API_DOCTOR_GIT_REPO_URL $apiDoctorGitBranch = $env:API_DOCTOR_GIT_BRANCH $docsRepoPath = (Get-Location).Path -$docsSubPath = $env:APIDOCTOR_DOCSUBPATH +$docsSubPath = $env:DOCS_SUB_PATH $downloadedApiDoctor = $false $downloadedNuGet = $false -Write-Host "Repository location: ", $docsRepoPath +if ($useNuGetPackage -eq $true) { + Write-Host "API Doctor NuGet Version: ", $apiDoctorNuGetVersion +} +else { + Write-Host "API Doctor Git Repo:" + Write-Host "- URL: $apiDoctorGitRepoUrl" + Write-Host "- Branch: $apiDoctorGitBranch" +} + +Write-Host "Repository Location: ", $docsRepoPath +Write-Host "Docs Subpath: ", $docsSubPath # Check if API Doctor source has been set -if ($useNuGetPackage -and [string]::IsNullOrWhiteSpace($apiDoctorNuGetVersion)) { +if ($useNuGetPackage -eq $true -and [string]::IsNullOrWhiteSpace($apiDoctorNuGetVersion)) { Write-Host "API Doctor NuGet package version has not been set. Aborting..." exit 1 } -elseif (!$useNuGetPackage -and [string]::IsNullOrWhiteSpace($apiDoctorGitRepoUrl)) { +elseif ($useNuGetPackage -eq $false -and [string]::IsNullOrWhiteSpace($apiDoctorGitRepoUrl)) { Write-Host "API Doctor Git Repo URL has not been set. Aborting..." exit 1 } @@ -56,7 +66,7 @@ else { $apidocPath = Join-Path $docsRepoPath -ChildPath "apidoctor" New-Item -ItemType Directory -Force -Path $apidocPath - if ($useNuGetPackage) { + if ($useNuGetPackage -eq $true) { # Install API Doctor from NuGet Write-Host "Running nuget.exe from ", $nugetPath $nugetParams = "install", "ApiDoctor", "-Version", $apiDoctorNuGetVersion, "-OutputDirectory", $apidocPath, "-NonInteractive", "-DisableParallelProcessing" @@ -64,7 +74,7 @@ else { if ($LastExitCode -ne 0) { # NuGet error, so we can't proceed - Write-Host "Error installing API Doctor from NuGet. Aborting." + Write-Host "Error installing API Doctor from NuGet. Aborting..." Remove-Item $nugetPath exit $LastExitCode } diff --git a/apidoctor.validation.yml b/apidoctor.validation.yml index 5e8160d2564..02549eb4df8 100644 --- a/apidoctor.validation.yml +++ b/apidoctor.validation.yml @@ -1,43 +1,51 @@ -# This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool. -# Please make sure to check all the converted content, it is your team's responsibility to make sure that the pipeline is still valid and functions as expected. -# This pipeline will be extended to the OneESPT template -# If you are not using the E+D shared hosted pool with windows-2022, replace the pool section with your hosted pool, os, and image name. If you are using a Linux image, you must specify an additional windows image for SDL: https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/overview#how-to-specify-a-windows-pool-for-the-sdl-source-analysis-stage +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +# Pipeline for validating Microsoft Graph docs using API Doctor + trigger: branches: include: - - live - - main + - live + - main paths: include: - - api-reference/* + - api-reference/* + pr: branches: include: - - live - - main + - live + - main paths: include: - - api-reference/* + - api-reference/* + parameters: -- name: useNuGetPackage - displayName: "Use API Doctor NuGet Package (If disabled, source code from GitHub will be used)?" - type: boolean - default: true -- name: apiDoctorNuGetVersion - default: "1.2.2312.152" - displayName: "API Doctor NuGet Package Version" -- name: apiDoctorGitRepoUrl - default: "https://github.com/OneDrive/apidoctor.git" - displayName: "API Doctor Git Repo URL" -- name: apiDoctorGitBranch - default: "master" - displayName: "API Doctor Git branch" + - name: useNuGetPackage + displayName: "Use API Doctor NuGet Package (If disabled, source code from GitHub will be used)?" + type: boolean + default: true + + - name: apiDoctorNuGetVersion + default: "1.2.2312.152" + displayName: "API Doctor NuGet Package Version" + + - name: apiDoctorGitRepoUrl + default: "https://github.com/OneDrive/apidoctor.git" + displayName: "API Doctor Git Repo URL" + + - name: apiDoctorGitBranch + default: "master" + displayName: "API Doctor Git branch" + resources: repositories: - - repository: 1ESPipelineTemplates - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release + extends: template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates parameters: @@ -46,38 +54,61 @@ extends: image: windows-2022 os: windows customBuildTags: - - ES365AIMigrationTooling + - ES365AIMigrationTooling + stages: - - stage: stage - jobs: - - job: job - steps: - - checkout: self - displayName: 'Checkout Microsoft Graph docs' - clean: true - fetchDepth: 1 - - task: UseDotNet@2 - displayName: 'Use .NET Core SDK 6.x' - inputs: - version: 6.x - - task: PowerShell@2 - displayName: 'Run API Doctor Script' - env: - USE_NUGET_PACKAGE: ${{ parameters.useNuGetPackage }} - API_DOCTOR_NUGET_VERSION: ${{ parameters.apiDoctorNuGetVersion }} - API_DOCTOR_GIT_REPO_URL: ${{ parameters.apiDoctorGitRepoUrl }} - API_DOCTOR_GIT_BRANCH: ${{ parameters.apiDoctorGitBranch }} - inputs: - filePath: Test-Docs.ps1 - arguments: -cleanUp - script: | - Write-Host "Executing API Doctor script with the following parameters:" - if($env:USE_NUGET_PACKAGE -eq 'True') { - Write-Host " - API Doctor NuGet Version: $($env:API_DOCTOR_NUGET_VERSION)" - } - else - { - Write-Host "API Doctor Git Repo:" - Write-Host "- URL: $($env:API_DOCTOR_GIT_REPO_URL)" - Write-Host "- Branch: $($env:API_DOCTOR_GIT_BRANCH)" - } \ No newline at end of file + - stage: ValidateDocs + displayName: "Validate docs" + jobs: + - job: RunAPIDoctorScript + displayName: "Run API Doctor script" + variables: + USE_NUGET_PACKAGE: ${{ parameters.useNuGetPackage }} + API_DOCTOR_NUGET_VERSION: ${{ parameters.apiDoctorNuGetVersion }} + API_DOCTOR_GIT_REPO_URL: ${{ parameters.apiDoctorGitRepoUrl }} + API_DOCTOR_GIT_BRANCH: ${{ parameters.apiDoctorGitBranch }} + steps: + - pwsh: | + Write-Host "Executing API Doctor script with the following parameters:" + if ($env:USE_NUGET_PACKAGE -eq 'True') { + if ([string]::IsNullOrWhiteSpace($env:USE_NUGET_PACKAGE)) { + Write-Host "API Doctor NuGet package version has not been set. Aborting..." + exit 1 + } + Write-Host " - API Doctor NuGet Version: $($env:API_DOCTOR_NUGET_VERSION)" + } + else { + if ([string]::IsNullOrWhiteSpace($env:API_DOCTOR_GIT_REPO_URL)) { + Write-Host "API Doctor Git Repo URL has not been set. Aborting..." + exit 1 + } + Write-Host " - API Doctor Git Repo URL: $($env:API_DOCTOR_GIT_REPO_URL)" + Write-Host " - API Doctor Git Branch: $($env:API_DOCTOR_GIT_BRANCH)" + } + displayName: "Evaluate pipeline parameters" + + - checkout: self + displayName: "Checkout Microsoft Graph docs" + clean: true + fetchDepth: 1 + + - task: UseDotNet@2 + displayName: "Use .NET Core SDK 6.x" + inputs: + version: 6.x + + - task: PowerShell@2 + displayName: "Validate v1.0 docs" + env: + DOCS_SUB_PATH: \api-reference\v1.0 + inputs: + filePath: Test-Docs.ps1 + arguments: -cleanUp + + - task: PowerShell@2 + displayName: "Validate beta docs" + env: + DOCS_SUB_PATH: \api-reference\beta + inputs: + filePath: Test-Docs.ps1 + arguments: -cleanUp \ No newline at end of file From 3463af20d1b918128b7c4e809fe2e5d54ba16f47 Mon Sep 17 00:00:00 2001 From: Millicent Achieng Date: Sun, 28 Jan 2024 05:28:02 +0300 Subject: [PATCH 3/4] Add CredScan suppressions --- .../.config/CredScanSuppressions.json | 57 +++++++++++++++++++ Test-Docs.ps1 | 2 +- apidoctor.validation.yml | 7 ++- 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 .azure-pipelines/.config/CredScanSuppressions.json diff --git a/.azure-pipelines/.config/CredScanSuppressions.json b/.azure-pipelines/.config/CredScanSuppressions.json new file mode 100644 index 00000000000..6deef3dc956 --- /dev/null +++ b/.azure-pipelines/.config/CredScanSuppressions.json @@ -0,0 +1,57 @@ +{ + "tool": "Credential Scanner", + "suppressions": [ + { + "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", + "_justification": "authenticationmethod-resetpassword.md line 184 Sample password in JSON example" + }, + { + "hash": "Dl8lVS64t7J9YPKUCrs6IvmGgwA9lkG/9TTJvKLyIfw=", + "_justification": "externallyaccessibleawsstoragebucketfinding-list.md line 118 Sample Azure storage account access key in JSON example" + }, + { + "hash": "6uNofS5cYXMBA0lB/CvV80FLhrnf5Pgi8z1A4ouVNzE=", + "_justification": "security-passivednsrecord-get.md line 66 Sample general symmetric key in HTTP request example" + }, + { + "hash": "DqnzqSuPoql8CRa0NwVQjvMWVEdB/1JVZhMLf5a7caw=", + "_justification": "serviceprincipal-createpasswordsinglesignoncredentials.md line 90 Sample common default password in JSON example" + }, + { + "hash": "YGEAcd2dkpni4zKf2vds0XCBd4ETjyy6VSqP6wF8K4Y=", + "_justification": "security-whoishistoryrecord-get.md line 64 Sample symmetric key in HTTP request example" + }, + { + "hash": "yuNZ6vrD0RfK/gi2biOeRwncQ7QBOUsptruQ9gF4fGE=", + "_justification": "user-changepassword.md line 67 Sample password in JSON example" + }, + { + "hash": "XQQz4syNsXVwCQBB+ROKXms/PeYf1xxMiu93rtFGQzE=", + "_justification": "user-validatepassword.md line 69 Sample password in JSON example" + }, + { + "hash": "449XS9qz2RDCs4hRlMopVw7CCRxp01qRBUh152CBj1w=", + "_justification": "send-sharing-invite-go-snippets.md line 40 Sample password in JSON example" + }, + { + "hash": "ezuuJrz3tJVuhDI3QayaAQnoJmJ7OdePNofJCf9yRos=", + "_justification": "update-planneruser-go-snippets.md line 22 Sample general symmetric key in code snippets" + }, + { + "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", + "_justification": "passwordauthenticationmethod-resetpassword-adminprovided-java-snippets.md line 9 Sample password in code snippets" + }, + { + "hash": "pFG5S9mElRlcOZ+ByQRi1yN4nzkV+sW0DBJStZwB13I=", + "_justification": "application-saml-sso-configure-api.md line 1004 Sample general symmetric key in JSON example" + }, + { + "hash": "lrucAcVPXoYUsoNE7NH+dQDxA5dKVl04BhLUkL2i+k8=", + "_justification": "auth-v2-service.md line 166 Sample Azure AD client secret in cURL example" + }, + { + "hash": "Yq6kyr67P2hd5i71eNVIOL8EHosrVwv9Mg0R6PdiF6c=", + "_justification": "authenticationmethods-get-started.md line 451 Sample general password in JSON example" + } + ] + } \ No newline at end of file diff --git a/Test-Docs.ps1 b/Test-Docs.ps1 index 3bfca00dc1b..1d3bff7dc27 100644 --- a/Test-Docs.ps1 +++ b/Test-Docs.ps1 @@ -36,7 +36,7 @@ elseif ($useNuGetPackage -eq $false -and [string]::IsNullOrWhiteSpace($apiDoctor # Check if docs subpath has been set if ([string]::IsNullOrWhiteSpace($docsSubPath)) { - Write-Host "API Doctor subpath has not been set. Aborting..." + Write-Host "Docs subpath has not been set. Aborting..." exit 1 } diff --git a/apidoctor.validation.yml b/apidoctor.validation.yml index 02549eb4df8..71d227506b5 100644 --- a/apidoctor.validation.yml +++ b/apidoctor.validation.yml @@ -53,6 +53,9 @@ extends: name: Azure-Pipelines-1ESPT-ExDShared image: windows-2022 os: windows + sdl: + credscan: + suppressionsFile: $(Build.SourcesDirectory)\.azure-pipelines\.config\CredScanSuppressions.json customBuildTags: - ES365AIMigrationTooling @@ -70,7 +73,7 @@ extends: steps: - pwsh: | Write-Host "Executing API Doctor script with the following parameters:" - if ($env:USE_NUGET_PACKAGE -eq 'True') { + if ($env:USE_NUGET_PACKAGE -eq $true) { if ([string]::IsNullOrWhiteSpace($env:USE_NUGET_PACKAGE)) { Write-Host "API Doctor NuGet package version has not been set. Aborting..." exit 1 @@ -111,4 +114,4 @@ extends: DOCS_SUB_PATH: \api-reference\beta inputs: filePath: Test-Docs.ps1 - arguments: -cleanUp \ No newline at end of file + arguments: -cleanUp From bd0e5991e1240b3a7d71779a82a9ee8d11305779 Mon Sep 17 00:00:00 2001 From: Millicent Achieng Date: Mon, 29 Jan 2024 15:11:56 +0300 Subject: [PATCH 4/4] Remove CRLF from suppressions file --- .../.config/CredScanSuppressions.json | 114 +++++++++--------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/.azure-pipelines/.config/CredScanSuppressions.json b/.azure-pipelines/.config/CredScanSuppressions.json index 6deef3dc956..a2adf2483d0 100644 --- a/.azure-pipelines/.config/CredScanSuppressions.json +++ b/.azure-pipelines/.config/CredScanSuppressions.json @@ -1,57 +1,57 @@ -{ - "tool": "Credential Scanner", - "suppressions": [ - { - "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", - "_justification": "authenticationmethod-resetpassword.md line 184 Sample password in JSON example" - }, - { - "hash": "Dl8lVS64t7J9YPKUCrs6IvmGgwA9lkG/9TTJvKLyIfw=", - "_justification": "externallyaccessibleawsstoragebucketfinding-list.md line 118 Sample Azure storage account access key in JSON example" - }, - { - "hash": "6uNofS5cYXMBA0lB/CvV80FLhrnf5Pgi8z1A4ouVNzE=", - "_justification": "security-passivednsrecord-get.md line 66 Sample general symmetric key in HTTP request example" - }, - { - "hash": "DqnzqSuPoql8CRa0NwVQjvMWVEdB/1JVZhMLf5a7caw=", - "_justification": "serviceprincipal-createpasswordsinglesignoncredentials.md line 90 Sample common default password in JSON example" - }, - { - "hash": "YGEAcd2dkpni4zKf2vds0XCBd4ETjyy6VSqP6wF8K4Y=", - "_justification": "security-whoishistoryrecord-get.md line 64 Sample symmetric key in HTTP request example" - }, - { - "hash": "yuNZ6vrD0RfK/gi2biOeRwncQ7QBOUsptruQ9gF4fGE=", - "_justification": "user-changepassword.md line 67 Sample password in JSON example" - }, - { - "hash": "XQQz4syNsXVwCQBB+ROKXms/PeYf1xxMiu93rtFGQzE=", - "_justification": "user-validatepassword.md line 69 Sample password in JSON example" - }, - { - "hash": "449XS9qz2RDCs4hRlMopVw7CCRxp01qRBUh152CBj1w=", - "_justification": "send-sharing-invite-go-snippets.md line 40 Sample password in JSON example" - }, - { - "hash": "ezuuJrz3tJVuhDI3QayaAQnoJmJ7OdePNofJCf9yRos=", - "_justification": "update-planneruser-go-snippets.md line 22 Sample general symmetric key in code snippets" - }, - { - "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", - "_justification": "passwordauthenticationmethod-resetpassword-adminprovided-java-snippets.md line 9 Sample password in code snippets" - }, - { - "hash": "pFG5S9mElRlcOZ+ByQRi1yN4nzkV+sW0DBJStZwB13I=", - "_justification": "application-saml-sso-configure-api.md line 1004 Sample general symmetric key in JSON example" - }, - { - "hash": "lrucAcVPXoYUsoNE7NH+dQDxA5dKVl04BhLUkL2i+k8=", - "_justification": "auth-v2-service.md line 166 Sample Azure AD client secret in cURL example" - }, - { - "hash": "Yq6kyr67P2hd5i71eNVIOL8EHosrVwv9Mg0R6PdiF6c=", - "_justification": "authenticationmethods-get-started.md line 451 Sample general password in JSON example" - } - ] - } \ No newline at end of file +{ + "tool": "Credential Scanner", + "suppressions": [ + { + "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", + "_justification": "authenticationmethod-resetpassword.md line 184 Sample password in JSON example" + }, + { + "hash": "Dl8lVS64t7J9YPKUCrs6IvmGgwA9lkG/9TTJvKLyIfw=", + "_justification": "externallyaccessibleawsstoragebucketfinding-list.md line 118 Sample Azure storage account access key in JSON example" + }, + { + "hash": "6uNofS5cYXMBA0lB/CvV80FLhrnf5Pgi8z1A4ouVNzE=", + "_justification": "security-passivednsrecord-get.md line 66 Sample general symmetric key in HTTP request example" + }, + { + "hash": "DqnzqSuPoql8CRa0NwVQjvMWVEdB/1JVZhMLf5a7caw=", + "_justification": "serviceprincipal-createpasswordsinglesignoncredentials.md line 90 Sample common default password in JSON example" + }, + { + "hash": "YGEAcd2dkpni4zKf2vds0XCBd4ETjyy6VSqP6wF8K4Y=", + "_justification": "security-whoishistoryrecord-get.md line 64 Sample symmetric key in HTTP request example" + }, + { + "hash": "yuNZ6vrD0RfK/gi2biOeRwncQ7QBOUsptruQ9gF4fGE=", + "_justification": "user-changepassword.md line 67 Sample password in JSON example" + }, + { + "hash": "XQQz4syNsXVwCQBB+ROKXms/PeYf1xxMiu93rtFGQzE=", + "_justification": "user-validatepassword.md line 69 Sample password in JSON example" + }, + { + "hash": "449XS9qz2RDCs4hRlMopVw7CCRxp01qRBUh152CBj1w=", + "_justification": "send-sharing-invite-go-snippets.md line 40 Sample password in JSON example" + }, + { + "hash": "ezuuJrz3tJVuhDI3QayaAQnoJmJ7OdePNofJCf9yRos=", + "_justification": "update-planneruser-go-snippets.md line 22 Sample general symmetric key in code snippets" + }, + { + "hash": "4HFMaPyHf2Oq0UHssXYQ+IzVZIRgG18pB/v4dtou7sw=", + "_justification": "passwordauthenticationmethod-resetpassword-adminprovided-java-snippets.md line 9 Sample password in code snippets" + }, + { + "hash": "pFG5S9mElRlcOZ+ByQRi1yN4nzkV+sW0DBJStZwB13I=", + "_justification": "application-saml-sso-configure-api.md line 1004 Sample general symmetric key in JSON example" + }, + { + "hash": "lrucAcVPXoYUsoNE7NH+dQDxA5dKVl04BhLUkL2i+k8=", + "_justification": "auth-v2-service.md line 166 Sample Azure AD client secret in cURL example" + }, + { + "hash": "Yq6kyr67P2hd5i71eNVIOL8EHosrVwv9Mg0R6PdiF6c=", + "_justification": "authenticationmethods-get-started.md line 451 Sample general password in JSON example" + } + ] +} \ No newline at end of file