| 237 | } |
| 238 | |
| 239 | func getProjectPath(baseUrl, projectUrl string) (string, error) { |
| 240 | cleanUrl := strings.TrimSuffix(projectUrl, ".git") |
| 241 | cleanUrl = strings.Replace(cleanUrl, "git@", "https://", 1) |
| 242 | objectUrl, err := url.Parse(cleanUrl) |
| 243 | if err != nil { |
| 244 | return "", ErrBadProjectURL |
| 245 | } |
| 246 | |
| 247 | objectBaseUrl, err := url.Parse(baseUrl) |
| 248 | if err != nil { |
| 249 | return "", ErrBadProjectURL |
| 250 | } |
| 251 | |
| 252 | if objectUrl.Hostname() != objectBaseUrl.Hostname() { |
| 253 | return "", fmt.Errorf("base url and project url hostnames doesn't match") |
| 254 | } |
| 255 | return objectUrl.Path[1:], nil |
| 256 | } |
| 257 | |
| 258 | func getValidGitlabRemoteURLs(repo repository.RepoCommon, baseUrl string) ([]string, error) { |
| 259 | remotes, err := repo.GetRemotes() |