[英]Azure pipeline filter github user on commit
如果推送提交,是否可以過濾 github 用戶以不觸發管道?
例如,如果機器人用戶推送一些更改,則不應觸發 git-pipeline。 我只找到觸發更改文件或分支名稱的信息。
如果推送提交,是否可以過濾 github 用戶以不觸發管道?
不,目前 Azure Devops CI 觸發器只支持像Branches
、 Paths
和Tags
這樣的過濾器。 它沒有針對特定用戶的過濾器,因此如果提交了更改,則始終會觸發管道。(無論誰推送提交)
可能的解決方法:
一種替代解決方法是添加 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.