https://github.com/kwk/ghgql
Thin wrapper for interacting with the Github GraphQL API
https://github.com/kwk/ghgql
api github graphql python wrapper
Last synced: 4 months ago
JSON representation
Thin wrapper for interacting with the Github GraphQL API
- Host: GitHub
- URL: https://github.com/kwk/ghgql
- Owner: kwk
- License: mit
- Created: 2022-09-12T07:10:07.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-07-05T22:31:21.000Z (almost 2 years ago)
- Last Synced: 2025-09-28T02:24:23.209Z (9 months ago)
- Topics: api, github, graphql, python, wrapper
- Language: Python
- Homepage: https://pypi.org/project/ghgql/
- Size: 415 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ghgql
Thin wrapper for interacting with the [Github GraphQL API](https://docs.github.com/en/graphql).
## Status
[](https://ghgql.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/kwk/ghgql/actions/workflows/codeql.yml)
[](https://github.com/kwk/ghgql/actions/workflows/ci-cd.yml)
[](https://codecov.io/gh/kwk/ghgql)
[](https://github.com/kwk/ghgql/releases)
## Documentation
Please find the documentation and usage examples here: https://ghgql.readthedocs.io/en/latest/
## Installation
```bash
$ pip install ghgql
```
## Usage
For a more in-depth example, take a look at [the example in the documentation](https://ghgql.readthedocs.io/en/latest/example.html). Here's a basic example.
```python
import os
import fnc
import ghgql
query = """
query ($searchQuery: String!) {
search(query: $searchQuery, type: ISSUE, first: 1) {
edges {
node {
... on Issue {
id
number
title
url
}
}
}
}
}
"""
with ghgql.GithubGraphQL(token=os.getenv("GITHUB_TOKEN")) as ghapi:
result = ghapi.query(query=query, variables={"searchQuery": "llvm/llvm-project"})
print(fnc.get("search.edges", result))
```
Should output something like this:
```yaml
[{'node': {'id': 'I_kwDOHicqdc5RG-tC',
'number': 16,
'title': 'llvm/llvm-project',
'url': 'https://github.com/KhushP786/open-sauced-goals/issues/16'}}]
```
## Contributing
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
### Commit message conventions and semantic versioniong (semver)
We use semantic versioning and [these commit message conventions](https://www.conventionalcommits.org/en/v1.0.0/)
can be used to automatically bump the version number and generate the changelog.
## License
`ghgql` was created by Konrad Kleine. It is licensed under the terms of the MIT license.
## Credits
This project was created with the help of [this python packaging documentation](https://py-pkgs.org/01-introduction).
`ghgql` was created with [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) and the `py-pkgs-cookiecutter` [template](https://github.com/py-pkgs/py-pkgs-cookiecutter).