Skip to content

bug: GitHub query and involved_issues don't work with fine-grained access tokens #1192

@muni-corn

Description

@muni-corn

The current documentation for bugwarrior says:

If you want to write your own github query, as described at https://help.github.com/articles/searching-issues/:

query = "assignee:octocat is:open"

Note that this search covers both issues and pull requests, which github treats as a special kind of issue.

...but it seems that GitHub has changed its mind on this.

If I set:

involved_issues = true

# or
query = "involves:muni-corn archived:false"

then I get this error on bugwarrior pull:

ERROR:bugwarrior.collect:Worker for [github] failed: Non-200 status code 422; 'https://api.github.com/search/issues?q=involves:muni-corn%20state:open&per_page=100'; '{"message":"Query must include \'is:issue\' or \'is:pull-request\'","documentation_url":"https://docs.github.com/rest/search/search#search-issues-and-pull-requests","status":"422"}'
Traceback (most recent call last):
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/collect.py", line 47, in _aggregate_issues
    for issue in service.issues():
                 ~~~~~~~~~~~~~~^^
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/services/github.py", line 435, in issues
    self.get_query(
    ~~~~~~~~~~~~~~^
        'involves:{user} state:open'.format(user=self.config.username)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/services/github.py", line 311, in get_query
    for issue in self.client.get_query(query):
                 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/services/github.py", line 120, in get_query
    return self._getter(url, subkey='items')
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/services/github.py", line 166, in _getter
    json_res = self.json_response(response)
  File "/nix/store/d7pmp2f48nx8q56mwfzqqzib4rfgaic8-python3-3.13.12-env/lib/python3.13/site-packages/bugwarrior/services/__init__.py", line 379, in json_response
    raise OSError(
    ...<2 lines>...
    )
OSError: Non-200 status code 422; 'https://api.github.com/search/issues?q=involves:muni-corn%20state:open&per_page=100'; '{"message":"Query must include \'is:issue\' or \'is:pull-request\'","documentation_url":"https://docs.github.com/rest/search/search#search-issues-and-pull-requests","status":"422"}'
INFO:bugwarrior.collect:Done with [github] in 0.5002522468566895.
ERROR:bugwarrior.collect:Aborted [github] due to critical error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions