MCPcopy
hub / github.com/vektra/mockery / Tag

Method Tag

tools/cmd/tag.go:162–213  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

160}
161
162func (t *Tagger) Tag() (requestedVersion *semver.Version, previousVersion *semver.Version, err error) {
163 repo, err := git.PlainOpen(".")
164 if err != nil {
165 return nil, nil, errors.New(err)
166 }
167
168 requestedVersion, err = semver.NewVersion(t.Version)
169 if err != nil {
170 logger.Err(err).Str("requested-version", string(t.Version)).Msg("error when constructing semver from version config")
171 return requestedVersion, nil, errors.New(err)
172 }
173
174 previousVersion, err = t.largestTagSemver(repo, requestedVersion.Major())
175 if err != nil {
176 return requestedVersion, previousVersion, err
177 }
178 logger := logger.With().
179 Stringer("previous-version", previousVersion).Logger()
180
181 logger.Info().Msg("found largest semver tag")
182
183 logger = logger.With().
184 Stringer("requested-version", requestedVersion).
185 Logger()
186 if !requestedVersion.GreaterThan(previousVersion) {
187 logger.Info().
188 Msg("VERSION is not greater than latest git tag, nothing to do.")
189 return requestedVersion, previousVersion, ErrNoNewVersion
190 }
191
192 worktree, err := repo.Worktree()
193 if err != nil {
194 return requestedVersion, previousVersion, errors.New(err)
195 }
196
197 status, err := worktree.Status()
198 if err != nil {
199 return requestedVersion, previousVersion, errors.New(err)
200 }
201 if !status.IsClean() {
202 logger.Error().Msg("git is in a dirty state, can't tag.")
203 fmt.Println(status.String())
204 return requestedVersion, previousVersion, errors.New("dirty git state")
205 }
206
207 if err := t.createTag(repo, fmt.Sprintf("v%s", requestedVersion.String())); err != nil {
208 return requestedVersion, previousVersion, err
209 }
210 logger.Info().Msg("created new tag. Push to origin still required.")
211
212 return requestedVersion, previousVersion, nil
213}

Callers 1

NewTagCmdFunction · 0.95

Calls 5

largestTagSemverMethod · 0.95
createTagMethod · 0.95
StringMethod · 0.65
SprintfMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected