Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(709)

Unified Diff: projects.py

Issue 144163002: Added support for private projects. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/commit-queue
Patch Set: Style fix Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « commit_queue.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: projects.py
diff --git a/projects.py b/projects.py
index d304dadcf846d2c42763abf2f43987ef08b55eae..13768eabf0fc6a7a0550ddc8811577d0e8531c78 100644
--- a/projects.py
+++ b/projects.py
@@ -39,6 +39,7 @@ if os.path.isdir(INTERNAL_DIR):
import gyp_committers # pylint: disable=F0401
import nacl_committers # pylint: disable=F0401
import skia_committers # pylint: disable=F0401
+ import projects_internal # pylint: disable=F0401
else:
print >> sys.stderr, (
'Failed to find commit-queue-internal; will fail to start!')
@@ -46,7 +47,7 @@ else:
gyp_committers = None
nacl_committers = None
skia_committers = None
-
+ projects_internal = None
# It's tricky here because 'chrome' is remapped to 'svn' on src.chromium.org but
# the other repositories keep their repository name. So don't list it here.
@@ -757,14 +758,45 @@ def _internal_simple(path, project_bases, user, root_dir, rietveld_obj):
verifiers)
+def _get_supported_projects():
+ """Return project names and corresponding functions in a dict.
+
+ Projects functions start with '_gen_' and are searched for in the present
+ file and in commit-queue-internal/projects_internal.py.
+ """
+ projects = {}
+ for name in dir(sys.modules[__name__]):
+ if name.startswith('_gen_'):
+ projects[name[5:]] = getattr(sys.modules[__name__], name)
+
+ if projects_internal:
+ for name in dir(sys.modules['projects_internal']):
+ if name.startswith('_gen_'):
+ if name[5:] in projects:
+ raise errors.ConfigurationError(
+ 'public project function %s overriden by private one'
+ % name)
+ projects[name[5:]] = getattr(sys.modules['projects_internal'], name)
+
+ return projects
+
+
def supported_projects():
"""List the projects that can be managed by the commit queue."""
- return sorted(
- x[5:] for x in dir(sys.modules[__name__]) if x.startswith('_gen_'))
+ return sorted(_get_supported_projects().keys())
def load_project(project, user, root_dir, rietveld_obj, no_try):
- """Loads the specified project."""
+ """Loads the specified project.
+
+ Args:
+ project (string): project name (suffix of _gen_* functions above)
+ user (string): email address identifying the commit bot.
+ root_dir (string): working directory (were credentials are stored e.g. .gaia)
+ rietveld_obj (rietveld.Rietveld): object for communicating with Rietveld.
+ no_try (boolean): is True, means "do not send try jobs"
+ """
assert os.path.isabs(root_dir)
- return getattr(sys.modules[__name__], '_gen_' + project)(
- user, root_dir, rietveld_obj, no_try)
+ return _get_supported_projects()[project](
+ user, root_dir, rietveld_obj, no_try)
+
« no previous file with comments | « commit_queue.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698