aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lua/mason-scripts/templates/parse_commit.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lua/mason-scripts/templates/parse_commit.lua')
-rw-r--r--scripts/lua/mason-scripts/templates/parse_commit.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/scripts/lua/mason-scripts/templates/parse_commit.lua b/scripts/lua/mason-scripts/templates/parse_commit.lua
new file mode 100644
index 00000000..2f7e7358
--- /dev/null
+++ b/scripts/lua/mason-scripts/templates/parse_commit.lua
@@ -0,0 +1,16 @@
+local _ = require "mason-core.functional"
+
+local linkify = _.gsub([[#(%d+)]], function(issue)
+ return ("[#%d](https://github.com/williamboman/mason.nvim/issues/%d)"):format(issue, issue)
+end)
+
+return {
+ parse_commit = function(commit_str)
+ local commit =
+ _.compose(_.zip_table { "sha", "commit_date", "author_name", "subject" }, _.split "\t")(commit_str)
+
+ return (_.dedent [[
+ [`%s`](https://github.com/williamboman/mason.nvim/commit/%s) %s - %s by %s
+ ]]):format(commit.sha, commit.sha, commit.commit_date, linkify(commit.subject), commit.author_name)
+ end,
+}