簡體   English   中英

提交時的 Azure 管道過濾器 github 用戶

[英]Azure pipeline filter github user on commit

如果推送提交,是否可以過濾 github 用戶以不觸發管道?

例如,如果機器人用戶推送一些更改,則不應觸發 git-pipeline。 我只找到觸發更改文件或分支名稱的信息。

如果推送提交,是否可以過濾 github 用戶以不觸發管道?

,目前 Azure Devops CI 觸發器只支持像BranchesPathsTags這樣的過濾器。 它沒有針對特定用戶的過濾器,因此如果提交了更改,則始終會觸發管道。(無論誰推送提交)

可能的解決方法:

一種替代解決方法是添加 PS 任務來過濾用戶並在該任務中失敗/完成管道,這將節省大量時間。 在這種情況下,管道將被觸發,但會立即完成。

我們可以使用git log --format='%ae' $(Build.SourceVersion)^! 命令以獲取進行提交的用戶的 ID。 $(Build.SourceVersion)表示提交 ID。

在我的測試中,github組織中的某個用戶的Id格式為xxxxxx+accountName@users.noreply.github.com 。(可以先用命令查找要過濾的用戶的Id)

簡單的例子:

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $Id = (git log --format='%ae' $(Build.SourceVersion)^!)
      if ($Id -like "5xxxxxx6+lancexxx@users.noreply.github.com")
          {
            Write-Host "##vso[task.complete result=Failed;]"
          }
      if ($Id -like "xxx")
          {
            Write-Host "##vso[task.complete result=Failed;]"
          }

- task: CmdLine@2
  inputs:
    script: |
      echo Hello world
...

我們可以在管道的第一個添加一個 PS 任務,它將用於過濾特定用戶。 如果推送提交的作者是5xxxxxx6+lancexxx@users.noreply.github.com ,則任務將失敗。

如果您不想管道運行失敗,可以使用條件步驟跳過以下任務,這樣管道運行將報告succeed並且不會花費太多時間。 請參閱條件步驟

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM