A Geekbot (https://geekbot.com/) API client in python supporting async and sync operations.
Implements the Geekbot API per https://geekbot.com/developers/
Install the package
pip install geekbot-api
Follow the directions on https://geekbot.com/developers/ to get an API Token
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)
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())
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)
The Makefile has useful targets to help setup your development encironment. We suggest using pyenv to have access to multiple python versions easily.
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
Run the test command to run tests on only python 3.9
pytest
Run Nox to run all python version tests
nox -s tests
Prs should always have tests to cover the change being made. Code coverage goals for this project are 100% coverage.
Code is linted with ruff
You can run the linting manually with make
make lint
CI is run via Github Actions on all PRs and pushes to the main branch.
Releases are automatically released by Github Actions to Pypi.
Licensed under the MIT License
Thanks go to these wonderful people (emoji key):
Andrew 💻 📖 ⚠️ |
David 💻 🐛 |
rmathew8-gh 💻 ⚠️ |
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!