< Summary - go-semantic-release Coverage

Line coverage
100%
Covered lines: 13
Uncovered lines: 0
Coverable lines: 13
Total lines: 41
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
HasReleasableProjects0%00100%
ReleasableProjects0%00100%

File(s)

/home/runner/work/go-semantic-release/go-semantic-release/internal/domain/release_plan.go

#LineLine coverage
 1package domain
 2
 3// ReleasePlan describes what will happen during a release execution.
 4type ReleasePlan struct {
 5  Projects []ProjectReleasePlan
 6  DryRun   bool
 7  Branch   string
 8  Policy   *BranchPolicy
 9}
 10
 11// ProjectReleasePlan describes the release plan for a single project.
 12type ProjectReleasePlan struct {
 13  Project        Project
 14  CurrentVersion Version
 15  NextVersion    Version
 16  ReleaseType    ReleaseType
 17  Commits        []Commit
 18  ShouldRelease  bool
 19  Reason         string // human-readable explanation
 20}
 21
 22// HasReleasableProjects returns true if at least one project needs a release.
 323func (rp ReleasePlan) HasReleasableProjects() bool {
 324  for i := range rp.Projects {
 125    if rp.Projects[i].ShouldRelease {
 126      return true
 127    }
 28  }
 229  return false
 30}
 31
 32// ReleasableProjects returns only the projects that need a release.
 133func (rp ReleasePlan) ReleasableProjects() []ProjectReleasePlan {
 134  var result []ProjectReleasePlan
 135  for i := range rp.Projects {
 236    if rp.Projects[i].ShouldRelease {
 237      result = append(result, rp.Projects[i])
 238    }
 39  }
 140  return result
 41}