generate method
Generates a ReleaseNotes object for a given projectPath and target version.
Implementation
Future<ReleaseNotes> generate({
required String projectPath,
required String version,
String? previousTag,
String? currentTag,
}) async {
final commitRange = await _gitClient.getCommitRange(
projectPath,
fromTag: previousTag,
);
final classified = _classifier.classify(commitRange.commits);
final categories = _classifier.groupByCategory(classified);
final breaking = classified.where((c) => c.isBreaking).toList();
return ReleaseNotes(
version: version,
tag: currentTag ?? 'v$version',
previousTag: commitRange.fromTag,
commitRange: commitRange,
categories: categories,
breakingChanges: breaking,
commits: commitRange.commits,
);
}