An optional JMESPath filter can be configured when adding GitLab integration or repositories.
1. Contains (include)
[?contains(name, 'git') || contains(name, 'Slap') || contains(name, 'est')]
This is a filter based on text in the repository name. It will list all the repositories that contain the specified names. Do note that the declared string format is case-sensitive.
2. Contains (exclude)
[?(!contains(tag_list, 'largemedia'))]
[?(!contains(name, 'firstword'))]
[?(!contains(name, 'firstword')) || (!contains(name, 'secondword'))]
1 – Blacklists project tag.
2 – Lists repositories with names that either do not contain the word 'firstword'
.
3 – Lists repositories with names that either do not contain the words 'firstword'
OR 'secondword'
.
!condition
must be wrapped in a parenthesis so it won’t invert the whole expression.
3. Tags
[?contains(tag_list, 'largemedia')]
Whitelists project tag.
GitLab refers to project tags as tags in the API and in some places in the UI but the actual setting is called Topics.
4. Starts with or ends with
[?starts_with(name, 'git') || ends_with(name, 'test')]
Lists repositories with names that starts with 'git'
or ends with 'test'
.
5. Exclude projects without repositories
[?!empty_repo]
Lists only repositories from projects that have existing repositories.
Git services that support JMESPath filters
-
GitLab.com | GitLab CE/EE JMESPath filter examples (this page)
-
Microsoft | VSTS | TFS | Azure Repos JMESPath filter examples
1 Logo owned by GitLab Inc used under license