我想从一个项目运行yaml管道。我的Yaml中有一个任务可以扫描所有源代码。使用此Yaml,我想扫描master分支中的所有源代码,以查找同一Org中的所有项目和所有存储库。
如何获得所有项目的所有回购并进行迭代?有人能帮我吗 ?
test.yaml
repositories:
- repository: justAnotherName
type: github
name: myGitRepo
endpoint: myGitServiceConnection
trigger:
branches:
include:
- master
steps:
- task: CredScan@2
inputs:
toolMajorVersion: 'V2'
outputFormat: 'tsv'
scanFolder: '$(Build.SourcesDirectory)'
如果您希望提取项目中的每个存储库,则可以使用以下两个选项之一(请参见下文)。但是,我建议在Microsoft托管的代理上尝试此操作之前要格外小心,默认情况下,它们的超时时间为60分钟。如果您使用的是自托管代理,则不必担心。我还是建议您将其分解,以避免创建长时间运行的发行版,该发行版每次运行都会占用大量磁盘空间。
话虽这么说,以下是您可以选择的选项:
选项1(不是最好的)手动为每个项目添加一个存储库:依赖项,为项目中每个回购添加一个checkout:任务。
这是大量手动操作,每次添加报告时都需要维护。
选项2您可以编写一个自定义PowerShell / bash脚本,该脚本使用Azure DevOps API和git自动扫描组织中的所有项目和存储库,并将它们拉到计算机上。
首先发出请求以获取组织内的所有项目:
然后,遍历每个项目并获得所有存储库:
最后,遍历每个存储库并运行git clone [repository URL]将其克隆到构建代理上。
注意:您将要确保代理计算机上有很多可用磁盘空间,并在执行此操作后清理构建空间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句