pub fn parse_owner_repo(s: &str) -> Result<(String, String)>
Parses an owner/repo string to extract owner and repo.
Validates format: exactly one /, non-empty parts.
/
Returns an error if the format is invalid.