Skip to main content

Github Auto Update package using Github releases.

Project description

GHAU

Github Auto Update package available to use for all public Github Repositories.

Currently in development.

Goal

The goal of this repository is to create a flexible package that can easily be implemented into any python project allowing for automatic updates through GitHub Releases.

Basically I got tired of building update scripts for every program I made.

Features

  • UPDATE: Automatically update distributed copies of any public GitHub repository using GitHub Releases.
  • Clean Directory: Option to delete certain files before an update is installed.
  • Whitelist: Protect certain files from being overwritten by update installation, useful for config files.
  • Pre-Releases: Choose to include pre-releases in updates.
  • Developer Mode detection: If the package detects a .git folder with files inside, it will automatically abort the update process to protect the file structure during development.
  • Automatic Reboots: Optionally reboot into the newer program after update installation. Supports rebooting into a python script, executable, or a custom run command! Windows not supported.
  • Authentication: Authenticate with the Github API to recieve a larger rate limit and access to your private repositories.
    • Do not store your API token in a public location. Use environmental variables.
  • Download assets or source code: Choose between downloading the source code or an uploaded asset!

To-Do

  • Add proper tests (gotta figure out this one)
  • Improve on asset and version detection.
  • Improve developer environment detection.
  • Cleanup & Code Optimization

Installation

Does not support Windows!

The package is posted on PyPi, so you can install it using pip, simply run:

pip install ghau

Basic Example

import ghau
#other imports

update = ghau.Update(version="v0.0.1", repo="InValidFire/ghau")
update.update()
# rest of program code

Documentation (WIP)

Read the documentation at Read The Docs

Requirements

This script utilizes PyGithub for its Github interactions, wcmatch for its file filtering, and requests for file downloads. All three can be found in the requirements.txt file in this repository.

Contributing

See something you think you can do better? Perhaps a bug I missed? Or even a new feature implementation? All you have to do is fork this repository, make the edits, then open a pull request explaining the changes you made. Thanks for contributing! <3

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

ghau-0.4.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

ghau-0.4-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file ghau-0.4.tar.gz.

File metadata

  • Download URL: ghau-0.4.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for ghau-0.4.tar.gz
Algorithm Hash digest
SHA256 1c8a0b4dc6fbd3fd9212ca2fcb08a41100fa5c92d51cbfdac81d99ac1ab32c85
MD5 a6d7c4d3891eabf6549defb49a4722b0
BLAKE2b-256 994a4474d8f893634ced7be9a6956422ecd4e67f3e0beb3b8ff1eaefcbc1220a

See more details on using hashes here.

File details

Details for the file ghau-0.4-py3-none-any.whl.

File metadata

  • Download URL: ghau-0.4-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for ghau-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d6064863c7aedf8559dfd44a794d0b46f485cdfb0b0c3584011b95159de3bcf2
MD5 bee6d63cbf44a0142bf2db77ace0a5c4
BLAKE2b-256 efae57220f18ea60f5a4aac9ae858f872019780ebde194b28f5aea2cf899a665

See more details on using hashes here.

Supported by

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