func NewMinorRelease()

in tools/eksDistroBuildToolingOpsTools/pkg/eksGoRelease/newVersion.go [22:75]


func NewMinorRelease(ctx context.Context, r *Release, dryrun bool, email, user string) error {
	// Setup Git Clients
	token, err := github.GetGithubToken()
	if err != nil {
		logger.V(4).Error(err, "no github token found")
		return fmt.Errorf("getting Github PAT from environment at variable %s: %v", github.PersonalAccessTokenEnvVar, err)
	}

	ghUser := github.NewGitHubUser(user, email, token)
	// Creating git client in memory and clone 'eks-distro-build-tooling
	forkUrl := fmt.Sprintf(constants.EksGoRepoUrl, ghUser.User())
	gClient := git.NewClient(git.WithInMemoryFilesystem(), git.WithRepositoryUrl(forkUrl), git.WithAuth(&http.BasicAuth{Username: ghUser.User(), Password: ghUser.Token()}))
	if err := gClient.Clone(ctx); err != nil {
		logger.Error(err, "Cloning repo", "user", ghUser.User())
		return err
	}

	// Create new branch
	commitBranch := r.EksGoReleaseVersion()
	if err := gClient.Branch(commitBranch); err != nil {
		logger.Error(err, "git branch", "branch name", r.EksGoReleaseVersion(), "repo", forkUrl, "client", gClient)
		return err
	}

	if err := updateProjectReadme(gClient, r); err != nil {
		logger.Error(err, "update project Readme")
		return err
	}

	// Create files for new minor versions of golang
	if err := updateVersionReadme(gClient, r); err != nil {
		logger.Error(err, "update version Readme")
		return err
	}

	if err := updateGitTag(gClient, r); err != nil {
		logger.Error(err, "update Readme")
		return err
	}

	if err := addTempFilesForNewMinorVersion(gClient, r); err != nil {
		logger.Error(err, "creating temporary files for new minor verions")
		return err
	}

	// Commit file and create PR if not dryrun
	prSubject := fmt.Sprintf(newMinorVersionPRSubjectFmt, r.GoSemver())
	prDescription := fmt.Sprintf(newMinorVersionPRDescriptionFmt, r.EksGoReleaseVersion())
	commitMsg := fmt.Sprintf(newMinorVersionCommitMsgFmt, r.GoSemver())
	if err := createReleasePR(ctx, dryrun, r, ghUser, gClient, prSubject, prDescription, commitMsg, commitBranch); err != nil {
		logger.Error(err, "Create Release PR")
	}
	return nil
}