GothenburgBitFactory / GothenburgBitFactory/bugwarrior
bug: GitHub `query` and `involved_issues` don't work with fine-grained access tokens
- 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
Assessment
This issue has not been assessed yet.