{"record":{"id":"ce479a3303b5cd65","repo":"phacility/phabricator","slug":"specify-one-or-more-repositories-to-clusterize","errorCode":null,"errorMessage":"Specify one or more repositories to clusterize.","messagePattern":"Specify one or more repositories to clusterize\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"info","filePath":"src/applications/repository/management/PhabricatorRepositoryManagementClusterizeWorkflow.php","lineNumber":37,"sourceCode":"              'into.'),\n          ),\n          array(\n            'name' => 'remove-service',\n            'help' => pht('Take repositories out of a cluster.'),\n          ),\n          array(\n            'name' => 'repositories',\n            'wildcard' => true,\n          ),\n        ));\n  }\n\n  public function execute(PhutilArgumentParser $args) {\n    $viewer = $this->getViewer();\n\n    $repositories = $this->loadRepositories($args, 'repositories');\n    if (!$repositories) {\n      throw new PhutilArgumentUsageException(\n        pht('Specify one or more repositories to clusterize.'));\n    }\n\n    $service_name = $args->getArg('service');\n    $remove_service = $args->getArg('remove-service');\n\n    if ($remove_service && $service_name) {\n      throw new PhutilArgumentUsageException(\n        pht('Specify --service or --remove-service, but not both.'));\n    }\n\n    if (!$service_name && !$remove_service) {\n      throw new PhutilArgumentUsageException(\n        pht('Specify --service or --remove-service.'));\n    }\n\n    if ($remove_service) {\n      $service = null;","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/repository/management/PhabricatorRepositoryManagementClusterizeWorkflow.php#L19-L55","documentation":"Usage error from 'bin/repository clusterize': the wildcard 'repositories' argument resolved to zero repositories, either because no names were given or because none of the given names matched a repository. The workflow moves repositories onto or off an Almanac cluster repository service and needs at least one target repository.","triggerScenarios":"Running 'bin/repository clusterize --service X' with no repository names; passing callsigns or monograms that do not resolve to any repository.","commonSituations":"Admin tests the clustering command before knowing the callsigns; typos or wrong case in callsigns such as rXyz vs XYZ.","solutions":["Pass one or more repository callsigns, e.g. 'bin/repository clusterize --service repo-cluster ABC DEF'","Verify the repositories exist on /diffusion/ or via repository search","Check spelling and case of callsigns and retry"],"exampleFix":"# before\nbin/repository clusterize --service repo-cluster\n\n# after\nbin/repository clusterize --service repo-cluster ABC","handlingStrategy":"validation","validationCode":"// Validate arguments before invoking clusterize\nif (empty($argv_repos)) {\n  fwrite(STDERR, \"usage: bin/repository clusterize --service <name> <REPO...>\\n\");\n  exit(1);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Copy repository callsigns from /diffusion/ rather than typing them","Run clusterize from a checklist that pairs the service name with the repo list"],"tags":["phabricator","cli","usage-error","clustering"],"backgroundTag":"missing-cli-argument","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}