通过管道锁定 Azure DevOps git 分支

问题描述 投票:0回答:1

我试图通过 azure devops 管道锁定我的 azure devops 存储库之一中的分支,但出现以下错误。对这个错误有什么想法吗?

“错误:路径 '/obisvt/_apis' 的控制器未找到或未实现 IController。操作返回 404 状态代码。”

trigger: none

appendCommitMessageToRunName: false



pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'  # Required to use Azure CLI

- task: UseDotNet@2  # Ensures .NET is available if needed
  inputs:
    packageType: 'sdk'
    version: '6.0.302'  

- bash: echo ${AZURE_DEVOPS_CLI_PAT} | az devops login
  env:
    AZURE_DEVOPS_CLI_PAT: $(System.AccessToken)
  displayName: 'Login Azure DevOps Extension'

- script: 
      az repos ref lock --repository "test" --org "https://dev.azure.com/test/project1" --project "OBISVT"  --name "main_test"
git azure-pipelines
1个回答
0
投票

我可以用您的 yaml 重现该错误。这是因为

az repos ref lock
的参数不正确。

对于

--org
,您应该只使用
organization url
,就像
https://dev.azure.com/orgname
一样,删除多余的
project1

此外,对于

--name
,格式应类似于
heads/my_branch
,前面加上
heads/

示例如下:

az repos ref lock --repository "reponame" --org "https://dev.azure.com/orgname" --project "projectname"  --name "heads/main_test"

请检查文档az repos ref lock以获取命令详细信息。

此外,您使用

$(system.accesstoken)
登录devops,身份指向构建服务身份,这可能没有具有锁定目标分支的适当权限,建议从用户帐户创建
Personal access token

完整的yaml如下,请将值修改为您的值:

trigger: none
appendCommitMessageToRunName: false

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'  # Required to use Azure CLI

- task: UseDotNet@2  # Ensures .NET is available if needed
  inputs:
    packageType: 'sdk'
    version: '6.0.302'  

# use $AZURE_DEVOPS_CLI_PAT for echo, and add --organization for login if it's not current organization.
- bash: echo $AZURE_DEVOPS_CLI_PAT | az devops login
  env:
    AZURE_DEVOPS_CLI_PAT: $(pat)
  displayName: 'Login Azure DevOps Extension'

- script: 
    az repos ref lock --repository "test" --org "https://dev.azure.com/orgname" --project "OBISVT"  --name "heads/main_test"

enter image description here

您也可以删除

login task
,直接为脚本添加 pat 标记,也可以。

- script: 
    az repos ref lock --repository "test" --org "https://dev.azure.com/orgname" --project "OBISVT"  --name "heads/main_test"
  env:
    AZURE_DEVOPS_EXT_PAT: $(pat)
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.