微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 Azure 管道用于私有 Pod?

如何解决如何将 Azure 管道用于私有 Pod?

我有一组托管在 Github 上的私有 Cocoapods 库(私有存储库),由 Azure Devops 平台管理。

我为每个 Pod 设置一个 AD 项目。

关键是,当我尝试执行 pod repo addpod install(我在 bash 脚本上执行此操作)时,我需要访问我的私有规范和 Pod 存储库。

我可以选择使用私有访问令牌作为秘密变量,或使用 SSH 密钥作为安全文件,但随后我需要在我的每个项目中部署它。

git config --global url."https://$(username):$(token)@github.com/".insteadOf "https://github.com"

由于它可以在同一组织内的跨项目共享,我想知道是否有办法使用服务连接来做到这一点?有没有办法在脚本中获取它?我绝对需要为它创建自己的 AD 扩展吗?

解决方法

我想知道是否有办法使用服务连接来做到这一点?有没有办法在脚本中获取它?

恐怕无法在您的 bash 脚本中使用服务连接。在azure devops中,服务连接需要在特定的任务中使用,其存储的内容不能被bash脚本直接读取。

我建议您将您的用户名和令牌保存在 Variable Group(Pipelines -> Library -> Variable Group) 中。

您可以尝试使用以下 PowerShell 脚本为所有组织项目创建变量组: API:Variablegroups - Add Projects - List

$token = "PAT"

$url="https://dev.azure.com/{OrganizationName}/_apis/projects?api-version=6.0"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json



ForEach( $projectid in $response.value.id )

{

echo $projectid

$url2 = "https://dev.azure.com/{OrganizationName}/_apis/distributedtask/variablegroups?api-version=6.0-preview.2"

$body = "{       

    `"name`":`"Cocoapodsauth`",`"type`":`"Vsts`",`"variables`":`
        {`"token`":{`"isSecret`":true,`"value`":`"PAT`"},`"username`":{`"isSecret`":true,`"value`":`"username`"}},`"variableGroupProjectReferences`":[
        {
           `"name`":`"Cocoapodsauth`",`"projectReference`":
                {
                    `"id`":`"$projectid`"

                    }}]
     



          }"

$response = Invoke-RestMethod -Uri $url2 -Headers @{Authorization = "Basic $token"} -Method Post -Body $body -ContentType application/json

}

上面的脚本会遍历所有的项目,然后为每个项目创建一个变量组。

在这种情况下,您可以通过引用变量组直接使用变量。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?