blob: 6cd56353b4127fe027d5570f4cd7abfde0fbbe96 [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 2018 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
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");
require_once(dirname(__FILE__) . "/../classes/database.inc");
function getSource($url) {
if (preg_match('/https:\/\/github.com\/.*\/commit\/([0-9a-f]+)$/', $url, $matches)) {
return array(
'url' => $url,
'type' => 'git',
'provider' => 'github',
'revision' => $matches[1]
);
} elseif (preg_match('/https:\/\/git-wip-us\.apache\.org\/repos\/asf\?.*p=([^;]*)\.git.*h=([0-9a-f]+)/', $url, $matches)) {
return array(
'url' => "https://github.com/apache/{$matches[1]}/commit/{$matches[2]}",
'type' => 'git',
'provider' => 'github',
'revision' => $matches[2]
);
}
return null;
}
$sql = "
select
CQ.id,
description,
CQ.version,
sourceUrl,
spdx as license,
mvn.pattern as mvn,
mvn.groupid as groupid,
mvn.artifactid as artifactid,
mvn.version as mvnversion
from CQ left
join CQMavenMap as mvn on CQ.id=mvn.cq
where cq_type='thirdparty'
and mvn.groupid is not null
and mvn.artifactid is not null
and mvn.artifactid != '*'
and mvn.groupid not like 'org.eclipse.orbit%'
and CQ.version != ''
and licenses != ''
and (spdx='Apache-2.0' or licenses=spdx)";
$values = array();
query('dashboard', $sql, array(), function($row) use (&$values) {
$coordinates = "maven/mavencentral/{$row['groupid']}/{$row['artifactid']}";
$source = getSource($row['sourceUrl']);
if ($source) {
if (!isset($values[$coordinates])) {
$values[$coordinates] = array(
'coordinates' => array(
'name' => $row['artifactid'],
'namespace' => $row['groupid'],
'provider' => 'mavencentral',
'type' => 'maven'
)
);
}
$values[$coordinates]['revisions'][$row['version']] = $source;
$values[$coordinates]['revisions'][$row['version']]['licensed']['declared'] = $row['license'];
}
});
echo json_encode($values, true);
?>