GothenburgBitFactory / GothenburgBitFactory/bugwarrior

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

Open
#1,192 3 comments 0 reactions 0 assignees View on GitHub
github
Dominant language
Python
Stars
820
Forks
225
PR merge metrics
No merged PRs in 30d

Description

The [current documentation](https://bugwarrior.readthedocs.io/en/latest/services/github.html) for bugwarrior says:

> If you want to write your own github query, as described at https://help.github.com/articles/searching-issues/:
>
> ```toml
> 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:

```toml
involved_issues = true

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

then I get this error on `bugwarrior pull`:

```python
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.
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.