]> git.frustrated-labs.net Git - gradle-changelog-plugin.git/commitdiff
feat: add changelog parser interface
authorAlexander Goussas <[email protected]>
Wed, 22 Oct 2025 20:29:47 +0000 (15:29 -0500)
committerAlexander Goussas <[email protected]>
Wed, 22 Oct 2025 20:29:47 +0000 (15:29 -0500)
changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/Changelog.kt [new file with mode: 0644]
changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/ChangelogEntry.kt [new file with mode: 0644]
changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/git/Commit.kt [new file with mode: 0644]
changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/ChangelogParser.kt [new file with mode: 0644]
changelog-plugin/src/main/kotlin/io/github/aloussase/changelog/parser/MarkdownChangelogParser.kt [new file with mode: 0644]

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 (file)
index 0000000..22a5fd5
--- /dev/null
@@ -0,0 +1,5 @@
+package io.github.aloussase.changelog
+
+data class Changelog(
+    val entries: List<ChangelogEntry>
+)
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 (file)
index 0000000..615decd
--- /dev/null
@@ -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 (file)
index 0000000..817c74f
--- /dev/null
@@ -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 (file)
index 0000000..8bf9208
--- /dev/null
@@ -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<Changelog>
+
+}
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 (file)
index 0000000..b016edf
--- /dev/null
@@ -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<Changelog> {
+        TODO("Not yet implemented")
+    }
+}