mirror of
https://github.com/klaussilveira/gitlist.git
synced 2025-11-04 21:06:04 +01:00
Upgraded to Symfony 6.3 and PHP 8.2.
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php: [8.1]
|
||||
php: [8.1, 8.2]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
@@ -8,34 +8,11 @@ $finder = PhpCsFixer\Finder::create()
|
||||
$config = new PhpCsFixer\Config();
|
||||
return $config->setRules([
|
||||
'@Symfony' => true,
|
||||
'@PHP80Migration:risky' => true,
|
||||
'@PHPUnit84Migration:risky' => true,
|
||||
'array_indentation' => true,
|
||||
'array_syntax' => ['syntax' => 'short'],
|
||||
'blank_line_after_opening_tag' => true,
|
||||
'concat_space' => ['spacing' => 'one'],
|
||||
'declare_strict_types' => true,
|
||||
'increment_style' => ['style' => 'post'],
|
||||
'is_null' => true,
|
||||
'list_syntax' => ['syntax' => 'short'],
|
||||
'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
|
||||
'method_chaining_indentation' => true,
|
||||
'modernize_types_casting' => true,
|
||||
'no_superfluous_elseif' => true,
|
||||
'no_superfluous_phpdoc_tags' => false,
|
||||
'no_useless_else' => true,
|
||||
'no_useless_return' => true,
|
||||
'ordered_imports' => true,
|
||||
'phpdoc_align' => false,
|
||||
'phpdoc_order' => true,
|
||||
'php_unit_construct' => true,
|
||||
'php_unit_dedicate_assert' => true,
|
||||
'return_assignment' => true,
|
||||
'single_blank_line_at_eof' => true,
|
||||
'single_line_comment_style' => true,
|
||||
'ternary_to_null_coalescing' => true,
|
||||
'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false],
|
||||
'void_return' => true,
|
||||
'global_namespace_import' => [
|
||||
'import_classes' => true,
|
||||
'import_constants' => false,
|
||||
'import_functions' => false,
|
||||
],
|
||||
])
|
||||
->setRiskyAllowed(true)
|
||||
->setFinder($finder)
|
||||
|
||||
@@ -5,32 +5,32 @@
|
||||
"type": "project",
|
||||
"license": "BSD-3-Clause",
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"php": ">=8.1",
|
||||
"ext-iconv": "*",
|
||||
"ext-mbstring": "*",
|
||||
"league/commonmark": "^2.1",
|
||||
"nesbot/carbon": "^2.55",
|
||||
"symfony/asset": "^6.0",
|
||||
"symfony/cache": "^6.0",
|
||||
"symfony/console": "^6.0",
|
||||
"symfony/form": "^6.0",
|
||||
"symfony/framework-bundle": "^6.0",
|
||||
"symfony/monolog-bundle": "^3.5",
|
||||
"symfony/process": "^6.0",
|
||||
"symfony/string": "^6.0",
|
||||
"symfony/templating": "^6.0",
|
||||
"symfony/translation": "^6.0",
|
||||
"symfony/twig-bundle": "^6.0",
|
||||
"symfony/webpack-encore-bundle": "^1.13",
|
||||
"symfony/yaml": "^6.0"
|
||||
"league/commonmark": "^2.4",
|
||||
"nesbot/carbon": "^2.71",
|
||||
"symfony/asset": "^6.3",
|
||||
"symfony/cache": "^6.3",
|
||||
"symfony/console": "^6.3",
|
||||
"symfony/form": "^6.3",
|
||||
"symfony/framework-bundle": "^6.3",
|
||||
"symfony/monolog-bundle": "^3.10",
|
||||
"symfony/process": "^6.3",
|
||||
"symfony/string": "^6.3",
|
||||
"symfony/templating": "^6.3",
|
||||
"symfony/translation": "^6.3",
|
||||
"symfony/twig-bundle": "^6.3",
|
||||
"symfony/webpack-encore-bundle": "^2.1",
|
||||
"symfony/yaml": "^6.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.4",
|
||||
"friendsofphp/php-cs-fixer": "^3.38",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/phpstan": "^1.3",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"symfony/debug-bundle": "^6.0",
|
||||
"symfony/dotenv": "^6.0"
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"symfony/debug-bundle": "^6.3",
|
||||
"symfony/dotenv": "^6.3"
|
||||
},
|
||||
"config": {
|
||||
"preferred-install": {
|
||||
|
||||
2167
composer.lock
generated
2167
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
FROM php:8.1-fpm-alpine
|
||||
FROM php:8.2-fpm-alpine
|
||||
|
||||
ENV PHP_EXT_DEPS \
|
||||
gettext=gettext-dev \
|
||||
@@ -11,6 +11,7 @@ ENV PHP_EXT_DEPS \
|
||||
RUN set -x; \
|
||||
apk add --no-cache --virtual .php-extensions-build-dependencies \
|
||||
$PHPIZE_DEPS \
|
||||
linux-headers \
|
||||
$(echo ${PHP_EXT_DEPS} | tr ' ' '\n' | cut -d = -f 2) \
|
||||
&& apk add --no-cache \
|
||||
$(echo ${PHP_EXT_DEPS} | tr ' ' '\n' | cut -d = -f 1) \
|
||||
|
||||
@@ -36,7 +36,7 @@ class Repository
|
||||
$readme = $tree->getReadme();
|
||||
|
||||
if ($readme) {
|
||||
$blob = $repository->getBlob($tree->getHash() . '/' . $readme->getName());
|
||||
$blob = $repository->getBlob($tree->getHash().'/'.$readme->getName());
|
||||
$readme = File::createFromBlob($blob);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class Repository
|
||||
$readme = $tree->getReadme();
|
||||
|
||||
if ($readme) {
|
||||
$blob = $repository->getBlob($tree->getHash() . '/' . $readme->getName());
|
||||
$blob = $repository->getBlob($tree->getHash().'/'.$readme->getName());
|
||||
$readme = File::createFromBlob($blob);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,14 +51,14 @@ class RepositoryExtension extends AbstractExtension
|
||||
|
||||
public function getCommitish(string $hash, string $path): string
|
||||
{
|
||||
return $hash . '/' . $path;
|
||||
return $hash.'/'.$path;
|
||||
}
|
||||
|
||||
public function getParent(string $path): string
|
||||
{
|
||||
$parent = dirname($path);
|
||||
|
||||
if ($parent == '.') {
|
||||
if ('.' == $parent) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class RepositoryExtension extends AbstractExtension
|
||||
$previousPart = '';
|
||||
|
||||
foreach ($parts as $index => $part) {
|
||||
$previousPart .= ($index == 0 ? '' : '/') . $part;
|
||||
$previousPart .= (0 == $index ? '' : '/').$part;
|
||||
$breadcrumbs[] = [
|
||||
'name' => $part,
|
||||
'commitish' => $this->getCommitish($blob->getHash(), $previousPart),
|
||||
@@ -93,6 +93,6 @@ class RepositoryExtension extends AbstractExtension
|
||||
$pow = min($pow, count($units) - 1);
|
||||
$value /= 1024 ** $pow;
|
||||
|
||||
return (string) round($value, 2) . ' ' . $units[$pow];
|
||||
return (string) round($value, 2).' '.$units[$pow];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,17 +22,17 @@ class Kernel extends BaseKernel
|
||||
|
||||
public function getProjectDir(): string
|
||||
{
|
||||
return __DIR__ . '/../';
|
||||
return __DIR__.'/../';
|
||||
}
|
||||
|
||||
public function getCacheDir(): string
|
||||
{
|
||||
return $this->getProjectDir() . '/var/cache/' . $this->environment;
|
||||
return $this->getProjectDir().'/var/cache/'.$this->environment;
|
||||
}
|
||||
|
||||
public function getLogDir(): string
|
||||
{
|
||||
return $this->getProjectDir() . '/var/log';
|
||||
return $this->getProjectDir().'/var/log';
|
||||
}
|
||||
|
||||
public function registerBundles(): iterable
|
||||
@@ -55,19 +55,19 @@ class Kernel extends BaseKernel
|
||||
|
||||
private function configureContainer(ContainerConfigurator $container, LoaderInterface $loader, ContainerBuilder $builder): void
|
||||
{
|
||||
$confDir = $this->getProjectDir() . '/config';
|
||||
$loader->load($confDir . '/config.yml');
|
||||
$loader->load($confDir . '/framework.yml');
|
||||
$loader->load($confDir . '/services.yml');
|
||||
$confDir = $this->getProjectDir().'/config';
|
||||
$loader->load($confDir.'/config.yml');
|
||||
$loader->load($confDir.'/framework.yml');
|
||||
$loader->load($confDir.'/services.yml');
|
||||
}
|
||||
|
||||
private function configureRoutes(RoutingConfigurator $routes): void
|
||||
{
|
||||
$confDir = $this->getProjectDir() . '/config';
|
||||
$routes->import($confDir . '/routes.yml');
|
||||
$confDir = $this->getProjectDir().'/config';
|
||||
$routes->import($confDir.'/routes.yml');
|
||||
|
||||
if ($this->environment == 'dev') {
|
||||
$routes->import($confDir . '/dev/routes.yml');
|
||||
if ('dev' == $this->environment) {
|
||||
$routes->import($confDir.'/dev/routes.yml');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class Repository
|
||||
return $this->system->getTags($this->repository);
|
||||
}
|
||||
|
||||
public function getTree(?string $commitish = null): Tree
|
||||
public function getTree(string $commitish = null): Tree
|
||||
{
|
||||
if (!$commitish) {
|
||||
return $this->system->getTree($this->repository);
|
||||
@@ -62,7 +62,7 @@ class Repository
|
||||
return $this->system->getTree($this->repository, $commitish->getHash());
|
||||
}
|
||||
|
||||
public function getCommit(?string $commitish = null): Commit
|
||||
public function getCommit(string $commitish = null): Commit
|
||||
{
|
||||
if (!$commitish) {
|
||||
return $this->system->getCommit($this->repository);
|
||||
@@ -102,7 +102,7 @@ class Repository
|
||||
$annotatedLines = $blame->getAnnotatedLines();
|
||||
$lineAccumulator = '';
|
||||
foreach ($annotatedLines as $index => $currentLine) {
|
||||
$lineAccumulator .= $currentLine->getContents() . PHP_EOL;
|
||||
$lineAccumulator .= $currentLine->getContents().PHP_EOL;
|
||||
$nextLine = $annotatedLines[$index + 1] ?? null;
|
||||
|
||||
if ($nextLine && $currentLine->getCommit() != $nextLine->getCommit()) {
|
||||
@@ -129,7 +129,7 @@ class Repository
|
||||
}
|
||||
}
|
||||
|
||||
public function searchCommits(Criteria $criteria, ?string $commitish = null): array
|
||||
public function searchCommits(Criteria $criteria, string $commitish = null): array
|
||||
{
|
||||
if (!$commitish) {
|
||||
return $this->system->searchCommits($this->repository, $criteria);
|
||||
|
||||
@@ -24,7 +24,7 @@ class Commitish
|
||||
$this->hash = $rev->getName();
|
||||
$revSuffix = substr($commitish, strlen($this->hash));
|
||||
|
||||
if ($revSuffix && ($revSuffix[0] === '@' || $revSuffix[0] === '^' || $revSuffix[0] === '~')) {
|
||||
if ($revSuffix && ('@' === $revSuffix[0] || '^' === $revSuffix[0] || '~' === $revSuffix[0])) {
|
||||
$this->hash .= strtok($revSuffix, '/');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class Blob extends Item
|
||||
{
|
||||
$fileName = strtolower($this->getFileName());
|
||||
|
||||
return $fileName == 'readme.md' || $fileName == 'readme.txt';
|
||||
return 'readme.md' == $fileName || 'readme.txt' == $fileName;
|
||||
}
|
||||
|
||||
public function getSize(): ?int
|
||||
|
||||
@@ -128,7 +128,7 @@ class Parse
|
||||
|
||||
$this->currentHunk->addLine(new Line($line, Line::TYPE_DELETE, $oldNumber, $newNumber));
|
||||
$this->currentFile->increaseDeletions();
|
||||
$this->deletedLines++;
|
||||
++$this->deletedLines;
|
||||
}
|
||||
|
||||
protected function addedLine(string $line, array $context): void
|
||||
@@ -138,7 +138,7 @@ class Parse
|
||||
|
||||
$this->currentHunk->addLine(new Line($line, Line::TYPE_ADD, $oldNumber, $newNumber));
|
||||
$this->currentFile->increaseAdditions();
|
||||
$this->addedLines++;
|
||||
++$this->addedLines;
|
||||
}
|
||||
|
||||
protected function line(string $line): void
|
||||
@@ -151,8 +151,8 @@ class Parse
|
||||
$newNumber = $this->newCounter + $this->addedLines;
|
||||
|
||||
$this->currentHunk->addLine(new Line($line, Line::TYPE_NO_CHANGE, $oldNumber, $newNumber));
|
||||
$this->oldCounter++;
|
||||
$this->newCounter++;
|
||||
++$this->oldCounter;
|
||||
++$this->newCounter;
|
||||
}
|
||||
|
||||
protected function clearAccumulator(): void
|
||||
|
||||
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace GitList\SCM\Exception;
|
||||
|
||||
class InvalidCommitException extends \RuntimeException
|
||||
use RuntimeException;
|
||||
|
||||
class InvalidCommitException extends RuntimeException
|
||||
{
|
||||
}
|
||||
|
||||
@@ -18,17 +18,17 @@ interface System
|
||||
|
||||
public function getTags(Repository $repository): array;
|
||||
|
||||
public function getTree(Repository $repository, ?string $hash = null): Tree;
|
||||
public function getTree(Repository $repository, string $hash = null): Tree;
|
||||
|
||||
public function getRecursiveTree(Repository $repository, ?string $hash = null): Tree;
|
||||
public function getRecursiveTree(Repository $repository, string $hash = null): Tree;
|
||||
|
||||
public function getPathTree(Repository $repository, string $path, ?string $hash = null): Tree;
|
||||
public function getPathTree(Repository $repository, string $path, string $hash = null): Tree;
|
||||
|
||||
public function getCommit(Repository $repository, ?string $hash = null): Commit;
|
||||
public function getCommit(Repository $repository, string $hash = null): Commit;
|
||||
|
||||
public function getCommits(Repository $repository, ?string $hash = null, int $page = 1, int $perPage = 10): array;
|
||||
public function getCommits(Repository $repository, string $hash = null, int $page = 1, int $perPage = 10): array;
|
||||
|
||||
public function getCommitsFromPath(Repository $repository, string $path, ?string $hash = null, int $page = 1, int $perPage = 10): array;
|
||||
public function getCommitsFromPath(Repository $repository, string $path, string $hash = null, int $page = 1, int $perPage = 10): array;
|
||||
|
||||
public function getSpecificCommits(Repository $repository, array $hashes): array;
|
||||
|
||||
@@ -36,7 +36,7 @@ interface System
|
||||
|
||||
public function getBlob(Repository $repository, string $hash, string $path): Blob;
|
||||
|
||||
public function searchCommits(Repository $repository, Criteria $criteria, ?string $hash = null): array;
|
||||
public function searchCommits(Repository $repository, Criteria $criteria, string $hash = null): array;
|
||||
|
||||
public function archive(Repository $repository, string $format, string $hash, string $path): string;
|
||||
}
|
||||
|
||||
@@ -47,19 +47,19 @@ class CommandLine implements System
|
||||
{
|
||||
$path = $repository->getPath();
|
||||
|
||||
return file_exists($path) && (file_exists($path . '/.git/HEAD') || file_exists($path . '/HEAD'));
|
||||
return file_exists($path) && (file_exists($path.'/.git/HEAD') || file_exists($path.'/HEAD'));
|
||||
}
|
||||
|
||||
public function getDescription(Repository $repository): string
|
||||
{
|
||||
$path = $repository->getPath();
|
||||
|
||||
if (file_exists($path . '/description')) {
|
||||
return file_get_contents($path . '/description');
|
||||
if (file_exists($path.'/description')) {
|
||||
return file_get_contents($path.'/description');
|
||||
}
|
||||
|
||||
if (file_exists($path . '/.git/description')) {
|
||||
return file_get_contents($path . '/.git/description');
|
||||
if (file_exists($path.'/.git/description')) {
|
||||
return file_get_contents($path.'/.git/description');
|
||||
}
|
||||
|
||||
return '';
|
||||
@@ -151,7 +151,7 @@ class CommandLine implements System
|
||||
|
||||
public function getPathTree(Repository $repository, string $path, ?string $hash = 'HEAD'): Tree
|
||||
{
|
||||
$path = rtrim($path, '/') . '/';
|
||||
$path = rtrim($path, '/').'/';
|
||||
$output = $this->run(['ls-tree', '-lz', $hash, '--', $path], $repository);
|
||||
$tree = $this->buildTreeFromOutput($repository, $hash, $output, true);
|
||||
$tree->setName(rtrim($path, '/'));
|
||||
@@ -330,12 +330,12 @@ class CommandLine implements System
|
||||
|
||||
$file = preg_split('/[\s]+/', $line, 5);
|
||||
|
||||
if ($file[1] == 'commit') {
|
||||
if ('commit' == $file[1]) {
|
||||
// Don't handle submodules yet
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($file[0] == '120000') {
|
||||
if ('120000' == $file[0]) {
|
||||
$symlinkTarget = $this->run(['show', $file[2]], $repository);
|
||||
$symlink = new Symlink($repository, $file[2]);
|
||||
$symlink->setMode($file[0]);
|
||||
@@ -347,7 +347,7 @@ class CommandLine implements System
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($file[1] == 'blob') {
|
||||
if ('blob' == $file[1]) {
|
||||
$blob = new Blob($repository, $file[2]);
|
||||
$blob->setMode($file[0]);
|
||||
$blob->setName($file[4]);
|
||||
@@ -396,7 +396,7 @@ class CommandLine implements System
|
||||
{
|
||||
$xmlStart = strpos($input, '<item>');
|
||||
|
||||
if ($xmlStart === false) {
|
||||
if (false === $xmlStart) {
|
||||
throw new InvalidCommitException($input);
|
||||
}
|
||||
|
||||
@@ -408,7 +408,7 @@ class CommandLine implements System
|
||||
|
||||
protected function parseCommitsDataXml(Repository $repository, string $input): array
|
||||
{
|
||||
$items = new SimpleXMLElement('<items>' . $input . '</items>');
|
||||
$items = new SimpleXMLElement('<items>'.$input.'</items>');
|
||||
$commits = [];
|
||||
|
||||
foreach ($items as $item) {
|
||||
@@ -429,10 +429,10 @@ class CommandLine implements System
|
||||
$commit->setCommitedAt(new CarbonImmutable((string) $item->commiter_date));
|
||||
|
||||
$signatureStatus = (string) $item->valid_signature;
|
||||
if ($signatureStatus != 'N') {
|
||||
if ('N' != $signatureStatus) {
|
||||
$signature = new Signature((string) $item->signer, (string) $item->signer_key);
|
||||
|
||||
if ($signatureStatus == 'B') {
|
||||
if ('B' == $signatureStatus) {
|
||||
$signature->validate();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,15 +47,15 @@ class CommandLine implements System
|
||||
{
|
||||
$path = $repository->getPath();
|
||||
|
||||
return file_exists($path) && (file_exists($path . '/.hg'));
|
||||
return file_exists($path) && file_exists($path.'/.hg');
|
||||
}
|
||||
|
||||
public function getDescription(Repository $repository): string
|
||||
{
|
||||
$path = $repository->getPath();
|
||||
|
||||
if (file_exists($path . '/.hg/hgrc')) {
|
||||
$hgrc = parse_ini_file($path . '/.hg/hgrc');
|
||||
if (file_exists($path.'/.hg/hgrc')) {
|
||||
$hgrc = parse_ini_file($path.'/.hg/hgrc');
|
||||
|
||||
return $hgrc['description'] ?? '';
|
||||
}
|
||||
@@ -263,12 +263,12 @@ class CommandLine implements System
|
||||
|
||||
if ($criteria->getFrom() && !$criteria->getTo()) {
|
||||
$command[] = '--date';
|
||||
$command[] = '>' . $criteria->getFrom()->format(self::MERCURIAL_DATE_FORMAT);
|
||||
$command[] = '>'.$criteria->getFrom()->format(self::MERCURIAL_DATE_FORMAT);
|
||||
}
|
||||
|
||||
if (!$criteria->getFrom() && $criteria->getTo()) {
|
||||
$command[] = '--date';
|
||||
$command[] = '<' . $criteria->getTo()->format(self::MERCURIAL_DATE_FORMAT);
|
||||
$command[] = '<'.$criteria->getTo()->format(self::MERCURIAL_DATE_FORMAT);
|
||||
}
|
||||
|
||||
if ($criteria->getAuthor()) {
|
||||
@@ -319,7 +319,7 @@ class CommandLine implements System
|
||||
|
||||
protected function parseCommitDataXml(Repository $repository, string $input): array
|
||||
{
|
||||
$items = new SimpleXMLElement('<items>' . $input . '</items>');
|
||||
$items = new SimpleXMLElement('<items>'.$input.'</items>');
|
||||
$commits = [];
|
||||
|
||||
foreach ($items as $item) {
|
||||
@@ -357,11 +357,11 @@ class CommandLine implements System
|
||||
|
||||
$file = preg_split('/[\s]+/', $line, 4);
|
||||
|
||||
if ($file[2] == '.hgtags') {
|
||||
if ('.hgtags' == $file[2]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($file[2] == '@') {
|
||||
if ('@' == $file[2]) {
|
||||
$symlinkTarget = $this->run(['cat', '-r', $hash, $file[3]], $repository);
|
||||
$symlink = new Symlink($repository, $file[0]);
|
||||
$symlink->setMode($file[1]);
|
||||
|
||||
@@ -17,7 +17,7 @@ use ZipArchive;
|
||||
|
||||
class CommandLineTest extends TestCase
|
||||
{
|
||||
public const FIXTURE_REPO = FIXTURE_DIR . '/git-bare-repo';
|
||||
public const FIXTURE_REPO = FIXTURE_DIR.'/git-bare-repo';
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ use ZipArchive;
|
||||
|
||||
class CommandLineTest extends TestCase
|
||||
{
|
||||
public const FIXTURE_REPO = FIXTURE_DIR . '/hg-repo';
|
||||
public const FIXTURE_REPO = FIXTURE_DIR.'/hg-repo';
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user