func updateRelease()

in internal/commands/update.go [57:93]


func updateRelease(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),
	})

	l.Info("Updating Release...")

	gitlabClient, err := gitlab.New(serverURL, jobToken, privateToken, projectID, httpClient, log)
	if err != nil {
		return fmt.Errorf("create GitLab client: %w", err)
	}

	crr, err := newUpdateReleaseReq(ctx, log)
	if err != nil {
		return fmt.Errorf("new UpdateReleaseRequest: %w", err)
	}

	release, err := gitlabClient.UpdateRelease(ctx.Context, crr)
	if err != nil {
		return fmt.Errorf("update release: %w", err)
	}

	printReleaseOutput(ctx.App.Writer, release, log)

	l.Info("Release updated successfully!")

	return nil
}