Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/grumpy:master commit in: backend/lib/
Date: Sun, 04 Dec 2016 06:27:30
Message-Id: 1480832807.d1965a898e3f92f94accb630d4daf68d156a0d0c.leio@gentoo
1 commit: d1965a898e3f92f94accb630d4daf68d156a0d0c
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Sun Dec 4 06:26:47 2016 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Sun Dec 4 06:26:47 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/grumpy.git/commit/?id=d1965a89
7
8 sync: Project members and subprojects syncing to DB
9
10 backend/lib/sync.py | 26 +++++++++++++++++++++++++-
11 1 file changed, 25 insertions(+), 1 deletion(-)
12
13 diff --git a/backend/lib/sync.py b/backend/lib/sync.py
14 index 6ed8e01..57a7cb1 100644
15 --- a/backend/lib/sync.py
16 +++ b/backend/lib/sync.py
17 @@ -78,9 +78,33 @@ def sync_projects():
18 print ("Adding project %s" % email)
19 new_maintainer = Maintainer(email=data['email'], is_project=True, description=data['description'], name=data['name'], url=data['url'])
20 db.session.add(new_maintainer)
21 + existing_maintainers[email] = new_maintainer
22 + members = []
23 + if 'subprojects' in data:
24 + for subproject_email, inherit_members in data['subprojects']:
25 + # TODO: How should we handle inherit_members?
26 + if subproject_email in existing_maintainers:
27 + members.append(existing_maintainers[subproject_email])
28 + else:
29 + print("Creating new project entry for subproject: %s" % subproject_email)
30 + new_subproject = Maintainer(email=subproject_email, is_project=True)
31 + db.session.add(new_subproject)
32 + existing_maintainers[subproject_email] = new_subproject
33 + members.append(new_subproject)
34 + if 'members' in data:
35 + for member in data['members']:
36 + if member['email'] in existing_maintainers:
37 + members.append(existing_maintainers[member['email']])
38 + else:
39 + print("Adding individual %s" % member['email'])
40 + new_maintainer = Maintainer(email=member['email'], is_project=False, name=member['name'] if 'name' in member else None)
41 + db.session.add(new_maintainer)
42 + existing_maintainers[member['email']] = new_maintainer
43 + members.append(new_maintainer)
44 + # TODO: Include role information in the association?
45 + existing_maintainers[email].members = members
46 db.session.commit()
47
48 -
49 def sync_categories():
50 url = pkg_url_base + "categories.json"
51 data = http_session.get(url)