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.dev2.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.dev2-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.dev2.tar.gz.

File metadata

  • Download URL: swarmauri_auth_idp_gitea-0.2.0.dev2.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.dev2.tar.gz
Algorithm Hash digest
SHA256 66e646b8c049c9c28dae15fa83a6dd6a780ab4a67ac87d9e6d8d685e6f5adca3
MD5 858b68a89cb1b5de828764fb289946a2
BLAKE2b-256 d1d48bb9a2815c79f47aac0316533c2a2a1bcc4e64199549cfe0cbb807a6ca61

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarmauri_auth_idp_gitea-0.2.0.dev2-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.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 73e5fc3378229d6b97797db6c00d1c2a109d00f4de1560f07208d1b2cb1ae7dc
MD5 3d799c9328b51e9636a3ec8b1395fae3
BLAKE2b-256 aecb5390276f16235d1bc4126a639e840a679d20f2cd2b81e537ed42bcf8fbe5

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