in pkg/gitprovider/github.go [250:290]
func (c *GitHubClient) CreateProject(
ctx context.Context,
githubURL,
token,
projectID string,
) error {
c.restyClient.HostURL = githubURL
path := "user/repos"
owner, repo, err := parseProjectID(projectID)
if err != nil {
return err
}
isOrg, err := c.isOwnerOrg(ctx, githubURL, token, owner)
if err != nil {
return err
}
if isOrg {
path = fmt.Sprintf("orgs/%v/repos", owner)
}
resp, err := c.restyClient.
R().
SetContext(ctx).
SetAuthToken(token).
SetBody(map[string]string{
"name": repo,
}).
Post(path)
if err != nil {
return fmt.Errorf("failed to create GitHub repository: %w", err)
}
if resp.IsError() {
return fmt.Errorf("failed to create GitHub repository: %s", resp.String())
}
return nil
}