Skip to main content

Python SDK for reserving and querying Git Dibs commits

Project description

git-dibs-sdk

If you're reading this, you're already in too deep. Yes, I really made a python sdk for the useless utility that is "Git Dibs". It actually works.

Install

python -m pip install git-dibs-sdk

Quick Start

from git_dibs_sdk import DibsAlreadyCalledError, GitDibsClient

client = GitDibsClient()

dibs = client.lookup_commit("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
if dibs is None:
    print("commit is available")
else:
    print(dibs.reserved_by, dibs.upvote_count)

try:
    created = client.reserve_commit(
        commit_hash="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
        reserved_by="bb",
    )
    print(created.hash)
except DibsAlreadyCalledError as error:
    print(error)

Client Surface

from git_dibs_sdk import GitDibsClient

client = GitDibsClient(
    base_url="https://gitdibs.com",
    timeout=10.0,
)

Available methods:

  • lookup_commit(commit_hash) -> Dibs | None
  • reserve_commit(commit_hash, reserved_by) -> Dibs
  • list_recent_reservations() -> list[Dibs]
  • list_popular_reservations() -> list[Dibs]
  • search_reservations(query=None, after=None, limit=None) -> DibsSearchResult
  • upvote_commit(commit_hash, voter_fingerprint) -> UpvoteResult

Dibs fields:

  • hash
  • reserved_at_utc
  • reserved_by
  • upvote_count

DibsSearchResult fields:

  • dibs
  • query
  • after
  • limit
  • has_more
  • next_after

UpvoteResult fields:

  • applied
  • upvote_count

Error Handling

All transport, HTTP, and response-shape failures are raised as GitDibsError subclasses.

  • DibsAlreadyCalledError: the commit is already reserved
  • GitDibsHttpError: a non-success HTTP response came back from the API

Example:

from git_dibs_sdk import DibsAlreadyCalledError, GitDibsError, GitDibsClient

client = GitDibsClient()

try:
    client.reserve_commit(
        "cccccccccccccccccccccccccccccccccccccccc",
        "TestUser2",
    )
except DibsAlreadyCalledError as error:
    print(error.commit_hash, error.reserved_by)
except GitDibsError as error:
    print(f"request failed: {error}")

API Notes

This SDK matches the current Git Dibs API contract:

  • GET /api/commits/<commit>
  • GET /api/dibs/recent
  • GET /api/dibs/popular
  • GET /api/dibs/search?q=<optional-prefix>&after=<optional-full-commit>&limit=<optional-1-to-50>
  • POST /api/dibs
  • POST /api/upvotes

Lookup returns 204 No Content when a commit is available and 200 OK with a dibs payload when it is reserved.

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

git_dibs_sdk-0.1.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_dibs_sdk-0.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file git_dibs_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: git_dibs_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for git_dibs_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 62fdb83a2bcfb18a701a07df46dd851cae8272288510f2f1dba04cf66a8e21c6
MD5 22d618a18562944f776d8d86739ae684
BLAKE2b-256 561a6b8b8ad97ca225ddc1881838ee5c6c14a752a46e478c7f504aacda740ddf

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_dibs_sdk-0.1.0.tar.gz:

Publisher: publish.yml on gieseanw/git-dibs-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file git_dibs_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: git_dibs_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for git_dibs_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17eecddab801259aadd9502f6f8df7693a0c392422419d63e5fb101584bdeb67
MD5 39d945dd19e47d11b22b154bad8d7410
BLAKE2b-256 c1787d4cb5e2a373a0165aa9f7de11306c9fb9555b1a88e6e2fecc6bf80cdaf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_dibs_sdk-0.1.0-py3-none-any.whl:

Publisher: publish.yml on gieseanw/git-dibs-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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