blob: a1dc92fc5bbcb2602cd2e7222ffcb9521db96b63 [file] [log] [blame]
<?php
/**
* Copyright (c) 2019 Eclipse Foundation.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* Eric Poirier (Eclipse Foundation) - Initial implementation
*
* SPDX-License-Identifier: EPL-2.0
*/
/**
* GithubRepository class
*
* Usage example:
*
* include_once('GithubRepository.class.php');
* $GithubApi = new GithubRepository();
*
* @author ericpoirier
*/
class GithubRepository {
/**
* Repository url
*
* var string
*/
public $repo_url = "";
/**
* Get the repository's url
*
* @return string
*/
public function getRepoUrl() {
return $this->repo_url;
}
/**
* Set the repository's url
*
* @param string $url
*/
public function setRepoUrl($url = "") {
$url = filter_var($url, FILTER_SANITIZE_URL);
if (!empty($url)) {
$this->repo_url = $url;
}
}
/**
* Get the organization's name
*
* @return string
*/
public function getOrganizationName() {
$repo = $this->repoUrlArray();
if (empty($repo[0])) {
return "";
}
return $repo[0];
}
/**
* Get the team's name
*
* @return string
*/
public function getContributorTeamName() {
$repo = $this->repoUrlArray();
if (empty($repo[0]) || empty($repo[1])) {
return "";
}
return $repo[0] . '-' . $repo[1] . '-contributors';
}
/**
* Get the repository's name
*
* @return string
*/
public function getRepoName() {
$repo = $this->repoUrlArray();
if (empty($repo[1])) {
return "";
}
return $repo[1];
}
/**
* Get the array result of the repository's url
*
* @return array
*/
private function repoUrlArray() {
if (empty($this->repo_url)) {
return array();
}
return explode('/', preg_replace('/http(s|)?:\/\/[www\.]?github.com\//', '', $this->repo_url));
}
}