有没有一种方法可以通过GitLab中的问题是否有相关的合并请求来过滤这些问题



我有很多问题要处理,我已经提出了合并请求来修复其中的许多问题。我正在寻找一个查询,它可以让我过滤出与相关合并请求有关的问题。

我使用的GitLab实例是v14.4.2。

我已经查看了基本搜索和高级搜索的文档,但找不到一个好的查询。

GitHub中的等效查询是is:issue is:open assignee:legowerewolf -linked:pr

在撰写本文时,这是不可能的。

一般来说,如果文档中没有列出某个功能,那么它就没有实现。你可以在GitLab问题跟踪器中搜索现有的功能请求(尽管我没有找到(或提交功能请求。

根据上面的@Arty chan,没有内置的方法可以做到这一点。在PowerShell和API中摸索了一段时间后,我想出了这个:

$GitlabToken = '[your GitLab PAT with API read access]'
$APIRoot = 'https://[your GitLab server here]/api/v4'
$TokenHeader = @{
"PRIVATE-TOKEN" = $GitlabToken
}
$User = Invoke-RestMethod -Method Get -Uri "$APIRoot/user" -Headers $TokenHeader
$UserOpenIssues = Invoke-RestMethod -Method Get -Uri "$APIRoot/issues" -Headers $TokenHeader -Body @{
assignee_id = $User.id
state       = "opened"
scope       = "all"
}
foreach ($Issue in $UserOpenIssues) {
$Issue | Add-Member -MemberType NoteProperty -Name "related_merge_requests" -Value (
Invoke-RestMethod -Method Get -Uri "$APIRoot/projects/$($Issue.project_id)/issues/$($Issue.iid)/related_merge_requests" -Headers $TokenHeader | Where-Object { $_.state -eq "opened" }
)
}
$UserOpenIssues = $UserOpenIssues | Sort-Object -Property @{Expression = { $_.labels[0] } }
Write-Host "Open issues without a merge request assigned to $($User.name):"
$UserOpenIssues
| Where-Object { $_.related_merge_requests.Count -eq 0 }
| Format-Table -Property @(
@{name = "Reference"; expression = { $_.references.full } }
@{name = "Title"; expression = { $_.title } }
@{name = "Labels"; expression = { $_.labels } }
)

最新更新