diff --git a/src/Composer/ConfigFactory.php b/src/Composer/ConfigFactory.php index 66431b5..389141a 100644 --- a/src/Composer/ConfigFactory.php +++ b/src/Composer/ConfigFactory.php @@ -56,6 +56,17 @@ public static function createForRegistry(Registry $registry): Config ], ], ]); + } elseif ($credentials?->getType() === CredentialsType::GitlabPersonalAccessToken) { + $config->merge([ + 'config' => [ + 'gitlab-token' => [ + $registry->getDomain() => [ + 'username' => $credentials->getToken(), + 'token' => 'private-token', + ], + ], + ], + ]); } return $config; diff --git a/src/Controller/Dashboard/DashboardCredentialsController.php b/src/Controller/Dashboard/DashboardCredentialsController.php index fe9bb24..1e2e9b3 100644 --- a/src/Controller/Dashboard/DashboardCredentialsController.php +++ b/src/Controller/Dashboard/DashboardCredentialsController.php @@ -41,5 +41,7 @@ public function configureFields(string $pageName): iterable ->onlyOnForms(); yield TextField::new('password') ->onlyOnForms(); + yield TextField::new('token') + ->onlyOnForms(); } } diff --git a/src/Doctrine/Entity/Credentials.php b/src/Doctrine/Entity/Credentials.php index 3a76fc2..5ceddc7 100644 --- a/src/Doctrine/Entity/Credentials.php +++ b/src/Doctrine/Entity/Credentials.php @@ -32,6 +32,9 @@ class Credentials #[Column(nullable: true)] private ?string $password = null; + #[Column(nullable: true)] + private ?string $token = null; + public function getId(): ?int { return $this->id; @@ -91,4 +94,14 @@ public function setPassword(?string $password): void { $this->password = $password; } + + public function getToken(): ?string + { + return $this->token; + } + + public function setToken(?string $token): void + { + $this->token = $token; + } } diff --git a/src/Doctrine/Entity/CredentialsType.php b/src/Doctrine/Entity/CredentialsType.php index c2a989a..7a60a26 100644 --- a/src/Doctrine/Entity/CredentialsType.php +++ b/src/Doctrine/Entity/CredentialsType.php @@ -6,5 +6,5 @@ enum CredentialsType: string { case HttpBasic = 'http-basic'; case GitlabOauth = 'gitlab-oauth'; - case GitlabToken = 'gitlab-token'; + case GitlabPersonalAccessToken = 'gitlab-pat'; } diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml index e1f224a..fb78b64 100644 --- a/translations/messages.en.yaml +++ b/translations/messages.en.yaml @@ -42,7 +42,7 @@ credentials: type: http-basic: HTTP Basic credentials gitlab-oauth: GitLab OAuth token - gitlab-token: GitLab access token + gitlab-pat: GitLab personal access token registry: package_mirroring: none: Package mirroring disabled