X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Websites%2Fperf.webkit.org%2Fpublic%2Fapi%2Fcommits.php;h=00b73d231a50286c0d27ed3360dfd634ca3c9f5c;hp=9f287628c3bcf2627a4562b6a8a9d31920202d50;hb=d2372bbf30c78e08524dbcfa4b830569881f58e6;hpb=6b741de7ec8b4a9d55b079281cc5d0f607c40f4f diff --git a/Websites/perf.webkit.org/public/api/commits.php b/Websites/perf.webkit.org/public/api/commits.php index 9f287628c3bc..00b73d231a50 100644 --- a/Websites/perf.webkit.org/public/api/commits.php +++ b/Websites/perf.webkit.org/public/api/commits.php @@ -40,7 +40,12 @@ function main($paths) { $commits = fetch_commits_between($db, $repository_id, $matches[1], $matches[2]); } - exit_with_success(array('commits' => $single_commit ? format_commit($single_commit) : $commits)); + if ($single_commit) { + $committer = $db->select_first_row('committers', 'committer', array('id' => $single_commit['commit_committer'])); + exit_with_success(array('commits' => array(format_commit($single_commit, $committer)))); + } + + exit_with_success(array('commits' => $commits)); } function commit_from_revision($db, $repository_id, $revision) { @@ -59,10 +64,11 @@ function fetch_commits_between($db, $repository_id, $first, $second, $keyword = commit_revision as "revision", commit_parent as "parent", commit_time as "time", - commit_author_name as "authorName", - commit_author_email as "authorEmail", + committer_name as "authorName", + committer_account as "authorEmail", commit_message as "message" - FROM commits WHERE commit_repository = $1 AND commit_reported = true'; + FROM commits JOIN committers ON commit_committer = committer_id + WHERE commit_repository = $1 AND commit_reported = true'; $values = array($repository_id); if ($first && $second) { @@ -78,11 +84,12 @@ function fetch_commits_between($db, $repository_id, $first, $second, $keyword = } if ($keyword) { - array_push($values, '%' . str_replace(array('\\', '_', '@'), array('\\\\', '\\_', '\\%'), $keyword) . '%'); - $index = '$' . count($values); - $statements .= " AND (commit_author_name LIKE $index OR commit_author_email LIKE $index"; + array_push($values, '%' . str_replace(array('\\', '_', '%'), array('\\\\', '\\_', '\\%'), $keyword) . '%'); + $keyword_index = '$' . count($values); array_push($values, ltrim($keyword, 'r')); - $statements .= ' OR commit_revision = $' . count($values) . ')'; + $revision_index = '$' . count($values); + $statements .= " + AND ((committer_name LIKE $keyword_index OR committer_account LIKE $keyword_index) OR commit_revision = $revision_index)"; } $commits = $db->query_and_fetch_all($statements . ' ORDER BY commit_time', $values); @@ -91,16 +98,16 @@ function fetch_commits_between($db, $repository_id, $first, $second, $keyword = return $commits; } -function format_commit($commit_row) { - return array(array( +function format_commit($commit_row, $committer_row) { + return array( 'id' => $commit_row['commit_id'], 'revision' => $commit_row['commit_revision'], 'parent' => $commit_row['commit_parent'], 'time' => $commit_row['commit_time'], - 'authorName' => $commit_row['commit_author_name'], - 'authorEmail' => $commit_row['commit_author_email'], + 'authorName' => $committer_row ? $committer_row['committer_name'] : null, + 'authorEmail' => $committer_row ? $committer_row['committer_account'] : null, 'message' => $commit_row['commit_message'] - )); + ); } main(array_key_exists('PATH_INFO', $_SERVER) ? explode('/', trim($_SERVER['PATH_INFO'], '/')) : array());