Skip to main content

Gitea OAuth 2.0 / OAuth 2.1 / OIDC 1.0 identity provider implementations for Swarmauri

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_auth_idp_gitea


Swarmauri Auth IDP Gitea

Gitea OAuth 2.0, OAuth 2.1, and OIDC 1.0 login and app-client flows packaged for the Swarmauri ecosystem.

Features

  • PKCE-enabled authorization code flows with signed state payloads and resilient retries.
  • Automatic profile enrichment using the Gitea REST API with email fallbacks.
  • Optional private-key JWT client authentication for high-assurance machine-to-machine use.
  • OIDC support that validates ID tokens and gracefully falls back to UserInfo claims.
  • ComponentBase-registered classes for discovery through Swarmauri plugin entry points.

Installation

pip

pip install swarmauri_auth_idp_gitea

uv (project)

uv add swarmauri_auth_idp_gitea

uv (environment)

uv pip install swarmauri_auth_idp_gitea

Usage

Instantiate the login classes with your Gitea base URL, client credentials, and redirect URI. Persist the signed state returned by auth_url and supply it to the exchange step.

from pydantic import SecretBytes, SecretStr
from swarmauri_auth_idp_gitea import GiteaOAuth21Login

login = GiteaOAuth21Login(
    base_url="https://gitea.example.com",
    client_id="example-client-id",
    client_secret=SecretStr("example-secret"),
    redirect_uri="https://example.com/callback",
    state_secret=SecretBytes(b"super-secret-state-key"),
)

# Within an async context:
# auth_payload = await login.auth_url()
# identity = await login.exchange_and_identity(code, auth_payload["state"])
print(login.client_id)

Expected Workflow

  1. Call auth_url() and redirect the user agent to Gitea's authorization endpoint.
  2. Persist the returned state and verify it during the callback to prevent tampering.
  3. Call exchange_and_identity() (or exchange() for the OIDC login) to normalize user claims.
  4. Use the normalized payload to create sessions, audit events, or downstream tokens.

App client classes expose access_token() for service-to-service integrations using either client secrets or private-key JWT assertions.

Entry Points

The distribution registers the following entry points:

  • swarmauri.auth_idp:GiteaOAuth20Login
  • swarmauri.auth_idp:GiteaOAuth21Login
  • swarmauri.auth_idp:GiteaOIDC10Login
  • swarmauri.auth_idp:GiteaOAuth20AppClient
  • swarmauri.auth_idp:GiteaOAuth21AppClient
  • swarmauri.auth_idp:GiteaOIDC10AppClient

Contributing

To contribute to swarmauri-sdk, review the guidelines for contributing covering development workflow, testing, and coding standards.

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

swarmauri_auth_idp_gitea-0.2.0.dev4.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

swarmauri_auth_idp_gitea-0.2.0.dev4-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_auth_idp_gitea-0.2.0.dev4.tar.gz.

File metadata

  • Download URL: swarmauri_auth_idp_gitea-0.2.0.dev4.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_auth_idp_gitea-0.2.0.dev4.tar.gz
Algorithm Hash digest
SHA256 d869ad042fd94c8cd7404df78855ca2ecdd3cd1d541e1e5f371dda112e335e50
MD5 c62a6efc7233100e879353c2b03a17a9
BLAKE2b-256 d703cf2bb374f8f78f1215d79b6824d5710828af0eb8648b3e70b7cb964418a6

See more details on using hashes here.

File details

Details for the file swarmauri_auth_idp_gitea-0.2.0.dev4-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_auth_idp_gitea-0.2.0.dev4-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_auth_idp_gitea-0.2.0.dev4-py3-none-any.whl
Algorithm Hash digest
SHA256 e2cc52f08f590d91e3e4bb407ca3b590c882e46dad18f34bd8770a5f0b05dfa1
MD5 d59021a1549160d94e523fcbc56e65d9
BLAKE2b-256 ff4f964a2ffd5dea73960b8c896aa99e72c898c69155137999468f5e69ddac72

See more details on using hashes here.

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