Created
January 6, 2019 16:38
-
-
Save elbosso/6637702612991bb454d205d936dd04dc to your computer and use it in GitHub Desktop.
This is yet another followup re: dynamic badges in gitlab - its predecessor is here: https://gist.github.com/elbosso/cbce113805735478e926c28a9079cede This time we use flask to be more flexible with more deployment options - also it's fun!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask import Flask | |
from flask import make_response | |
import requests | |
from anybadge import Badge | |
from flask import request | |
app = Flask(__name__) | |
@app.route("/open/<int:projid>") | |
def openIssues(projid): | |
lbl=request.args.get('lbl', '') | |
url = 'http://<gitlab-host>/api/v4/projects/'+str(projid)+'/issues?state=opened&scope=all&per_page=1' | |
headers = {'Private-Token': 'xxxx-xxxx-xxxxxx'} | |
r = requests.get(url, headers=headers) | |
v=r.headers['X-Total'] | |
thresh={5: 'green', | |
10: 'jellowgreen', | |
15: 'yellow', | |
20: 'orange', | |
25: 'red'} | |
vfmt="%d" | |
badge = Badge(label=lbl, value=v, value_format=vfmt,thresholds=thresh) | |
resp = make_response(badge.badge_svg_text, 200) | |
resp.headers['Content-Type'] = 'image/svg+xml;charset=utf-8' | |
resp.headers['Content-Disposition'] = 'attachment; filename=badge.svg' | |
return resp | |
@app.route("/closed/<int:projid>") | |
def closedIssues(projid): | |
lbl=request.args.get('lbl', '') | |
url = 'http://<gitlab-host>/api/v4/projects/'+str(projid)+'/issues?state=closed&scope=all&per_page=1' | |
headers = {'Private-Token': 'xxxx-xxxx-xxxxxx'} | |
r = requests.get(url, headers=headers) | |
v=r.headers['X-Total'] | |
thresh={0: 'green'} | |
vfmt="%d" | |
badge = Badge(label=lbl, value=v, value_format=vfmt,thresholds=thresh) | |
resp = make_response(badge.badge_svg_text, 200) | |
resp.headers['Content-Type'] = 'image/svg+xml;charset=utf-8' | |
resp.headers['Content-Disposition'] = 'attachment; filename=badge.svg' | |
return resp | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment