setName('package:publish') ->setDescription("Publish a package to a composer package registry") ->addArgument("registry", InputArgument::OPTIONAL, "The registry to publish to") ->addArgument("version", InputArgument::OPTIONAL, "The tag to publish (default is latest tag)") ; } protected function execute(InputInterface $input, OutputInterface $output): int { $credentials = $this->getCredentialsStore(); $registry = $input->getArgument("registry"); $version = $input->getArgument("version"); $providers = [ 'gitea' => new GiteaProvider($credentials) ]; $factory = new RegistryFactory($providers); $publisher = new PackagePublisher($factory, $output); $project = ProjectInfo::read(version: $version); if (!$registry) { $output->writeln([ "Missing registry to publish to. Please specify the registry like this:", "", " gitea:{server} - to publish to server as the default user", " gitea:{server}:{owner} - to publish to server as owner", "" ]); return self::INVALID; } $publisher->publish($project, $registry); return 0; } }