我正在尝试根据此处的说明配置 MSDO 的 ESLint 扫描:
https://github.com/microsoft/security-devops-action/wiki#ESLint-options
我想在此处重现该命令(从当前日志中提取,无需自定义配置)作为起点:
D:\a\_msdo\packages\node_modules\eslint\eslint.cmd
--no-eslintrc
--config D:\a\_msdo\packages\node_modules\eslint/node_modules/@microsoft/eslint-plugin-sdl/config/required.js
--ext .js
--ext .ts
--ignore-pattern *.d.ts
--format D:\a\_msdo\packages\node_modules\eslint\node_modules\@microsoft\eslint-formatter-sarif\sarif.js --output-file D:\a\1\s\.gdn\.r\eslint\001\eslint.sarif **/*.{js,ts}
MSDO 配置中的这些选项没有明确关联到可用的命令行标志。目前我有这个:
{
"tools": [
{
"tool": {
"name": "ESLint",
"version": "Latest"
},
"arguments": {
"DisableDefaultConfigurationFile": true,
"ResolvePluginsRelativeTo": "",
"ConfigurationFile": "D:\a\_msdo\packages\node_modules\eslint/node_modules/@microsoft/eslint-plugin-sdl/config/required.js",
"Environments": "",
"Extensions": [".js", ".ts"],
"Globals": "",
"Parser": "",
"ParserOptions": "",
"AdditionalRulesDirectories": "",
"Plugins": "",
"Rules": "",
"Fix": "",
"FixDryRun": "",
"FixTypes": "",
"ExclusionsFilePath": "$(BuildSourcesDirectory)/.eslintignore"
"DisableExclusions": "",
"ExclusionPatterns": "*.d.ts",
"Quiet": "",
"MaxWarnings": "",
"ExitOnFatalError": "",
"OutputFile": "D:\a\1\s\.gdn\.r\eslint\001\eslint.sarif",
"OutputFormat": "D:\a\_msdo\packages\node_modules\eslint\node_modules\@microsoft\eslint-formatter-sarif\sarif.js",
"DisableInlineConfig": "",
"ReportUnusedDisableDirectives": "",
"Cache": "",
"CacheLocation": "",
"Debug": "",
"Help": "",
"Targets": "**/*.{js,ts}"
}
}
]
}
我现在所拥有的得到了这个输出:
##[错误]NullReferenceException:未将对象引用设置为对象的实例。
##[错误]MSDO CLI 退出并显示错误退出代码:1
任何人都可以提供一些关于如何使用此配置来产生上述已知良好结果的指导吗?
我尝试了很多不同的配置,但此时我对所有事情都有点猜测,而且我不明白为什么会出现空引用错误。
我也无法创建 microsoft-security-devops 标签并应用它,如果有人可以帮助我解决这部分问题......
我至少解决了空引用错误问题。
如果其他人也有同样的情况,请尝试一致地设置所有斜杠/反斜杠。您不能只获取有效的命令行输出并将参数反馈回来 - 您必须根据运行管道的构建代理的类型,对所有配置参数标准化“/”或“”。