capistrano-sentry 0.2.0 → 0.3.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/.gitignore +2 -1
- data/README.md +25 -5
- data/lib/capistrano/sentry/version.rb +1 -1
- data/lib/capistrano/tasks/sentry.rake +21 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb193cb50eb3f8ecfd39146451c570de4536f8ff22a86aef6663bdd290db0814
|
4
|
+
data.tar.gz: 34316e7f275118450ae34fd9722b6d2f050f0849bb92cec062816bcc0e0c74e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daedfea3dfadbb1b6395bf73c0f4f4b11a3a417c33d77e30e79f0bb7034d010c027a1f0126e4161a355dc3e4475f64f7313606a33408b84706cad1a76eae3de3
|
7
|
+
data.tar.gz: 016b032dc21bc1276389eb3dfda706246d09106da1913d5384980ecf245c41184132ba09e31d6855822e59650c9789dddea62f29afd845341bca7b8dd7335768
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -2,15 +2,12 @@
|
|
2
2
|
|
3
3
|
Simple extension of capistrano for automatic notification of Sentry.
|
4
4
|
|
5
|
-
TODO: Prevent user at deployment start if missing parameter to inform sentry
|
6
|
-
properly
|
7
|
-
|
8
5
|
## Installation
|
9
6
|
|
10
7
|
Add this line to your application's Gemfile:
|
11
8
|
|
12
9
|
```ruby
|
13
|
-
gem 'capistrano-sentry'
|
10
|
+
gem 'capistrano-sentry', require: false
|
14
11
|
```
|
15
12
|
|
16
13
|
Then, add this line to your application's Capfile:
|
@@ -32,14 +29,37 @@ Add these lines to your application's `config/deploy.rb`:
|
|
32
29
|
```ruby
|
33
30
|
# Sentry deployment notification
|
34
31
|
set :sentry_host, 'https://my-sentry.mycorp.com' # https://sentry.io by default
|
35
|
-
set :sentry_api_token, '
|
32
|
+
set :sentry_api_token, '0123456789abcdef0123456789abcdef'
|
36
33
|
set :sentry_organization, 'my-org' # fetch(:application) by default
|
37
34
|
set :sentry_project, 'my-proj' # fetch(:application) by default
|
38
35
|
set :sentry_repo, 'my-org/my-proj' # computed from repo_url by default
|
36
|
+
```
|
39
37
|
|
38
|
+
If you want deployments to be published in every Rails environment, put this in `config/deploy.rb`, otherwise put it your environment-specific deploy file (i.e. `config/deploy/production.rb`):
|
39
|
+
```ruby
|
40
|
+
before 'deploy:starting', 'sentry:validate_config'
|
40
41
|
after 'deploy:published', 'sentry:notice_deployment'
|
41
42
|
```
|
42
43
|
|
44
|
+
### Explaination of Configuration Properties
|
45
|
+
|
46
|
+
* `sentry_host`: identifies to which host Sentry submissions are sent. [https://sentry.io by default]
|
47
|
+
|
48
|
+
* `sentry_api_token`: API Auth Tokens are found/created in you Sentry Account Settings (not in the organization or project): `Settings > Account > Api > Auth Tokens`.
|
49
|
+
[https://sentry.io/settings/account/api/auth-tokens/]
|
50
|
+
|
51
|
+
* `sentry_organization`: The "**Name**" ("*A unique ID used to identify this organization*") from Sentry's Organization Settings page.
|
52
|
+
[https://sentry.io/settings/{ORGANIZATION_SLUG}]
|
53
|
+
|
54
|
+
* `sentry_project`: The "**Name**" ("*A unique ID used to identify this project*") from Sentry's Project Settings page.
|
55
|
+
[https://sentry.io/settings/{ORGANIZATION_SLUG}/projects/{PROJECT_SLUG}]
|
56
|
+
|
57
|
+
* `sentry_repo`: The `repository` name to be used when reporting repository details to Sentry [computed from `fetch(:repo_url)` by default -- `https://github.com/codeur/capistrano-sentry` becomes `//github.com/codeur/capistrano-sentry` and `git@github.com:codeur/capistrano-sentry.git` becomes `codeur/capistrano-sentry`]
|
58
|
+
|
59
|
+
### Sentry API Documentation
|
60
|
+
* [Project Releases](https://docs.sentry.io/api/releases/post-project-releases/)
|
61
|
+
* [Release Deploys](https://docs.sentry.io/api/releases/post-release-deploys/)
|
62
|
+
|
43
63
|
## Development
|
44
64
|
|
45
65
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -1,12 +1,31 @@
|
|
1
|
-
# This task will notify Sentry via their API[1] that you have deployed
|
1
|
+
# This task will notify Sentry via their API[1][2] that you have deployed
|
2
2
|
# a new release. It uses the commit hash as the `version` and the git ref as
|
3
3
|
# the optional `ref` value.
|
4
4
|
#
|
5
|
-
# [1]: https://docs.
|
5
|
+
# [1]: https://docs.sentry.io/api/releases/post-project-releases/
|
6
|
+
# [2]: https://docs.sentry.io/api/releases/post-release-deploys/
|
6
7
|
|
7
8
|
# For Rails app, this goes in config/deploy.rb
|
8
9
|
|
10
|
+
module Capistrano
|
11
|
+
class SentryConfigurationError < StandardError
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
9
15
|
namespace :sentry do
|
16
|
+
desc 'Confirm configuration for notification to Sentry'
|
17
|
+
task :validate_config do
|
18
|
+
run_locally do
|
19
|
+
info '[sentry:validate_config] Validating Sentry notification config'
|
20
|
+
api_token = ENV['SENTRY_API_TOKEN'] || fetch(:sentry_api_token)
|
21
|
+
if api_token.nil? || api_token.empty?
|
22
|
+
msg = "Missing SENTRY_API_TOKEN. Please set SENTRY_API_TOKEN environment variable or `set :sentry_api_token` in your `config/deploy.rb` file for your Rails application."
|
23
|
+
warn msg
|
24
|
+
fail Capistrano::SentryConfigurationError, msg
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
10
29
|
desc 'Notice new deployment in Sentry'
|
11
30
|
task :notice_deployment do
|
12
31
|
run_locally do
|
@@ -61,8 +80,3 @@ namespace :sentry do
|
|
61
80
|
end
|
62
81
|
end
|
63
82
|
end
|
64
|
-
|
65
|
-
# If you want deployments to be published in every Rails environment, put this
|
66
|
-
# in config/deploy.rb, otherwise put it your environment-specific deploy file
|
67
|
-
# i.e. config/deploy/production.rb
|
68
|
-
# after 'deploy:published', 'sentry:notice_deployment'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-sentry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brice Texier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|