Converts workspace name input to owner/workspace.agent format Possible valid input formats: workspace workspace.agent owner/workspace owner--workspace owner/workspace--agent owner/workspace.agent owner--workspace--agent owner--workspace.agent agent.workspace.owner - for parity with Coder Connect
(input string)
| 1762 | // owner--workspace.agent |
| 1763 | // agent.workspace.owner - for parity with Coder Connect |
| 1764 | func normalizeWorkspaceInput(input string) string { |
| 1765 | // Split on "/", "--", and "." |
| 1766 | parts := workspaceNameRe.Split(input, -1) |
| 1767 | |
| 1768 | switch len(parts) { |
| 1769 | case 1: |
| 1770 | return input // "workspace" |
| 1771 | case 2: |
| 1772 | if strings.Contains(input, ".") { |
| 1773 | return fmt.Sprintf("%s.%s", parts[0], parts[1]) // "workspace.agent" |
| 1774 | } |
| 1775 | return fmt.Sprintf("%s/%s", parts[0], parts[1]) // "owner/workspace" |
| 1776 | case 3: |
| 1777 | // If the only separator is a dot, it's the Coder Connect format |
| 1778 | if !strings.Contains(input, "/") && !strings.Contains(input, "--") { |
| 1779 | return fmt.Sprintf("%s/%s.%s", parts[2], parts[1], parts[0]) // "owner/workspace.agent" |
| 1780 | } |
| 1781 | return fmt.Sprintf("%s/%s.%s", parts[0], parts[1], parts[2]) // "owner/workspace.agent" |
| 1782 | default: |
| 1783 | return input // Fallback |
| 1784 | } |
| 1785 | } |
no test coverage detected