1
0
mirror of https://github.com/EeeeKa/webhook-catcher.git synced 2025-08-04 00:17:22 +05:00

Compare commits

..

6 Commits

Author SHA1 Message Date
d5a6fe1594
Merge pull request #2 from EeeeKa/master
Add auto checkout to branch after pull
2020-10-08 17:32:54 +05:00
b5bfe5af7b Add auto checkout to branch after pull 2020-10-08 17:29:51 +05:00
0e40f2e916
Merge pull request #1 from EeeeKa/master
Master
2020-10-08 12:16:27 +05:00
76e62815c5 Add sample systemd unit file 2020-10-08 12:02:11 +05:00
a4ff475abd Fix logging 2020-10-08 11:57:11 +05:00
d036bf1bd0 Fix --work-tree parameter 2020-08-03 12:07:49 +05:00
2 changed files with 29 additions and 4 deletions

View File

@ -0,0 +1,12 @@
[Unit]
Description=Webhook catcher
After=network.target
[Service]
User=whcd
Group=whcd
ExecStart=/usr/sbin/webhook-catcher -c /etc/webhook-catcher/config.json
[Install]
WantedBy=multi-user.target

View File

@ -1,7 +1,7 @@
#!/usr/bin/python3
#
# Webhook-catcher v1.0
# Webhook-catcher v1.3
#
import os
@ -32,7 +32,7 @@ from signal import signal, SIGHUP, SIGTERM
from pprint import pprint
PROG_NAME = "Webhook-catcher"
PROG_VERSION = "v1.0"
PROG_VERSION = "v1.3"
PROG_DESCRIPTION = '\
Simple HTTP-server for processing webhooks from Github or Gogs portals.\n\
\n\
@ -136,6 +136,8 @@ class WebHookHandler(BaseHTTPRequestHandler):
self.end_headers()
self.wfile.write(json.dumps(self.json_response, indent=2, sort_keys=True).encode('UTF-8', 'replace'))
def log_message(self, format, *args):
pm("%s - - [%s] %s \n" % (self.address_string(), self.log_date_time_string(), format%args))
def do_POST(self):
# GET SIGNATURE
@ -371,9 +373,18 @@ class WebHookWorker(object):
def git_pull(cls, repo):
if os.path.isdir(repo['dir']):
result = subprocess.run([
"git", "--git-dir", os.path.join(repo['dir'], '.git'), "pull",
repo['remote'], repo['branch'],
"git", "--git-dir", os.path.join(repo['dir'], '.git'), "--work-tree", repo['dir'], "pull",
repo['remote'], repo['branch']
], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
if result.returncode == 0:
sub_result = subprocess.run([
"git", "--git-dir", os.path.join(repo['dir'], '.git'), "--work-tree", repo['dir'], "checkout",
repo['branch']
], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
result.stdout += sub_result.stdout
result.stderr += sub_result.stderr
result.returncode = sub_result.returncode
else:
result = subprocess.run([
"git", "clone", "--origin", repo['remote'], "--branch", repo['branch'], repo['url'], repo['dir']
@ -422,10 +433,12 @@ class MessagePrinter:
def pm(self, message):
if not self.quiet:
print(message)
sys.stdout.flush()
def pdm(self, debug_message):
if self.debug:
pprint(debug_message)
sys.stdout.flush()
def load_config(path):
if path != '':