From 6d14a89cecab6a264e016661a57393fcda9b8d55 Mon Sep 17 00:00:00 2001 From: Alexander Goussas Date: Wed, 22 Oct 2025 15:29:47 -0500 Subject: [PATCH] feat: add changelog parser interface --- .../io/github/aloussase/changelog/Changelog.kt | 5 +++++ .../io/github/aloussase/changelog/ChangelogEntry.kt | 8 ++++++++ .../io/github/aloussase/changelog/git/Commit.kt | 5 +++++ .../aloussase/changelog/parser/ChangelogParser.kt | 12 ++++++++++++ .../changelog/parser/MarkdownChangelogParser.kt | 12 ++++++++++++ 5 files changed, 42 insertions(+) create mode 100644 changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/Changelog.kt create mode 100644 changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/ChangelogEntry.kt create mode 100644 changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/git/Commit.kt create mode 100644 changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/ChangelogParser.kt create mode 100644 changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/MarkdownChangelogParser.kt diff --git a/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/Changelog.kt b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/Changelog.kt new file mode 100644 index 0000000..22a5fd5 --- /dev/null +++ b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/Changelog.kt @@ -0,0 +1,5 @@ +package io.github.aloussase.changelog + +data class Changelog( + val entries: List +) diff --git a/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/ChangelogEntry.kt b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/ChangelogEntry.kt new file mode 100644 index 0000000..615decd --- /dev/null +++ b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/ChangelogEntry.kt @@ -0,0 +1,8 @@ +package io.github.aloussase.changelog + +import io.github.aloussase.changelog.git.Commit + +data class ChangelogEntry( + val branchName: String, + val commit: Commit, +) diff --git a/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/git/Commit.kt b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/git/Commit.kt new file mode 100644 index 0000000..817c74f --- /dev/null +++ b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/git/Commit.kt @@ -0,0 +1,5 @@ +package io.github.aloussase.changelog.git + +data class Commit( + val message: String +) diff --git a/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/ChangelogParser.kt b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/ChangelogParser.kt new file mode 100644 index 0000000..8bf9208 --- /dev/null +++ b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/ChangelogParser.kt @@ -0,0 +1,12 @@ +package io.github.aloussase.changelog.parser + +import io.github.aloussase.changelog.Changelog + +interface ChangelogParser { + + /** + * Parse the provided document as a Changelog. + */ + fun parse(doc: String): Result + +} diff --git a/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/MarkdownChangelogParser.kt b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/MarkdownChangelogParser.kt new file mode 100644 index 0000000..b016edf --- /dev/null +++ b/changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/MarkdownChangelogParser.kt @@ -0,0 +1,12 @@ +package io.github.aloussase.changelog.parser + +import io.github.aloussase.changelog.Changelog + +/** + * A ChangelogParser that assumes it's input to be a Markdown document. + */ +class MarkdownChangelogParser : ChangelogParser { + override fun parse(doc: String): Result { + TODO("Not yet implemented") + } +} -- 2.43.0