Skip to content

Commit

Permalink
feat(version): add --signoff git flag
Browse files Browse the repository at this point in the history
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
  • Loading branch information
petermetz committed May 6, 2021
1 parent 6cb8ab2 commit f4d347f
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 1 deletion.
7 changes: 7 additions & 0 deletions commands/version/README.md
Expand Up @@ -70,6 +70,7 @@ Running `lerna version --conventional-commits` without the above flags will rele
- [`--no-private`](#--no-private)
- [`--no-push`](#--no-push)
- [`--preid`](#--preid)
- [`--signoff-git-commit`](#--signoff-git-commit)
- [`--sign-git-commit`](#--sign-git-commit)
- [`--sign-git-tag`](#--sign-git-tag)
- [`--force-git-tag`](#--force-git-tag)
Expand Down Expand Up @@ -396,6 +397,12 @@ lerna version prepatch --preid next
When run with this flag, `lerna version` will increment `premajor`, `preminor`, `prepatch`, or `prerelease` semver
bumps using the specified [prerelease identifier](http://semver.org/#spec-item-9).

### `--signoff-git-commit`

Adds the `--signoff` flag to the git commit done by lerna version when executed.

> Note: This is different from `--sign-git-commit` which is about gpg signatures.
### `--sign-git-commit`

This option is analogous to the `npm version` [option](https://docs.npmjs.com/misc/config#sign-git-commit) of the same name.
Expand Down
6 changes: 6 additions & 0 deletions commands/version/__tests__/git-commit.test.js
Expand Up @@ -43,4 +43,10 @@ describe("git commit", () => {
await gitCommit("nice", { signGitCommit: true }, opts);
expect(childProcess.exec).toHaveBeenLastCalledWith("git", ["commit", "--gpg-sign", "-m", "nice"], opts);
});

test("--signoff-git-commit", async () => {
const opts = { cwd: "signed-off" };
await gitCommit("nice", { signoffGitCommit: true }, opts);
expect(childProcess.exec).toHaveBeenLastCalledWith("git", ["commit", "--signoff", "-m", "nice"], opts);
});
});
4 changes: 4 additions & 0 deletions commands/version/command.js
Expand Up @@ -146,6 +146,10 @@ exports.builder = (yargs, composed) => {
describe: "Pass the `--gpg-sign` flag to `git commit`.",
type: "boolean",
},
"signoff-git-commit": {
describe: "Pass the `--signoff` flag to `git commit`.",
type: "boolean",
},
"sign-git-tag": {
describe: "Pass the `--sign` flag to `git tag`.",
type: "boolean",
Expand Down
2 changes: 2 additions & 0 deletions commands/version/index.js
Expand Up @@ -65,6 +65,7 @@ class VersionCommand extends Command {
granularPathspec = true,
push = true,
signGitCommit,
signoffGitCommit,
signGitTag,
forceGitTag,
tagVersionPrefix = "v",
Expand Down Expand Up @@ -93,6 +94,7 @@ class VersionCommand extends Command {
commitHooks,
granularPathspec,
signGitCommit,
signoffGitCommit,
signGitTag,
forceGitTag,
};
Expand Down
6 changes: 5 additions & 1 deletion commands/version/lib/git-commit.js
Expand Up @@ -12,7 +12,7 @@ module.exports.gitCommit = gitCommit;
* @param {{ amend: boolean; commitHooks: boolean; signGitCommit: boolean; }} gitOpts
* @param {import("@lerna/child-process").ExecOpts} opts
*/
function gitCommit(message, { amend, commitHooks, signGitCommit }, opts) {
function gitCommit(message, { amend, commitHooks, signGitCommit, signoffGitCommit }, opts) {
log.silly("gitCommit", message);
const args = ["commit"];

Expand All @@ -24,6 +24,10 @@ function gitCommit(message, { amend, commitHooks, signGitCommit }, opts) {
args.push("--gpg-sign");
}

if (signoffGitCommit) {
args.push("--signoff");
}

if (amend) {
args.push("--amend", "--no-edit");
} else if (message.indexOf(EOL) > -1) {
Expand Down

0 comments on commit f4d347f

Please sign in to comment.