(ctx context.Context, integrationURL string)
| 19 | } |
| 20 | |
| 21 | func GetTypeFromURL(ctx context.Context, integrationURL string) (scalingo.SCMType, error) { |
| 22 | c, err := config.ScalingoClient(ctx) |
| 23 | if err != nil { |
| 24 | return "", errors.Wrapf(ctx, err, "fail to get Scalingo client") |
| 25 | } |
| 26 | |
| 27 | integrations, err := c.SCMIntegrationsList(ctx) |
| 28 | if err != nil { |
| 29 | return "", errors.Wrapf(ctx, err, "fail to list SCM integrations") |
| 30 | } |
| 31 | |
| 32 | u, err := url.Parse(integrationURL) |
| 33 | if err != nil { |
| 34 | return "", errors.Wrapf(ctx, err, "fail to parse the integration URL") |
| 35 | } |
| 36 | integrationURLHost := fmt.Sprintf("%s://%s", u.Scheme, u.Host) |
| 37 | for _, i := range integrations { |
| 38 | if i.URL == integrationURLHost { |
| 39 | return i.SCMType, nil |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | return "", ErrNotFound |
| 44 | } |
no test coverage detected