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!
- 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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.