codebuild 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: 6bcfea57ca3fcb04bc2f1f79e5bbd6ccb8a69cb736b4be4c4c10cd8bebc422db
4
- data.tar.gz: 141de3012147451070013d00cfe3ec4d67d8ed3289f143fe37d4d1f7ff57d3cc
3
+ metadata.gz: 5614b3e4b06a4b51c4057d1546c76813a7993b99f47310d7a0f221b64cbdcbbb
4
+ data.tar.gz: cc65ce705c47211ac74db8cf66a591de4976e659381557663b1f3ef2a386d1b1
5
5
  SHA512:
6
- metadata.gz: dec4e8ba192c051d5b23ab9ca9069e0ea6cfd134fcdb5db210f6cf2d056f5e8a65d0b58d4a92f5ec24b61ed270f0e7d3396ef43b10d18bd12e24979ce32e6921
7
- data.tar.gz: 416cb5263cfd06c4691e5f67f016854dca5b3e88fa7342c59358eee8d06ec65d7ee9971382bec3064db6b35aa5e9d2b31d950b57984abd24a4674a7c235b840a
6
+ metadata.gz: 695484589a80ba4ae8a0c1f2b8169290500df74e163938d72ec7bc9f17c48d08d8d64cb9af351105b52a3d2df1d87dcafb25af32c773ee1d75f428d6d1a45d37
7
+ data.tar.gz: 200fbe445ed597192351b897eadeabf148ea9e45e1a695efd3aeec107e7529dbf01eb0cc1563bbc87f662745fce1fc7d03cdd27327018efa6137d3a17b5f9d94
data/.gitmodules CHANGED
@@ -1,3 +1,9 @@
1
1
  [submodule "vendor/cfn-status"]
2
2
  path = vendor/cfn-status
3
3
  url = https://github.com/tongueroo/cfn-status
4
+ [submodule "vendor/cfn_camelizer"]
5
+ path = vendor/cfn_camelizer
6
+ url = https://github.com/tongueroo/cfn_camelizer
7
+ [submodule "vendor/aws_data"]
8
+ path = vendor/aws_data
9
+ url = https://github.com/tongueroo/aws_data
data/CHANGELOG.md CHANGED
@@ -3,11 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [0.4.0]
7
+ - Add managed_iam_policy support
8
+ - #2 Add schedule dsl
9
+ - starter template fix: add settings.yml for correct cb project detection
10
+
6
11
  ## [0.3.0]
7
- * rework cb cli interface
8
- * project_name as cli main parameter
9
- * type option for subprojects in .codebuild folder
10
- * update to zeitwerk for autoloading
12
+ - rework cb cli interface
13
+ - project_name as cli main parameter
14
+ - type option for subprojects in .codebuild folder
15
+ - update to zeitwerk for autoloading
11
16
 
12
17
  ## [0.2.0]
13
18
  - First good release.
data/README.md CHANGED
@@ -94,7 +94,7 @@ Here's a list of some of the convenience shorthand DSL methods:
94
94
 
95
95
  Please refer to [lib/codebuild/dsl/project.rb](lib/codebuild/dsl/project.rb) for the full list.
96
96
 
97
- More slightly more control, you may be interested in the `github_source` and `linux_environment` methods. For even more control, see [Full DSL docs](readme/full_dsl.md).
97
+ More slightly more control, you may be interested in the `github_source` and `linux_environment` methods. For even more control, see [DSL docs](docs/dsl).
98
98
 
99
99
  ## IAM Role DSL
100
100
 
@@ -121,9 +121,15 @@ iam_policy(
121
121
  )
122
122
  ```
123
123
 
124
+ You can also create managed iam policy.
125
+
126
+ ```ruby
127
+ managed_iam_policy("AmazonS3ReadOnlyAccess")
128
+ ```
129
+
124
130
  ## Full DSL
125
131
 
126
- The convenience DSL methods shown above are short and clean. They merely wrap a DSL that map to the properties of CloudFormation resources like [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) and [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). Refer the [Full DSL docs](readme/full_dsl.md) for more info.
132
+ The convenience DSL methods shown above are short and clean. They merely wrap a DSL that map to the properties of CloudFormation resources like [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) and [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). Refer the [DSL docs](docs/dsl) for more info.
127
133
 
128
134
  ## Type Option
129
135
 
data/codebuild.gemspec CHANGED
@@ -22,11 +22,12 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "aws-sdk-cloudformation"
23
23
  spec.add_dependency "aws-sdk-codebuild"
24
24
  spec.add_dependency "aws-sdk-ssm"
25
- spec.add_dependency "cfn_camelizer"
25
+ # spec.add_dependency "cfn_camelizer" # using vendor/cfn_camelizer for now
26
26
  spec.add_dependency "memoist"
27
27
  spec.add_dependency "rainbow"
28
28
  spec.add_dependency "render_me_pretty"
29
29
  spec.add_dependency "thor"
30
+ spec.add_dependency "zeitwerk"
30
31
 
31
32
  spec.add_development_dependency "bundler"
32
33
  spec.add_development_dependency "byebug"
@@ -1,6 +1,4 @@
1
- # "Full" DSL
2
-
3
- ## Project DSL
1
+ # Project DSL
4
2
 
5
3
  The convenience methods are shorter and cleaner. However, you have access to a "Full" DSL if needed. The Full DSL are merely the properties of the [AWS::CodeBuild::Project CloudFormation Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html). Here's an example.
6
4
 
@@ -46,39 +44,3 @@ environment(
46
44
 
47
45
  service_role(ref: "IamRole")
48
46
  ```
49
-
50
- ## Full IAM Role DSL
51
-
52
- The convenience methods merely wrap properties of the [AWS::IAM::Role
53
- CloudFormation Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). If you wanted to set the CloudFormation properties more directly, here's an example of using the "Full" DSL.
54
-
55
- .codebuild/role.rb:
56
-
57
- ```ruby
58
- assume_role_policy_document(
59
- statement: [{
60
- action: ["sts:AssumeRole"],
61
- effect: "Allow",
62
- principal: {
63
- service: ["codebuild.amazonaws.com"]
64
- }
65
- }],
66
- version: "2012-10-17"
67
- )
68
- path("/")
69
- policies([{
70
- policy_name: "CodeBuildAccess",
71
- policy_document: {
72
- version: "2012-10-17",
73
- statement: [{
74
- action: [
75
- "logs:CreateLogGroup",
76
- "logs:CreateLogStream",
77
- "logs:PutLogEvents",
78
- ],
79
- effect: "Allow",
80
- resource: "*"
81
- }]
82
- }
83
- }])
84
- ```
data/docs/dsl/role.md ADDED
@@ -0,0 +1,35 @@
1
+ # IAM Role DSL
2
+
3
+ The convenience methods merely wrap properties of the [AWS::IAM::Role
4
+ CloudFormation Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). If you wanted to set the CloudFormation properties more directly, here's an example of using the "Full" DSL.
5
+
6
+ .codebuild/role.rb:
7
+
8
+ ```ruby
9
+ assume_role_policy_document(
10
+ statement: [{
11
+ action: ["sts:AssumeRole"],
12
+ effect: "Allow",
13
+ principal: {
14
+ service: ["codebuild.amazonaws.com"]
15
+ }
16
+ }],
17
+ version: "2012-10-17"
18
+ )
19
+ path("/")
20
+ policies([{
21
+ policy_name: "CodeBuildAccess",
22
+ policy_document: {
23
+ version: "2012-10-17",
24
+ statement: [{
25
+ action: [
26
+ "logs:CreateLogGroup",
27
+ "logs:CreateLogStream",
28
+ "logs:PutLogEvents",
29
+ ],
30
+ effect: "Allow",
31
+ resource: "*"
32
+ }]
33
+ }
34
+ }])
35
+ ```
@@ -0,0 +1,12 @@
1
+ # Schedule DSL
2
+
3
+
4
+
5
+ The convenience methods merely wrap properties of the [AWS::Events::Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description). If you wanted to set the CloudFormation properties more directly, here's an example of using the "Full" DSL.
6
+
7
+ .codebuild/schedule.rb:
8
+
9
+ ```ruby
10
+ description "my description"
11
+ schedule_expression "rate(1 day)"
12
+ ```
File without changes
@@ -1,6 +1,12 @@
1
1
  # Type Option
2
2
 
3
- By default, the codebuild tool looks up files in the `.codebuild` folder. You can affect the behavior of the lookup logic with the `--type` option.
3
+ By default, the codebuild tool looks up files in the `.codebuild` folder. Example:
4
+
5
+ .codebuild/buildspec.yml
6
+ .codebuild/project.rb
7
+ .codebuild/role.rb
8
+
9
+ You can affect the behavior of the lookup logic with the `--type` option.
4
10
 
5
11
  ## Examples
6
12
 
@@ -26,7 +26,9 @@ module Codebuild::AwsServices
26
26
  end
27
27
 
28
28
  def project_name_convention(name_base)
29
- [@project_name, @options[:type], Codebuild.env, Codebuild.env_extra].reject(&:blank?).compact.join("-")
29
+ items = [@project_name, @options[:type], Codebuild.env_extra]
30
+ items.insert(2, Codebuild.env) if Codebuild.settings.dig(:stack_naming, :append_env)
31
+ items.reject(&:blank?).compact.join("-")
30
32
  end
31
33
 
32
34
  def inferred_project_name
@@ -1,5 +1,6 @@
1
1
  require 'pathname'
2
2
  require 'yaml'
3
+ require 'active_support/core_ext/string'
3
4
 
4
5
  module Codebuild
5
6
  module Core
@@ -14,7 +15,7 @@ module Codebuild
14
15
  # 2-way binding
15
16
  cb_env = env_from_profile || 'development'
16
17
  cb_env = ENV['CB_ENV'] if ENV['CB_ENV'] # highest precedence
17
- cb_env
18
+ ActiveSupport::StringInquirer.new(cb_env)
18
19
  end
19
20
  memoize :env
20
21
 
@@ -111,5 +111,9 @@ module Codebuild::Dsl
111
111
  end
112
112
  @properties[:cache] = cache
113
113
  end
114
+
115
+ def type
116
+ @options[:type]
117
+ end
114
118
  end
115
119
  end
@@ -17,11 +17,11 @@ module Codebuild::Dsl
17
17
 
18
18
  # convenience wrapper methods
19
19
  def iam_policy(*definitions)
20
- @iam_statements = definitions.map { |definition| standardize(definition) }
20
+ @iam_statements = definitions.map { |definition| standardize_iam_policy(definition) }
21
21
  end
22
22
 
23
23
  # Returns standarized IAM statement
24
- def standardize(definition)
24
+ def standardize_iam_policy(definition)
25
25
  case definition
26
26
  when String
27
27
  # Expands simple string from: logs => logs:*
@@ -36,5 +36,15 @@ module Codebuild::Dsl
36
36
  end
37
37
  end
38
38
 
39
+ def managed_iam_policy(*definitions)
40
+ @managed_policy_arns = definitions.map { |definition| standardize_managed_iam_policy(definition) }
41
+ end
42
+
43
+ # AmazonEC2ReadOnlyAccess => arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
44
+ def standardize_managed_iam_policy(definition)
45
+ return definition if definition.include?('iam::aws:policy')
46
+
47
+ "arn:aws:iam::aws:policy/#{definition}"
48
+ end
39
49
  end
40
50
  end
@@ -0,0 +1,30 @@
1
+ module Codebuild::Dsl
2
+ module Schedule
3
+ PROPERTIES = %w[
4
+ description
5
+ event_pattern
6
+ name
7
+ role_arn
8
+ schedule_expression
9
+ state
10
+ targets
11
+ ]
12
+ PROPERTIES.each do |prop|
13
+ define_method(prop) do |v|
14
+ @properties[prop.to_sym] = v
15
+ end
16
+ end
17
+
18
+ def rate(period)
19
+ @schedule_expression = "rate(#{period})"
20
+ end
21
+
22
+ def cron(expression)
23
+ @schedule_expression = "cron(#{expression})"
24
+ end
25
+
26
+ def rule_event(props={})
27
+ @rule_event_props = props
28
+ end
29
+ end
30
+ end
@@ -1,8 +1,32 @@
1
1
  ## Examples
2
2
 
3
- codebuild deploy # infers the CloudFormation name from the parent folder
4
- codebuild deploy stack-name # explicitly specify stack name
3
+ cb deploy PROJECT_NAME # explicitly specify project-name
4
+ cb deploy # infers the CodeBuild name from the parent folder
5
5
 
6
6
  It is useful to just see the generated CloudFormation template with `--noop` mode:
7
7
 
8
- codebuild deploy --noop # see generated CloudFormation template
8
+ cb deploy PROJECT_NAME --noop # see generated CloudFormation template
9
+
10
+ ## Types
11
+
12
+ By default, the codebuild tool looks up files in the `.codebuild` folder. Example:
13
+
14
+ .codebuild/buildspec.yml
15
+ .codebuild/project.rb
16
+ .codebuild/role.rb
17
+
18
+ ### Examples
19
+
20
+ cb deploy PROJECT_NAME --type deploy
21
+
22
+ This will look up buildspec.yml, project.rb, and role.rb files in the `.codebuild/deploy` folder. So:
23
+
24
+ .codebuild/deploy/buildspec.yml
25
+ .codebuild/deploy/project.rb
26
+ .codebuild/deploy/role.rb
27
+
28
+ Likewise `cb deploy PROJECT_NAME --type unit` would result in:
29
+
30
+ .codebuild/unit/buildspec.yml
31
+ .codebuild/unit/project.rb
32
+ .codebuild/unit/role.rb
@@ -1,24 +1,24 @@
1
1
  ## Examples
2
2
 
3
- codebuild init # infers the name from the parent folder
4
- codebuild init --name demo-codebuild-project # set the name
3
+ cb init # infers the name from the parent folder
4
+ cb init --name demo-codebuild-project # set the name
5
5
 
6
6
  ## Custom Templates
7
7
 
8
- If you would like the `codebuild init` command to use your own custom templates, you can achieve this with the `--template` and `--template-mode` options. Example:
8
+ If you would like the `cb init` command to use your own custom templates, you can achieve this with the `--template` and `--template-mode` options. Example:
9
9
 
10
- codebuild init --template=tongueroo/codebuild-custom-template
10
+ cb init --template=tongueroo/codebuild-custom-template
11
11
 
12
12
  This will clone the repo on GitHub into the `~/.codebuild/templates/tongueroo/codebuild-custom-template` and use that as an additional template source. The default `--template-mode=additive` mode means that if there's a file in `tongueroo/codebuild-custom-template` that exists it will use that in place of the default template files.
13
13
 
14
14
  If you do not want to use any of the original default template files within the ufo gem at all, you can use the `--template-mode=replace` mode. Replace mode will only use templates from the provided `--template` option. Example:
15
15
 
16
- codebuild init --template=tongueroo/codebuild-custom-template --template-mode=replace
16
+ cb init --template=tongueroo/codebuild-custom-template --template-mode=replace
17
17
 
18
18
  You can also specific the full GitHub url. Example:
19
19
 
20
- codebuild init --template=https://github.com/tongueroo/codebuild-custom-template
20
+ cb init --template=https://github.com/tongueroo/codebuild-custom-template
21
21
 
22
22
  If you would like to use a local template that is not on GitHub, then created a top-level folder in `~/.codebuild/templates` without a subfolder. Example:
23
23
 
24
- codebuild init --template=my-custom # uses ~/.codebuild/templates/my-custom
24
+ cb init --template=my-custom # uses ~/.codebuild/templates/my-custom
@@ -1,6 +1,6 @@
1
1
  ## Examples
2
2
 
3
- codebuild start # infers the name from the parent folder
4
- codebuild start stack-name # looks up project via CloudFormation stack
5
- codebuild start demo-project # looks up project via codebuild project name
3
+ cb start # infers the name from the parent folder
4
+ cb start stack-name # looks up project via CloudFormation stack
5
+ cb start demo-project # looks up project via codebuild project name
6
6
 
@@ -20,7 +20,10 @@ module Codebuild
20
20
  version: "2012-10-17",
21
21
  statement: derived_iam_statements
22
22
  }
23
- }]
23
+ }] unless @iam_statements.empty?
24
+
25
+ @properties[:managed_policy_arns] = @managed_policy_arns if !@managed_policy_arns&.empty?
26
+
24
27
  resource = {
25
28
  IamRole: {
26
29
  type: "AWS::IAM::Role",
@@ -0,0 +1,97 @@
1
+ module Codebuild
2
+ class Schedule
3
+ include Codebuild::Dsl::Schedule
4
+ include Evaluate
5
+
6
+ def initialize(options={})
7
+ @options = options
8
+ @schedule_path = options[:schedule_path] || get_schedule_path
9
+ @properties = default_properties
10
+ @iam_policy = {}
11
+ end
12
+
13
+ def run
14
+ return unless File.exist?(@schedule_path)
15
+
16
+ evaluate(@schedule_path)
17
+ @properties[:schedule_expression] = @schedule_expression if @schedule_expression
18
+ set_rule_event! if @rule_event_props
19
+
20
+ resource = {
21
+ events_rule: {
22
+ type: "AWS::Events::Rule",
23
+ properties: @properties
24
+ },
25
+ events_rule_role: events_rule_role,
26
+ }
27
+ CfnCamelizer.transform(resource)
28
+ end
29
+
30
+ def set_rule_event!
31
+ props = @rule_event_props
32
+ if props.key?(:detail)
33
+ description = props.key?(:description) ? props.delete(:description) : rule_description
34
+ rule_props = { event_pattern: props, description: description }
35
+ else # if props.key?(:event_pattern)
36
+ props[:description] ||= rule_description
37
+ rule_props = props
38
+ end
39
+
40
+ @properties.merge!(rule_props)
41
+ end
42
+
43
+ def default_properties
44
+ description = "CodeBuild #{@options[:full_project_name]}"
45
+ name = description.gsub(" ", "-").downcase
46
+ {
47
+ description: description,
48
+ # event_pattern: ,
49
+ name: name,
50
+ # schedule_expression: ,
51
+ state: "ENABLED",
52
+ targets: [{
53
+ arn: { "Fn::GetAtt": "CodeBuild.Arn" },
54
+ role_arn: { "Fn::GetAtt": "EventsRuleRole.Arn" }, # required for specific CodeBuild target.
55
+ id: "CodeBuildTarget",
56
+ }]
57
+ }
58
+ end
59
+
60
+ private
61
+ def get_schedule_path
62
+ lookup_codebuild_file("schedule.rb")
63
+ end
64
+
65
+ def events_rule_role
66
+ {
67
+ type: "AWS::IAM::Role",
68
+ properties: {
69
+ assume_role_policy_document: {
70
+ statement: [{
71
+ action: [ "sts:AssumeRole" ],
72
+ effect: "Allow",
73
+ principal: { service: [ "events.amazonaws.com" ] }
74
+ }],
75
+ version: "2012-10-17"
76
+ },
77
+ path: "/",
78
+ policies: [{
79
+ policy_name: "CodeBuildAccess",
80
+ policy_document: {
81
+ version: "2012-10-17",
82
+ statement: [{
83
+ action: "codebuild:StartBuild",
84
+ effect: "Allow",
85
+ resource: "arn:aws:codebuild:#{aws_data.region}:#{aws_data.account}:project/#{@options[:full_project_name]}"
86
+ }]
87
+ }
88
+ }]
89
+ }
90
+ }
91
+ end
92
+
93
+ def aws_data
94
+ @aws_data ||= AwsData.new
95
+ end
96
+ end
97
+ end
@@ -31,10 +31,13 @@ module Codebuild
31
31
  @template["Resources"].merge!(project)
32
32
 
33
33
  if project["CodeBuild"]["Properties"]["ServiceRole"] == {"Ref"=>"IamRole"}
34
- role = Role.new(@options).run
34
+ role = Role.new(options).run
35
35
  @template["Resources"].merge!(role)
36
36
  end
37
37
 
38
+ schedule = Schedule.new(options).run
39
+ @template["Resources"].merge!(schedule) if schedule
40
+
38
41
  template_path = "/tmp/codebuild.yml"
39
42
  FileUtils.mkdir_p(File.dirname(template_path))
40
43
  IO.write(template_path, YAML.dump(@template))
@@ -1,3 +1,3 @@
1
1
  module Codebuild
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/codebuild.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  $:.unshift(File.expand_path("../", __FILE__))
2
- require "cfn_camelizer"
3
2
  require "codebuild/version"
4
3
  require "rainbow/ext/string"
5
4
  require "yaml"
@@ -8,6 +7,10 @@ require "codebuild/autoloader"
8
7
  Codebuild::Autoloader.setup
9
8
 
10
9
  gem_root = File.dirname(__dir__)
10
+ $:.unshift("#{gem_root}/vendor/aws_data/lib")
11
+ require "aws_data"
12
+ $:.unshift("#{gem_root}/vendor/cfn_camelizer/lib")
13
+ require "cfn_camelizer"
11
14
  $:.unshift("#{gem_root}/vendor/cfn-status/lib")
12
15
  require "cfn/status"
13
16
 
@@ -0,0 +1,13 @@
1
+ base:
2
+ # stack_naming:
3
+ # append_env: false # default true
4
+
5
+ development:
6
+ # cluster: development
7
+ # The aws_profile tightly binds CB_ENV to AWS_PROFILE and vice-versa.
8
+ # aws_profile: dev_profile
9
+
10
+ production:
11
+ # cluster: production
12
+ # The aws_profile tightly binds CB_ENV to AWS_PROFILE and vice-versa.
13
+ # aws_profile: prod_profile
@@ -0,0 +1 @@
1
+ rate("1 day")
@@ -0,0 +1,13 @@
1
+ base:
2
+ # stack_naming:
3
+ # append_env: false # default true
4
+
5
+ development:
6
+ # cluster: development
7
+ # The aws_profile tightly binds CB_ENV to AWS_PROFILE and vice-versa.
8
+ # aws_profile: dev_profile
9
+
10
+ production:
11
+ # cluster: production
12
+ # The aws_profile tightly binds CB_ENV to AWS_PROFILE and vice-versa.
13
+ # aws_profile: prod_profile
@@ -0,0 +1,12 @@
1
+ describe Codebuild::Schedule do
2
+ let(:schedule) do
3
+ Codebuild::Schedule.new(schedule_path: "spec/fixtures/app/.codebuild/schedule.rb")
4
+ end
5
+ context "general" do
6
+ it "builds up the template in memory" do
7
+ template = schedule.run
8
+ expect(template.keys).to eq ["EventsRule", "EventsRuleRole"]
9
+ expect(template["EventsRule"]).to be_a(Hash)
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebuild
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-13 00:00:00.000000000 Z
11
+ date: 2019-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: cfn_camelizer
70
+ name: memoist
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: memoist
84
+ name: rainbow
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rainbow
98
+ name: render_me_pretty
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: render_me_pretty
112
+ name: thor
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: thor
126
+ name: zeitwerk
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -228,6 +228,11 @@ files:
228
228
  - README.md
229
229
  - Rakefile
230
230
  - codebuild.gemspec
231
+ - docs/dsl/project.md
232
+ - docs/dsl/role.md
233
+ - docs/dsl/schedule.md
234
+ - docs/github_oauth.md
235
+ - docs/type.md
231
236
  - exe/cb
232
237
  - exe/codebuild
233
238
  - img/github-admin-settings-tab.png
@@ -248,6 +253,7 @@ files:
248
253
  - lib/codebuild/dsl/project.rb
249
254
  - lib/codebuild/dsl/project/ssm.rb
250
255
  - lib/codebuild/dsl/role.rb
256
+ - lib/codebuild/dsl/schedule.rb
251
257
  - lib/codebuild/evaluate.rb
252
258
  - lib/codebuild/help.rb
253
259
  - lib/codebuild/help/completion.md
@@ -258,6 +264,7 @@ files:
258
264
  - lib/codebuild/init.rb
259
265
  - lib/codebuild/project.rb
260
266
  - lib/codebuild/role.rb
267
+ - lib/codebuild/schedule.rb
261
268
  - lib/codebuild/sequence.rb
262
269
  - lib/codebuild/setting.rb
263
270
  - lib/codebuild/stack.rb
@@ -267,14 +274,15 @@ files:
267
274
  - lib/template/.codebuild/buildspec.yml
268
275
  - lib/template/.codebuild/project.rb.tt
269
276
  - lib/template/.codebuild/role.rb
270
- - readme/full_dsl.md
271
- - readme/github_oauth.md
272
- - readme/type.md
277
+ - lib/template/.codebuild/settings.yml
273
278
  - spec/fixtures/app/.codebuild/project.rb
274
279
  - spec/fixtures/app/.codebuild/role.rb
280
+ - spec/fixtures/app/.codebuild/schedule.rb
281
+ - spec/fixtures/app/.codebuild/settings.yml
275
282
  - spec/lib/cli_spec.rb
276
283
  - spec/lib/project_spec.rb
277
284
  - spec/lib/role_spec.rb
285
+ - spec/lib/schedule_spec.rb
278
286
  - spec/spec_helper.rb
279
287
  homepage: https://github.com/tongueroo/codebuild
280
288
  licenses:
@@ -302,7 +310,10 @@ summary: CodeBuild DSL Tool to Quickly Create CodeBuild Project
302
310
  test_files:
303
311
  - spec/fixtures/app/.codebuild/project.rb
304
312
  - spec/fixtures/app/.codebuild/role.rb
313
+ - spec/fixtures/app/.codebuild/schedule.rb
314
+ - spec/fixtures/app/.codebuild/settings.yml
305
315
  - spec/lib/cli_spec.rb
306
316
  - spec/lib/project_spec.rb
307
317
  - spec/lib/role_spec.rb
318
+ - spec/lib/schedule_spec.rb
308
319
  - spec/spec_helper.rb