{"record":{"id":"f96619097893256c","repo":"zed-industries/zed","slug":"github-skill-urls-must-use-https","errorCode":null,"errorMessage":"GitHub skill URLs must use https://","messagePattern":"GitHub skill URLs must use https://","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/settings_ui/src/pages/skill_creator.rs","lineNumber":1072,"sourceCode":"    };\n\n    let response_text = truncated_response_body_for_error(body);\n    if !response_text.is_empty() {\n        message.push_str(\": \");\n        message.push_str(&response_text);\n    }\n\n    anyhow!(message)\n}\n\npub(crate) fn is_supported_skill_url(input: &str) -> bool {\n    github_raw_url(input).is_ok()\n}\n\nfn github_raw_url(input: &str) -> Result<String> {\n    let url = Url::parse(input.trim()).context(\"Enter a valid GitHub URL\")?;\n    if url.scheme() != \"https\" {\n        anyhow::bail!(\"GitHub skill URLs must use https://\");\n    }\n\n    let host = url\n        .host_str()\n        .ok_or_else(|| anyhow!(\"Enter a valid GitHub URL\"))?;\n    let path_segments = url\n        .path_segments()\n        .ok_or_else(|| anyhow!(\"Enter a valid GitHub URL\"))?\n        .collect::<Vec<_>>();\n\n    match host {\n        \"github.com\" => github_blob_raw_url(&path_segments),\n        \"raw.githubusercontent.com\" => {\n            ensure_markdown_path(&path_segments)?;\n            Ok(url.into())\n        }\n        _ => anyhow::bail!(\"Paste a GitHub .md URL\"),\n    }","sourceCodeStart":1054,"sourceCodeEnd":1090,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/settings_ui/src/pages/skill_creator.rs#L1054-L1090","documentation":"Raised in github_raw_url when the parsed URL's scheme is anything other than https (typically http://). Skills are only imported over secure connections, so the URL is rejected before any host/path validation runs.","triggerScenarios":"Thrown at crates/settings_ui/src/pages/skill_creator.rs:1072 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Replace http:// with https:// in the pasted GitHub URL","Use the standard github.com or raw.githubusercontent.com URL copied from the browser"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}