随机 Git 提交信息，但是 Cloudflare Workers

你可能已经使用过这个神奇的站点，What The Commit。它能帮我们随机生成 Git commit message，省去了头疼的「我他妈到底写了什么」思考时间。

用到 Git 上，我们可以这么用：

Copy
git commit -m $(curl -s http://whatthecommit.com/index.txt)

感觉这个网站很有意思的，于是我打算自己抄实现一个。

网站是开源的，地址是：ngerakines/commitment，既然有源数据就很好办了，在这里我使用 Cloudflare Workers 简单实现一下逻辑（好久没写 CFW 脚本了，还望各位大佬轻点喷）：

Copy
import HTML from './index.html'

const default_names = [
"Ali",
"Andy",
"April",
"Brannon",
"Chris",
...
]

const commit_messages = [
"¯\\_(ツ)_/¯",
"\"Get that shit outta my master.\"",
"#GrammarNazi",
"$(init 0)",
"$(rm -rvf .)",
"(c) Microsoft 1988",
"--help",
...
]

export default {
async fetch(request) {
const url = new URL(request.url);
var commit_message = commit_messages[Math.floor(Math.random() * commit_messages.length)]
.replace(/XNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)])
.replace(/XUPPERNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)].toUpperCase())
.replace(/XLOWERNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)].toLowerCase());

switch (url.pathname) {
case '/':
case '/index.html':
case '/index.php':
var OutputHTML = HTML.replace(/%message%/g, commit_message);
return new Response(OutputHTML, {
status: 200,
headers: {
'Content-Type': 'text/html;charset=UTF-8',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Origin,X-Requested-With,Content-Type,Accept',
}
});

case '/index.txt':
return new Response(commit_message, {
status: 200,
headers: {
'Content-Type': 'text/plain;charset=UTF-8',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Origin,X-Requested-With,Content-Type,Accept',
}
});

case '/robots.txt':
return new Response(
`User-agent: *
Disallow: /`, {
status: 200,
headers: {
'Content-Type': 'text/plain;charset=UTF-8',
}
});

default:
return new Response(`not found`, {
status: 404,
headers: {
'Content-Type': 'text/plain;charset=UTF-8',
}
});
}
}
}

可以看到我们的核心代码非常简单，至于部署么大家肯定都知道怎么做。那么这篇文章，结束？

如果你想使用我的实例，不妨来用用：

Copy
git commit -m $(curl -s https://wtc.993686.xyz/index.txt)
# 有概率触发 WAF，请求量大了可能中断服务，建议自行部署