[enh] uses argh and include github token to talk to the API

This commit is contained in:
Laurent Peuch 2018-07-21 08:16:18 +02:00
parent 6636775501
commit bdebd63fe2

24
run.py
View file

@ -2,15 +2,15 @@
import os import os
import sys import sys
import ujson import argh
import random
import logging import logging
import asyncio import asyncio
import random
from datetime import datetime from datetime import datetime
from collections import defaultdict from collections import defaultdict
import ujson
import aiohttp import aiohttp
import aiofiles import aiofiles
@ -74,7 +74,7 @@ async def monitor_apps_lists():
# only support github for now :( # only support github for now :(
async def get_master_commit_sha(app_id, organization="yunohost-apps"): async def get_master_commit_sha(app_id, organization="yunohost-apps"):
async with aiohttp.ClientSession() as session: async with aiohttp.ClientSession() as session:
async with session.get(f"https://api.github.com/repos/{organization}/{app_id}_ynh/branches/master") as response: async with session.get(f"https://api.github.com/repos/{organization}/{app_id}_ynh/branches/master", headers={"Authorization": f"token {app.config.github_token}"}) as response:
data = await response.json() data = await response.json()
try: try:
commit_sha = data["commit"]["sha"] commit_sha = data["commit"]["sha"]
@ -90,7 +90,7 @@ async def monitor_apps_lists():
async with aiohttp.ClientSession() as session: async with aiohttp.ClientSession() as session:
app_list = "official" app_list = "official"
task_logger.info(f"Downloading {app_list_name}.json...") task_logger.info(f"Downloading {app_list_name}.json...")
async with session.get(url) as resp: async with session.get(url, headers={"Authorization": f"token {app.config.github_token}"}) as resp:
data = await resp.json() data = await resp.json()
repos = {x.name: x for x in Repo.select().where(Repo.app_list == app_list_name)} repos = {x.name: x for x in Repo.select().where(Repo.app_list == app_list_name)}
@ -401,17 +401,15 @@ async def index(request):
return response.html(await index_template.read()) return response.html(await index_template.read())
if __name__ == "__main__": def main(path_to_analyseCI, github_token=None):
if not sys.argv[1:]:
print("Error: missing shell path argument")
print("Usage: python run.py /path/to/analyseCI.sh")
sys.exit(1)
path_to_analyseCI = sys.argv[1]
reset_pending_jobs() reset_pending_jobs()
reset_busy_workers() reset_busy_workers()
app.config.github_token = github_token
app.add_task(monitor_apps_lists()) app.add_task(monitor_apps_lists())
app.add_task(jobs_dispatcher()) app.add_task(jobs_dispatcher())
app.run('localhost', port=4242) app.run('localhost', port=4242)
if __name__ == "__main__":
argh.dispatch_command(main)