gitlab_awesome_release 0.1.0.beta5 → 0.1.0.beta6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79dcca8a59190f69caa1c4fdcf4ccfd6a3128b24
4
- data.tar.gz: 065353fae2858639d9fa75ced13213f5bdc8f7e5
3
+ metadata.gz: 2ed66cdb87806104213ff64c55a4ef882b40f4af
4
+ data.tar.gz: 4a2670019037a5bfdbd2f7a934c0230fa91196e6
5
5
  SHA512:
6
- metadata.gz: 5d5c011aa2d599c46f02e6b667ff766559c96001ead5ccf7ea7bdf1253d25e887afe396fc7d4159718936f6cfa6b712ac99b3e680ffe7ecd7f5b3ffc4d3c8562
7
- data.tar.gz: 2085fceb89ed4b4f6e1231cf8479193eb84497dcc3f55d30d73c5d4825e9928e7086b370d1cd89ff7bf7f871acb43d0bdb1f468728c042dc11bb5890b986ece3
6
+ metadata.gz: 210c2476ac7ab7dfb574eb2eb7258a2dc3266d82880739299f7dbaddb6ff1d55665c22518445f01a2ee964898f1e03bd907b219fa06b0f072b194d814f090fc5
7
+ data.tar.gz: bfef44f89224418257752c0888dc1cac939bc1fe7df5deb2751d673f2a5c3f84c000f03a1915103ff1eadfaa3a05998d94e89527918eee89d8064c2c8dadbf72
data/CHANGELOG.md CHANGED
@@ -1,7 +1,14 @@
1
1
  ## Unreleased
2
- [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta4...HEAD)
2
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta5...HEAD)
3
3
 
4
4
 
5
+ ## v0.1.0.beta5
6
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta4...v0.1.0.beta5)
7
+
8
+ * Refactoring [!9](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/9) *@sue445*
9
+ * Impl marking [!10](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/10) *@sue445*
10
+ * from -> from_tag, to -> to_tag [!11](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/11) *@sue445*
11
+
5
12
  ## v0.1.0.beta4
6
13
  [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta3...v0.1.0.beta4)
7
14
 
data/README.md CHANGED
@@ -1,16 +1,17 @@
1
1
  # GitlabAwesomeRelease
2
-
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/gitlab_awesome_release`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
2
+ Generate changelog from tags and MergeRequests on [GitLab](https://about.gitlab.com/)
6
3
 
7
4
  [![Gem Version](https://badge.fury.io/rb/gitlab_awesome_release.svg)](https://badge.fury.io/rb/gitlab_awesome_release)
8
5
  [![build status](https://gitlab.com/ci/projects/9759/status.png?ref=master)](https://gitlab.com/ci/projects/9759?ref=master)
9
6
  [![Dependency Status](https://gemnasium.com/c2e0c69e2a02b4bb66481fb32f368e0e.svg)](https://gemnasium.com/a2f4eb18c1920eb39d8e9f1f807dd830)
10
7
 
8
+ ## Example
9
+ see [CHANGELOG.md](CHANGELOG.md)
10
+
11
11
  ## Requirements
12
12
 
13
- * Ruby 2.1+
13
+ * Ruby v2.1+
14
+ * GitLab v7.11.0+
14
15
 
15
16
  ## Installation
16
17
 
@@ -30,7 +31,87 @@ Or install it yourself as:
30
31
 
31
32
  ## Usage
32
33
 
33
- TODO: Write usage instructions here
34
+ ### `create_note`
35
+ generate changelog
36
+
37
+ ```sh
38
+ $ gitlab_awesome_release create_note --filename=CHANGELOG.md
39
+ ```
40
+
41
+ ### options
42
+ All options can be specified in both the command arguments and environment variables
43
+
44
+ * `--gitlab-api-endpoint` , `GITLAB_API_ENDPOINT` **(either one is required)**
45
+ * GitLab API endpoint (e.g. `http://example.com/api/v3`)
46
+ * `--gitlab-api-private-token` , `GITLAB_API_PRIVATE_TOKEN` **(either one is required)**
47
+ * Your private token. see [/profile/account](img/private_token.png)
48
+ * `--gitlab-project-name` , `GITLAB_PROJECT_NAME` **(either one is required)**
49
+ * Target project (e.g. `group/repo_name`)
50
+ * `--from-tag` , `FROM_TAG`
51
+ * The first tag to create a changelog
52
+ * default: oldest tag
53
+ * `--to-tag` , `TO_TAG`
54
+ * The last tag to create a changelog
55
+ * default: latest tag
56
+ * `--filename` , `FILENAME`
57
+ * Filepath to changelog file (e.g. `CHANGELOG.md`)
58
+ * if empty, output to console
59
+ * `--allow-tag-format` , `ALLOW_TAG_FORMAT`
60
+ * Tag format for release note heading (regular expresion pattern)
61
+ * default: `^v?[\d.]+`
62
+ * `--log-level` , `LOG_LEVEL`
63
+ * Log level `(debug|info|warn|error|fatal|unknown)`
64
+ * default: `info`
65
+
66
+ ### marking
67
+ Add version label to MergeRequests
68
+
69
+ example) https://gitlab.com/sue445/gitlab_awesome_release/merge_requests?state=merged
70
+
71
+ ```sh
72
+ $ gitlab_awesome_release marking --from-tag=v0.1.0 --to-tag=v0.2.0
73
+ ```
74
+
75
+ ### options
76
+ All options can be specified in both the command arguments and environment variables
77
+
78
+ * `--gitlab-api-endpoint` , `GITLAB_API_ENDPOINT` **(either one is required)**
79
+ * GitLab API endpoint (e.g. `http://example.com/api/v3`)
80
+ * `--gitlab-api-private-token` , `GITLAB_API_PRIVATE_TOKEN` **(either one is required)**
81
+ * Your private token. see [/profile/account](img/private_token.png)
82
+ * `--gitlab-project-name` , `GITLAB_PROJECT_NAME` **(either one is required)**
83
+ * Target project (e.g. `group/repo_name`)
84
+ * `--from-tag` , `FROM_TAG` **(either one is required)**
85
+ * The first tag to marking
86
+ * `--to-tag` , `TO_TAG` **(either one is required)**
87
+ * The last tag to marking
88
+ * `--label` , `LABEL`
89
+ * Label to be added to the MergeRequest
90
+ * default: `--to-tag` or `TO_TAG`
91
+ * `--log-level` , `LOG_LEVEL`
92
+ * Log level `(debug|info|warn|error|fatal|unknown)`
93
+ * default: `info`
94
+
95
+ ## ProTip
96
+ Environment variables read from `~/.env.gitlab` and current `.env.gitlab`
97
+
98
+ `~/.env.gitlab`
99
+
100
+ ```
101
+ GITLAB_API_ENDPOINT=http://example.com/api/v3
102
+ GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX
103
+ ALLOW_TAG_FORMAT=^v?[\d.]+
104
+ ```
105
+
106
+ current `.env.gitlab`
107
+
108
+ ```
109
+ GITLAB_PROJECT_NAME=group/name
110
+ ALLOW_TAG_FORMAT=^v?[\d.]+
111
+ ```
112
+
113
+ If defined both `~/.env.gitlab` and current `.env.gitlab`, current `.env.gitlab` is priority
114
+
34
115
 
35
116
  ## Development
36
117
 
Binary file
@@ -6,7 +6,11 @@ module GitlabAwesomeRelease
6
6
  class CLI < Thor
7
7
  DEFAULT_VERSION_FORMAT = "^v?[\\d.]+"
8
8
  GITLAB_ENV_FILES = %w(.env.gitlab ~/.env.gitlab)
9
- LOG_LEVEL_DESCRIPTION = "Log level (debug|info|warn|error|fatal|unknown)"
9
+
10
+ GITLAB_API_DESCRIPTION = "GitLab API endpoint (e.g. http://example.com/api/v3)"
11
+ GITLAB_API_PRIVATE_TOKEN_DESCRIPTION = "Your private token"
12
+ GITLAB_API_PROJECT_NAME = "Target project (e.g. group/repo_name)"
13
+ LOG_LEVEL_DESCRIPTION = "Log level (debug|info|warn|error|fatal|unknown)"
10
14
 
11
15
  desc "version", "Show gitlab_awesome_release version"
12
16
  def version
@@ -14,14 +18,14 @@ module GitlabAwesomeRelease
14
18
  end
15
19
 
16
20
  desc "create_note", "generate changelog"
17
- option :filename
18
- option :from_tag
19
- option :to_tag
20
- option :gitlab_api_endpoint
21
- option :gitlab_api_private_token
22
- option :gitlab_project_name
23
- option :allow_tag_format, desc: "Regular expression of tag format", default: DEFAULT_VERSION_FORMAT
24
- option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
21
+ option :gitlab_api_endpoint, desc: GITLAB_API_DESCRIPTION
22
+ option :gitlab_api_private_token, desc: GITLAB_API_PRIVATE_TOKEN_DESCRIPTION
23
+ option :gitlab_project_name, desc: GITLAB_API_PROJECT_NAME
24
+ option :from_tag, desc: "The first tag to create a changelog (default: oldest tag)"
25
+ option :to_tag, desc: "The last tag to create a changelog (default: latest tag)"
26
+ option :filename, desc: "Filepath to changelog file (e.g. CHANGELOG.md). if empty, output to console"
27
+ option :allow_tag_format, desc: "Tag format for release note heading (regular expresion pattern)", default: DEFAULT_VERSION_FORMAT
28
+ option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
25
29
  def create_note
26
30
  Dotenv.load(*GITLAB_ENV_FILES)
27
31
 
@@ -38,13 +42,13 @@ module GitlabAwesomeRelease
38
42
  end
39
43
 
40
44
  desc "marking", "Add version label to MergeRequests"
41
- option :from_tag
42
- option :to_tag
43
- option :label
44
- option :gitlab_api_endpoint
45
- option :gitlab_api_private_token
46
- option :gitlab_project_name
47
- option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
45
+ option :gitlab_api_endpoint, desc: GITLAB_API_DESCRIPTION
46
+ option :gitlab_api_private_token, desc: GITLAB_API_PRIVATE_TOKEN_DESCRIPTION
47
+ option :gitlab_project_name, desc: GITLAB_API_PROJECT_NAME
48
+ option :from_tag, desc: "The first tag to marking"
49
+ option :to_tag, desc: "The last tag to marking"
50
+ option :label, desc: "Label to be added to the MergeRequest"
51
+ option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
48
52
  def marking
49
53
  Dotenv.load(*GITLAB_ENV_FILES)
50
54
 
@@ -101,8 +101,11 @@ module GitlabAwesomeRelease
101
101
  "* #{mr.title} [!#{iid}](#{mr_url}) *@#{mr.author.username}*"
102
102
  end
103
103
 
104
+ # find MergeRequest with iid
104
105
  def merge_request(iid)
105
- Gitlab.merge_requests(escaped_project_name, iid: iid).first
106
+ mr = Gitlab.merge_requests(escaped_project_name, iid: iid).first
107
+ assert_merge_request_iid(mr, iid) if mr
108
+ mr
106
109
  end
107
110
 
108
111
  def add_merge_request_label(mr, label)
@@ -136,5 +139,10 @@ module GitlabAwesomeRelease
136
139
  str << merge_request_summary(iid) + "\n"
137
140
  end
138
141
  end
142
+
143
+ def assert_merge_request_iid(mr, iid)
144
+ # NOTE: MR is found, but server is old GitLab?
145
+ raise "MergeRequest iid does not match (expected #{iid}, but #{mr.iid})" unless iid == mr.iid
146
+ end
139
147
  end
140
148
  end
@@ -1,3 +1,3 @@
1
1
  module GitlabAwesomeRelease
2
- VERSION = "0.1.0.beta5"
2
+ VERSION = "0.1.0.beta6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_awesome_release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta5
4
+ version: 0.1.0.beta6
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-11 00:00:00.000000000 Z
11
+ date: 2015-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -200,6 +200,7 @@ files:
200
200
  - bin/setup
201
201
  - exe/gitlab_awesome_release
202
202
  - gitlab_awesome_release.gemspec
203
+ - img/private_token.png
203
204
  - lib/gitlab_awesome_release.rb
204
205
  - lib/gitlab_awesome_release/array_within_ext.rb
205
206
  - lib/gitlab_awesome_release/cli.rb