Skip to content
Snippets Groups Projects
Commit ca1096e7 authored by Rémy Coutable's avatar Rémy Coutable
Browse files

Merge branch 'rs-changelog-force' into 'master'

Add a `--force` option to bin/changelog

See merge request !7252
parents d9cf5c0a 89567373
No related branches found
No related tags found
No related merge requests found
Loading
@@ -12,6 +12,7 @@ Options = Struct.new(
Loading
@@ -12,6 +12,7 @@ Options = Struct.new(
:amend, :amend,
:author, :author,
:dry_run, :dry_run,
:force,
:merge_request, :merge_request,
:title :title
) )
Loading
@@ -29,6 +30,10 @@ class ChangelogOptionParser
Loading
@@ -29,6 +30,10 @@ class ChangelogOptionParser
options.amend = value options.amend = value
end end
   
opts.on('-f', '--force', 'Overwrite an existing entry') do |value|
options.force = value
end
opts.on('-m', '--merge-request [integer]', Integer, 'Merge Request ID') do |value| opts.on('-m', '--merge-request [integer]', Integer, 'Merge Request ID') do |value|
options.merge_request = value options.merge_request = value
end end
Loading
@@ -111,8 +116,9 @@ class ChangelogEntry
Loading
@@ -111,8 +116,9 @@ class ChangelogEntry
   
def assert_new_file! def assert_new_file!
return unless File.exist?(file_path) return unless File.exist?(file_path)
return if options.force
   
fail_with "#{file_path} already exists!" fail_with "#{file_path} already exists! Use `--force` to overwrite."
end end
   
def assert_title! def assert_title!
Loading
Loading
Loading
@@ -46,13 +46,14 @@ author:
Loading
@@ -46,13 +46,14 @@ author:
   
The entry filename is based on the name of the current Git branch. If you run The entry filename is based on the name of the current Git branch. If you run
the command above on a branch called `feature/hey-dz`, it will generate a the command above on a branch called `feature/hey-dz`, it will generate a
`changelogs/unreleased/feature-hey-dz` file. `changelogs/unreleased/feature-hey-dz.yml` file.
   
### Arguments ### Arguments
   
| Argument | Shorthand | Purpose | | Argument | Shorthand | Purpose |
| ----------------- | --------- | --------------------------------------------- | | ----------------- | --------- | --------------------------------------------- |
| `--amend` | | Amend the previous commit | | `--amend` | | Amend the previous commit |
| `--force` | `-f` | Overwrite an existing entry |
| `--merge-request` | `-m` | Merge Request ID | | `--merge-request` | `-m` | Merge Request ID |
| `--dry-run` | `-n` | Don't actually write anything, just print | | `--dry-run` | `-n` | Don't actually write anything, just print |
| `--git-username` | `-u` | Use Git user.name configuration as the author | | `--git-username` | `-u` | Use Git user.name configuration as the author |
Loading
@@ -79,6 +80,23 @@ merge_request:
Loading
@@ -79,6 +80,23 @@ merge_request:
author: author:
``` ```
   
#### `--force` or `-f`
Use **`--force`** or **`-f`** to overwrite an existing changelog entry if it
already exists.
```text
$ bin/changelog 'Hey DZ, I added a feature to GitLab!'
error changelogs/unreleased/feature-hey-dz.yml already exists! Use `--force` to overwrite.
$ bin/changelog 'Hey DZ, I added a feature to GitLab!' --force
create changelogs/unreleased/feature-hey-dz.yml
---
title: Hey DZ, I added a feature to GitLab!
merge_request: 1983
author:
```
#### `--merge-request` or `-m` #### `--merge-request` or `-m`
   
Use the **`--merge-request`** or **`-m`** argument to provide the Use the **`--merge-request`** or **`-m`** argument to provide the
Loading
Loading
Loading
@@ -10,6 +10,18 @@ describe 'bin/changelog' do
Loading
@@ -10,6 +10,18 @@ describe 'bin/changelog' do
expect(options.amend).to eq true expect(options.amend).to eq true
end end
   
it 'parses --force' do
options = described_class.parse(%w[foo --force bar])
expect(options.force).to eq true
end
it 'parses -f' do
options = described_class.parse(%w[foo -f bar])
expect(options.force).to eq true
end
it 'parses --merge-request' do it 'parses --merge-request' do
options = described_class.parse(%w[foo --merge-request 1234 bar]) options = described_class.parse(%w[foo --merge-request 1234 bar])
   
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment