## Logging stuff
+ def get_log(self, limit=None):
+ res = self.db.query("""
+ WITH events AS (
+ -- Build creation times
+ SELECT
+ builds.id AS build_id,
+ builds.created_at AS t,
+ 'created'::text AS event,
+ builds.owner_id AS by_user_id
+ FROM
+ builds
+
+ -- Build finish/failed times
+ UNION ALL
+
+ SELECT
+ builds.id AS build_id,
+ builds.finished_at AS t,
+ CASE
+ WHEN builds.failed IS TRUE
+ THEN 'failed'::text
+ ELSE 'finished'::text
+ END AS event,
+ NULL AS by_user_id
+ FROM
+ builds
+ WHERE
+ builds.finished_at IS NOT NULL
+ )
+
+ -- Sort everything in reverse order
+ SELECT
+ *
+ FROM
+ events
+ WHERE
+ build_id = %s
+ ORDER BY
+ t DESC""",
+ self.id,
+ )
+
+ return res # XXX automatically expand all those IDs
+
def get_log(self, comments=True, repo=True, limit=None):
entries = []