Skip to main content

GitHub release backed git filter for Peagen

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_gitfilter_gh_release


Swarmauri Git Filter GitHub Release

Store artifacts in GitHub Releases.

Overview

swarmauri_gitfilter_gh_release provides the GithubReleaseFilter, a StorageAdapter and GitFilter hybrid that manages Peagen artifacts as assets attached to a GitHub Release. It:

  • Connects to the configured organization, repository, and release tag using PyGithub.
  • Creates the release on-demand if it does not already exist.
  • Normalizes object keys with an optional prefix, exposing the release contents as a virtual directory via root_uri.
  • Uploads and replaces release assets atomically, allowing you to store binary artifacts without worrying about duplicates.
  • Supports directory workflows with upload_dir, iter_prefix, and download_prefix helpers for batch operations.

Authentication & configuration

The filter authenticates using a GitHub token sourced from your .peagen.toml or the GITHUB_TOKEN environment variable. The token needs permissions to read and write releases in the target repository.

Example .peagen.toml snippet:

[storage.filters.gh_release]
token = "$GITHUB_TOKEN"

You can also set the environment variable directly:

export GITHUB_TOKEN="ghp_..."

Installation

pip

pip install swarmauri_gitfilter_gh_release

uv

curl -Ls https://astral.sh/uv/install.sh | sh
uv pip install swarmauri_gitfilter_gh_release

Poetry

poetry add swarmauri_gitfilter_gh_release

Usage

from swarmauri_gitfilter_gh_release import GithubReleaseFilter

filt = GithubReleaseFilter.from_uri("ghrel://org/repo/tag/artifacts")

print(filt.root_uri)

The example above resolves the release (creating it if necessary) and prints the normalized root URI (ghrel://org/repo/tag/artifacts/).

Managing artifacts

GithubReleaseFilter mirrors GitHub release assets onto local paths. Each method accepts keys relative to the virtual root defined by the release tag and optional prefix:

  • upload(key, data) uploads a file-like object and replaces existing assets that share the same key.
  • download(key) streams a release asset back as a BytesIO object for inspection or local persistence.
  • upload_dir(path, prefix="") walks a directory tree and pushes each file into the release using the provided prefix.
  • iter_prefix(prefix) yields keys that start with the supplied prefix, allowing selective sync logic.
  • download_prefix(prefix, dest_dir) restores a tree of assets into a target directory on disk.

Combine these helpers to move trained models, prompts, or configuration bundles between local development and persistent release storage while keeping file layouts consistent.

Want to help?

If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.

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_gitfilter_gh_release-0.3.0.dev44.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file swarmauri_gitfilter_gh_release-0.3.0.dev44.tar.gz.

File metadata

  • Download URL: swarmauri_gitfilter_gh_release-0.3.0.dev44.tar.gz
  • Upload date:
  • Size: 8.7 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_gitfilter_gh_release-0.3.0.dev44.tar.gz
Algorithm Hash digest
SHA256 3c63d0134ea8ed86d53bbfff1e167a4bf4d825182c6a6a36e562118c9c215fd8
MD5 e3a34fe7ebcc6c5bbcb7d2b15217c43c
BLAKE2b-256 61b4e06a677b00009e287af45a18764861493a3920e6e1fcbd23f9532f42f137

See more details on using hashes here.

File details

Details for the file swarmauri_gitfilter_gh_release-0.3.0.dev44-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_gitfilter_gh_release-0.3.0.dev44-py3-none-any.whl
  • Upload date:
  • Size: 9.8 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_gitfilter_gh_release-0.3.0.dev44-py3-none-any.whl
Algorithm Hash digest
SHA256 503022262a0f05cfba4d0a06dfa75c82d3684bdb3d9c2e1989463ed8c7c19da0
MD5 e6bc1011fb474334b48c4a7f5d9a9a1e
BLAKE2b-256 7c45ae84ca1c4693ca1abfd71ceb5caf2808835d0fa080cc811f07b158fd06d2

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