diff --git a/data/model/legacy.py b/data/model/legacy.py index d42db7137..c06df82de 100644 --- a/data/model/legacy.py +++ b/data/model/legacy.py @@ -294,11 +294,17 @@ def delete_robot(robot_username): robot_username) -def list_entity_robots(entity_name): - selected = User.select(User.username, FederatedLogin.service_ident) - joined = selected.join(FederatedLogin) - return joined.where(User.robot == True, - User.username ** (entity_name + '+%')).tuples() +def _list_entity_robots(entity_name): + return (User + .select() + .join(FederatedLogin) + .where(User.robot == True, User.username ** (entity_name + '+%'))) + + +def list_entity_robot_tuples(entity_name): + return (_list_entity_robots(entity_name) + .select(User.username, FederatedLogin.service_ident) + .tuples()) def convert_user_to_organization(user, admin_user): @@ -893,7 +899,7 @@ def change_username(user, new_username): with config.app_config['DB_TRANSACTION_FACTORY'](db): # Rename the robots - for robot in list_entity_robots(user.username): + for robot in _list_entity_robots(user.username): _, robot_shortname = parse_robot_username(robot.username) new_robot_name = format_robot_username(new_username, robot_shortname) robot.username = new_robot_name diff --git a/endpoints/api/robot.py b/endpoints/api/robot.py index b52cd4c5b..b8338c911 100644 --- a/endpoints/api/robot.py +++ b/endpoints/api/robot.py @@ -24,7 +24,7 @@ class UserRobotList(ApiResource): def get(self): """ List the available robots for the user. """ user = get_authenticated_user() - robots = model.list_entity_robots(user.username) + robots = model.list_entity_robot_tuples(user.username) return { 'robots': [robot_view(name, password) for name, password in robots] } @@ -73,7 +73,7 @@ class OrgRobotList(ApiResource): """ List the organization's robots. """ permission = OrganizationMemberPermission(orgname) if permission.can(): - robots = model.list_entity_robots(orgname) + robots = model.list_entity_robot_tuples(orgname) return { 'robots': [robot_view(name, password) for name, password in robots] } diff --git a/endpoints/api/trigger.py b/endpoints/api/trigger.py index be119499d..49f67c26e 100644 --- a/endpoints/api/trigger.py +++ b/endpoints/api/trigger.py @@ -52,7 +52,7 @@ class BuildTrigger(RepositoryParamResource): def get(self, namespace, repository, trigger_uuid): """ Get information for the specified build trigger. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -63,7 +63,7 @@ class BuildTrigger(RepositoryParamResource): def delete(self, namespace, repository, trigger_uuid): """ Delete the specified build trigger. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -107,7 +107,7 @@ class BuildTriggerSubdirs(RepositoryParamResource): def post(self, namespace, repository, trigger_uuid): """ List the subdirectories available for the specified build trigger and source. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -167,7 +167,7 @@ class BuildTriggerActivate(RepositoryParamResource): def post(self, namespace, repository, trigger_uuid): """ Activate the specified build trigger. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -264,7 +264,7 @@ class BuildTriggerAnalyze(RepositoryParamResource): def post(self, namespace, repository, trigger_uuid): """ Analyze the specified build trigger configuration. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -395,7 +395,7 @@ class ActivateBuildTrigger(RepositoryParamResource): def post(self, namespace, repository, trigger_uuid): """ Manually start a build from the specified trigger. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -453,7 +453,7 @@ class BuildTriggerFieldValues(RepositoryParamResource): def post(self, namespace, repository, trigger_uuid, field_name): """ List the field values for a custom run field. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() @@ -482,7 +482,7 @@ class BuildTriggerSources(RepositoryParamResource): def get(self, namespace, repository, trigger_uuid): """ List the build sources for the trigger configuration thus far. """ try: - trigger = model.get_build_trigger(namespace, repository, trigger_uuid) + trigger = model.get_build_trigger(trigger_uuid) except model.InvalidBuildTriggerException: raise NotFound() diff --git a/endpoints/webhooks.py b/endpoints/webhooks.py index 20eb3689b..24d8edf3d 100644 --- a/endpoints/webhooks.py +++ b/endpoints/webhooks.py @@ -68,8 +68,9 @@ def stripe_webhook(): @webhooks.route('/push//trigger/', methods=['POST']) +@webhooks.route('/push/trigger/', methods=['POST'], defaults={'repository': ''}) @process_auth -def build_trigger_webhook(_, trigger_uuid): +def build_trigger_webhook(trigger_uuid, **kwargs): logger.debug('Webhook received with uuid %s', trigger_uuid) try: