From 8f5110a6e8d2586328f7b9ca3e97c1560537eb82 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Tue, 13 Sep 2016 16:25:04 +0200 Subject: [PATCH] lister: only one transaction per github API query --- swh/lister/github/lister.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/swh/lister/github/lister.py b/swh/lister/github/lister.py index 9813746..ac9b6c2 100644 --- a/swh/lister/github/lister.py +++ b/swh/lister/github/lister.py @@ -127,7 +127,6 @@ def inject_repo(db_session, repo): if k in repo: setattr(sql_repo, k, repo[k]) sql_repo.last_seen = datetime.datetime.now() - db_session.commit() class FetchError(RuntimeError): @@ -162,10 +161,10 @@ def fetch(conf, mk_session, min_id=None, max_id=None): raise FetchError(repos_res) repos = repos_res.json() - for repo in repos: - if repo['id'] > max_id: # do not overstep max_id - break - with session_scope(mk_session) as db_session: + with session_scope(mk_session) as db_session: + for repo in repos: + if repo['id'] > max_id: # do not overstep max_id + break inject_repo(db_session, repo) if 'next' in repos_res.links: