Class: Groundskeeper::Sentry
- Inherits:
-
Object
- Object
- Groundskeeper::Sentry
- Defined in:
- lib/groundskeeper/sentry.rb
Overview
Wraps Sentry CLI executable.
Defined Under Namespace
Classes: Executable
Constant Summary collapse
- COMMAND =
"sentry-cli"- RELEASE =
sentry-cli arguments
"releases new -p %<project>s \"%<version>s\""- ASSOCIATE =
"releases set-commits --auto \"%<version>s\""- DEPLOY =
"releases deploys \"%<version>s\" new -e %<environment>s"
Instance Attribute Summary collapse
-
#project_name ⇒ Object
readonly
Returns the value of attribute project_name.
-
#sentry ⇒ Object
readonly
Returns the value of attribute sentry.
-
#version_prefix ⇒ Object
readonly
Returns the value of attribute version_prefix.
Class Method Summary collapse
Instance Method Summary collapse
-
#associate_commits(version) ⇒ Object
Associate commits with the release.
-
#create_release(version) ⇒ Object
Notify Sentry about release.
-
#deploy(version, environment) ⇒ Object
Announce deployment to an environment.
-
#initialize(sentry:, project_name:, version_prefix:) ⇒ Sentry
constructor
A new instance of Sentry.
- #version_name(version) ⇒ Object
Constructor Details
#initialize(sentry:, project_name:, version_prefix:) ⇒ Sentry
Returns a new instance of Sentry.
29 30 31 32 33 |
# File 'lib/groundskeeper/sentry.rb', line 29 def initialize(sentry:, project_name:, version_prefix:) @sentry = sentry @project_name = project_name @version_prefix = version_prefix end |
Instance Attribute Details
#project_name ⇒ Object (readonly)
Returns the value of attribute project_name.
12 13 14 |
# File 'lib/groundskeeper/sentry.rb', line 12 def project_name @project_name end |
#sentry ⇒ Object (readonly)
Returns the value of attribute sentry.
12 13 14 |
# File 'lib/groundskeeper/sentry.rb', line 12 def sentry @sentry end |
#version_prefix ⇒ Object (readonly)
Returns the value of attribute version_prefix.
12 13 14 |
# File 'lib/groundskeeper/sentry.rb', line 12 def version_prefix @version_prefix end |
Class Method Details
.build(project_name:, version_prefix:) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/groundskeeper/sentry.rb', line 21 def self.build(project_name:, version_prefix:) new( sentry: Executable.new, project_name: project_name, version_prefix: version_prefix ) end |
Instance Method Details
#associate_commits(version) ⇒ Object
Associate commits with the release
43 44 45 |
# File 'lib/groundskeeper/sentry.rb', line 43 def associate_commits(version) sentry.execute(format(ASSOCIATE, version: version_name(version))) end |
#create_release(version) ⇒ Object
Notify Sentry about release
36 37 38 39 40 |
# File 'lib/groundskeeper/sentry.rb', line 36 def create_release(version) sentry.execute(format(RELEASE, project: project_name, version: version_name(version))) end |
#deploy(version, environment) ⇒ Object
Announce deployment to an environment
48 49 50 51 52 |
# File 'lib/groundskeeper/sentry.rb', line 48 def deploy(version, environment) sentry.execute(format(DEPLOY, version: version_name(version), environment: environment)) end |
#version_name(version) ⇒ Object
54 55 56 |
# File 'lib/groundskeeper/sentry.rb', line 54 def version_name(version) "#{version_prefix} #{version}" end |