ngrok-wrapper 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 270d9efa417c5821721519760816d3febbf085d183680ad0268a244eaec4a753
4
+ data.tar.gz: dd477aa0effed04807720dd6e22a3f607b79f88b343318c7d1674c18e573b056
5
+ SHA512:
6
+ metadata.gz: e8d752ee9ee727a5e54705e1c7d361b6babd13415a68173325df4cf4a2c7158fa37cc60920b8023e9b57b45c1ce1450325bcc17949885045ff1f1d3b9bebcb7a
7
+ data.tar.gz: 7f3e3c5404e138e6f4a01ed06c77d13f746bc977057b91494a26f98f80fa59fa2c55b992cf6bf015142e6bc38ff4fc1fcd73e5537e77018801a8b945e9b33623
data/.codeclimate.yml ADDED
@@ -0,0 +1,39 @@
1
+ version: "2"
2
+ exclude_patterns:
3
+ - "sig/**/*"
4
+ checks:
5
+ argument-count:
6
+ config:
7
+ threshold: 4
8
+ complex-logic:
9
+ config:
10
+ threshold: 4
11
+ file-lines:
12
+ config:
13
+ threshold: 300
14
+ method-complexity:
15
+ config:
16
+ threshold: 9
17
+ method-count:
18
+ config:
19
+ threshold: 20
20
+ method-lines:
21
+ config:
22
+ threshold: 25
23
+ nested-control-flow:
24
+ config:
25
+ threshold: 4
26
+ return-statements:
27
+ config:
28
+ threshold: 4
29
+ plugins:
30
+ rubocop:
31
+ enabled: true
32
+ channel: 'beta'
33
+ fixme:
34
+ enabled: true
35
+ config:
36
+ strings:
37
+ - FIXME
38
+ - BUG
39
+ - CUSTOM
@@ -0,0 +1,45 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ '**' ]
8
+
9
+ jobs:
10
+ tests:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ include:
16
+ - ruby: 2.6
17
+
18
+ - ruby: 2.7
19
+
20
+ - ruby: 3.0
21
+
22
+ - ruby: 3.1
23
+
24
+ name: ruby ${{ matrix.ruby }}
25
+
26
+ steps:
27
+ - name: Checkout
28
+ uses: actions/checkout@v2
29
+
30
+ - name: Set up Ruby
31
+ uses: ruby/setup-ruby@v1
32
+ with:
33
+ ruby-version: ${{ matrix.ruby }}
34
+ bundler-cache: false
35
+
36
+ - name: Install dependencies
37
+ run: bundle install
38
+
39
+ - name: Run tests
40
+ run: bundle exec rspec
41
+
42
+ - name: Code Climate
43
+ uses: paambaati/codeclimate-action@v3.0.0
44
+ env:
45
+ CC_TEST_REPORTER_ID: d1116c05a48e27785cb11369bde3a5e7f9d9e5a114d294bcbefa19cd193b029c
@@ -0,0 +1,70 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ main ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ main ]
20
+ schedule:
21
+ - cron: '22 0 * * 3'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Learn more about CodeQL language support at https://git.io/codeql-language-support
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v2
42
+
43
+ # Initializes the CodeQL tools for scanning.
44
+ - name: Initialize CodeQL
45
+ uses: github/codeql-action/init@v1
46
+ with:
47
+ languages: ${{ matrix.language }}
48
+ # If you wish to specify custom queries, you can do so here or in a config file.
49
+ # By default, queries listed here will override any specified in a config file.
50
+ # Prefix the list here with "+" to use these queries and those in the config file.
51
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
52
+
53
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
+ # If this step fails, then you should remove it and run the build manually (see below)
55
+ - name: Autobuild
56
+ uses: github/codeql-action/autobuild@v1
57
+
58
+ # ℹ️ Command-line programs to run using the OS shell.
59
+ # 📚 https://git.io/JvXDl
60
+
61
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
62
+ # and modify them (or add more) to build your code if your project
63
+ # uses a compiled language
64
+
65
+ #- run: |
66
+ # make bootstrap
67
+ # make release
68
+
69
+ - name: Perform CodeQL Analysis
70
+ uses: github/codeql-action/analyze@v1
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /Gemfile.lock
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
13
+
14
+ test.log
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,72 @@
1
+ # This is the default configuration file. Enabling and disabling is configured
2
+ # in separate files. This file adds all other parameters apart from Enabled.
3
+
4
+ require:
5
+ - rubocop-performance
6
+ - rubocop-rspec
7
+
8
+ inherit_from:
9
+ - enabled.yml
10
+ - disabled.yml
11
+
12
+ AllCops:
13
+ # Default formatter will be used if no -f/--format option is given.
14
+ DisplayCopNames: true
15
+ # Style guide URLs are not displayed in offense messages by default. Change
16
+ # behavior by overriding DisplayStyleGuide, or by giving the
17
+ # -S/--display-style-guide option.
18
+ DisplayStyleGuide: true
19
+ # Extra details are not displayed in offense messages by default. Change
20
+ # behavior by overriding ExtraDetails, or by giving the
21
+ # -E/--extra-details option.
22
+ ExtraDetails: true
23
+ NewCops: enable
24
+ # Additional cops that do not reference a style guide rule may be enabled by
25
+ # default. Change behavior by overriding StyleGuideCopsOnly, or by giving
26
+ # the --only-guide-cops option.
27
+ TargetRubyVersion: 2.6
28
+
29
+ Layout/LineLength:
30
+ Max: 120
31
+
32
+ Metrics/AbcSize:
33
+ # The ABC size is a calculated magnitude, so this number can be a Fixnum or
34
+ # a Float.
35
+ Max: 30
36
+
37
+ Metrics/ClassLength:
38
+ CountComments: false # count full line comments?
39
+ Max: 200
40
+
41
+ Metrics/ModuleLength:
42
+ CountComments: false # count full line comments?
43
+ Max: 200
44
+
45
+ # Avoid complex methods.
46
+ Metrics/CyclomaticComplexity:
47
+ Max: 11
48
+
49
+ Metrics/MethodLength:
50
+ CountComments: false # count full line comments?
51
+ Max: 25
52
+
53
+ Metrics/PerceivedComplexity:
54
+ Max: 11
55
+
56
+ Metrics/BlockLength:
57
+ CountComments: false
58
+ Max: 100
59
+ Exclude:
60
+ - 'Rakefile'
61
+ - '**/*.rake'
62
+ - 'spec/**/*.rb'
63
+ - 'db/**/*.rb'
64
+
65
+ RSpec/MultipleExpectations:
66
+ Max: 13
67
+
68
+ RSpec/NestedGroups:
69
+ Max: 7
70
+
71
+ Style/StringLiterals:
72
+ ConsistentQuotesInMultiline: true
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.6.9
data/.simplecov ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ SimpleCov.start do
4
+ require 'simplecov_json_formatter'
5
+
6
+ formatter SimpleCov::Formatter::JSONFormatter
7
+ enable_coverage :branch
8
+ primary_coverage :branch
9
+ add_filter '/spec/'
10
+ end
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.6.9
data/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ ## [v0.1.0](https://github.com/texpert/ngrok-wrapper/tree/v0.1.0) (2022-01-09)
4
+
5
+ [Full Changelog](https://github.com/texpert/ngrok-wrapper/compare/3e032fa019c91ee7338a7ad3a3335e6c5597b394...v0.1.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Added `github_changelog_generator` to the gemspec [\#14](https://github.com/texpert/ngrok-wrapper/pull/14) ([texpert](https://github.com/texpert))
10
+ - Described gem's usage in Rails, move the description from `examples` folder into README.md [\#13](https://github.com/texpert/ngrok-wrapper/pull/13) ([texpert](https://github.com/texpert))
11
+ - Fix Codeclimate rubocop channel to beta to enable latest 1-24-1 [\#11](https://github.com/texpert/ngrok-wrapper/pull/11) ([texpert](https://github.com/texpert))
12
+ - Add codeclimate fixme and rubocop plugins [\#10](https://github.com/texpert/ngrok-wrapper/pull/10) ([texpert](https://github.com/texpert))
13
+ - Decompose `fetch_urls` for maintainability [\#9](https://github.com/texpert/ngrok-wrapper/pull/9) ([texpert](https://github.com/texpert))
14
+ - Refactor `ngrok_running?` to re-use `ngrok_process_status_lines` instead of a shell process [\#8](https://github.com/texpert/ngrok-wrapper/pull/8) ([texpert](https://github.com/texpert))
15
+ - Raise if Ngrok with the pid from persistence file is running on other port [\#7](https://github.com/texpert/ngrok-wrapper/pull/7) ([texpert](https://github.com/texpert))
16
+ - Refactor DRYing `ngrok_exec_params` method [\#6](https://github.com/texpert/ngrok-wrapper/pull/6) ([texpert](https://github.com/texpert))
17
+ - Remove redundant methods and introduce `:params` read accessor [\#5](https://github.com/texpert/ngrok-wrapper/pull/5) ([texpert](https://github.com/texpert))
18
+ - Don't forget to close the log file and don't use returns in a block [\#4](https://github.com/texpert/ngrok-wrapper/pull/4) ([texpert](https://github.com/texpert))
19
+ - Fix CI setup-ruby action to use Ruby version from strategy matrix [\#3](https://github.com/texpert/ngrok-wrapper/pull/3) ([texpert](https://github.com/texpert))
20
+ - Fix CodeClimate issue Class Wrapper has 22 methods \(exceeds 20 allowed\) [\#2](https://github.com/texpert/ngrok-wrapper/pull/2) ([texpert](https://github.com/texpert))
21
+ - Fix the specs to avoid trying to run real Ngrok when testing using fixture log files [\#1](https://github.com/texpert/ngrok-wrapper/pull/1) ([texpert](https://github.com/texpert))
22
+
23
+
24
+
25
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in ngrok-wrapper.gemspec
6
+ gemspec
7
+
8
+ gem 'simplecov', require: false, group: :test
data/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+ Portions Copyright (c) 2022 Aureliu Brinzeanu
2
+ Portions Copyright (c) 2014-2019 Anton Bogdanovich
3
+
4
+ MIT License
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,258 @@
1
+ # Ngrok::Wrapper
2
+
3
+ Ngrok-wrapper gem is a ruby wrapper for ngrok v2.
4
+
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/d978e217a8219326e325/maintainability)](https://codeclimate.com/github/texpert/ngrok-wrapper/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/d978e217a8219326e325/test_coverage)](https://codeclimate.com/github/texpert/ngrok-wrapper/test_coverage)
7
+
8
+ ## History
9
+
10
+ Ngrok-wrapper is renamed from my fork of the initial awesome [Ngrok-tunnel](https://github.com/bogdanovich/ngrok-tunnel) gem by [Anton Bogdanovich](https://github.com/bogdanovich)
11
+
12
+ I was dealing with debugging work on some webhooks at my current project. Using Ngrok on a free plan, I quickly got tired of Ngrok generating a new endpoint URL every time on restarting the process.
13
+
14
+ There was a pull request [Add support for leaving an ngrok process open and reusing an existing ngrok process
15
+ instead of starting a new one on every process](https://github.com/bogdanovich/ngrok-tunnel/pull/11), but it wasn't
16
+ quite working.
17
+
18
+ So, I have created [a working one](https://github.com/bogdanovich/ngrok-tunnel/pull/20), but neither
19
+ of these PRs got any reaction from the author.
20
+
21
+ So, excuse me, [Anton Bogdanovich](https://github.com/bogdanovich), but I've decided to craft another gem, based on your awesome work, thank you!
22
+
23
+ ## Installation
24
+
25
+ *Note:* You must have ngrok v2+ installed available in your `PATH`.
26
+
27
+ Add this line to your application's Gemfile:
28
+
29
+ ```ruby
30
+ gem 'ngrok-wrapper'
31
+ ```
32
+
33
+ And then execute:
34
+
35
+ $ bundle
36
+
37
+ Or install it yourself as:
38
+
39
+ $ gem install ngrok-wrapper
40
+
41
+ ## Usage
42
+
43
+ ```ruby
44
+ require 'ngrok/wrapper'
45
+
46
+ # spawn ngrok (default port 3001)
47
+ Ngrok::Wrapper.start
48
+
49
+ # ngrok local_port
50
+ Ngrok::Wrapper.port
51
+ => 3001
52
+
53
+ # ngrok external url
54
+ Ngrok::Wrapper.ngrok_url
55
+ => "http://aaa0e65.ngrok.io"
56
+
57
+ Ngrok::Wrapper.ngrok_url_https
58
+ => "https://aaa0e65.ngrok.io"
59
+
60
+ Ngrok::Wrapper.running?
61
+ => true
62
+
63
+ Ngrok::Wrapper.stopped?
64
+ => false
65
+
66
+ # ngrok process id
67
+ Ngrok::Wrapper.pid
68
+ => 27384
69
+
70
+ # ngrok log file descriptor
71
+ Ngrok::Wrapper.log
72
+ => #<File:/tmp/ngrok20141022-27376-cmmiq4>
73
+
74
+ # kill ngrok
75
+ Ngrok::Wrapper.stop
76
+ => :stopped
77
+
78
+ ```
79
+
80
+ ```ruby
81
+ # ngrok custom parameters
82
+ Ngrok::Wrapper.start(addr: 'foo.dev:80',
83
+ subdomain: 'MY_SUBDOMAIN',
84
+ hostname: 'MY_HOSTNAME',
85
+ authtoken: 'MY_TOKEN',
86
+ inspect: false,
87
+ log: 'ngrok.log',
88
+ config: '~/.ngrok2/ngrok.yml',
89
+ persistence: true,
90
+ persistence_file: '/Users/user/.ngrok2/ngrok-process.json') # optional parameter
91
+ ```
92
+
93
+ - If `persistence: true` is specified, on the 1st server start, an Ngrok process will get invoked, and the attributes of this Ngrok process, like `pid`, URLs and `port` will be stored in the `persistence_file`.
94
+ - On server stop, the Ngrok process will not be killed.
95
+ - On the subsequent server start, Ngrok::Wrapper will read the process attributes from the `persistence_file` and will try to re-use the running Ngrok process, if it hadn't been killed.
96
+ - The `persistence_file` parameter is optional when invoking `Ngrok::Wrapper.start`, by default the '/Users/user/.ngrok2/ngrok-process.json' will be created and used
97
+ - The `authtoken` parameter is also optional, as long as the `config` parameter is specified (usually Ngrok config
98
+ is the `~/.ngrok2/ngrok.yml` file)
99
+
100
+ ### With Rails
101
+
102
+ - Use ~/.ngrok2/ngrok.yml as a config file
103
+ - Set NGROK_INSPECT=false if you want to disable the inspector web-server
104
+ - Add this code at the end of `config/application.rb` in a Rails project
105
+
106
+ ```ruby
107
+ NGROK_ENABLED = Rails.env.development? &&
108
+ (Rails.const_defined?(:Server) || ($PROGRAM_NAME.include?('puma') && Puma.const_defined?(:Server))) &&
109
+ ENV['NGROK_TUNNEL'] == 'true'
110
+ ```
111
+
112
+ - Add the following code at the start of `config/environments/development.rb`
113
+
114
+ ```ruby
115
+ if NGROK_ENABLED
116
+ require 'ngrok/wrapper'
117
+
118
+ options = { addr: 'https://localhost:3000', persistence: true }
119
+ options[:config] = ENV.fetch('NGROK_CONFIG', "#{ENV['HOME']}/.ngrok2/ngrok.yml")
120
+ options[:inspect] = ENV['NGROK_INSPECT'] if ENV['NGROK_INSPECT']
121
+
122
+ puts "[NGROK] tunneling at #{Ngrok::Wrapper.start(options)}"
123
+ puts '[NGROK] inspector web interface listening at http://127.0.0.1:4040' if ENV['NGROK_INSPECT'] == 'true'
124
+
125
+ NGROK_URL = Ngrok::Wrapper.ngrok_url_https
126
+ end
127
+ ```
128
+
129
+ - If you need SSL (`https`) webhooks, you can use the `localhost` gem and then, in `config/puma.rb`:
130
+
131
+ ```ruby
132
+ if self.class.const_defined?(:NGROK_ENABLED)
133
+ bind 'ssl://localhost:3000'
134
+ else
135
+ port ENV.fetch('PORT', 3000)
136
+ end
137
+ ```
138
+
139
+ - And in `config/environments/development.rb`:
140
+
141
+ ```ruby
142
+ config.force_ssl = true if NGROK_ENABLED
143
+
144
+ config.action_mailer.default_url_options = {
145
+ host: NGROK_ENABLED ? NGROK_URL.delete_prefix('https://') : 'myapp.local',
146
+ port: 3000
147
+ }
148
+ ```
149
+
150
+ - To make the sessions bound to the Ngrok domain, in `config/initializers/session_store.rb`:
151
+
152
+ ```ruby
153
+ Rails.application.config.session_store :cookie_store,
154
+ key: "_#{Rails.env}_my_app_secure_session_3",
155
+ domain: NGROK_ENABLED ? NGROK_URL.delete_prefix('https://') : :all,
156
+ tld_length: 2
157
+ ```
158
+
159
+ - To use the webhooks when sending to, for example, Slack API, you can define the redirect URL in controller as follows:
160
+
161
+ ```ruby
162
+ redirect_uri = NGROK_ENABLED ? "#{NGROK_URL}/slack/oauth/#{organization.id}" : slack_oauth_url(organization.id)
163
+ ```
164
+
165
+ ### With Rack server
166
+
167
+ - Use ~/.ngrok2/ngrok.yml as a config file.
168
+ - Set NGROK_INSPECT=false if you want to disable the inspector web-server.
169
+ - Add the following code to the end of a configuration file of your preferred web-server, e.g. config/puma.rb,
170
+ config/unicorn.rb, or config/thin.rb
171
+
172
+ ```ruby
173
+ require 'ngrok/wrapper'
174
+
175
+ options = { addr: 'https://localhost:3000', persistence: true }
176
+ options[:config] = ENV.fetch('NGROK_CONFIG', "#{ENV['HOME']}/.ngrok2/ngrok.yml")
177
+ options[:inspect] = ENV['NGROK_INSPECT'] if ENV['NGROK_INSPECT']
178
+
179
+ puts "[NGROK] tunneling at #{Ngrok::Wrapper.start(options)}"
180
+ puts '[NGROK] inspector web interface listening at http://127.0.0.1:4040' if ENV['NGROK_INSPECT'] == 'true'
181
+
182
+ NGROK_URL = Ngrok::Wrapper.ngrok_url_https
183
+ ```
184
+
185
+ ## Gem Maintenance
186
+
187
+ ### Preparing a release
188
+
189
+ Merge all the pull requests that should make it into the new release into the `main` branch, then checkout and pull the
190
+ branch and run the `github_changelog_generator`, specifying the new version as a `--future-release` cli parameter:
191
+
192
+ ```
193
+ git checkout main
194
+ git pull
195
+
196
+ github_changelog_generator -u texpert -p ngrok-wrapper --future-release v0.1.0
197
+ ```
198
+
199
+ Then add the changes to `git`, commit and push the `Preparing the new release` commit directly into the `main` branch:
200
+
201
+ ```
202
+ git add .
203
+ git commit -m 'Preparing the new v0.1.0 release'
204
+ git push
205
+ ```
206
+
207
+ ### RubyGems credentials
208
+
209
+ Ensure you have the RubyGems credentials located in the `~/.gem/credentials` file.
210
+
211
+ ### Adding a gem owner
212
+
213
+ ```
214
+ gem owner ngrok-wrapper -a branzeanu.aurel@gmail.com
215
+ ```
216
+
217
+ ### Building a new gem version
218
+
219
+ Adjust the new gem version number in the `lib/ngrok/wrapper/version.rb` file. It is used when building the gem by the following command:
220
+
221
+ ```
222
+ gem build ngrok-wrapper.gemspec
223
+ ```
224
+
225
+ Assuming the version was set to `0.1.0`,
226
+ a `ngrok-wrapper-0.1.0.gem` binary file will be generated at the root of the app (repo).
227
+
228
+ - The binary file shouldn't be added into the `git` tree, it will be pushed into the RubyGems and to the GitHub releases
229
+
230
+ ### Pushing a new gem release to RubyGems
231
+
232
+ ```
233
+ gem push ngrok-wrapper-0.1.0.gem # don't forget to specify the correct version number
234
+ ```
235
+
236
+ ### Crafting the new release on GitHub
237
+
238
+ On the [Releases page](https://github.com/texpert/ngrok-wrapper/releases) push the `Draft a new release` button.
239
+
240
+ The new release editing page opens, on which the following actions could be taken:
241
+
242
+ - Choose the repo branch (default is `main`)
243
+ - Insert a tag version (usually, the tag should correspond to the gem's new version, v0.1.0, for example)
244
+ - the tag will be created by GitHub on the last commit into the chosen branch
245
+ - Fill the release Title and Description
246
+ - Attach the binary file with the generated gem version
247
+ - If the release is not yet ready for production, mark the `This is a pre-release` checkbox
248
+ - Press either the `Publish release`, or the `Save draft button` if you want to publish it later
249
+ - After publishing the release, the the binary gem file will be available on GitHub and could be removed locally
250
+
251
+
252
+ ## Contributing
253
+
254
+ 1. Fork it ( https://github.com/texpert/ngrok-wrapper/fork )
255
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
256
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
257
+ 4. Push to the branch (`git push origin my-new-feature`)
258
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
data/disabled.yml ADDED
@@ -0,0 +1,26 @@
1
+ # These are all the cops that are disabled in the default configuration.
2
+
3
+ # By default, the rails cops are not run. Override in project or home
4
+ # directory .rubocop.yml files, or by giving the -R/--rails option.
5
+
6
+ Naming/InclusiveLanguage:
7
+ Enabled: false
8
+
9
+ RSpec/AnyInstance:
10
+ Enabled: false
11
+
12
+ RSpec/BeEql:
13
+ Enabled: false
14
+
15
+ RSpec/ExampleLength:
16
+ Enabled: false
17
+
18
+ RSpec/ExpectInHook:
19
+ Enabled: false
20
+
21
+ RSpec/MessageSpies:
22
+ Enabled: false
23
+
24
+ Style/Documentation:
25
+ Description: 'Document classes and non-namespace modules.'
26
+ Enabled: false