Convert repo to use compliance template

This commit is contained in:
James Parsons 2023-12-06 21:05:19 -08:00
Родитель 4846209066
Коммит 74605a0a5b
35 изменённых файлов: 284 добавлений и 38 удалений

Просмотреть файл

@ -0,0 +1,31 @@
stages:
- template: security/full/v1.yml@templates
parameters:
windowsPoolName: '$(HostedWinVS2019)'
windowsImageOverride: 'none'
stageDependsOn: ['validate']
scanArtifacts: ['Symbols']
antiMalwareEnabled: true
binSkimEnabled: true
credScanEnabled: true
credScanSuppressionFile: '$(System.DefaultWorkingDirectory)\.config\CredScanSuppressions.json'
sourceGdnSuppressionFile: '$(System.DefaultWorkingDirectory)\.config\guardian\source.gdnsuppress'
tsaConfigFile: '$(System.DefaultWorkingDirectory)\.build\automation\tsaoptions-v2.json'
policheckLocScanEnabled: true
policheckExclusionFilesFolder: '$(System.DefaultWorkingDirectory)\.config\policheck'
policheckSrcScanFolder: '$(System.DefaultWorkingDirectory)'
policheckChsScanFolder: '$(System.DefaultWorkingDirectory)'
policheckChtScanFolder: '$(System.DefaultWorkingDirectory)'
policheckCsyScanFolder: '$(System.DefaultWorkingDirectory)'
policheckDeuScanFolder: '$(System.DefaultWorkingDirectory)'
policheckEsnScanFolder: '$(System.DefaultWorkingDirectory)'
policheckFraScanFolder: '$(System.DefaultWorkingDirectory)'
policheckItaScanFolder: '$(System.DefaultWorkingDirectory)'
policheckJpnScanFolder: '$(System.DefaultWorkingDirectory)'
policheckKorScanFolder: '$(System.DefaultWorkingDirectory)'
policheckPlkScanFolder: '$(System.DefaultWorkingDirectory)'
policheckPtbScanFolder: '$(System.DefaultWorkingDirectory)'
policheckRusScanFolder: '$(System.DefaultWorkingDirectory)'
policheckTrkScanFolder: '$(System.DefaultWorkingDirectory)'
policheckGdnSuppressionFilesFolder: '$(System.DefaultWorkingDirectory)\.config\guardian'
apiScanSoftwareName: 'Xamarin.PropertyEditing'

Просмотреть файл

@ -24,7 +24,14 @@ stages:
inputs:
solution: build.proj
msbuildVersion: "15.0"
msbuildArguments: '/restore /p:Release=true /t:Build'
msbuildArguments: '/restore /p:Release=true /p:Out=$(Build.ArtifactStagingDirectory) /t:Build'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifacts'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'Symbols'
condition: succeededOrFailed()
- task: MSBuild@1
displayName: 'Run Tests'

Просмотреть файл

@ -1,6 +1,4 @@
{
"tool": "Credential Scanner",
"suppressions": [
]
}
"suppressions": []
}

Двоичные данные
.config/Policheck/Rule-zh-all.mdb

Двоичный файл не отображается.

Просмотреть файл

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PoliCheckExclusions>
<!-- NOTE: All names you provide must be in Upper Case, as apparently that is the string comparison PoliCheck does ¯\_(ツ)_/¯ -->
<!-- Each of these exclusions is a folder name - if \[name]\ exists in the file path, it will be skipped -->
<!--<Exclusion Type="FolderPathFull">ABC|XYZ</Exclusion>-->
<!-- Each of these exclusions is a folder name - if any folder or file starts with "\[name]", it will be
skipped -->
<!--<Exclusion Type="FolderPathStart">ABC|XYZ</Exclusion>-->
<!-- Each of these file types will be completely skipped for the entire scan -->
<!--<Exclusion Type="FileType">.ABC|.XYZ</Exclusion>-->
<Exclusion Type="FileType">.RESX</Exclusion>
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<!--<Exclusion Type="FileName">ABC.TXT|XYZ.CS</Exclusion>-->
</PoliCheckExclusions>

Просмотреть файл

@ -0,0 +1,11 @@
{
"version": "latest",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2022-11-15 05:29:22Z",
"lastUpdatedDate": "2022-11-15 05:29:22Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:42Z",
"lastUpdatedDate": "2023-11-16 06:08:42Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:41Z",
"lastUpdatedDate": "2023-11-16 06:08:41Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:39Z",
"lastUpdatedDate": "2023-11-16 06:08:39Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:48Z",
"lastUpdatedDate": "2023-11-16 06:08:48Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:44Z",
"lastUpdatedDate": "2023-11-16 06:08:44Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:41Z",
"lastUpdatedDate": "2023-11-16 06:08:41Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,11 @@
{
"version": "latest",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2022-11-30 02:05:20Z",
"lastUpdatedDate": "2022-11-30 02:05:20Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:44Z",
"lastUpdatedDate": "2023-11-16 06:08:44Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:46Z",
"lastUpdatedDate": "2023-11-16 06:08:46Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:47Z",
"lastUpdatedDate": "2023-11-16 06:08:47Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:42Z",
"lastUpdatedDate": "2023-11-16 06:08:42Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:56Z",
"lastUpdatedDate": "2023-11-16 06:08:56Z"
}
},
"results": {}
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"hydrated": false,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions",
"hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance."
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2023-11-16 06:08:39Z",
"lastUpdatedDate": "2023-11-16 06:08:39Z"
}
},
"results": {}
}

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -14,4 +14,4 @@
<!-- The specified file names will be skipped during the scan regardless which folder they are in -->
<Exclusion Type="FileName">RESOURCES.CS.RESX|RESOURCES.DE.RESX|RESOURCES.ES.RESX|RESOURCES.FR.RESX|RESOURCES.IT.RESX|RESOURCES.JA.RESX|RESOURCES.KO.RESX|RESOURCES.PL.RESX|RESOURCES.PT-BR.RESX|RESOURCES.RU.RESX|RESOURCES.TR.RESX|RESOURCES.ZH-HANS.RESX|RESOURCES.ZH-HANT.RESX</Exclusion>
</PoliCheckExclusions>
</PoliCheckExclusions>

Просмотреть файл

@ -0,0 +1,14 @@
{
"codebaseName": "Xamarin.PropertyEditing_main",
"notificationAliases": [
"vscx-tools-ui@microsoft.com"
],
"codebaseAdmins": [
"REDMOND\\vsengxamarin"
],
"instanceUrl": "https://devdiv.visualstudio.com/",
"projectName": "DevDiv",
"areaPath": "DevDiv\\VS Client - Tools\\UI",
"iterationPath": "DevDiv",
"allTools": true
}

Просмотреть файл

@ -23,7 +23,7 @@ variables:
stages:
- template: .build/automation/stages/validate.yml
- template: .build/automation/stages/security_compliance.yml
- template: .build/automation/stages/compliance.yml
# The following Stages are dependent on the OneLocBuild task which is not available in the Xamarin Public AzDevops instance
- template: .build/automation/stages/localization-handoff.yml # Process outgoing strings [Localization Handoff]
- template: .build/automation/stages/localization-handback.yml # Process incoming translations and Create PR to main [Localization Handback]