--- /dev/null
+package io.github.aloussase.changelog
+
+data class Changelog(
+ val entries: List<ChangelogEntry>
+)
--- /dev/null
+package io.github.aloussase.changelog
+
+import io.github.aloussase.changelog.git.Commit
+
+data class ChangelogEntry(
+ val branchName: String,
+ val commit: Commit,
+)
--- /dev/null
+package io.github.aloussase.changelog.git
+
+data class Commit(
+ val message: String
+)
--- /dev/null
+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>
+
+}
--- /dev/null
+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")
+ }
+}