From e63211fcf89ddfb47bceb8f8510ce3ed91c3e760 Mon Sep 17 00:00:00 2001 From: "Frank W. Tag" Date: Wed, 29 Apr 2026 19:09:49 +0200 Subject: [PATCH 1/3] adds sorting to repo option list --- src/Entity/OAuthIntegration.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Entity/OAuthIntegration.php b/src/Entity/OAuthIntegration.php index f34cc3ed..a11dce0c 100644 --- a/src/Entity/OAuthIntegration.php +++ b/src/Entity/OAuthIntegration.php @@ -268,6 +268,8 @@ public function filteredRepos(array $repos, bool $short = false): array if ($short) { $repos = array_map(fn($r) => ['id' => $r['ext_ref'], 'text' => $r['name']], $repos); } + + usort($repos, fn($a, $b) => $a['text'] <=> $b['text']); return $repos; } From 6b807cbc92a1a93618fe3038666741f7542377f1 Mon Sep 17 00:00:00 2001 From: "Frank W. Tag" Date: Fri, 1 May 2026 11:08:54 +0200 Subject: [PATCH 2/3] exclude yet added repos from integration submit --- src/Controller/OAuth/IntegrationController.php | 16 ++++++++++++++++ src/Entity/OAuthIntegration.php | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Controller/OAuth/IntegrationController.php b/src/Controller/OAuth/IntegrationController.php index 28700ccb..3083430f 100644 --- a/src/Controller/OAuth/IntegrationController.php +++ b/src/Controller/OAuth/IntegrationController.php @@ -90,6 +90,22 @@ public function repos(#[Vars] OAuthIntegration $oauth): Response $repos = []; } + $pkgRepo = $this->registry->getRepository(Package::class); + $excludedRepos = array_values( + array_map( + function(Package $r) { + if( 1 === preg_match('/^https:\/\/bitbucket.org\/([a-z0-9_-]+\/[a-z0-9_-]+)\.git/i', $r->getRepository(), $matches)) { + return $matches[1]; + } + + return $r->getPackageName(); + }, + $pkgRepo->findAll() + ) + ); + + $oauth->setExcludedRepos(array_merge($excludedRepos, $oauth->getExcludedRepos() ?? [])); + return new JsonResponse($oauth->filteredRepos($repos, true)); } diff --git a/src/Entity/OAuthIntegration.php b/src/Entity/OAuthIntegration.php index a11dce0c..044d08f7 100644 --- a/src/Entity/OAuthIntegration.php +++ b/src/Entity/OAuthIntegration.php @@ -252,7 +252,7 @@ public function setInstallationId(null|string|int $id = null): self return $this->setSerialized('installation_id', $id ? (int) $id : null); } - public function filteredRepos(array $repos, bool $short = false): array + public function filteredRepos(array $repos, bool $short = false ): array { $listOf = array_column($repos, 'name'); $filtered = PacketonUtils::matchGlobAll($listOf, $this->getGlobFilter(), $this->getExcludedRepos()); From 99d0cdb41e5adcee7c41a627ad533bc0e5e4e80b Mon Sep 17 00:00:00 2001 From: "Frank W. Tag" Date: Fri, 1 May 2026 11:45:48 +0200 Subject: [PATCH 3/3] exclude yet added repos from integration submit --- src/Controller/OAuth/IntegrationController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/OAuth/IntegrationController.php b/src/Controller/OAuth/IntegrationController.php index 3083430f..76d5bbc1 100644 --- a/src/Controller/OAuth/IntegrationController.php +++ b/src/Controller/OAuth/IntegrationController.php @@ -94,7 +94,7 @@ public function repos(#[Vars] OAuthIntegration $oauth): Response $excludedRepos = array_values( array_map( function(Package $r) { - if( 1 === preg_match('/^https:\/\/bitbucket.org\/([a-z0-9_-]+\/[a-z0-9_-]+)\.git/i', $r->getRepository(), $matches)) { + if( 1 === preg_match("/^https?:\/\/[a-z0-9-]+?\.[a-z]{2,}\/([a-z0-9_-]+\/[a-z0-9_-]+)\.git/i", $r->getRepository(), $matches)) { return $matches[1]; }