Async Python client for the geekbot (https://geekbot.com) api
Project description
geekbot-api-py
A Geekbot (https://geekbot.com/) API client in python supporting async and sync operations.
Implements the Geekbot API per https://geekbot.com/developers/
Main Dependencies
Getting Started
Installation
Install the package
pip install geekbot-api
Usage
Follow the directions on https://geekbot.com/developers/ to get an API Token
Example
from geekbot_api.config import GeekbotAPIConfig
from geekbot_api.client import GeekbotAPIClient
config = GeekbotAPIConfig(api_key="api_YOURKEYGOESHERE")
client = GeekbotAPIClient(config=config)
for standup in client.standups.list():
standups.append(standup)
print(standups)
Async Example
import asyncio
from geekbot_api.config import GeekbotAPIConfig
from geekbot_api.client import GeekbotAPIClient
config = GeekbotAPIConfig(api_key="api_YOURKEYGOESHERE")
client = GeekbotAPIClient(config=config)
async def print_standups():
standups = list()
async for standup in client.async_standups.list():
standups.append(standup)
print(standups)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(print_standups())
Reporting to a standup using schemas
import asyncio
from geekbot_api.config import GeekbotAPIConfig
from geekbot_api.client import GeekbotAPIClient
from geekbot_api.schemas import ReportIn
config = GeekbotAPIConfig(api_key="api_YOURKEYGOESHERE")
client = GeekbotAPIClient(config=config)
standup_id = "12345" # Your standup id
answers = dict() # keys are question ids, values are a dict responding to the question
answers['123'] = {'text': "My first answer"}
answers['234'] = {'text': "My second answer"}
report_in = ReportIn(standup_id=standup_id, answers=answers) # pydantic will validate your inputs
report = client.reports.create(report_in)
print(report)
Development
The Makefile has useful targets to help setup your development encironment. We suggest using pyenv to have access to multiple python versions easily.
Environment Setup
-
Clone the repo and enter its root folder
git clone https://github.com/andrewthetechie/geekbot-api-py.git && cd geekbot-api-py
-
Create a python 3.11 virtual environment and activate it. We suggest using pyenv to easily setup multiple python environments on multiple versions.
-
Install the dependencies
make setup
How to Run Tests
-
Run the test command to run tests on only python 3.9
pytest
-
Run Nox to run all python version tests
nox -s tests
Test Requirements
Prs should always have tests to cover the change being made. Code coverage goals for this project are 100% coverage.
Code Linting
Code is linted with ruff
You can run the linting manually with make
make lint
CI
CI is run via Github Actions on all PRs and pushes to the main branch.
Releases are automatically released by Github Actions to Pypi.
License
Licensed under the MIT License
Contributors
Thanks go to these wonderful people (emoji key):
Andrew 💻 📖 ⚠️ |
David 💻 🐛 |
rmathew8-gh 💻 ⚠️ |
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file geekbot_api-0.2.1.tar.gz
.
File metadata
- Download URL: geekbot_api-0.2.1.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a7c9061331497a7fe5daac2b3d15597b8d5ba095febca37c7d244102687a436 |
|
MD5 | 78e4fe97a7c025251a2bffc68eb742a8 |
|
BLAKE2b-256 | 060142e721e550b0f60ffa8690fbfd016506654143a76e3b0dafb84b385a7b41 |
File details
Details for the file geekbot_api-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: geekbot_api-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4da8bd5e8c12358774a247270aff449aa298c45acce9d878a69132d2ccae3dc |
|
MD5 | d2f183622e964d296d77aa18e23fe2d7 |
|
BLAKE2b-256 | 1e3e337d075ab1c81ff5f570f57ba42c1c132c02d32fd64975be11e018b7e4d6 |