Fixing coding style, updating dependencies

This commit is contained in:
Klaus Silveira
2012-10-30 23:35:26 -02:00
parent 8fd91963b2
commit 90d9fd4909
13 changed files with 132 additions and 295 deletions

View File

@@ -4,7 +4,7 @@
"twig/twig": "1.9.*",
"symfony/twig-bridge": "2.1.*",
"symfony/filesystem": "2.1.*",
"klaussilveira/gitter": "0.1.1"
"klaussilveira/gitter": "0.1.2"
},
"require-dev": {
"symfony/browser-kit": "2.1.*",

371
composer.lock generated
View File

@@ -1,28 +1,28 @@
{
"hash": "b7ee6754cba1641ef8c2b01dfdd977fd",
"hash": "c5848b4657d12dc6db9a2f2ff1dd9069",
"packages": [
{
"name": "klaussilveira/gitter",
"version": "0.1.1",
"version": "0.1.2",
"source": {
"type": "git",
"url": "https://github.com/klaussilveira/gitter",
"reference": "0.1.1"
"reference": "0.1.2"
},
"dist": {
"type": "zip",
"url": "https://github.com/klaussilveira/gitter/zipball/0.1.1",
"reference": "0.1.1",
"url": "https://github.com/klaussilveira/gitter/zipball/0.1.2",
"reference": "0.1.2",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"symfony/process": "2.1.*"
"symfony/process": ">=2.1"
},
"require-dev": {
"symfony/filesystem": "2.1.*"
"symfony/filesystem": ">=2.1"
},
"time": "2012-09-19 12:31:50",
"time": "2012-10-30 17:34:56",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -100,50 +100,51 @@
"source": {
"type": "git",
"url": "git://github.com/fabpot/Silex.git",
"reference": "78efb9a6bef34e4547e937066707ee338f516698"
"reference": "69d710011ee8f9fa286854fcf636a07ad76b570b"
},
"dist": {
"type": "zip",
"url": "https://github.com/fabpot/Silex/zipball/78efb9a6bef34e4547e937066707ee338f516698",
"reference": "78efb9a6bef34e4547e937066707ee338f516698",
"url": "https://github.com/fabpot/Silex/zipball/69d710011ee8f9fa286854fcf636a07ad76b570b",
"reference": "69d710011ee8f9fa286854fcf636a07ad76b570b",
"shasum": ""
},
"require": {
"symfony/event-dispatcher": "2.1.*",
"symfony/http-foundation": "2.1.*",
"symfony/http-kernel": "2.1.*",
"symfony/routing": "2.1.*",
"php": ">=5.3.3",
"pimple/pimple": "1.*"
"pimple/pimple": "1.*",
"symfony/event-dispatcher": ">=2.1,<2.3-dev",
"symfony/http-foundation": ">=2.1,<2.3-dev",
"symfony/http-kernel": ">=2.1,<2.3-dev",
"symfony/routing": ">=2.1,<2.3-dev"
},
"require-dev": {
"symfony/form": "2.1.*",
"symfony/translation": "2.1.*",
"symfony/twig-bridge": "2.1.*",
"symfony/validator": "2.1.*",
"symfony/monolog-bridge": "2.1.*",
"symfony/browser-kit": "2.1.*",
"symfony/css-selector": "2.1.*",
"symfony/finder": "2.1.*",
"symfony/process": "2.1.*",
"symfony/security": "2.1.*",
"monolog/monolog": ">=1.0.0,<1.2-dev",
"symfony/config": "2.1.*",
"symfony/locale": "2.1.*",
"twig/twig": ">=1.8.0,<2.0-dev",
"swiftmailer/swiftmailer": "4.2.*",
"doctrine/dbal": "2.2.*"
"doctrine/dbal": ">=2.2.0,<2.4.0-dev",
"symfony/security": ">=2.1,<2.3-dev",
"symfony/config": ">=2.1,<2.3-dev",
"symfony/locale": ">=2.1,<2.3-dev",
"symfony/form": ">=2.1,<2.3-dev",
"symfony/browser-kit": ">=2.1,<2.3-dev",
"symfony/css-selector": ">=2.1,<2.3-dev",
"symfony/finder": ">=2.1,<2.3-dev",
"symfony/monolog-bridge": ">=2.1,<2.3-dev",
"symfony/process": ">=2.1,<2.3-dev",
"symfony/translation": ">=2.1,<2.3-dev",
"symfony/twig-bridge": ">=2.1,<2.3-dev",
"symfony/validator": ">=2.1,<2.3-dev",
"symfony/serializer": ">=2.1,<2.3-dev"
},
"suggest": {
"symfony/browser-kit": "2.1.*",
"symfony/css-selector": "2.1.*",
"symfony/dom-crawler": "2.1.*"
"symfony/browser-kit": ">=2.1,<2.3-dev",
"symfony/css-selector": ">=2.1,<2.3-dev",
"symfony/dom-crawler": ">=2.1,<2.3-dev"
},
"time": "1348027658",
"time": "1351540898",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
"dev-master": "1.0.x-dev"
}
},
"installation-source": "source",
@@ -174,40 +175,40 @@
},
{
"name": "symfony/event-dispatcher",
"version": "2.1.x-dev",
"version": "dev-master",
"target-dir": "Symfony/Component/EventDispatcher",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher",
"reference": "v2.1.1"
"reference": "24a1039d52b6b9f533cb73dcb96c7748262db686"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/EventDispatcher/zipball/v2.1.1",
"reference": "v2.1.1",
"url": "https://github.com/symfony/EventDispatcher/zipball/24a1039d52b6b9f533cb73dcb96c7748262db686",
"reference": "24a1039d52b6b9f533cb73dcb96c7748262db686",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/dependency-injection": "2.1.*"
"symfony/dependency-injection": "2.2.*"
},
"suggest": {
"symfony/dependency-injection": "2.1.*",
"symfony/http-kernel": "2.1.*"
"symfony/dependency-injection": "2.2.*",
"symfony/http-kernel": "2.2.*"
},
"time": "1347274422",
"time": "1349553479",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\EventDispatcher": ""
"Symfony\\Component\\EventDispatcher\\": ""
}
},
"license": [
@@ -233,18 +234,18 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Filesystem",
"reference": "v2.1.0-RC2"
"reference": "v2.1.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/Filesystem/zipball/v2.1.0-RC2",
"reference": "v2.1.0-RC2",
"url": "https://github.com/symfony/Filesystem/zipball/v2.1.3",
"reference": "v2.1.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "1345643321",
"time": "1350717030",
"type": "library",
"extra": {
"branch-alias": {
@@ -275,35 +276,37 @@
},
{
"name": "symfony/http-foundation",
"version": "2.1.x-dev",
"version": "dev-master",
"target-dir": "Symfony/Component/HttpFoundation",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation",
"reference": "23f68b488570def9ebe874a748410285f9a4acc9"
"reference": "707e289629a10fde825bc4ba90aba743f79b173c"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/HttpFoundation/zipball/23f68b488570def9ebe874a748410285f9a4acc9",
"reference": "23f68b488570def9ebe874a748410285f9a4acc9",
"url": "https://github.com/symfony/HttpFoundation/zipball/707e289629a10fde825bc4ba90aba743f79b173c",
"reference": "707e289629a10fde825bc4ba90aba743f79b173c",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "1347984592",
"time": "1351508251",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\HttpFoundation": "",
"SessionHandlerInterface": "Symfony/Component/HttpFoundation/Resources/stubs"
}
"Symfony\\Component\\HttpFoundation\\": ""
},
"classmap": [
"Symfony/Component/HttpFoundation/Resources/stubs"
]
},
"license": [
"MIT"
@@ -323,53 +326,53 @@
},
{
"name": "symfony/http-kernel",
"version": "2.1.x-dev",
"version": "dev-master",
"target-dir": "Symfony/Component/HttpKernel",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel",
"reference": "52820d9f3b80e3b8d31aba53bb792ec25894e092"
"reference": "4dcb0bf602788342fb80c28c6e28be818839d417"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/HttpKernel/zipball/52820d9f3b80e3b8d31aba53bb792ec25894e092",
"reference": "52820d9f3b80e3b8d31aba53bb792ec25894e092",
"url": "https://github.com/symfony/HttpKernel/zipball/4dcb0bf602788342fb80c28c6e28be818839d417",
"reference": "4dcb0bf602788342fb80c28c6e28be818839d417",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/event-dispatcher": "2.1.*",
"symfony/http-foundation": "2.1.*"
"symfony/event-dispatcher": "2.2.*",
"symfony/http-foundation": "2.2.*"
},
"require-dev": {
"symfony/browser-kit": "2.1.*",
"symfony/class-loader": "2.1.*",
"symfony/config": "2.1.*",
"symfony/console": "2.1.*",
"symfony/dependency-injection": "2.1.*",
"symfony/finder": "2.1.*",
"symfony/process": "2.1.*",
"symfony/routing": "2.1.*"
"symfony/browser-kit": "2.2.*",
"symfony/class-loader": "2.2.*",
"symfony/config": "2.2.*",
"symfony/console": "2.2.*",
"symfony/dependency-injection": "2.2.*",
"symfony/finder": "2.2.*",
"symfony/process": "2.2.*",
"symfony/routing": "2.2.*"
},
"suggest": {
"symfony/browser-kit": "2.1.*",
"symfony/class-loader": "2.1.*",
"symfony/config": "2.1.*",
"symfony/console": "2.1.*",
"symfony/dependency-injection": "2.1.*",
"symfony/finder": "2.1.*"
"symfony/browser-kit": "2.2.*",
"symfony/class-loader": "2.2.*",
"symfony/config": "2.2.*",
"symfony/console": "2.2.*",
"symfony/dependency-injection": "2.2.*",
"symfony/finder": "2.2.*"
},
"time": "1347914517",
"time": "1351530455",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\HttpKernel": ""
"Symfony\\Component\\HttpKernel\\": ""
}
},
"license": [
@@ -390,33 +393,33 @@
},
{
"name": "symfony/process",
"version": "2.1.x-dev",
"version": "dev-master",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process",
"reference": "c1a8adcce9ea176c3a725269603045f80c027f36"
"reference": "b35a2a4fae02286df3275d7094a3d3d575122db8"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/Process/zipball/c1a8adcce9ea176c3a725269603045f80c027f36",
"reference": "c1a8adcce9ea176c3a725269603045f80c027f36",
"url": "https://github.com/symfony/Process/zipball/b35a2a4fae02286df3275d7094a3d3d575122db8",
"reference": "b35a2a4fae02286df3275d7094a3d3d575122db8",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "1348007849",
"time": "1351356874",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\Process": ""
"Symfony\\Component\\Process\\": ""
}
},
"license": [
@@ -437,44 +440,44 @@
},
{
"name": "symfony/routing",
"version": "2.1.x-dev",
"version": "dev-master",
"target-dir": "Symfony/Component/Routing",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing",
"reference": "v2.1.1"
"reference": "29792d8ac4ed7308acdeed4933cb6d91b7f6510f"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/Routing/zipball/v2.1.1",
"reference": "v2.1.1",
"url": "https://github.com/symfony/Routing/zipball/29792d8ac4ed7308acdeed4933cb6d91b7f6510f",
"reference": "29792d8ac4ed7308acdeed4933cb6d91b7f6510f",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/config": "2.1.*",
"symfony/yaml": "2.1.*",
"symfony/http-kernel": "2.1.*",
"doctrine/common": ">=2.2,<2.4-dev"
"doctrine/common": ">=2.2,<2.4-dev",
"symfony/config": "2.2.*",
"symfony/yaml": "2.2.*",
"symfony/http-kernel": "2.2.*"
},
"suggest": {
"doctrine/common": ">=2.2,<2.4-dev",
"symfony/config": "2.1.*",
"symfony/yaml": "2.1.*"
"symfony/config": "2.2.*",
"symfony/yaml": "2.2.*"
},
"time": "1347274422",
"time": "1351466734",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\Routing": ""
"Symfony\\Component\\Routing\\": ""
}
},
"license": [
@@ -500,12 +503,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/TwigBridge",
"reference": "v2.1.1"
"reference": "v2.1.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/TwigBridge/zipball/v2.1.1",
"reference": "v2.1.1",
"url": "https://github.com/symfony/TwigBridge/zipball/v2.1.3",
"reference": "v2.1.3",
"shasum": ""
},
"require": {
@@ -528,7 +531,7 @@
"symfony/yaml": "2.1.*",
"symfony/security": "2.1.*"
},
"time": "1347274422",
"time": "1349363877",
"type": "symfony-bridge",
"extra": {
"branch-alias": {
@@ -574,7 +577,7 @@
"require": {
"php": ">=5.2.4"
},
"time": "2012-08-25 17:32:57",
"time": "2012-08-25 10:32:57",
"type": "library",
"extra": {
"branch-alias": {
@@ -607,163 +610,7 @@
]
}
],
"packages-dev": [
{
"name": "symfony/browser-kit",
"version": "2.1.x-dev",
"target-dir": "Symfony/Component/BrowserKit",
"source": {
"type": "git",
"url": "https://github.com/symfony/BrowserKit",
"reference": "v2.1.1"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/BrowserKit/zipball/v2.1.1",
"reference": "v2.1.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/dom-crawler": "2.1.*"
},
"require-dev": {
"symfony/process": "2.1.*",
"symfony/css-selector": "2.1.*"
},
"suggest": {
"symfony/process": "2.1.*"
},
"time": "1347274422",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\BrowserKit": ""
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony BrowserKit Component",
"homepage": "http://symfony.com"
},
{
"name": "symfony/css-selector",
"version": "2.1.x-dev",
"target-dir": "Symfony/Component/CssSelector",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector",
"reference": "v2.1.0-RC2"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/CssSelector/zipball/v2.1.0-RC2",
"reference": "v2.1.0-RC2",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "1345643321",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\CssSelector": ""
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony CssSelector Component",
"homepage": "http://symfony.com"
},
{
"name": "symfony/dom-crawler",
"version": "2.1.x-dev",
"target-dir": "Symfony/Component/DomCrawler",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler",
"reference": "v2.1.1"
},
"dist": {
"type": "zip",
"url": "https://github.com/symfony/DomCrawler/zipball/v2.1.1",
"reference": "v2.1.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/css-selector": "2.1.*"
},
"suggest": {
"symfony/css-selector": "2.1.*"
},
"time": "1347274422",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
}
},
"installation-source": "source",
"autoload": {
"psr-0": {
"Symfony\\Component\\DomCrawler": ""
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com"
}
],
"packages-dev": null,
"aliases": [
],

View File

@@ -56,6 +56,7 @@ class Application extends SilexApplication
if ($app['debug']) {
return;
}
return $app['twig']->render('error.twig', array(
'message' => $e->getMessage(),
));

View File

@@ -49,4 +49,4 @@ class Config
die("Please, edit the config file and provide your repositories directory");
}
}
}
}

View File

@@ -4,7 +4,6 @@ namespace GitList\Controller;
use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Response;
class BlobController implements ControllerProviderInterface
@@ -15,7 +14,6 @@ class BlobController implements ControllerProviderInterface
$route->get('{repo}/blob/{branch}/{file}', function($repo, $branch, $file) use ($app) {
$repository = $app['git']->getRepository($app['git.repos'] . $repo);
list($branch, $file) = $app['util.repository']->extractRef($repository, $branch, $file);
$blob = $repository->getBlob("$branch:\"$file\"");
@@ -47,13 +45,10 @@ class BlobController implements ControllerProviderInterface
$route->get('{repo}/raw/{branch}/{file}', function($repo, $branch, $file) use ($app) {
$repository = $app['git']->getRepository($app['git.repos'] . $repo);
list($branch, $file) = $app['util.repository']->extractRef($repository, $branch, $file);
$blob = $repository->getBlob("$branch:\"$file\"")->output();
$headers = array();
if ($app['util.repository']->isBinary($file)) {
$headers['Content-Disposition'] = 'attachment; filename="' . $file . '"';
$headers['Content-Transfer-Encoding'] = 'application/octet-stream';

View File

@@ -4,8 +4,6 @@ namespace GitList\Controller;
use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
class CommitController implements ControllerProviderInterface
@@ -103,4 +101,4 @@ class CommitController implements ControllerProviderInterface
return $route;
}
}
}

View File

@@ -4,7 +4,6 @@ namespace GitList\Controller;
use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Response;
class MainController implements ControllerProviderInterface
@@ -54,7 +53,6 @@ class MainController implements ControllerProviderInterface
->assert('branch', '[\w-._\/]+')
->bind('rss');
return $route;
}
}
}

View File

@@ -4,8 +4,6 @@ namespace GitList\Controller;
use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\StreamedResponse;
use Symfony\Component\HttpFoundation\Request;
@@ -22,7 +20,6 @@ class TreeController implements ControllerProviderInterface
}
list($branch, $tree) = $app['util.repository']->extractRef($repository, $branch, $tree);
$files = $repository->getTree($tree ? "$branch:\"$tree\"/" : $branch);
$breadcrumbs = $app['util.view']->getBreadcrumbs($tree);
@@ -117,4 +114,4 @@ class TreeController implements ControllerProviderInterface
return $route;
}
}
}

View File

@@ -2,4 +2,4 @@
namespace GitList\Exception;
class BlankDataException extends \RuntimeException {}
class BlankDataException extends \RuntimeException {}

View File

@@ -41,4 +41,4 @@ class Client extends BaseClient
return new Repository($path, $this);
}
}
}

View File

@@ -25,7 +25,7 @@ class Repository extends BaseRepository
}
$logs = $this->getPrettyFormat($command);
foreach ($logs as $log) {
$commit = new Commit;
$commit->importData($log);
@@ -40,7 +40,7 @@ class Repository extends BaseRepository
$command = "log --grep='$query' --pretty=format:'<item><hash>%H</hash><short_hash>%h</short_hash><tree>%T</tree><parent>%P</parent><author>%an</author><author_email>%ae</author_email><date>%at</date><commiter>%cn</commiter><commiter_email>%ce</commiter_email><commiter_date>%ct</commiter_date><message><![CDATA[%s]]></message></item>'";
$logs = $this->getPrettyFormat($command);
foreach ($logs as $log) {
$commit = new Commit;
$commit->importData($log);

View File

@@ -19,6 +19,7 @@ class GitServiceProvider implements ServiceProviderInterface
$app['git'] = function () use ($app) {
$options['path'] = $app['git.client'];
$options['hidden'] = $app['git.hidden'];
return new Client($options);
};
}

View File

@@ -109,8 +109,8 @@ class Repository
* The file type is used by CodeMirror, a Javascript-based IDE implemented in
* GitList, to properly highlight the blob syntax (if it's a source-code)
*
* @param string $file File name
* @return mixed File type
* @param string $file File name
* @return mixed File type
*/
public function getFileType($file)
{
@@ -179,9 +179,9 @@ class Repository
/**
* Returns an Array where the first value is the tree-ish and the second is the path
*
* @param \GitList\Git\Repository $repository
* @param string $branch
* @param string $tree
* @param \GitList\Git\Repository $repository
* @param string $branch
* @param string $tree
* @return array
*/
public function extractRef($repository, $branch='', $tree='')
@@ -190,28 +190,28 @@ class Repository
$tree = trim($tree, '/');
$input = $branch . '/' . $tree;
//If the ref appears to be a SHA, just split the string
// If the ref appears to be a SHA, just split the string
if (preg_match("/^([[:alnum:]]{40})(.+)/", $input, $matches)) {
$branch = $matches[1];
} else {
//Otherwise, attempt to detect the ref using a list of the project's branches and tags
$valid_refs = array_merge((array)$repository->getBranches(), (array)$repository->getTags());
// Otherwise, attempt to detect the ref using a list of the project's branches and tags
$valid_refs = array_merge((array) $repository->getBranches(), (array) $repository->getTags());
foreach ($valid_refs as $k => $v) {
if (!preg_match("#{$v}/#", $input)) {
unset($valid_refs[$k]);
}
}
//No exact ref match, so just try our best
// No exact ref match, so just try our best
if (count($valid_refs) > 1) {
preg_match('/([^\/]+)(.*)/', $input, $matches);
$branch = preg_replace('/^\/|\/$/', '', $matches[0]);
}
else {
//extract branch name
} else {
// Extract branch name
$branch = array_shift($valid_refs);
}
}
$tree = trim(str_replace($branch, "", $input), "/");
return array($branch, $tree);