javascript 最后一个提交的作者用它的消息创建一个标记(异步getter的例子)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 最后一个提交的作者用它的消息创建一个标记(异步getter的例子)相关的知识,希望对你有一定的参考价值。
const asyncExec = require('util').promisify(require('child_process').exec);
/**
* Execute command line in a child process
* @param {...String} args Commands
* @return {String}
*/
async function exec (...args) {
const { stdout, stderr } = await asyncExec(...args);
if (stderr) {
throw new Error(stderr);
}
return stdout.trim();
}
/**
* @typedef gitData
* @description Git data getters
* @type {Object}
* @property {String} author Author of the last commit
* @property {String} email Git user email
* @property {String} message Most recent commit message
*/
const gitData = Object.defineProperties({}, {
author: { get: async () => await exec('git log -1 --pretty=%an') },
email: { get: async () => await exec('git log -1 --pretty=%ae') },
message: { get: async () => await exec('git log -1 --pretty=%B') },
});
/**
* Create a tag by the last commit's author with it's message
* @param {String} tag Tag name (e.g. v1.1.0)
* no return value
*/
module.exports = async (tag) => {
const { message, author, email } = gitData;
try {
await exec(`git config --global user.name "${await author}"`);
await exec(`git config --global user.email "${await email}"`);
await exec(`git tag -a ${tag} -m "${await message}"`);
await exec(`git push origin refs/tags/${tag}`);
} catch (error) {
console.error(error);
throw error;
}
};
以上是关于javascript 最后一个提交的作者用它的消息创建一个标记(异步getter的例子)的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击链接使用 JavaScript 提交表单?
提交消息中的 Git 魔术关键字(签名人、共同作者、修复...)
推送后重写主/主分支上的最后一次提交消息?
有一个带有链接 Javascript 的 HTML 文档我试图在单击提交按钮时添加一条警报消息。我该怎么做呢?
javascript 添加分支名称标记以提交消息
在 Elasticsearch 中,多个***文档可以共享一个嵌套文档吗?