in internal/commands/create.go [52:91]
func createRelease(ctx *cli.Context, log logrus.FieldLogger, httpClient gitlab.HTTPClient) error {
projectID := ctx.String(flags.ProjectID)
serverURL := ctx.String(flags.ServerURL)
jobToken := ctx.String(flags.JobToken)
privateToken := ctx.String(flags.PrivateToken)
l := log.WithFields(logrus.Fields{
"command": ctx.Command.Name,
flags.ServerURL: serverURL,
flags.ProjectID: projectID,
flags.Name: ctx.String(flags.Name),
flags.TagName: ctx.String(flags.TagName),
flags.TagMessage: ctx.String(flags.TagMessage),
flags.Ref: ctx.String(flags.Ref),
flags.CatalogPublish: ctx.Bool(flags.CatalogPublish),
})
l.Info("Creating Release...")
gitlabClient, err := gitlab.New(serverURL, jobToken, privateToken, projectID, httpClient, log)
if err != nil {
return fmt.Errorf("failed to create GitLab client: %w", err)
}
crr, err := newCreateReleaseReq(ctx, log)
if err != nil {
return fmt.Errorf("new CreateReleaseRequest: %w", err)
}
release, err := gitlabClient.CreateRelease(ctx.Context, crr)
if err != nil {
return fmt.Errorf("failed to create release: %w", err)
}
printReleaseOutput(ctx.App.Writer, release, log)
l.Info("release created successfully!")
return nil
}