include::include/header.adoc[] == Name bite-bugzilla-search - search bugs == Synopsis *bite bugzilla * [] []:: Search bugs. *bite bugzilla * [-h|--help]:: Output help information. == Description Search bugs. include::include/global-options.adoc[] == Search options *-b, --browser*:: Open in a browser. + This uses `$BROWSER` to open URLs, falling back to `xdg-open` if undefined. *--json*:: Output in JSON format. include::include/template-options.adoc[] == Query options *-f, --fields *:: Restrict the data fields returned by the query. + By default, only the id and subject fields are returned. This can be altered by specifying a custom list of comma-separated field while will change the output format to a space-separated list of the field values. + Group fields relate to groups of bug fields and are most useful when using JSON formatted output: + .Open bugs created in the past day rendered in JSON: bite bugzilla search --created 1d -f all --json + // TODO: link to rust docs for field descriptions Possible group fields: all, default, extra, custom + Possible bug fields: alias, assignee, blocks, cc, component, created, creator deadline, depends, duplicate-of, flags, id, keywords, os, platform, priority, product, qa, resolution, see-also, severity, status, summary, tags, target, updated, url, version, whiteboard *-l, --limit *:: Limit the number of results. + If the value is higher than the maximum service limit that value is used instead. If the limit is set to zero, all matching results are returned up to the service limit. + Note that setting an explicit limit will disable result paging unless `--paged` is used. + .First 10 open bugs: bite bugzilla search -l 10 *-O, --offset *:: Set the starting position for results. + Used in conjunction with the `-l/--limit`, offset defines the starting position for the search. For example, given a search that would return 100 results, setting limit to 10 and offset to 10 would return results 11 through 20 from the set of 100. + .10 open bugs, skipping the first 100: bite bugzilla search -l 10 -O 100 *-o, --order *:: Order the query results. + Fields can be prefixed with `-` or `+` to sort in descending or ascending order, respectively. Unprefixed fields will use ascending order. + Multiple fields are supported via comma-separated lists which sort by each field in order. + Note that if an invalid sorting request is made, sorting will fallback to the service default. + Ordering is especially useful in combination with -l/--limit to get the first or last results of an ordered match. + .Least recently updated: bite bugzilla search -l 10 -o updated + .Most popular by votes: bite bugzilla search --limit 10 --order=-votes + .Highest comment count: bite bugzilla search --limit 10 --order=-comments + // TODO: link to rust docs for field descriptions Possible values: alias, assignee, blocks, comments, component, created, deadline, depends, flags, id, keywords, last-visit, os, platform, priority, product, qa, reporter, resolution, severity, status, summary, tags, target, updated, url, version, votes, whiteboard *--paged*:: Enable result paging support. + Forcibly enable paging with `-l/--limit` using the given limit value as the number of results per page. + This allows setting a smaller page size to get quicker, initial results for large queries. + .All closed issues using 100 items per page, fetching 3 pages concurrently: bite bugzilla -C 3 search -s @closed -l 100 --paged *-S, --quicksearch *:: Search for bugs using quicksearch syntax. + .Reported by user or assigned to them bite bugzilla search -S 'ALL @user OR reporter:user' == Attribute options *-A, --alias* []:: Restrict by alias. + With no argument, all bugs with aliases are returned. If the value is `true` or `false`, all bugs with or without aliases are returned, respectively. + .With aliases: bite bugzilla search --alias + .Without aliases: bite bugzilla search --alias false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. + .Contains `value`: bite bugzilla search --alias value + .Contains `value1` and `value2`: bite bugzilla search --alias value1,value1 + .Contains `value1` or `value2`: bite bugzilla search --alias value1 --alias value1 *-@, --attachments* []:: Restrict by attachments. + With no argument, all bugs with attachments are returned. If the value is `true` or `false`, all bugs with or without attachments are returned, respectively. + .With attachments: bite bugzilla search -@ + .Without attachments: bite bugzilla search --attachments false + Regular string values search for matching substrings in an attachment's description or file name. Values can also use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list and will match if any of the specified values match. + .Attachment description or file name contains `log` or `test`: bite bugzilla search --attachments log,test *-B, --blocks* []:: Restrict by blockers. + With no argument, all bugs with blockers are returned. If the value is `true` or `false`, all bugs with or without blockers are returned, respectively. + .With blockers: bite bugzilla search --blocks + .Without blockers: bite bugzilla search --blocks false + Regular values search for matching blockers and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Also, values are taken from standard input when `-`. + .Blocked on bug 10: bite bugzilla search --blocks 10 + .Blocked on bugs 10 and 11: bite bugzilla search --blocks 10,11 + .Blocked on bugs 10 or 11: bite bugzilla search --blocks 10 --blocks 11 + Values can use the `-` prefix to search for non-blockers. + .Not blocked on bug 10: bite bugzilla search --blocks=-10 + .Blocked on bug 10 but not bug 11: bite bugzilla search --blocks 10,-11 + Range values are supported, (see sections <> and <> for more information. + .Blocked on bugs greater than or equal to 10: bite bugzilla search --blocks '>=10' + .Blocked on bugs between 10 and 20: bite bugzilla search --blocks 10..20 + .Blocked on bugs matching a given search: bite bugzilla search test -f id | bite bugzilla search --blocks - *-C, --component* :: Restrict by component. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. // TODO: mention using fields subcommand to show custom fields *--cf [=]*:: Restrict by custom field. + With no value, all bugs with the related custom field are returned. If the value is `true` or `false`, all bugs with or without the custom field are returned, respectively. + Custom field names must match the underlying values used in the Bugzilla web interface of the form `cf_field_name`. + .With custom field: bite bugzilla search --cf cf_field_name + .Without custom field: bite bugzilla search --cf cf_field_name=false + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + .Contains `test`: bite bugzilla search --cf cf_field_name=test + .Equals `test`: bite bugzilla search --cf cf_field_name='== test' *-D, --depends* []:: Restrict by dependencies. + With no argument, all bugs with dependencies are returned. If the value is `true` or `false`, all bugs with or without dependencies are returned, respectively. + .With dependencies: bite bugzilla search --depends + .Without dependencies: bite bugzilla search --depends false + Regular values search for matching dependencies and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Also, values are taken from standard input when `-`. + .Depends on bug 10: bite bugzilla search --depends 10 + .Depends on bugs 10 and 11: bite bugzilla search --depends 10,11 + .Depends on bugs 10 or 11: bite bugzilla search --depends 10 --depends 11 + Values can use the `-` prefix to search for non-dependencies. + .Doesn't depend on bug 10: bite bugzilla search --depends=-10 + .Depends on bug 10 but not 11: bite bugzilla search --depends 10,-11 + Range values are supported, (see sections <> and <> for more information. + .Depends on bugs greater than or equal to 10: bite bugzilla search --depends '>=10' + .Depends on bugs between 10 and 20: bite bugzilla search --depends 10..20 + .Depends on bugs matching a given search: bite bugzilla search test -f id | bite bugzilla search --depends - *-F, --flags* []:: Restrict by flag. + With no argument, all bugs with flags are returned. If the value is `true` or `false`, all bugs with or without flags are returned, respectively. + .With flags: bite bugzilla search --flags + .Without flags: bite bugzilla search --flags false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. + .Contains `value`: bite bugzilla search --flags value + .Contains `value1` and `value2`: bite bugzilla search --flags value1,value1 + .Contains `value1` or `value2`: bite bugzilla search --flags value1 --flags value1 *-g, --groups* []:: Restrict by group. + With no argument, all bugs with groups are returned. If the value is `true` or `false`, all bugs with or without groups are returned, respectively. + .With groups: bite bugzilla search --groups + .Without groups: bite bugzilla search --groups false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. + .Contains `value`: bite bugzilla search --groups value + .Contains `value1` and `value2`: bite bugzilla search --groups value1,value1 + .Contains `value1` or `value2`: bite bugzilla search --groups value1 --groups value1 *--id* :: Restrict by ID. + Regular values search for exact bug identifiers. Also, values are taken from standard input when `-`. + .Equal to 10: bite bugzilla search --id 10 + Values can use the `-` prefix to search for identifiers not equal to the value. + .Not equal to 10: bite bugzilla search --id=-10 + Multiple values can be specified in a comma-separated list or multiple options. If any ID range is specified logical AND is used, otherwise values are combined via logical OR. + .IDs greater than 10 and less than 20: bite bugzilla search --id '>10,<20' + .ID 10 or 20: bite bugzilla search --id 10 --id 20 + Range values are supported, (see sections <> and <> for more information. + .IDs greater than or equal to 10: bite bugzilla search --id '>=10' + .IDs between 10 and 20: bite bugzilla search --id 10..20 + .Any ID matching values taken from a file: cat file | bite bugzilla search --id - *-k, --keywords* []:: Restrict by keyword. + With no argument, all bugs with keywords are returned. If the value is `true` or `false`, all bugs with or without keywords are returned, respectively. + .With keywords: bite bugzilla search --keywords + .Without keywords: bite bugzilla search --keywords false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. + .Contains `value`: bite bugzilla search --keywords value + .Contains `value1` and `value2`: bite bugzilla search --keywords value1,value1 + .Contains `value1` or `value2`: bite bugzilla search --keywords value1 --keywords value1 *--os* :: Restrict by operating system. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *--platform* :: Restrict by platform. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *--priority* :: Restrict by priority. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *-p, --product* :: Restrict by product. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *-r, --resolution* :: Restrict by resolution. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *-U, --see-also* []:: Restrict by tracker URLs. + With no argument, all bugs with tracker URLs are returned. If the value is `true` or `false`, all bugs with or without tracker URLs are returned, respectively. + .With tracker URLs: bite bugzilla search --see-also + .Without tracker URLs: bite bugzilla search --see-also false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. *--severity* :: Restrict by severity. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *-s, --status* :: Restrict by status. + By default, searches with no status parameter only target open bugs. This option supports extending searches to closed bugs. + Regular values search for case-insensitive matches. The prefix `!` can be used to search for all non-matches instead. + .Unconfirmed bugs: bite bugzilla search --status unconfirmed + .Unresolved bugs: bite bugzilla search --status '!resolved' + Multiple values can be specified in a comma-separated list for logical OR. + .Confirmed or verified bugs: bite bugzilla search --status confirmed,verified + // TODO: update when implementation reverts to using regular values The aliases `@open`, `@closed`, and `@all` can be used to search for open, closed, and all bugs, respectively. Note that alias usage will only use the last value when multiple are specified. + .Closed bugs with bugbite in the summary: bite bugzilla search --status @closed bugbite + .All bugs assigned to yourself: bite bugzilla search --status @all --assignee @me *-t, --tags* []:: Restrict by personal tags. + With no argument, all bugs with personal tags are returned. If the value is `true` or `false`, all bugs with or without personal tags are returned, respectively. + .With personal tags: bite bugzilla search --tags + .Without personal tags: bite bugzilla search --tags false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. *-T, --target* :: Restrict by target milestone. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *--url* []:: Restrict by URL. + With no argument, all bugs with a URL are returned. If the value is `true` or `false`, all bugs with or without URLs are returned, respectively. + .With URL: bite bugzilla search --url + .Without URL: bite bugzilla search --url false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. *-V, --version* :: Restrict by version. + Values search for matching substrings or can use match operators to alter their query application. See the <> section for more information. + Multiple values can be specified in a comma-separated list for logical OR. *-w, --whiteboard* []:: Restrict by whiteboard. + With no argument, all bugs with whiteboard info are returned. If the value is `true` or `false`, all bugs with or without whiteboard info are returned, respectively. + .With whiteboard: bite bugzilla search --whiteboard + .Without whiteboard: bite bugzilla search --whiteboard false + Regular values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Values can also use match operators to alter their query application. See the <> section for more information. == Attachment options *--attachment-description* :: Restrict by attachment description. + Values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Match operators can also be used alter query application, see the <> section for more information. + .Debug attachments: bite bugzilla search --attachment-description debug *--attachment-filename* :: Restrict by attachment file name. + Values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Match operators can also be used alter query application, see the <> section for more information. + .Tarball attachments: bite bugzilla search --attachment-filename '=* .+\.tar\..+' *--attachment-mime* :: Restrict by attachment MIME type. + Values search for matching substrings and multiple values can be specified in a comma-separated list for logical AND or multiple options for logical OR. Match operators can also be used alter query application, see the <> section for more information. + .Text-based attachments: bite bugzilla search --attachment-mime '=* text/.+' *--attachment-is-obsolete* []:: Restrict by attachment obsolete status. + .With obsolete attachments: bite bugzilla search --attachment-is-obsolete *--attachment-is-patch* []:: Restrict by attachment patch status. + .With patch attachments: bite bugzilla search --attachment-is-patch *--attachment-is-private* []:: Restrict by attachment private status. + .With no private attachments: bite bugzilla search --attachment-is-private false == Range options *--comments* :: Restrict by the number of comments. + Values can either be numbers, numbers prefixed with operators (see section <>), or ranges (see section <>). + Note that a bug's description is counted as a comment, but does not increment the overall comment count shown by the `get` or `comment` subcommands. + .Exactly ten comments: bite bugzilla search --comments 10 + .At least ten comments: bite bugzilla search --comments '>=10' + .Between five and ten comments: bite bugzilla search --comments 5..10 *--votes* :: Restrict by the number of votes. + Values can either be numbers, numbers prefixed with operators (see section <>), or ranges (see section <>). + Note that a bug's description is counted as a comment, but does not increment the overall comment count shown by the `get` or `comment` subcommands. + .Exactly ten votes: bite bugzilla search --votes 10 bite bugzilla search --votes '=10' + .At least ten votes: bite bugzilla search --votes '>=10' + .Between five and ten votes: bite bugzilla search --votes 5..10 == Change options // TODO: list possible change fields *--changed* :: Restrict by fields changed within a time interval. + By default, this will match any change to the specified fields if no time interval is given. Queries can be inverted per field by prefixing the field name with `!`. + .Summary changed: bite bugzilla search --changed summary + .Summary never changed: bite bugzilla search --changed '!summary' + .Summary changed in the last week: bite bugzilla search --changed summary=1w + .Summary changed in 2020 or later: bite bugzilla search --changed summary=2020 bite bugzilla search --changed summary='>2020' bite bugzilla search --changed summary='2020..' + .Summary changed before 2020: bite bugzilla search --changed summary='<2020' bite bugzilla search --changed summary='..2020' + .Summary changed between 2020 and 2022: bite bugzilla search --changed summary='2020..2022' *--changed-by* :: Restrict by fields changed by a given user. *--changed-from* :: Restrict by fields changed from a given value. *--changed-to* :: Restrict by fields changed to a given value. == Time options // TODO: include external doc describing time value format *-c, --created*