Skip to main content

Giftless Client

A Git LFS client library implemented in Python, compatible with Git LFS servers in general and specifically Giftless Git LFS server.

giftless-client is tested on Python 2.7 and 3.6+.

Installation

You can install this library directly from pypi:

(venv) $ pip install giftless-client

API

This module exposes one main class: LfsClient. Typically, you only need to use this class to perform most Git LFS operations. The client provides both a wrapper around the low-level LFS API commands e.g. batch as well as higher level methods to upload and download files.

Instantiating a Client

from giftless_client import LfsClient

client = LfsClient(
    lfs_server_url='https://git-lfs.example.com', # Git LFS server URL
    auth_token='somer4nd0mT0ken==',               # Bearer token if required by the server (optional)
    transfer_adapters=['basic']                   # Enabled transfer adapters (optional)
)

The transfer_adapters parameter is optional, and represents a list of supported transfer adapters by priority to negotiate with the server; Typically, there is no reason to provide this parameter.

Downloading a File from LFS storage

Download a file and save it to file like object.

download(file_obj, object_sha256, object_size, organization, repo, **extras)
  • file_obj is expected to be an file-like object open for writing in binary mode
  • object_sha256: sha256 of the object you wish to download
  • object_size: size of the object you wish to download
  • organization, repo: used to generate the prefix for the batch request in form organization/repo
  • extras are added to the batch request attributes dict prefixed with x-. This is largely Giftless specific.

Note that the download itself is performed by the selected Transfer Adapter.

Uploading a File to LFS storage

Upload a file to LFS storage

upload(file_obj, organization, repo, **extras)
  • file_obj: a readable, seekable file-like object
  • Other arguments as per download

Note that the upload itself is performed by the selected Transfer Adapter.

Sending an LFS batch API request

Send a batch request to the LFS server:

batch(prefix, operation, objects, ref=None, transfers=None)

  • prefix: add to LFS server url e.g. if prefix=abc and client was created with server url of https://git-lfs.example.com then batch request is made by POST to https://git-lfs.example.com/abc/objects/batch
  • All other arguments: see batch command for definitions

Example:

client.batch(
  prefix='myorg/myrepo',
  operation='download',
  objects={
      "oid": "12345678",
      "size": 123
    }
)

Usage in Command Line

While the main use for giftless-client is as a client library for other projects, this module does include some command line functionality.

Run the following command to get more information:

(venv) $ giftless-client --help

License

Giftless Client is free software distributed under the terms of the MIT license. See LICENSE for details.

Giftless Client is (c) 2020 Datopian / Viderum Inc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

giftless-client-0.1.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

giftless_client-0.1.1-py2.py3-none-any.whl (9.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file giftless-client-0.1.1.tar.gz.

File metadata

  • Download URL: giftless-client-0.1.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/2.7.18

File hashes

Hashes for giftless-client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2b810764c9a5b112a533db4f05e7cef1a3b760a52117cb2ee99a18667d9968ca
MD5 a6b217b70a7f5484f23f6f24803550e6
BLAKE2b-256 d619cb99fa8550753a0f67db910050f4774af049ece9eef659c241f282f40260

See more details on using hashes here.

File details

Details for the file giftless_client-0.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: giftless_client-0.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/2.7.18

File hashes

Hashes for giftless_client-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6baf6fa8f22a2c3d07730195820d08e36650a1aa70be23b7e59a5f620185662a
MD5 5e62c577a839b51092c9793f25d46cf3
BLAKE2b-256 f4d10610a54b89557774524b1792e77b3debdd26a1ce557f7a57e1a7153653e1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

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