1
0
mirror of https://github.com/CMiksche/gitea-auto-update synced 2025-12-10 07:57:23 +01:00

publish actual version

This commit is contained in:
Christoph Miksche
2018-11-26 21:47:12 +01:00
parent 484fd1d4ac
commit 045d4752ba
3 changed files with 93 additions and 0 deletions

33
README.md Normal file
View File

@@ -0,0 +1,33 @@
# Gitea Remote Updater
Script for a automatic update of gitea. Should be run locally on the gitea server.
## Procedure
* Get Gitea Version via Gitea API
* Get latest Relase via GitHub API
* Check if there is a newer Version
* If true
* Download new version, overwrite old version
## General Information
License: GNU General Public License
Author: Christoph Daniel Miksche (m5e.de)
Uses python version 3
## Installation
1. Use the following command to install all dependencies.
```
sudo pip install requests
```
2. Then clone the git repository.
3. After that, please change the variables in the settings.py file.
4. Enter the command `python updater.py` in your commandline.
5. If you want to schedule your updates, edit your /etc/crontab file.

16
settings.py Normal file
View File

@@ -0,0 +1,16 @@
'''
Gitea Remote Updater
Copyright 2018 Christoph Daniel Miksche
All rights reserved.
License: GNU General Public License
'''
# Gitea Site
gtsite = 'https://your-gitea-instance.com/api/v1/version'
# Gitea GitHub API URL for latest Relase
gtgithubapiurl = 'https://api.github.com/repos/go-gitea/gitea/releases/latest'
# Gitea System
gtsystem = 'linux-amd64'
# Name and Path of gitea file
gtfile = '/home/git/gitea'

44
updater.py Normal file
View File

@@ -0,0 +1,44 @@
'''
Gitea Remote Updater
Copyright 2018 Christoph Daniel Miksche
All rights reserved.
License: GNU General Public License
'''
import settings
import requests
import os
# Function to download a file
def download(url, file_name):
# open in binary mode
with open(file_name, "wb") as file:
# get request
response = requests.get(url)
# write to file
file.write(response.content)
# Version from gitea site
current_version = requests.get(settings.gtsite).json()['version']
# Get version tag from github and remove first char (v)
github_version_tag = requests.get(settings.gtgithubapiurl).json()['tag_name']
# Get version from version tag
github_version = github_version_tag[1:]
# Check if there is a new version
if github_version > current_version:
# Stop systemd service
os.system("systemctl stop gitea.service")
# Set download url
gtdownload = 'https://github.com/go-gitea/gitea/releases/download/'+github_version_tag+'/gitea-'+github_version+'-'+settings.gtsystem
# Download file
download(gtdownload, settings.gtfile)
# Start systemd service
os.system("systemctl start gitea.service")