如何将 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...