Misc fixes
This commit is contained in:
parent
4b2e630429
commit
249307a849
6 changed files with 19 additions and 11 deletions
|
@ -23,7 +23,7 @@ Configure the webhook on github
|
||||||
|
|
||||||
Also need to allow the bot to push on all repos
|
Also need to allow the bot to push on all repos
|
||||||
|
|
||||||
Configure nginx to reverse proxy on port 80123 (or whichever port you set in the systemd config)
|
Configure nginx to reverse proxy on port 8123 (or whichever port you set in the systemd config)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo "github_webhook_secret" > github_webhook_secret
|
echo "github_webhook_secret" > github_webhook_secret
|
||||||
|
|
|
@ -12,15 +12,19 @@ def generate_READMEs(app_path):
|
||||||
if not os.path.exists(app_path):
|
if not os.path.exists(app_path):
|
||||||
raise Exception("App path provided doesn't exists ?!")
|
raise Exception("App path provided doesn't exists ?!")
|
||||||
|
|
||||||
|
manifest = json.load(open(os.path.join(app_path, "manifest.json")))
|
||||||
|
upstream = manifest.get("upstream", {})
|
||||||
|
|
||||||
|
if not upstream and not os.path.exists(os.path.join(app_path, "doc", "DISCLAIMER.md")):
|
||||||
|
print("There's no 'upstream' key in the manifest, and doc/DISCLAIMER.md doesn't exists - therefore assuming that we shall not auto-update the README.md for this app yet.")
|
||||||
|
return
|
||||||
|
|
||||||
env = Environment(loader=FileSystemLoader('./templates'))
|
env = Environment(loader=FileSystemLoader('./templates'))
|
||||||
|
|
||||||
for lang, lang_suffix in [("en", ""), ("fr", "_fr")]:
|
for lang, lang_suffix in [("en", ""), ("fr", "_fr")]:
|
||||||
|
|
||||||
template = env.get_template(f'README{lang_suffix}.md.j2')
|
template = env.get_template(f'README{lang_suffix}.md.j2')
|
||||||
|
|
||||||
manifest = json.load(open(os.path.join(app_path, "manifest.json")))
|
|
||||||
upstream = manifest.get("upstream", {})
|
|
||||||
|
|
||||||
if os.path.exists(os.path.join(app_path, "doc", "screenshots")):
|
if os.path.exists(os.path.join(app_path, "doc", "screenshots")):
|
||||||
screenshots = os.listdir(os.path.join(app_path, "doc", "screenshots"))
|
screenshots = os.listdir(os.path.join(app_path, "doc", "screenshots"))
|
||||||
if ".gitkeep" in screenshots:
|
if ".gitkeep" in screenshots:
|
||||||
|
|
|
@ -7,7 +7,7 @@ location / {
|
||||||
|
|
||||||
client_max_body_size 100M;
|
client_max_body_size 100M;
|
||||||
|
|
||||||
proxy_pass http://127.0.0.1:80123;
|
proxy_pass http://127.0.0.1:8123;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection "Upgrade";
|
proxy_set_header Connection "Upgrade";
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
argparse
|
argparse
|
||||||
jinja2
|
jinja2
|
||||||
github-webhook==1.0.4
|
github-webhook==1.0.4
|
||||||
|
gunicorn==20.1.0
|
||||||
|
|
|
@ -10,11 +10,12 @@ webhook = Webhook(app) # Defines '/postreceive' endpoint
|
||||||
|
|
||||||
webhook.secret = open("github_webhook_secret", "r").read().strip()
|
webhook.secret = open("github_webhook_secret", "r").read().strip()
|
||||||
|
|
||||||
|
login = open("login").read().strip()
|
||||||
|
token = open("token").read().strip()
|
||||||
|
|
||||||
my_env = os.environ.copy()
|
my_env = os.environ.copy()
|
||||||
my_env["GIT_TERMINAL_PROMPT"] = "0"
|
my_env["GIT_TERMINAL_PROMPT"] = "0"
|
||||||
|
|
||||||
login = open("login").read().strip()
|
|
||||||
token = open("token").read().strip()
|
|
||||||
|
|
||||||
def git(cmd, in_folder=None):
|
def git(cmd, in_folder=None):
|
||||||
|
|
||||||
|
@ -38,16 +39,18 @@ def on_push(data):
|
||||||
branch = data["ref"].split("/", 2)[2]
|
branch = data["ref"].split("/", 2)[2]
|
||||||
|
|
||||||
folder = subprocess.check_output(["mktemp", "-d"])
|
folder = subprocess.check_output(["mktemp", "-d"])
|
||||||
git(f"clone https://{login}:{token}@github.com/{repository} --single-branch --branch {branch} {folder}")
|
git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder])
|
||||||
generate_READMEs(folder)
|
generate_READMEs(folder)
|
||||||
|
|
||||||
|
git(["add", "README*.md"], in_folder=folder)
|
||||||
|
|
||||||
diff_not_empty = bool(subprocess.check_output(f"cd {folder} && git diff HEAD --compact-summary", shell=True).strip().decode("utf-8"))
|
diff_not_empty = bool(subprocess.check_output(f"cd {folder} && git diff HEAD --compact-summary", shell=True).strip().decode("utf-8"))
|
||||||
if not diff_not_empty:
|
if not diff_not_empty:
|
||||||
return
|
return
|
||||||
|
|
||||||
git(["commit", "-a", "-m", "Auto-update README", "--author='Yunohost-Bot <>'"], in_folder=folder)
|
git(["commit", "-a", "-m", "Auto-update README", "--author='Yunohost-Bot <>'"], in_folder=folder)
|
||||||
git(f"push fork origin {branch} --quiet", in_folder=folder)
|
git(["push", "fork", "origin", branch, "--quiet"], in_folder=folder)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run(host="0.0.0.0", port=80123)
|
app.run(host="0.0.0.0", port=8123)
|
||||||
|
|
|
@ -7,7 +7,7 @@ PIDFile=/run/gunicorn/autoreadme_webhook-pid
|
||||||
User=autoreadme_webhook
|
User=autoreadme_webhook
|
||||||
Group=autoreadme_webhook
|
Group=autoreadme_webhook
|
||||||
WorkingDirectory=__PATH_TO_README_GENERATOR__
|
WorkingDirectory=__PATH_TO_README_GENERATOR__
|
||||||
ExecStart=__PATH_TO_README_GENERATOR__/venv/bin/gunicorn -w 4 -b 127.0.0.1:80123 webhook:app
|
ExecStart=__PATH_TO_README_GENERATOR__/venv/bin/gunicorn -w 4 -b 127.0.0.1:8123 webhook:app
|
||||||
ExecReload=/bin/kill -s HUP $MAINPID
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
ExecStop=/bin/kill -s TERM $MAINPID
|
ExecStop=/bin/kill -s TERM $MAINPID
|
||||||
PrivateTmp=true
|
PrivateTmp=true
|
||||||
|
|
Loading…
Reference in a new issue