| <?php | |
| /******************************************************************************* | |
| * Copyright (c) 2014 Eclipse Foundation and others. | |
| * All rights reserved. This program and the accompanying materials | |
| * are made available under the terms of the Eclipse Public License v1.0 | |
| * which accompanies this distribution, and is available at | |
| * http://www.eclipse.org/legal/epl-v10.html | |
| * | |
| * Contributors: | |
| * Wayne Beaton (Eclipse Foundation)- initial API and implementation | |
| *******************************************************************************/ | |
| /* | |
| * Export committer information from the Foundation database. The information | |
| * includes the name, committer id, email addresses, and project affiliations. | |
| * | |
| * e.g. http://www.eclipse.org/projects/export/cq_stats.csv.php | |
| * | |
| * INTERNAL USE ONLY: restricted to callers within the Eclipse Foundation. | |
| */ | |
| require_once(dirname(__FILE__) . "/../../eclipse.org-common/system/app.class.php"); | |
| $App = new App(); | |
| require_once(dirname(__FILE__) . "/../classes/common.php"); | |
| require_once(dirname(__FILE__) . "/../classes/debug.php"); | |
| mustBeEclipseFoundationCaller(); | |
| $sql = "select | |
| name, | |
| type, count(*) as count, | |
| avg(datediff(approved, start)) as avg_approval, | |
| stddev(datediff(approved, start)) as stdev_approval, | |
| max(datediff(approved, start)) as max_approval, | |
| min(datediff(approved, start)) as min_approval, | |
| avg(datediff(checkin, start)) as avg_checkin, | |
| stddev(datediff(checkin, start)) as stdev_checkin, | |
| max(datediff(checkin, start)) as max_checkin, | |
| min(datediff(checkin, start)) as min_checkin | |
| from | |
| (select | |
| p.name, | |
| b.bug_id, | |
| if(b.short_desc regexp '\((Orbit|PB( Orbit)?)\s*\d*\)', 'piggyback', kd.name) as type, | |
| date(b.creation_ts) as created, | |
| if (max(date(pmc.bug_when)) is null, date(b.creation_ts), max(date(pmc.bug_when))) as start, | |
| max(date(pmc.bug_when)) as pmc, | |
| max(date(checkin.bug_when)) as checkin, | |
| max(date(approved.bug_when)) as approved | |
| from bugs as b | |
| join products as p on b.product_id = p.id | |
| join keywords as k on b.bug_id=k.bug_id | |
| join keyworddefs as kd on k.keywordid=kd.id and kd.name in ('thirdparty', 'projectcode') | |
| left join bugs_activity as pmc on b.bug_id=pmc.bug_id and pmc.added in ('PMC_Approved+') | |
| left join bugs_activity as checkin on b.bug_id=checkin.bug_id and checkin.added in ('checkin', 'checkintocvs') | |
| left join bugs_activity as approved on b.bug_id=approved.bug_id and approved.added in ('approved', 'approved_all_projects') | |
| group by p.id, b.bug_id) as stats | |
| #where approved > DATE_SUB(now(), INTERVAL 3 MONTH) | |
| group by name, type"; | |
| $result = $App->ipzilla_sql($sql); | |
| $data = array(); | |
| while ($row=mysql_fetch_assoc($result)) { | |
| $data[$row['name']][$row['type']] = $row; | |
| } | |
| echo json_encode($data); | |
| ?> |