{"record":{"id":"e50b3d33051dddaa","repo":"phacility/phabricator","slug":"this-commit-s-is-associated-with-a-repository","errorCode":null,"errorMessage":"This commit (\"%s\") is associated with a repository (\"%s\") which has a remote URI (\"%s\") that does not appear to be hosted on GitHub. Repositories must be hosted on GitHub to be built with CircleCI.","messagePattern":"This commit \\(\"(.+?)\"\\) is associated with a repository \\(\"(.+?)\"\\) which has a remote URI \\(\"(.+?)\"\\) that does not appear to be hosted on GitHub\\. Repositories must be hosted on GitHub to be built with CircleCI\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/repository/storage/PhabricatorRepositoryCommit.php","lineNumber":715,"sourceCode":"\n    $commit_phid = $this->getPHID();\n    $repository_phid = $repository->getPHID();\n\n    if ($repository->isHosted()) {\n      throw new Exception(\n        pht(\n          'This commit (\"%s\") is associated with a hosted repository '.\n          '(\"%s\"). Repositories must be imported from GitHub to be built '.\n          'with CircleCI.',\n          $commit_phid,\n          $repository_phid));\n    }\n\n    $remote_uri = $repository->getRemoteURI();\n    $path = HarbormasterCircleCIBuildStepImplementation::getGitHubPath(\n      $remote_uri);\n    if (!$path) {\n      throw new Exception(\n        pht(\n          'This commit (\"%s\") is associated with a repository (\"%s\") which '.\n          'has a remote URI (\"%s\") that does not appear to be hosted on '.\n          'GitHub. Repositories must be hosted on GitHub to be built with '.\n          'CircleCI.',\n          $commit_phid,\n          $repository_phid,\n          $remote_uri));\n    }\n\n    return $remote_uri;\n  }\n\n  public function getCircleCIBuildIdentifierType() {\n    return 'revision';\n  }\n\n  public function getCircleCIBuildIdentifier() {","sourceCodeStart":697,"sourceCodeEnd":733,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/repository/storage/PhabricatorRepositoryCommit.php#L697-L733","documentation":"After the hosted check, the repository's remote URI is passed to HarbormasterCircleCIBuildStepImplementation::getGitHubPath(), which accepts only domains 'github.com' and 'www.github.com' (case-insensitive) and returns null for anything else (HarbormasterCircleCIBuildStepImplementation.php:68-80). A null path means Phabricator cannot derive the GitHub 'owner/repo' identifier CircleCI needs, so it throws. GitHub Enterprise domains are not supported by this step.","triggerScenarios":"A CircleCI build step on an observed repository whose remote URI is gitlab.com, bitbucket.org, a self-hosted GitHub Enterprise host (e.g. ghe.company.com), or any URI whose domain does not lowercase to exactly github.com/www.github.com.","commonSituations":"Companies running GitHub Enterprise and expecting the CircleCI step to work; copy-paste errors or typos in the remote URI; wanting CircleCI for GitLab/Bitbucket mirrors; URIs with credentials embedded that shift where PhutilURI sees the domain.","solutions":["Inspect and correct the remote URI in the Diffusion repository configuration so it points at github.com (e.g. https://github.com/owner/repo.git)","If the repository lives on GitHub Enterprise or another forge, replace the CircleCI step with a generic HTTP/command build step, or fork/patch getGitHubPath to accept your domain","Re-run the build after saving the corrected URI"],"exampleFix":"# before (repository remote URI)\nhttps://gitlab.example.com/team/project.git\n\n# after (must be github.com for the CircleCI step)\nhttps://github.com/team/project.git","handlingStrategy":"validation","validationCode":"// Reuse the same check the step uses, before triggering a build.\n$uri = new PhutilURI($repository->getRemoteURI());\n$domain = phutil_utf8_strtolower($uri->getDomain());\nif ($domain !== 'github.com' && $domain !== 'www.github.com') {\n  // not buildable by the CircleCI step; do not enqueue it\n}","typeGuard":"function isGitHubRemote(PhabricatorRepository $repository) {\n  return HarbormasterCircleCIBuildStepImplementation::getGitHubPath(\n    $repository->getRemoteURI()) !== null;\n}","tryCatchPattern":"try {\n  $remote_uri = $commit->getCircleCIGitHubRepositoryURI();\n} catch (Exception $ex) {\n  // Remote URI is not github.com: surface as a configuration failure with\n  // the offending URI from the message; no retry can help.\n  $build_target->log($ex->getMessage());\n  throw new HarbormasterBuildFailureException();\n}","preventionTips":["Standardize observed repositories on https://github.com/owner/repo.git remotes","Remember GitHub Enterprise domains are rejected by this step - use a generic HTTP step there","Verify remote URIs in repository settings after any migration or rename"],"tags":["phabricator","harbormaster","circleci","github","remote-uri","ci-integration","php"],"backgroundTag":"ci-unsupported-remote-url","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}