| :linkattrs: |
| = Gerrit Code Review - Searching Changes |
| |
| == Default Searches |
| |
| Most basic searches can be viewed by clicking on a link along the top |
| menu bar. The link will prefill the search box with a common search |
| query, execute it, and present the results. |
| |
| [options="header"] |
| |======================================================= |
| |Description | Default Query |
| |Changes > Open | status:open '(or is:open)' |
| |Changes > Merged | status:merged |
| |Changes > Abandoned | status:abandoned |
| |Your > Watched Changes | is:watched is:open |
| |Your > Starred Changes | is:starred |
| |Your > Draft Comments | has:draft |
| |Your > Edits | has:edit |
| |Your > All Visible Changes | is:visible |
| |Open changes in Foo | status:open project:Foo |
| |======================================================= |
| |
| |
| == Basic Change Search |
| |
| Similar to many popular search engines on the web, just enter some |
| text and let Gerrit figure out the meaning: |
| |
| [options="header"] |
| |============================================================= |
| |Description | Examples |
| |Change Id | 15183 |
| |Full or abbreviated Change-Id | Ic0ff33 |
| |Full or abbreviated commit SHA-1 | d81b32ef |
| |Email address | user@example.com |
| |============================================================= |
| |
| For change searches (i.e. those using a change number, Change-Id, or commit |
| SHA-1), if the search results in a single change that change will be |
| presented instead of a list. |
| |
| For more predictable results, use explicit search operators as described |
| in the following section. |
| |
| [IMPORTANT] |
| -- |
| The change search API is backed by a secondary index and might sometimes return |
| stale results if the re-indexing operation failed for a change update. |
| |
| Please also note that changes are not re-indexed if the project configuration |
| is updated with newly added or modified |
| link:config-submit-requirements.html[submit requirements]. |
| -- |
| |
| |
| [[search-operators]] |
| == Search Operators |
| |
| Operators act as restrictions on the search. As more operators |
| are added to the same query string, they further restrict the |
| returned results. Search can also be performed by typing only a |
| text with no operator, which will match against a variety of fields. |
| |
| Characters in operator values can be escaped by enclosing the value with |
| double quotes and escaping characters with a backslash. For example |
| `message:"This \"is\" fixing a bug"`. |
| |
| [[age]] |
| age:'AGE':: |
| + |
| Amount of time that has expired since the change was last updated |
| with a review comment or new patch set. The age must be specified |
| to include a unit suffix, for example `-age:2d`: |
| + |
| * s, sec, second, seconds |
| * m, min, minute, minutes |
| * h, hr, hour, hours |
| * d, day, days |
| * w, week, weeks (`1 week` is treated as `7 days`) |
| * mon, month, months (`1 month` is treated as `30 days`) |
| * y, year, years (`1 year` is treated as `365 days`) |
| |
| `age` can be used both forward and backward looking: `age:2d` |
| means 'everything older than 2 days' while `-age:2d` means |
| 'everything with an age of at most 2 days'. |
| |
| [[attention]] |
| attention:'USER':: |
| + |
| Changes whose attention set includes the given user. |
| |
| [[before_until]] |
| before:'TIME'/until:'TIME':: |
| + |
| Changes modified before the given 'TIME', inclusive. Must be in the |
| format `2006-01-02[ 15:04:05[.890][ -0700]]`; omitting the time defaults |
| to 00:00:00 and omitting the timezone defaults to UTC. |
| |
| [[after_since]] |
| after:'TIME'/since:'TIME':: |
| + |
| Changes modified after the given 'TIME', inclusive. Must be in the |
| format `2006-01-02[ 15:04:05[.890][ -0700]]`; omitting the time defaults |
| to 00:00:00 and omitting the timezone defaults to UTC. |
| |
| [[mergedbefore]] |
| mergedbefore:'TIME':: |
| + |
| Changes merged before the given 'TIME'. The matching behaviour is consistent |
| with `before:'TIME'`. |
| |
| [[mergedafter]] |
| mergedafter:'TIME':: |
| + |
| Changes merged after the given 'TIME'. The matching behaviour is consistent |
| with `after:'TIME'`. |
| |
| [[change]] |
| change:'ID':: |
| + |
| Either a change number such as 15183, or a Change-Id from the Change-Id footer. |
| |
| [[conflicts]] |
| conflicts:'ID':: |
| + |
| Changes that conflict with change 'ID'. Change 'ID' can be specified |
| as a change number such as 15183, or a Change-Id from the Change-Id footer. |
| |
| [[destination]] |
| destination:'[name=]NAME[,user=USER|,group=GROUP]':: |
| + |
| Changes which match the specified USER's or GROUP's destination named 'NAME'. |
| If 'USER' is unspecified, the current user is used. The named destinations can |
| be publicly accessible by other users. |
| The value may be wrapped in double quotes to include spaces. For example, |
| `destination:"myreviews,group=My Group"` |
| (see link:user-named-destinations.html[Named Destinations]). |
| |
| [[owner]] |
| owner:'USER', o:'USER':: |
| + |
| Changes originally submitted by 'USER'. The special case of |
| `owner:self` will find changes owned by the caller. |
| |
| [[ownerin]] |
| ownerin:'GROUP':: |
| + |
| Changes originally submitted by a user in 'GROUP'. |
| |
| [[uploader]] |
| uploader:'USER':: |
| + |
| Changes where the latest patch set was uploaded by 'USER'. |
| The special case of `uploader:self` will find changes uploaded |
| by the caller. |
| |
| [[uploaderin]] |
| uploaderin:'GROUP':: |
| + |
| Changes where the latest patch set was uploaded by a user in |
| 'GROUP'. |
| |
| [[query]] |
| query:'[name=]NAME[,user=USER|,group=GROUP]':: |
| + |
| Changes which match the specified USER's or GROUP's query named 'NAME'. |
| If neither 'USER' nor 'GROUP' is specified, the current user is used. |
| The named queries can be publicly accessible by other users. |
| The value may be wrapped in double quotes to include spaces. For example, |
| `query:"myquery,group=My Group"` |
| (see link:user-named-queries.html[Named Queries]). |
| |
| [[reviewer]] |
| reviewer:'USER', r:'USER':: |
| + |
| Changes that have been, or need to be, reviewed by 'USER'. The |
| special case of `reviewer:self` will find changes where the caller |
| has been added as a reviewer. |
| |
| [[cc]] |
| cc:'USER':: |
| + |
| Changes that have the given user CC'ed on them. The special case of `cc:self` |
| will find changes where the caller has been CC'ed. |
| |
| [[revertof]] |
| revertof:'ID':: |
| + |
| Changes that revert the change specified by the change number. |
| |
| [[submissionid]] |
| submissionid:'ID':: |
| + |
| Changes that have the specified submission 'ID'. |
| |
| [[reviewerin]] |
| reviewerin:'GROUP':: |
| + |
| Changes that have been, or need to be, reviewed by a user in 'GROUP'. |
| |
| [[commit]] |
| commit:'SHA-1':: |
| + |
| Changes where 'SHA-1' is one of the patch sets of the change. |
| |
| [[project]] |
| project:'PROJECT', p:'PROJECT':: |
| + |
| Changes occurring in 'PROJECT'. If 'PROJECT' starts with `^` it |
| matches project names by regular expression. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[projects]] |
| projects:'PREFIX':: |
| + |
| Changes occurring in projects starting with 'PREFIX'. |
| |
| [[parentof]] |
| parentof:'ID':: |
| Changes which are parent to the change specified by 'ID'. Change 'ID' can be |
| specified as a change number such as 15183, or a Change-Id from the 'Change-Id' |
| footer of the commit message. This operator will return immediate parents |
| and will not return grand parents or higher level ancestors of the given change. |
| |
| [[parentproject]] |
| parentproject:'PROJECT':: |
| + |
| Changes occurring in 'PROJECT' or in one of the child projects of |
| 'PROJECT'. |
| |
| [[repository]] |
| repository:'REPOSITORY', repo:'REPOSITORY':: |
| + |
| Changes occurring in 'REPOSITORY'. If 'REPOSITORY' starts with `^` it |
| matches repository names by regular expression. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[repositories]] |
| repositories:'PREFIX', repos:'PREFIX':: |
| + |
| Changes occurring in repositories starting with 'PREFIX'. |
| |
| [[parentrepository]] |
| parentrepository:'REPOSITORY', parentrepo:'REPOSITORY':: |
| + |
| Changes occurring in 'REPOSITORY' or in one of the child repositories of |
| 'REPOSITORY'. |
| |
| [[branch]] |
| branch:'BRANCH':: |
| + |
| Changes for 'BRANCH'. The branch name is either the short name shown |
| in the web interface or the full name of the destination branch with |
| the traditional 'refs/heads/' prefix. |
| + |
| If 'BRANCH' starts with `^` it matches branch names by regular |
| expression patterns. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[intopic]] |
| intopic:'TOPIC':: |
| + |
| Changes whose designated topic contains 'TOPIC', using a full-text search. |
| + |
| If 'TOPIC' starts with `^` it matches topic names by regular |
| expression patterns. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[topic]] |
| topic:'TOPIC':: |
| + |
| Changes whose designated topic matches 'TOPIC' exactly. This is |
| often combined with 'branch:' and 'project:' operators to select |
| all related changes in a series. |
| |
| [[prefixtopic]] |
| prefixtopic:'TOPIC':: |
| + |
| Changes whose designated topic start with 'TOPIC'. |
| |
| [[inhashtag]] |
| inhashtag:'HASHTAG':: |
| + |
| Changes where any hashtag contains 'HASHTAG', using a full-text search. |
| + |
| If 'HASHTAG' starts with `^` it matches hashtag names by regular |
| expression patterns. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[hashtag]] |
| hashtag:'HASHTAG':: |
| + |
| Changes whose link:intro-user.html#hashtags[hashtag] matches 'HASHTAG'. |
| The match is case-insensitive. |
| |
| [[prefixhashtag]] |
| prefixhashtag:'HASHTAG':: |
| + |
| Changes whose link:intro-user.html#hashtags[hashtag] start with 'HASHTAG'. |
| The match is case-insensitive. |
| |
| [[cherrypickof]] |
| cherrypickof:'CHANGE[,PATCHSET]':: |
| + |
| Changes which were created using the 'cherry-pick' functionality and |
| whose source change number matches 'CHANGE' and source patchset number |
| matches 'PATCHSET'. Note that 'PATCHSET' is optional. For example, a |
| `cherrypickof:12345` matches all changes which were cherry-picked from |
| change 12345 and `cherrypickof:12345,2` matches all changes which were |
| cherry-picked from the 2nd patchset of change 12345. |
| |
| [[ref]] |
| ref:'REF':: |
| + |
| Changes where the destination branch is exactly the given 'REF' |
| name. Since 'REF' is absolute from the top of the repository it |
| must start with 'refs/'. |
| + |
| If 'REF' starts with `^` it matches reference names by regular |
| expression patterns. The |
| link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[tr,bug]] |
| tr:'ID', bug:'ID':: |
| + |
| Search for changes whose commit message contains 'ID' and matches |
| one or more of the |
| link:config-gerrit.html#trackingid[trackingid sections] |
| in the server's configuration file. This is typically used to |
| search for changes that fix a bug or defect by the issue tracking |
| system's issue identifier. |
| |
| [[label]] |
| label:'VALUE':: |
| + |
| Matches changes where the approval score 'VALUE' has been set during |
| a review. See <<labels,labels>> below for more detail on the format |
| of the argument. |
| |
| [[message]] |
| message:'MESSAGE'::, m:'MESSAGE'::, description:'MESSAGE'::, d:'MESSAGE':: |
| + |
| Changes that match 'MESSAGE' arbitrary string in the commit message body. |
| By default full text matching is used, but regular expressions can be |
| enabled by starting with `^`. |
| The link:http://www.brics.dk/automaton/[dk.brics.automaton library,role=external,window=_blank] |
| is used for the evaluation of such patterns. Note, that searching with |
| regular expressions is limited to the first 32766 bytes of the |
| commit message due to limitations in Lucene. |
| |
| [[subject]] |
| subject:'SUBJECT':: |
| + |
| Changes that have a commit message where the first line (aka the subject) |
| matches 'SUBJECT'. The matching is done by full text search over the subject. |
| |
| [[prefixsubject]] |
| prefixsubject:'PREFIX':: |
| + |
| Changes that have a commit message where the first line (aka the subject) |
| has the prefix 'PREFIX'. |
| |
| [[comment]] |
| comment:'TEXT':: |
| + |
| Changes that match 'TEXT' string in any comment left by a reviewer. |
| |
| [[path]] |
| path:'PATH':: |
| + |
| Matches any change touching file at 'PATH'. By default exact path |
| matching is used, but regular expressions can be enabled by starting |
| with `^`. For example, to match all XML files use `file:"^.*\.xml$"`. |
| The link:http://www.brics.dk/automaton/[dk.brics.automaton library,role=external,window=_blank] |
| is used for the evaluation of such patterns. |
| + |
| Note that the Gerrit host may not support regular expression search. |
| You will then see an error dialog when using expressions starting with |
| `^`. |
| + |
| The `^` required at the beginning of the regular expression not only |
| denotes a regular expression, but it also has the usual meaning of |
| anchoring the match to the start of the string. To match all Java |
| files, use `file:^.*\.java`. |
| + |
| The entire regular expression pattern, including the `^` character, |
| can be double quoted. For example, to match all XML |
| files named like 'name1.xml', 'name2.xml', and 'name3.xml' use |
| `file:"^name[1-3].xml"`. |
| + |
| Slash ('/') is used path separator. |
| + |
| *More examples:* |
| |
| * `-path:^path/.*` - changes that do not modify files from `path/`. |
| * `path:{^~(path/.*)}` - changes that modify files not from `path/` (but may |
| contain files from `path/`). |
| |
| [[file]] |
| file:'NAME', f:'NAME':: |
| + |
| Matches any change touching a file containing the path component |
| 'NAME'. For example a `file:src` will match changes that modify |
| files named `gerrit-server/src/main/java/Foo.java`. Name matching |
| is exact match, `file:Foo.java` finds any change touching a file |
| named exactly `Foo.java` and does not match `AbstractFoo.java`. |
| + |
| Regular expression matching can be enabled by starting the string |
| with `^`. In this mode `file:` is an alias of `path:` (see above). |
| |
| [[extension]] |
| extension:'EXT', ext:'EXT':: |
| + |
| Matches any change touching a file with extension 'EXT', case-insensitive. The |
| extension is defined as the portion of the filename following the final `.`. |
| Files with no `.` in their name have no extension and can be matched by an |
| empty string. |
| |
| [[onlyextensions]] |
| onlyextensions:'EXT_LIST', onlyexts:'EXT_LIST':: |
| + |
| Matches any change touching only files with extensions that are listed in |
| 'EXT_LIST' (comma-separated list). The matching is done case-insensitive. |
| An extension is defined as the portion of the filename following the final `.`. |
| Files with no `.` in their name have no extension and can be matched by an |
| empty string. |
| |
| [[directory]] |
| directory:'DIR', dir:'DIR':: |
| + |
| Matches any change where the current patch set touches a file in the directory |
| 'DIR'. The matching is done case-insensitive. 'DIR' can be a full directory |
| name, a directory prefix or any combination of intermediate directory segments. |
| E.g. a change that touches a file in the directory 'a/b/c' matches for 'a/b/c', |
| 'a', 'a/b', 'b', 'b/c' and 'c'. |
| + |
| Slash ('/') is used path separator. Leading and trailing slashes are allowed |
| but are not mandatory. |
| + |
| If 'DIR' starts with `^` it matches directories and directory segments by |
| regular expression. The link:http://www.brics.dk/automaton/[dk.brics.automaton |
| library,role=external,window=_blank] is used for evaluation of such patterns. |
| |
| [[footer-operator]] |
| footer:'FOOTER':: |
| + |
| Matches any change that has 'FOOTER' as footer in the commit message of the |
| current patch set. 'FOOTER' can be specified verbatim ('<key>: <value>', must |
| be quoted) or as '<key>=<value>'. The matching is done case-insensitive. |
| |
| [[hasfooter-operator]] |
| hasfooter:'FOOTERNAME':: |
| + |
| Matches any change that has a commit message with a footer where the footer |
| name is equal to 'FOOTERNAME'.The matching is done case-sensitive. |
| |
| [[has]] |
| has:draft:: |
| + |
| True if there is a draft comment saved by the current user. |
| |
| [[has-star]] |
| has:star:: |
| + |
| Same as 'is:starred', true if the change has been starred by the current user |
| with the default label. |
| |
| has:edit:: |
| + |
| True if the change has inline edit created by the current user. |
| |
| has:unresolved:: |
| + |
| True if the change has unresolved comments. |
| |
| has:attention:: |
| + |
| True if the change has attention by the current user. |
| |
| |
| [[is]] |
| [[is-starred]] |
| is:starred:: |
| + |
| Same as 'has:star', true if the change has been starred by the |
| current user with the default label. |
| |
| is:attention:: |
| + |
| True if the change has attention by the current user. |
| |
| is:watched:: |
| + |
| True if this change matches one of the current user's watch filters, |
| and thus is likely to notify the user when it updates. |
| |
| is:reviewed:: |
| + |
| True if any user has commented on the change more recently than the |
| last update (comment or patch set) from the change owner. |
| |
| is:owner:: |
| + |
| True on any change where the current user is the change owner. |
| Same as `owner:self`. |
| |
| is:uploader:: |
| + |
| True on any change where the current user is the uploader of |
| the latest patch set. |
| Same as `uploader:self`. |
| |
| is:reviewer:: |
| + |
| True on any change where the current user is a reviewer. |
| Same as `reviewer:self`. |
| |
| is:cc:: |
| + |
| True on any change where the current user is in CC. |
| Same as `cc:self`. |
| |
| is:open, is:pending, is:new:: |
| + |
| True if the change is open. |
| |
| is:closed:: |
| + |
| True if the change is either merged or abandoned. |
| |
| is:merged, is:abandoned:: |
| + |
| Same as <<status,status:'STATE'>>. |
| |
| [[is-submittable]] |
| is:submittable:: |
| + |
| True if the change is submittable according to the submit rules for |
| the project, for example if all necessary labels have been voted on. |
| + |
| This operator only takes into account one change at a time, not any |
| related changes, and does not guarantee that the submit button will |
| appear for matching changes. To check whether a submit button appears, |
| use the |
| link:rest-api-changes.html#get-revision-actions[Get Revision Actions] |
| API. |
| |
| [[mergeable]] |
| is:mergeable:: |
| + |
| True if the change has no merge conflicts and could be merged into its |
| destination branch. |
| + |
| Mergeability of abandoned changes is not computed. This operator will |
| not find any abandoned but mergeable changes. |
| + |
| This operator only works if Gerrit indexes 'mergeable'. See |
| link:config-gerrit.html#change.mergeabilityComputationBehavior[change.mergeabilityComputationBehavior] |
| for details. |
| |
| [[private]] |
| is:private:: |
| + |
| True if the change is private, ie. only visible to owner and its |
| reviewers. |
| |
| [[workInProgress]] |
| is:wip:: |
| + |
| True if the change is Work In Progress. |
| |
| [[merge]] |
| is:merge:: |
| + |
| True if the change is a merge commit. |
| |
| [[cherrypick]] |
| is:cherrypick:: |
| + |
| True if the change is a cherrypick of an another change. |
| |
| This is limited to changes which are cherrypicked using REST API |
| or WebUI only. It is not able to identify changes which are |
| cherry-picked locally using the git cherry-pick command and then |
| pushed to Gerrit. |
| |
| [[pure-revert]] |
| is:pure-revert:: |
| + |
| True if the change is a pure revert. |
| |
| [[status]] |
| status:open, status:pending, status:new:: |
| + |
| True if the change state is 'review in progress'. |
| |
| status:reviewed:: |
| + |
| Same as 'is:reviewed', matches if any user has commented on the change |
| more recently than the last update (comment or patch set) from the |
| change owner. |
| |
| status:closed:: |
| + |
| True if the change is either 'merged' or 'abandoned'. |
| |
| status:merged:: |
| + |
| Change has been merged into the branch. |
| |
| status:abandoned:: |
| + |
| Change has been abandoned. |
| |
| [[size]] |
| added:'RELATION''LINES', deleted:'RELATION''LINES', delta/size:'RELATION''LINES':: |
| + |
| True if the number of lines added/deleted/changed satisfies the given relation |
| for the given number of lines. |
| + |
| For example, added:>50 will be true for any change which adds at least 50 |
| lines. |
| + |
| Valid relations are >=, >, \<=, <, or no relation, which will match if the |
| number of lines is exactly equal. |
| |
| [[commentby]] |
| commentby:'USER':: |
| + |
| Changes containing a top-level or inline comment by 'USER'. The special |
| case of `commentby:self` will find changes where the caller has |
| commented. Note that setting a vote is also considered as a comment. |
| |
| [[from]] |
| from:'USER':: |
| + |
| Changes containing a top-level or inline comment by 'USER', or owned by |
| 'USER'. Equivalent to `(owner:USER OR commentby:USER)`. |
| |
| [[reviewedby]] |
| reviewedby:'USER':: |
| + |
| Changes where 'USER' has commented on the change more recently than the |
| last update (comment or patch set) from the change owner. |
| |
| [[author]] |
| author:'AUTHOR', a:'AUTHOR':: |
| + |
| Changes where 'AUTHOR' is the author of the current patch set. 'AUTHOR' may be |
| the author's exact email address, or part of the name or email address. The |
| special case of `author:self` will find changes authored by the caller. |
| |
| [[committer]] |
| committer:'COMMITTER':: |
| + |
| Changes where 'COMMITTER' is the committer of the current patch set. |
| 'COMMITTER' may be the committer's exact email address, or part of the name or |
| email address. The special case of `committer:self` will find changes committed |
| by the caller. |
| |
| [[rule]] |
| rule:'SUBMIT_RULE_NAME':: |
| + |
| Changes where 'SUBMIT_RULE_NAME' returns a submit record with status in {OK, |
| FORCED}. This means that the submit rule has passed and is not blocking the |
| change submission. 'SUBMIT_RULE_NAME' should be in the form of |
| '$plugin_name~$rule_name'. For gerrit core rules, 'SUBMIT_RULE_NAME' should |
| be in the form of 'gerrit~$rule_name' (example: `gerrit~DefaultSubmitRule`). |
| |
| rule:'SUBMIT_RULE_NAME'='STATUS':: |
| + |
| Changes where 'SUBMIT_RULE_NAME' returns a submit record with status equals to |
| 'STATUS'. The status can be any of the statuses that are documented for the |
| `status` field of link:rest-api-changes.html#submit-record[SubmitRecord]. |
| |
| [[unresolved]] |
| unresolved:'RELATION''NUMBER':: |
| + |
| True if the number of unresolved comments satisfies the given relation for the given number. |
| + |
| For example, unresolved:>0 will be true for any change which has at least one unresolved |
| comment while unresolved:0 will be true for any change which has all comments resolved. |
| + |
| Valid relations are >=, >, \<=, <, or no relation, which will match if the number of unresolved |
| comments is exactly equal. |
| |
| == Argument Quoting |
| |
| Operator values that are not bare words (roughly A-Z, a-z, 0-9, @, |
| hyphen, dot and underscore) must be quoted for the query parser. |
| |
| Quoting is accepted as either double quotes |
| (e.g. `message:"the value"`) or as matched |
| curly braces (e.g. `message:{the value}`). |
| |
| |
| == Boolean Operators |
| |
| Unless otherwise specified, operators are joined using the `AND` |
| boolean operator, thereby restricting the search results. |
| |
| Parentheses can be used to force a particular precedence on complex |
| operator expressions, otherwise OR has higher precedence than AND. |
| |
| === Negation |
| Any operator can be negated by prefixing it with `-`, for example |
| `-is:starred` is the exact opposite of `is:starred` and will |
| therefore return changes that are *not* starred by the current user. |
| |
| The operator `NOT` (in all caps) or `not` (all lower case) is a |
| synonym. |
| |
| === AND |
| The boolean operator `AND` (in all caps) or `and` (all lower case) |
| can be used to join two other operators together. This results in |
| a restriction of the results, returning only changes that match both |
| operators. |
| |
| === OR |
| The boolean operator `OR` (in all caps) or `or` (all lower case) |
| can be used to find changes that match either operator. This |
| increases the number of results that are returned, as more changes |
| are considered. |
| |
| |
| [[labels]] |
| == Labels |
| Label operators can be used to match approval scores given during |
| a code review. The specific set of supported labels depends on |
| the server configuration, however the `Code-Review` label is provided |
| out of the box. |
| |
| A label name is any of the following: |
| |
| * The label name. Example: `label:Code-Review`. |
| |
| * The label name followed by a ',' followed by a reviewer id or a |
| group id. To make it clear whether a user or group is being looked |
| for, precede the value by a user or group argument identifier |
| ('user=' or 'group='). If an LDAP group is being referenced make |
| sure to use 'ldap/<groupname>'. |
| |
| A label name must be followed by either a score with optional operator, |
| or a label status. The easiest way to explain this is by example. |
| |
| First, some examples of scores with operators: |
| |
| `label:Code-Review=2`:: |
| `label:Code-Review=+2`:: |
| `label:Code-Review+2`:: |
| + |
| Matches changes where there is at least one +2 score for Code-Review. |
| The + prefix is optional for positive score values. If the + is used, |
| the = operator is optional. |
| |
| `label:Code-Review=-2`:: |
| `label:Code-Review-2`:: |
| + |
| Matches changes where there is at least one -2 score for Code-Review. |
| Because the negative sign is required, the = operator is optional. |
| |
| `label:Code-Review=1`:: |
| + |
| Matches changes where there is at least one +1 score for Code-Review. |
| Scores of +2 are not matched, even though they are higher. |
| |
| `label:Code-Review>=1`:: |
| + |
| Matches changes with either a +1, +2, or any higher score. |
| + |
| Instead of a numeric vote, you can provide a label status corresponding |
| to one of the fields in the |
| link:rest-api-changes.html#submit-record[SubmitRecord] REST API entity. |
| |
| `label:Code-Review\<=-1`:: |
| + |
| Matches changes with either a -1, -2, or any lower score. |
| |
| `label:Code-Review=MAX`:: |
| + |
| Matches changes with label voted with the highest possible score. |
| |
| `label:Code-Review=MIN`:: |
| + |
| Matches changes with label voted with the lowest possible score. |
| |
| `label:Code-Review=ANY`:: |
| + |
| Matches changes with label voted with any score. |
| |
| `label:Code-Review=+1,count=2`:: |
| + |
| Matches changes with exactly two +1 votes to the code-review label. The {MAX, |
| MIN, ANY} votes can also be used, for example `label:Code-Review=MAX,count=2` is |
| equivalent to `label:Code-Review=2,count=2` (if 2 is the maximum positive vote |
| for the code review label). The maximum supported value for `count` is 5. |
| `count=0` is not allowed and the query request will fail with `400 Bad Request`. |
| |
| `label:Code-Review=+1,count>=2`:: |
| + |
| Matches changes having two or more +1 votes to the code-review label. Can also |
| be used with the {MAX, MIN, ANY} label votes. All operators `>`, `>=`, `<`, `<=` |
| are supported. |
| Note that a query like `label:Code-Review=+1,count<x` will not match with |
| changes having zero +1 votes to this label. |
| |
| `label:Non-Author-Code-Review=need` (deprecated):: |
| + |
| Matches changes where the submit rules indicate that a label named |
| `Non-Author-Code-Review` is needed. (See the |
| link:prolog-cookbook.html#NonAuthorCodeReview[Prolog Cookbook] for how |
| this label can be configured.) |
| + |
| This operator is also compatible with |
| link:config-submit-requirements.html[submit requirement] results. A submit |
| requirement name could be used instead of the label name. The submit record |
| statuses are mapped to submit requirement result statuses as follows: |
| + |
| * {`need`, `reject`} -> {`UNSATISFED`} |
| * {`ok`, `may`} -> {`SATISFIED`, `OVERRIDDEN`} |
| + |
| For example, a query like `label:Code-Review=ok` will also match changes |
| having a submit requirement with a result that is either `SATISFIED` or |
| `OVERRIDDEN`. Users are encouraged not to rely on this operator since submit |
| records are deprecated. |
| |
| `label:Code-Review=+2,aname`:: |
| `label:Code-Review=ok,aname`:: |
| + |
| Matches changes with a +2 code review where the reviewer or group is aname. |
| |
| `label:Code-Review=2,user=jsmith`:: |
| + |
| Matches changes with a +2 code review where the reviewer is jsmith. |
| |
| `label:Code-Review=+2,user=owner`:: |
| `label:Code-Review=ok,user=owner`:: |
| `label:Code-Review=+2,owner`:: |
| `label:Code-Review=ok,owner`:: |
| + |
| The special "owner" parameter corresponds to the change owner. Matches |
| all changes that have a +2 vote from the change owner. |
| |
| `label:Code-Review=+2,user=non_uploader`:: |
| `label:Code-Review=ok,user=non_uploader`:: |
| `label:Code-Review=+2,non_uploader`:: |
| `label:Code-Review=ok,non_uploader`:: |
| + |
| The special "non_uploader" parameter corresponds to any user who's not the |
| uploader of the latest patchset. Matches all changes that have a +2 vote from |
| a non upoader. |
| |
| `label:Code-Review=+1,group=ldap/linux.workflow`:: |
| + |
| Matches changes with a +1 code review where the reviewer is in the |
| ldap/linux.workflow group. |
| |
| `is:open label:Code-Review+2 label:Verified+1 NOT label:Verified-1 NOT label:Code-Review-2`:: |
| `is:open label:Code-Review=ok label:Verified=ok`:: |
| + |
| Matches changes that are ready to be submitted according to one common |
| label configuration. (For a more general check, use |
| link:#is-submittable[is:submittable].) |
| |
| `is:open (label:Verified-1 OR label:Code-Review-2)`:: |
| `is:open (label:Verified=reject OR label:Code-Review=reject)`:: |
| + |
| Changes that are blocked from submission due to a blocking score. |
| |
| == Magical Operators |
| |
| Most of these operators exist to support features of Gerrit Code |
| Review, and are not meant to be accessed by the average end-user. |
| However, they are recognized by the query parser, and may prove |
| useful in limited contexts to administrators or power-users. |
| |
| visibleto:'USER-or-GROUP':: |
| + |
| Matches changes that are visible to 'USER' or to anyone who is a |
| member of 'GROUP'. Here group names may be specified as either |
| an internal group name, or if LDAP is being used, an external LDAP |
| group name. The value may be wrapped in double quotes to include |
| spaces or other special characters. For example, to match an LDAP |
| group: `visibleto:"CN=Developers, DC=example, DC=com"`. |
| + |
| This operator may be useful to test access control rules, however a |
| change can only be matched if both the current user and the supplied |
| user or group can see it. This is due to the implicit 'is:visible' |
| clause that is always added by the server. |
| |
| is:visible:: |
| + |
| Magical internal flag to prove the current user has access to read |
| the change. This flag is always added to any query. |
| |
| [[limit]] |
| limit:'CNT':: |
| + |
| Limit the returned results to no more than 'CNT' records. This is |
| automatically set to the page size configured in the current user's |
| preferences. Including it in a web query may lead to unpredictable |
| results with regards to pagination. |
| |
| GERRIT |
| ------ |
| Part of link:index.html[Gerrit Code Review] |
| |
| SEARCHBOX |
| --------- |