{"record":{"id":"9852d89abac2dda0","repo":"jdx/mise","slug":"self-update-repository-must-be-in-owner-repository","errorCode":null,"errorMessage":"self_update.repository must be in owner/repository format, got {:?}","messagePattern":"self_update\\.repository must be in owner/repository format, got (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/version.rs","lineNumber":73,"sourceCode":"    }\n\n    fn cache_path(&self) -> std::path::PathBuf {\n        if self.is_default() {\n            dirs::CACHE.join(\"latest-version\")\n        } else {\n            dirs::CACHE.join(format!(\"latest-version-{}\", crate::hash::hash_to_str(self)))\n        }\n    }\n\n    #[cfg(feature = \"self_update\")]\n    pub(crate) fn repository_parts(&self) -> Result<(&str, &str)> {\n        let (owner, repo) = self.repository.split_once('/').ok_or_else(|| {\n            eyre::eyre!(\n                \"self_update.repository must be in owner/repository format, got {:?}\",\n                self.repository\n            )\n        })?;\n        eyre::ensure!(\n            !owner.is_empty() && !repo.is_empty() && !repo.contains('/'),\n            \"self_update.repository must be in owner/repository format, got {:?}\",\n            self.repository\n        );\n        Ok((owner, repo))\n    }\n\n    pub(crate) fn validate(&self) -> Result<()> {\n        let api_url = url::Url::parse(&self.api_url)?;\n        eyre::ensure!(\n            api_url.scheme() == \"https\",\n            \"self_update.api_url must use HTTPS, got {:?}\",\n            self.api_url\n        );\n        Ok(())\n    }\n}\n","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/version.rs#L55-L91","documentation":"Settings validation in SelfUpdate repository_parts(): the configured self_update.repository string has no '/' separator, so it is not in owner/repository form and a GitHub API URL cannot be constructed. Fires when the repository setting was set to a bare name or URL.","triggerScenarios":"Thrown at src/cli/version.rs:73 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set self_update.repository to 'owner/repo' form in settings","Remove a full URL if one was pasted in; use only owner/repository","Retry `mise self-update` after correcting the setting"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}