Skip to main content

Async Python client for the geekbot (https://geekbot.com) api

Project description

geekbot-api-py

All Contributors

A Geekbot (https://geekbot.com/) API client in python supporting async and sync operations.

Implements the Geekbot API per https://geekbot.com/developers/

Latest Commit
Package version

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
Andrew

💻 📖 ⚠️
David
David

💻 🐛
rmathew8-gh
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

geekbot_api-0.2.1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

geekbot_api-0.2.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

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

Hashes for geekbot_api-0.2.1.tar.gz
Algorithm Hash digest
SHA256 5a7c9061331497a7fe5daac2b3d15597b8d5ba095febca37c7d244102687a436
MD5 78e4fe97a7c025251a2bffc68eb742a8
BLAKE2b-256 060142e721e550b0f60ffa8690fbfd016506654143a76e3b0dafb84b385a7b41

See more details on using hashes here.

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

Hashes for geekbot_api-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a4da8bd5e8c12358774a247270aff449aa298c45acce9d878a69132d2ccae3dc
MD5 d2f183622e964d296d77aa18e23fe2d7
BLAKE2b-256 1e3e337d075ab1c81ff5f570f57ba42c1c132c02d32fd64975be11e018b7e4d6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page