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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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