fastlane-plugin-changelog 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +32 -13
- data/lib/fastlane/plugin/changelog/actions/read_changelog.rb +15 -20
- data/lib/fastlane/plugin/changelog/actions/stamp_changelog.rb +103 -0
- data/lib/fastlane/plugin/changelog/actions/update_changelog.rb +107 -0
- data/lib/fastlane/plugin/changelog/version.rb +1 -1
- metadata +4 -3
- data/lib/fastlane/plugin/changelog/actions/changelog_action.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b883277c01f1eb86a19ccf42c0259d8f547db604
|
4
|
+
data.tar.gz: 3ef67394585bda5bbe554d797affec33f42d27a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6ae79e34c359159db1ea95313f60e4fcffaa5ee39fb209a3908ad60ebd9555c7fcb3d356c6c13f6dc09a50859eb717df7f571dd78d2a0792f8c02e952713fec
|
7
|
+
data.tar.gz: fa57810df72f423449d943ee7222192eb8062befa558e16455a3dc3aa9eb53a6b3e25b9d15b726eaa8e4c1d6d2ff90e9af225fdeccd9aa4abb284f67cace7e3e
|
data/README.md
CHANGED
@@ -12,24 +12,25 @@ fastlane add_plugin changelog
|
|
12
12
|
|
13
13
|
## About changelog
|
14
14
|
|
15
|
-
This plugin is inspired and based on [Keep a CHANGELOG](http://keepachangelog.com/) project. [Keep a CHANGELOG](http://keepachangelog.com/) proposes a standardised format for keeping change log of your project repository in CHANGELOG.md file. This file contains a curated, chronologically ordered list of notable changes for each version of a project in human readable format.
|
15
|
+
This plugin is inspired by and based on [Keep a CHANGELOG](http://keepachangelog.com/) project. [Keep a CHANGELOG](http://keepachangelog.com/) proposes a standardised format for keeping change log of your project repository in `CHANGELOG.md` file. This file contains a curated, chronologically ordered list of notable changes for each version of a project in human readable format.
|
16
16
|
|
17
|
-
Since [Keep a CHANGELOG](http://keepachangelog.com/) project proposes a well-defined structure with _sections_ (e.g.: `[Unreleased]`, `0.3.0]`) and _subsections_ (`Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`) it opens up an opportunity to automate reading from/writing to CHANGELOG.md with [`fastlane`](https://fastlane.tools).
|
17
|
+
Since [Keep a CHANGELOG](http://keepachangelog.com/) project proposes a well-defined structure with _sections_ (e.g.: `[Unreleased]`, `0.3.0]`) and _subsections_ (`Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`) it opens up an opportunity to automate reading from/writing to `CHANGELOG.md` with [`fastlane`](https://fastlane.tools).
|
18
18
|
|
19
19
|
## Getting started
|
20
20
|
1. `cd` to your project folder
|
21
21
|
2. `touch CHANGELOG.md`
|
22
|
-
3. open CHANGELOG.md in your favourite text editor
|
23
|
-
4. paste
|
22
|
+
3. open `CHANGELOG.md` in your favourite text editor
|
23
|
+
4. paste in proposed structure from [What’s a change log?](http://keepachangelog.com/)
|
24
24
|
|
25
25
|
## Actions
|
26
|
+
`fastlane-plugin-changelog` consists of 3 actions enabling you to manipulate `CHANGELOG.md` from [`fastlane`](https://fastlane.tools).
|
26
27
|
|
27
28
|
### read_changelog
|
28
29
|
|
29
30
|
Reads the content of a section from your project's `CHANGELOG.md` file. `CHANGELOG.md` must follow structure proposed by [Keep a CHANGELOG](http://keepachangelog.com/) project.
|
30
31
|
|
31
32
|
``` ruby
|
32
|
-
read_changelog # Reads the
|
33
|
+
read_changelog # Reads the Unreleased section from CHANGELOG.md in your project's folder
|
33
34
|
```
|
34
35
|
|
35
36
|
``` ruby
|
@@ -41,20 +42,38 @@ read_changelog(
|
|
41
42
|
```
|
42
43
|
|
43
44
|
Use the output of this action in conjunction with for example [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot#uploading-builds) to upload your change log to TestFlight or with [`github_release`](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md#github-releases) to create a new release on Github.
|
44
|
-
|
45
|
-
### write_changelog
|
46
|
-
*Coming soon*
|
47
45
|
|
46
|
+
### update_changelog
|
47
|
+
Updates section identifier of your project's `CHANGELOG.md` file.
|
48
|
+
``` ruby
|
49
|
+
update_changelog(
|
50
|
+
section_identifier: "[Build 123]", # Specify what section to update
|
51
|
+
updated_section_identifier: "Build 321" # Specify new section identifier
|
52
|
+
)
|
53
|
+
```
|
54
|
+
|
55
|
+
### stamp_changelog
|
56
|
+
Stamps the _Unreleased_ (see [How can I minimize the effort required?](http://keepachangelog.com/)) section with provided identifier in your project `CHANGELOG.md` file.
|
57
|
+
Additionally, you can provide git tag associated with this section. `stamp_changelog` will then create a link to diff between this and previous section's tag on Github. This will enable you to quickly get to [comparison between two tags](https://help.github.com/articles/comparing-commits-across-time/).
|
58
|
+
``` ruby
|
59
|
+
stamp_changelog(
|
60
|
+
section_identifier: "Build XYZ", # Specify identifier to stamp the Unreleased section with
|
61
|
+
git_tag: "bXYZ" # Specify reference to git tag associated with this section
|
62
|
+
)
|
63
|
+
```
|
48
64
|
|
49
65
|
## Example
|
50
|
-
As a developer you have to **remember to keep your CHANGELOG.md up-to-date** with whatever features, bug fixes etc. your repo contains and let [`fastlane`](https://fastlane.tools)
|
66
|
+
As a developer you have to **remember to keep your CHANGELOG.md up-to-date** with whatever features, bug fixes etc. your repo contains and let [`fastlane`](https://fastlane.tools) do the rest.
|
51
67
|
|
52
68
|
``` ruby
|
53
69
|
lane :beta do
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
#
|
70
|
+
build_number = get_build_number # Get build number
|
71
|
+
gym # Compile
|
72
|
+
|
73
|
+
changelog = read_changelog # Read changelog
|
74
|
+
pilot(changelog: changelog) # Send binary and changelog to TestFlight
|
75
|
+
|
76
|
+
stamp_changelog(section_identifier: "Build #{build_number}") # Stamp Unreleased section with newly released build number
|
58
77
|
end
|
59
78
|
```
|
60
79
|
|
@@ -5,13 +5,12 @@ module Fastlane
|
|
5
5
|
end
|
6
6
|
|
7
7
|
class ReadChangelogAction < Action
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless (File.exist?(changelog_path))
|
8
|
+
def self.run(params)
|
9
|
+
changelog_path = params[:changelog_path] unless params[:changelog_path].to_s.empty?
|
10
|
+
UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless File.exist?(changelog_path)
|
12
11
|
|
13
|
-
section_identifier = params[:section_identifier] unless
|
14
|
-
escaped_section_identifier = section_identifier[/\[(.*?)\]/,1]
|
12
|
+
section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
|
13
|
+
escaped_section_identifier = section_identifier[/\[(.*?)\]/, 1]
|
15
14
|
|
16
15
|
excluded_markdown_elements = params[:excluded_markdown_elements]
|
17
16
|
|
@@ -21,27 +20,25 @@ module Fastlane
|
|
21
20
|
found_section = false
|
22
21
|
File.open(changelog_path, "r") do |file|
|
23
22
|
file.each_line do |line|
|
24
|
-
|
25
23
|
if found_section
|
26
24
|
break if line =~ /\#{2}\s?\[(.*?)\]/
|
27
25
|
if !excluded_markdown_elements.nil? && !excluded_markdown_elements.empty?
|
28
26
|
markdownless_line = remove_markdown(line, excluded_markdown_elements)
|
29
27
|
section_content.concat(markdownless_line)
|
30
|
-
else
|
28
|
+
else
|
31
29
|
section_content.concat(line)
|
32
|
-
end
|
33
|
-
end
|
30
|
+
end
|
31
|
+
end
|
34
32
|
|
35
33
|
if line =~ /\#{2}\s?\[#{escaped_section_identifier}\]/
|
36
34
|
found_section = true
|
37
35
|
end
|
38
|
-
|
39
36
|
end
|
40
37
|
end
|
41
38
|
|
42
|
-
UI.error("Could not find #{section_identifier} section in your CHANGELOG.md")
|
39
|
+
UI.error("Could not find #{section_identifier} section in your CHANGELOG.md") if section_content.empty?
|
43
40
|
|
44
|
-
UI.success("Finished reading #{section_identifier} section from '#{changelog_path}'") unless
|
41
|
+
UI.success("Finished reading #{section_identifier} section from '#{changelog_path}'") unless section_content.empty?
|
45
42
|
|
46
43
|
Actions.lane_context[SharedValues::READ_CHANGELOG_SECTION_CONTENT] = section_content
|
47
44
|
end
|
@@ -52,7 +49,7 @@ module Fastlane
|
|
52
49
|
if line =~ /^#{element}/
|
53
50
|
markdownless_line = markdownless_line.gsub(element.to_s, "")
|
54
51
|
end
|
55
|
-
end
|
52
|
+
end
|
56
53
|
|
57
54
|
markdownless_line
|
58
55
|
end
|
@@ -66,9 +63,7 @@ module Fastlane
|
|
66
63
|
end
|
67
64
|
|
68
65
|
def self.details
|
69
|
-
"
|
70
|
-
which contains a curated, chronologically ordered list of notable changes for each version of a project. Use this action to read content of a section
|
71
|
-
from your project's CHANGELOG.md."
|
66
|
+
"Use this action to read content of an arbitrary section from your project CHANGELOG.md"
|
72
67
|
end
|
73
68
|
|
74
69
|
def self.available_options
|
@@ -77,7 +72,7 @@ module Fastlane
|
|
77
72
|
env_name: "FL_READ_CHANGELOG_PATH_TO_CHANGELOG",
|
78
73
|
description: "The path to your project CHANGELOG.md",
|
79
74
|
is_string: true,
|
80
|
-
default_value: "./CHANGELOG.md",
|
75
|
+
default_value: "./CHANGELOG.md",
|
81
76
|
optional: true),
|
82
77
|
FastlaneCore::ConfigItem.new(key: :section_identifier,
|
83
78
|
env_name: "FL_READ_CHANGELOG_SECTION_IDENTIFIER",
|
@@ -86,8 +81,8 @@ module Fastlane
|
|
86
81
|
default_value: "[Unreleased]",
|
87
82
|
optional: true,
|
88
83
|
verify_block: proc do |value|
|
89
|
-
|
90
|
-
|
84
|
+
UI.user_error!("Sections (##) in CHANGELOG format must be encapsulated in []") unless value.start_with?("[") && value.end_with?("]")
|
85
|
+
UI.user_error!("Sections (##) in CHANGELOG format cannot be empty") if value[/\[(.*?)\]/, 1].empty?
|
91
86
|
end),
|
92
87
|
FastlaneCore::ConfigItem.new(key: :excluded_markdown_elements,
|
93
88
|
env_name: "FL_READ_CHANGELOG_EXCLUDED_MARKDOWN_ELEMENTS",
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class StampChangelogAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
changelog_path = params[:changelog_path] unless params[:changelog_path].to_s.empty?
|
6
|
+
UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless File.exist?(changelog_path)
|
7
|
+
|
8
|
+
# 1. Update [Unreleased] section with provided identifier
|
9
|
+
section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
|
10
|
+
Actions::UpdateChangelogAction.run(changelog_path: changelog_path,
|
11
|
+
section_identifier: "[Unreleased]",
|
12
|
+
updated_section_identifier: section_identifier)
|
13
|
+
|
14
|
+
file_content = ""
|
15
|
+
|
16
|
+
# 2. Create new [Unreleased] section (placeholder)
|
17
|
+
inserted_unreleased = false
|
18
|
+
File.open(changelog_path, "r") do |file|
|
19
|
+
file.each_line do |line|
|
20
|
+
# Find the first section identifier
|
21
|
+
if !inserted_unreleased && line =~ /\#{2}\s?\[(.*?)\]/
|
22
|
+
unreleased_section = "## [Unreleased]"
|
23
|
+
line = "#{unreleased_section}\n\n#{line}"
|
24
|
+
inserted_unreleased = true
|
25
|
+
|
26
|
+
UI.message("Created [Unreleased] placeholder section")
|
27
|
+
|
28
|
+
# Output updated line
|
29
|
+
file_content.concat(line)
|
30
|
+
next
|
31
|
+
end
|
32
|
+
|
33
|
+
# Output read line
|
34
|
+
file_content.concat(line)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# 3. Create link to Github tags diff
|
39
|
+
unless params[:git_tag].empty?
|
40
|
+
last_line = file_content.lines.last
|
41
|
+
previous_section_name = last_line[/\[(.*?)\]/, 1]
|
42
|
+
previous_previous_tag = %r{(?<=compare\/)(.*)?(?=\.{3})}.match(last_line)
|
43
|
+
previous_tag = /(?<=\.{3})(.*)?/.match(last_line)
|
44
|
+
|
45
|
+
last_line.sub!(previous_tag.to_s, params[:git_tag]) # Replace previous tag with new
|
46
|
+
last_line.sub!(previous_previous_tag.to_s, previous_tag.to_s) # Replace previous-previous tag with previous
|
47
|
+
last_line.sub!(previous_section_name.to_s, section_identifier) # Replace section identifier
|
48
|
+
|
49
|
+
UI.message("Created link to Github tags diff")
|
50
|
+
|
51
|
+
file_content.concat(last_line)
|
52
|
+
end
|
53
|
+
|
54
|
+
# 4. Write updated content to file
|
55
|
+
changelog = File.open(changelog_path, "w")
|
56
|
+
changelog.puts(file_content)
|
57
|
+
changelog.close
|
58
|
+
UI.success("Successfuly stamped #{section_identifier} in #{changelog_path}")
|
59
|
+
end
|
60
|
+
|
61
|
+
#####################################################
|
62
|
+
# @!group Documentation
|
63
|
+
#####################################################
|
64
|
+
|
65
|
+
def self.description
|
66
|
+
"Stamps the [Unreleased] section with provided identifier in your project CHANGELOG.md file"
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.details
|
70
|
+
"Use this action to stamp the [Unreleased] section with provided identifier in your project CHANGELOG.md. Additionally, you can provide git tag
|
71
|
+
associated with this section. `stamp_changelog` will then create a new link to diff between this and previous section's tag on Github"
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.available_options
|
75
|
+
[
|
76
|
+
FastlaneCore::ConfigItem.new(key: :changelog_path,
|
77
|
+
env_name: "FL_STAMP_CHANGELOG_PATH_TO_CHANGELOG",
|
78
|
+
description: "The path to your project CHANGELOG.md",
|
79
|
+
is_string: true,
|
80
|
+
default_value: "./CHANGELOG.md",
|
81
|
+
optional: true),
|
82
|
+
FastlaneCore::ConfigItem.new(key: :section_identifier,
|
83
|
+
env_name: "FL_STAMP_CHANGELOG_SECTION_IDENTIFIER",
|
84
|
+
description: "The unique section identifier to stamp the [Unreleased] section with",
|
85
|
+
is_string: true),
|
86
|
+
FastlaneCore::ConfigItem.new(key: :git_tag,
|
87
|
+
env_name: "FL_STAMP_CHANGELOG_GIT_TAG",
|
88
|
+
description: "The git tag associated with this section",
|
89
|
+
is_string: true,
|
90
|
+
optional: true)
|
91
|
+
]
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.authors
|
95
|
+
["pajapro"]
|
96
|
+
end
|
97
|
+
|
98
|
+
def self.is_supported?(platform)
|
99
|
+
true
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class UpdateChangelogAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
changelog_path = params[:changelog_path] unless params[:changelog_path].to_s.empty?
|
6
|
+
UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless File.exist?(changelog_path)
|
7
|
+
|
8
|
+
section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
|
9
|
+
escaped_section_identifier = section_identifier[/\[(.*?)\]/, 1]
|
10
|
+
|
11
|
+
new_section_identifier = params[:updated_section_identifier] unless params[:updated_section_identifier].to_s.empty?
|
12
|
+
# new_section_content = params[:updated_section_content] unless (params[:updated_section_content].to_s.empty?)
|
13
|
+
|
14
|
+
UI.message "Starting to update #{section_identifier} section of '#{changelog_path}'"
|
15
|
+
|
16
|
+
# Read & update file content
|
17
|
+
file_content = ""
|
18
|
+
File.open(changelog_path, "r") do |file|
|
19
|
+
file.each_line do |line|
|
20
|
+
# Find line matching section identifier
|
21
|
+
if line =~ /\#{2}\s?\[#{escaped_section_identifier}\]/
|
22
|
+
found_identifying_section = true
|
23
|
+
end
|
24
|
+
|
25
|
+
# Update section identifier (if found)
|
26
|
+
if !new_section_identifier.empty? && found_identifying_section
|
27
|
+
section_name = section_identifier[/\[(.*?)\]/, 1]
|
28
|
+
|
29
|
+
line_old = line.dup
|
30
|
+
line.sub!(section_name, new_section_identifier)
|
31
|
+
found_identifying_section = false
|
32
|
+
|
33
|
+
UI.message "Old section identifier: #{line_old.delete!("\n")}"
|
34
|
+
UI.message "New section identifier: #{line.delete("\n")}"
|
35
|
+
|
36
|
+
# Output updated line
|
37
|
+
file_content.concat(line)
|
38
|
+
next
|
39
|
+
end
|
40
|
+
|
41
|
+
# TODO: implement updating of section content
|
42
|
+
|
43
|
+
# Output read line
|
44
|
+
file_content.concat(line)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Write updated content to file
|
49
|
+
changelog = File.open(changelog_path, "w")
|
50
|
+
changelog.puts(file_content)
|
51
|
+
changelog.close
|
52
|
+
UI.success("Successfuly updated #{changelog_path}")
|
53
|
+
end
|
54
|
+
|
55
|
+
#####################################################
|
56
|
+
# @!group Documentation
|
57
|
+
#####################################################
|
58
|
+
|
59
|
+
def self.description
|
60
|
+
"Updates content of a section of your project CHANGELOG.md file"
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.details
|
64
|
+
"Use this action to update content of an arbitrary section of your project CHANGELOG.md"
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.available_options
|
68
|
+
[
|
69
|
+
FastlaneCore::ConfigItem.new(key: :changelog_path,
|
70
|
+
env_name: "FL_UPDATE_CHANGELOG_PATH_TO_CHANGELOG",
|
71
|
+
description: "The path to your project CHANGELOG.md",
|
72
|
+
is_string: true,
|
73
|
+
default_value: "./CHANGELOG.md",
|
74
|
+
optional: true),
|
75
|
+
FastlaneCore::ConfigItem.new(key: :section_identifier,
|
76
|
+
env_name: "FL_UPDATE_CHANGELOG_SECTION_IDENTIFIER",
|
77
|
+
description: "The unique section identifier to update content of",
|
78
|
+
is_string: true,
|
79
|
+
default_value: "[Unreleased]",
|
80
|
+
optional: true,
|
81
|
+
verify_block: proc do |value|
|
82
|
+
UI.user_error!("Sections (##) in CHANGELOG format must be encapsulated in []") unless value.start_with?("[") && value.end_with?("]")
|
83
|
+
UI.user_error!("Sections (##) in CHANGELOG format cannot be empty") if value[/\[(.*?)\]/, 1].empty?
|
84
|
+
end),
|
85
|
+
FastlaneCore::ConfigItem.new(key: :updated_section_identifier,
|
86
|
+
env_name: "FL_UPDATE_CHANGELOG_UPDATED_SECTION_IDENTIFIER",
|
87
|
+
description: "The updated unique section identifier",
|
88
|
+
is_string: true,
|
89
|
+
optional: true)
|
90
|
+
# FastlaneCore::ConfigItem.new(key: :updated_section_content,
|
91
|
+
# env_name: "FL_UPDATE_CHANGELOG_UPDATED_SECTION_CONTENT",
|
92
|
+
# description: "The updated section content",
|
93
|
+
# is_string: true,
|
94
|
+
# optional: true)
|
95
|
+
]
|
96
|
+
end
|
97
|
+
|
98
|
+
def self.authors
|
99
|
+
["pajapro"]
|
100
|
+
end
|
101
|
+
|
102
|
+
def self.is_supported?(platform)
|
103
|
+
true
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-changelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Prochazka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -100,8 +100,9 @@ executables: []
|
|
100
100
|
extensions: []
|
101
101
|
extra_rdoc_files: []
|
102
102
|
files:
|
103
|
-
- lib/fastlane/plugin/changelog/actions/changelog_action.rb
|
104
103
|
- lib/fastlane/plugin/changelog/actions/read_changelog.rb
|
104
|
+
- lib/fastlane/plugin/changelog/actions/stamp_changelog.rb
|
105
|
+
- lib/fastlane/plugin/changelog/actions/update_changelog.rb
|
105
106
|
- lib/fastlane/plugin/changelog/helper/changelog_helper.rb
|
106
107
|
- lib/fastlane/plugin/changelog/version.rb
|
107
108
|
- lib/fastlane/plugin/changelog.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Fastlane
|
2
|
-
module Actions
|
3
|
-
class ChangelogAction < Action
|
4
|
-
def self.run(params)
|
5
|
-
UI.message("The changelog plugin is working!")
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.description
|
9
|
-
"Automate changes to your project CHANGELOG.md"
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.authors
|
13
|
-
["Pavel Prochazka"]
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.available_options
|
17
|
-
[
|
18
|
-
# FastlaneCore::ConfigItem.new(key: :your_option,
|
19
|
-
# env_name: "CHANGELOG_YOUR_OPTION",
|
20
|
-
# description: "A description of your option",
|
21
|
-
# optional: false,
|
22
|
-
# type: String)
|
23
|
-
]
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.is_supported?(platform)
|
27
|
-
# Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
|
28
|
-
# See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
|
29
|
-
#
|
30
|
-
# [:ios, :mac, :android].include?(platform)
|
31
|
-
true
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|