danger-dangermattic 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.buildkite/gem-push.sh +15 -0
  3. data/.buildkite/pipeline.yml +69 -0
  4. data/.bundle/config +2 -0
  5. data/.github/workflows/reusable-check-labels-on-issues.yml +91 -0
  6. data/.github/workflows/reusable-run-danger.yml +54 -0
  7. data/.gitignore +30 -0
  8. data/.rubocop.yml +67 -0
  9. data/.ruby-version +1 -0
  10. data/.yardopts +7 -0
  11. data/CHANGELOG.md +7 -0
  12. data/Gemfile +5 -0
  13. data/Gemfile.lock +191 -0
  14. data/Guardfile +21 -0
  15. data/LICENSE +373 -0
  16. data/README.md +68 -0
  17. data/Rakefile +24 -0
  18. data/danger-dangermattic.gemspec +58 -0
  19. data/lib/danger_dangermattic.rb +3 -0
  20. data/lib/danger_plugin.rb +4 -0
  21. data/lib/dangermattic/gem_version.rb +5 -0
  22. data/lib/dangermattic/plugins/android_release_checker.rb +50 -0
  23. data/lib/dangermattic/plugins/android_strings_checker.rb +31 -0
  24. data/lib/dangermattic/plugins/android_unit_test_checker.rb +187 -0
  25. data/lib/dangermattic/plugins/common/common_release_checker.rb +113 -0
  26. data/lib/dangermattic/plugins/common/git_utils.rb +166 -0
  27. data/lib/dangermattic/plugins/common/github_utils.rb +68 -0
  28. data/lib/dangermattic/plugins/common/reporter.rb +38 -0
  29. data/lib/dangermattic/plugins/ios_release_checker.rb +106 -0
  30. data/lib/dangermattic/plugins/labels_checker.rb +74 -0
  31. data/lib/dangermattic/plugins/manifest_pr_checker.rb +106 -0
  32. data/lib/dangermattic/plugins/milestone_checker.rb +98 -0
  33. data/lib/dangermattic/plugins/podfile_checker.rb +122 -0
  34. data/lib/dangermattic/plugins/pr_size_checker.rb +125 -0
  35. data/lib/dangermattic/plugins/tracks_checker.rb +72 -0
  36. data/lib/dangermattic/plugins/view_changes_checker.rb +46 -0
  37. data/spec/android_release_checker_spec.rb +93 -0
  38. data/spec/android_strings_checker_spec.rb +185 -0
  39. data/spec/android_unit_test_checker_spec.rb +343 -0
  40. data/spec/common_release_checker_spec.rb +70 -0
  41. data/spec/fixtures/android_unit_test_checker/Abc.java +7 -0
  42. data/spec/fixtures/android_unit_test_checker/AbcFeatureConfig.java +7 -0
  43. data/spec/fixtures/android_unit_test_checker/Abcdef.kt +5 -0
  44. data/spec/fixtures/android_unit_test_checker/AbcdefgViewHelper.java +7 -0
  45. data/spec/fixtures/android_unit_test_checker/AnotherViewHelper.kt +7 -0
  46. data/spec/fixtures/android_unit_test_checker/MyNewClass.java +7 -0
  47. data/spec/fixtures/android_unit_test_checker/Polygon.kt +3 -0
  48. data/spec/fixtures/android_unit_test_checker/Shape.kt +10 -0
  49. data/spec/fixtures/android_unit_test_checker/TestsINeedThem.java +5 -0
  50. data/spec/fixtures/android_unit_test_checker/TestsINeedThem.kt +7 -0
  51. data/spec/fixtures/android_unit_test_checker/TestsINeedThem2.kt +12 -0
  52. data/spec/fixtures/android_unit_test_checker/src/android/java/org/activities/MyActivity.kt +7 -0
  53. data/spec/fixtures/android_unit_test_checker/src/android/java/org/activities/MyJavaActivity.java +7 -0
  54. data/spec/fixtures/android_unit_test_checker/src/android/java/org/fragments/MyFragment.kt +6 -0
  55. data/spec/fixtures/android_unit_test_checker/src/android/java/org/fragments/MyNewJavaFragment.java +7 -0
  56. data/spec/fixtures/android_unit_test_checker/src/android/java/org/module/MyModule.java +13 -0
  57. data/spec/fixtures/android_unit_test_checker/src/android/java/org/view/ActionCardViewHolder.kt +22 -0
  58. data/spec/fixtures/android_unit_test_checker/src/android/java/org/view/MyRecyclerView.java +7 -0
  59. data/spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/AbcTests.java +5 -0
  60. data/spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/AnotherTestClass.java +7 -0
  61. data/spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/PolygonTest.kt +4 -0
  62. data/spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/TestMyNewClass.java +9 -0
  63. data/spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/ToolTest.kt +5 -0
  64. data/spec/fixtures/android_unit_test_checker/src/main/java/org/wordpress/android/widgets/NestedWebView.kt +32 -0
  65. data/spec/fixtures/android_unit_test_checker/src/main/java/org/wordpress/util/config/BloggingPromptsFeatureConfig.kt +23 -0
  66. data/spec/fixtures/android_unit_test_checker/src/test/java/org/test/TestsINeedThem.java +9 -0
  67. data/spec/github_utils_spec.rb +110 -0
  68. data/spec/ios_release_checker_spec.rb +191 -0
  69. data/spec/labels_checker_spec.rb +169 -0
  70. data/spec/manifest_pr_checker_spec.rb +140 -0
  71. data/spec/milestone_checker_spec.rb +222 -0
  72. data/spec/podfile_checker_spec.rb +595 -0
  73. data/spec/pr_size_checker_spec.rb +250 -0
  74. data/spec/spec_helper.rb +115 -0
  75. data/spec/tracks_checker_spec.rb +156 -0
  76. data/spec/view_changes_checker_spec.rb +168 -0
  77. metadata +341 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e85f01a1d938e27470bb45e542e181b976500f6ecd7753f02536e778af12b370
4
+ data.tar.gz: 79ec4d88e1bb27c40a72be9b19a70a2a3200aa2eb7a68a7433849550d31f11bf
5
+ SHA512:
6
+ metadata.gz: a681ba5b47937b6fe5ab6abd568954f8b5e26570e75385a9a3fa719ea6420c7bcd4dd216c90a9a431755270beec609183f161bd6a7ccf4f502af6d31793c1120
7
+ data.tar.gz: a3542e84de8347a75760d8501aeac783305e5ff3c665d1209a706100c889aeb0afa959f4b80e66d166fd9c4f881c373f24155333a0a6bf27817b84ecb6b1ceac
@@ -0,0 +1,15 @@
1
+ #!/bin/bash -eu
2
+
3
+ GEM_NAME="danger-dangermattic"
4
+
5
+ echo "--- :hammer: Build Gemspec"
6
+ gem build "$GEM_NAME.gemspec" -o "$GEM_NAME.gem"
7
+
8
+ echo "--- :sleuth_or_spy: Validate Gem Install"
9
+ gem install --user-install "$GEM_NAME.gem"
10
+
11
+ echo "--- :rubygems: Gem Push"
12
+ echo ":rubygems_api_key: ${RUBYGEMS_API_KEY}" >>".gem-credentials"
13
+ chmod 600 ".gem-credentials"
14
+ gem push --config-file ".gem-credentials" "$GEM_NAME.gem"
15
+
@@ -0,0 +1,69 @@
1
+ agents:
2
+ queue: "default"
3
+
4
+ # Nodes with values to reuse in the pipeline.
5
+ common_params:
6
+ - &docker_plugin "docker#v5.7.0"
7
+ - &docker_ruby_image "public.ecr.aws/docker/library/ruby:3.2.2"
8
+ - &common_plugins
9
+ - *docker_plugin :
10
+ image: *docker_ruby_image
11
+
12
+ steps:
13
+ #################
14
+ # Build and Test
15
+ #################
16
+ - group: "🧪 Build and Test"
17
+ key: test
18
+ steps:
19
+ - label: "🧪 Build and Test"
20
+ command: |
21
+ echo "--- :rubygems: Setting up Gems"
22
+ bundle install
23
+
24
+ echo "--- :rspec: Run Rspec"
25
+ bundle exec rspec --profile 10 --format progress
26
+ plugins: *common_plugins
27
+
28
+ #################
29
+ # Lint
30
+ #################
31
+ - label: "🧹 Lint (Rubocop)"
32
+ key: rubocop
33
+ command: |
34
+ echo "--- :rubygems: Setting up Gems"
35
+ bundle install
36
+
37
+ echo "--- :rubocop: Run Rubocop"
38
+ bundle exec rubocop
39
+ plugins: *common_plugins
40
+
41
+ #################
42
+ # Danger Lint
43
+ #################
44
+ - label: "☢️ Lint (Danger)"
45
+ key: dangerlint
46
+ command: |
47
+ echo "--- :rubygems: Setting up Gems"
48
+ bundle install
49
+
50
+ echo "--- ☢️ Run Danger Lint"
51
+ bundle exec danger plugins lint
52
+ plugins: *common_plugins
53
+
54
+ #################
55
+ # Push to RubyGems
56
+ #################
57
+ - label: ":rubygems: Publish to RubyGems"
58
+ key: "gem-push"
59
+ if: build.tag != null
60
+ depends_on:
61
+ - test
62
+ - rubocop
63
+ command: .buildkite/gem-push.sh
64
+ plugins:
65
+ - *docker_plugin :
66
+ image: *docker_ruby_image
67
+ propagate-environment: true
68
+ environment:
69
+ - "RUBYGEMS_API_KEY"
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_SPECIFIC_PLATFORM: "false"
@@ -0,0 +1,91 @@
1
+ on:
2
+ workflow_call:
3
+ inputs:
4
+ label-format-list:
5
+ description: 'The Regex formats expected for the labels; must be a JSON list'
6
+ default: '[
7
+ ".*"
8
+ ]'
9
+ type: string
10
+ required: false
11
+ label-error-message:
12
+ description: 'Error message to be posted when the labels set don''t match the required list of formats.'
13
+ default: 'At least one label is required.'
14
+ type: string
15
+ required: false
16
+ label-success-message:
17
+ description: 'Message to be posted when the labels set fulfill the entire list of expected formats.'
18
+ default: '✅ Yay, issue looks great!'
19
+ type: string
20
+ required: false
21
+ secrets:
22
+ github-token:
23
+ required: true
24
+
25
+ concurrency:
26
+ group: danger-${{ github.event.issue.number }}
27
+ cancel-in-progress: true
28
+
29
+ jobs:
30
+ check-issue-labels:
31
+ runs-on: ubuntu-latest
32
+ permissions:
33
+ issues: write
34
+ steps:
35
+ - name: "🏷️ Check Issue Labels"
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.github-token }}
38
+ GH_REPO: ${{ github.repository }}
39
+ ISSUE_NUMBER: ${{ github.event.issue.number }}
40
+ ISSUE_LABELS: ${{ toJSON(github.event.issue.labels.*.name) }}
41
+ LABEL_REGEX_LIST: ${{ inputs.label-format-list }}
42
+ ISSUE_SUCCESS_COMMENT: >
43
+ ${{ inputs.label-success-message }}
44
+ <!-- generated_by_dangermattic -->
45
+ ISSUE_ERROR_COMMENT: >
46
+ ${{ inputs.label-error-message }}
47
+ <!-- generated_by_dangermattic -->
48
+ run: |
49
+ #!/bin/bash
50
+
51
+ readarray -t labels < <(echo "$ISSUE_LABELS" | jq -r '.[]')
52
+ readarray -t label_regex_list < <(echo "$LABEL_REGEX_LIST" | jq -r '.[]')
53
+
54
+ all_patterns_matched=true
55
+
56
+ for regex in "${label_regex_list[@]}"; do
57
+ pattern_matched=false
58
+
59
+ for label in "${labels[@]}"; do
60
+ if [[ "$label" =~ $regex ]]; then
61
+ pattern_matched=true
62
+ echo "👍 Match found for regex '$regex': $label"
63
+ break
64
+ fi
65
+ done
66
+
67
+ if [ "$pattern_matched" = false ]; then
68
+ all_patterns_matched=false
69
+ echo "⚠️ No match found for regex '$regex'"
70
+ fi
71
+ done
72
+
73
+ ISSUE_COMMENT=''
74
+ if [ "$all_patterns_matched" = true ]; then
75
+ echo "✅ All regex patterns have at least one match."
76
+ ISSUE_COMMENT="$ISSUE_SUCCESS_COMMENT"
77
+ else
78
+ echo "❌ Not all regex patterns have at least one match."
79
+ ISSUE_COMMENT="$ISSUE_ERROR_COMMENT"
80
+ fi
81
+
82
+ set +e
83
+ echo "✍️ Attempting to edit existing comment on issue $ISSUE_NUMBER, if it exists:"
84
+ gh issue comment $ISSUE_NUMBER --body "$ISSUE_COMMENT" --edit-last
85
+ comment_update_status=$?
86
+ set -e
87
+
88
+ if [ $comment_update_status -ne 0 ]; then
89
+ echo "✍️ Adding new comment on issue $ISSUE_NUMBER:"
90
+ gh issue comment $ISSUE_NUMBER --body "$ISSUE_COMMENT"
91
+ fi
@@ -0,0 +1,54 @@
1
+ on:
2
+ workflow_call:
3
+ inputs:
4
+ remove-previous-comments:
5
+ description: 'Configures Danger to always remove previous comments and add a new one instead of editing the same comment.'
6
+ default: false
7
+ type: boolean
8
+ required: false
9
+ cancel-running-jobs:
10
+ description: 'Cancel currently in progress jobs when new ones are added.'
11
+ default: true
12
+ type: boolean
13
+ required: false
14
+ secrets:
15
+ github-token:
16
+ required: true
17
+
18
+ concurrency:
19
+ group: danger-${{ github.ref }}
20
+ cancel-in-progress: ${{ inputs.cancel-running-jobs }}
21
+
22
+ jobs:
23
+ dangermattic:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - name: "📥 Checkout Repo"
27
+ uses: actions/checkout@v4
28
+ with:
29
+ fetch-depth: 100
30
+ - name: "💎 Ruby Setup"
31
+ uses: ruby/setup-ruby@v1
32
+ with:
33
+ bundler-cache: true
34
+ - name: "☢️ Danger PR Check"
35
+ env:
36
+ PR_URL: ${{ github.event.pull_request.html_url }}
37
+ RUNNING_ON_FORK: ${{ github.event.pull_request.head.repo.fork }}
38
+ REMOVE_PREVIOUS_COMMENTS: ${{ inputs.remove-previous-comments }}
39
+ DANGER_GITHUB_API_TOKEN: ${{ secrets.github-token }}
40
+ run: |
41
+ echo "--- 🏃 Running Danger: PR Check"
42
+
43
+ if [ "$RUNNING_ON_FORK" = true ]; then
44
+ danger_output=$(bundle exec danger pr "$PR_URL" --verbose)
45
+
46
+ echo "$danger_output"
47
+
48
+ if echo "$danger_output" | grep -q "Errors:"; then
49
+ echo "Danger encountered errors."
50
+ exit 1
51
+ fi
52
+ else
53
+ bundle exec danger --fail-on-errors=true --danger_id=pr-check $([ "$REMOVE_PREVIOUS_COMMENTS" = true ] && echo "--remove-previous-comments")
54
+ fi
data/.gitignore ADDED
@@ -0,0 +1,30 @@
1
+ .DS_Store
2
+ /tmp
3
+
4
+ # JetBrains IDE files
5
+ .idea
6
+
7
+ # VSCode IDE files
8
+ .vscode
9
+
10
+ # Ruby / Bundler
11
+ vendor/bundle
12
+
13
+ # Fastlane
14
+ fastlane/README.md
15
+ fastlane/report.xml
16
+
17
+ # Testing
18
+ test_results/
19
+ coverage/
20
+
21
+ # YARD Documentation
22
+ yard-doc/
23
+ .yardoc/
24
+
25
+
26
+ # L10n Linter
27
+ vendor/swiftgen
28
+
29
+ # Build Products
30
+ *.gem
data/.rubocop.yml ADDED
@@ -0,0 +1,67 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ NewCops: enable
7
+
8
+ Style/HashSyntax:
9
+ EnforcedShorthandSyntax: never
10
+
11
+ ########## Gemspec Rules
12
+
13
+ # Disabling this as all the gem publishing will be done within CI and doesn't allow for user input such as an MFA code.
14
+ Gemspec/RequireMFA:
15
+ Enabled: false
16
+
17
+ Gemspec/DevelopmentDependencies:
18
+ EnforcedStyle: gemspec
19
+
20
+ ########## Metrics / Max Lengths Rules
21
+
22
+ Layout/LineLength:
23
+ Max: 300
24
+
25
+ Metrics/AbcSize:
26
+ Max: 140
27
+
28
+ Metrics/BlockLength:
29
+ Max: 80
30
+ Exclude:
31
+ - spec/**/*_spec.rb
32
+ - spec/**/shared_examples_*.rb
33
+
34
+ Metrics/ClassLength:
35
+ Max: 300
36
+
37
+ Metrics/MethodLength:
38
+ Max: 150
39
+
40
+ Metrics/ModuleLength:
41
+ Max: 300
42
+ Exclude:
43
+ - spec/**/*_spec.rb
44
+
45
+ Metrics/ParameterLists:
46
+ Max: 10
47
+
48
+ ########## Metrics / Complexity
49
+
50
+ Metrics/CyclomaticComplexity:
51
+ Max: 20
52
+
53
+ Metrics/PerceivedComplexity:
54
+ Max: 20
55
+
56
+ ########## RSpec Rules
57
+
58
+ # We are not strict to the point that we want to enforce super-short `it '…' do … end` blocks in our specs.
59
+ RSpec/ExampleLength:
60
+ Enabled: false
61
+
62
+ # Same for number of let/subject
63
+ RSpec/MultipleMemoizedHelpers:
64
+ Enabled: false
65
+
66
+ RSpec/MultipleExpectations:
67
+ Max: 2
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/.yardopts ADDED
@@ -0,0 +1,7 @@
1
+ --no-save
2
+ --protected
3
+ --no-private
4
+ --markup markdown
5
+ --output-dir yard-doc
6
+ -
7
+ CHANGELOG.md
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # Dangermattic CHANGELOG
2
+
3
+ ---
4
+
5
+ ## 1.0.0
6
+
7
+ After some time being developed and tested across a few repositories, this is our first stable release.
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,191 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ danger-dangermattic (0.0.1)
5
+ danger (~> 9.4)
6
+ danger-junit (~> 1.0)
7
+ danger-plugin-api (~> 1.0)
8
+ danger-rubocop (~> 0.12)
9
+ danger-swiftlint (~> 0.35)
10
+ danger-xcode_summary (~> 1.0)
11
+ rubocop (~> 1.60)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ addressable (2.8.6)
17
+ public_suffix (>= 2.0.2, < 6.0)
18
+ ast (2.4.2)
19
+ base64 (0.2.0)
20
+ claide (1.1.0)
21
+ claide-plugins (0.9.2)
22
+ cork
23
+ nap
24
+ open4 (~> 1.3)
25
+ coderay (1.1.3)
26
+ colored2 (3.1.2)
27
+ cork (0.3.0)
28
+ colored2 (~> 3.1)
29
+ danger (9.4.3)
30
+ claide (~> 1.0)
31
+ claide-plugins (>= 0.9.2)
32
+ colored2 (~> 3.1)
33
+ cork (~> 0.1)
34
+ faraday (>= 0.9.0, < 3.0)
35
+ faraday-http-cache (~> 2.0)
36
+ git (~> 1.13)
37
+ kramdown (~> 2.3)
38
+ kramdown-parser-gfm (~> 1.0)
39
+ no_proxy_fix
40
+ octokit (>= 4.0)
41
+ terminal-table (>= 1, < 4)
42
+ danger-junit (1.0.2)
43
+ danger (> 2.0)
44
+ ox (~> 2.0)
45
+ danger-plugin-api (1.0.0)
46
+ danger (> 2.0)
47
+ danger-rubocop (0.12.0)
48
+ danger
49
+ rubocop (~> 1.0)
50
+ danger-swiftlint (0.35.0)
51
+ danger
52
+ rake (> 10)
53
+ thor (~> 1.0.0)
54
+ danger-xcode_summary (1.2.0)
55
+ danger-plugin-api (~> 1.0)
56
+ xcresult (~> 0.2)
57
+ diff-lcs (1.5.1)
58
+ faraday (2.9.0)
59
+ faraday-net_http (>= 2.0, < 3.2)
60
+ faraday-http-cache (2.5.1)
61
+ faraday (>= 0.8)
62
+ faraday-net_http (3.1.0)
63
+ net-http
64
+ ffi (1.16.3)
65
+ formatador (1.1.0)
66
+ git (1.19.1)
67
+ addressable (~> 2.8)
68
+ rchardet (~> 1.8)
69
+ guard (2.18.1)
70
+ formatador (>= 0.2.4)
71
+ listen (>= 2.7, < 4.0)
72
+ lumberjack (>= 1.0.12, < 2.0)
73
+ nenv (~> 0.1)
74
+ notiffany (~> 0.0)
75
+ pry (>= 0.13.0)
76
+ shellany (~> 0.0)
77
+ thor (>= 0.18.1)
78
+ guard-compat (1.2.1)
79
+ guard-rspec (4.7.3)
80
+ guard (~> 2.1)
81
+ guard-compat (~> 1.1)
82
+ rspec (>= 2.99.0, < 4.0)
83
+ json (2.7.1)
84
+ kramdown (2.4.0)
85
+ rexml
86
+ kramdown-parser-gfm (1.1.0)
87
+ kramdown (~> 2.0)
88
+ language_server-protocol (3.17.0.3)
89
+ listen (3.8.0)
90
+ rb-fsevent (~> 0.10, >= 0.10.3)
91
+ rb-inotify (~> 0.9, >= 0.9.10)
92
+ lumberjack (1.2.10)
93
+ method_source (1.0.0)
94
+ nap (1.1.0)
95
+ nenv (0.3.0)
96
+ net-http (0.4.1)
97
+ uri
98
+ no_proxy_fix (0.1.2)
99
+ notiffany (0.1.3)
100
+ nenv (~> 0.1)
101
+ shellany (~> 0.0)
102
+ octokit (8.1.0)
103
+ base64
104
+ faraday (>= 1, < 3)
105
+ sawyer (~> 0.9)
106
+ open4 (1.3.4)
107
+ ox (2.14.17)
108
+ parallel (1.24.0)
109
+ parser (3.3.0.5)
110
+ ast (~> 2.4.1)
111
+ racc
112
+ pry (0.14.2)
113
+ coderay (~> 1.1)
114
+ method_source (~> 1.0)
115
+ public_suffix (5.0.4)
116
+ racc (1.7.3)
117
+ rainbow (3.1.1)
118
+ rake (13.1.0)
119
+ rb-fsevent (0.11.2)
120
+ rb-inotify (0.10.1)
121
+ ffi (~> 1.0)
122
+ rchardet (1.8.0)
123
+ regexp_parser (2.9.0)
124
+ rexml (3.2.6)
125
+ rspec (3.13.0)
126
+ rspec-core (~> 3.13.0)
127
+ rspec-expectations (~> 3.13.0)
128
+ rspec-mocks (~> 3.13.0)
129
+ rspec-core (3.13.0)
130
+ rspec-support (~> 3.13.0)
131
+ rspec-expectations (3.13.0)
132
+ diff-lcs (>= 1.2.0, < 2.0)
133
+ rspec-support (~> 3.13.0)
134
+ rspec-mocks (3.13.0)
135
+ diff-lcs (>= 1.2.0, < 2.0)
136
+ rspec-support (~> 3.13.0)
137
+ rspec-support (3.13.0)
138
+ rubocop (1.60.2)
139
+ json (~> 2.3)
140
+ language_server-protocol (>= 3.17.0)
141
+ parallel (~> 1.10)
142
+ parser (>= 3.3.0.2)
143
+ rainbow (>= 2.2.2, < 4.0)
144
+ regexp_parser (>= 1.8, < 3.0)
145
+ rexml (>= 3.2.5, < 4.0)
146
+ rubocop-ast (>= 1.30.0, < 2.0)
147
+ ruby-progressbar (~> 1.7)
148
+ unicode-display_width (>= 2.4.0, < 3.0)
149
+ rubocop-ast (1.30.0)
150
+ parser (>= 3.2.1.0)
151
+ rubocop-capybara (2.20.0)
152
+ rubocop (~> 1.41)
153
+ rubocop-factory_bot (2.25.1)
154
+ rubocop (~> 1.41)
155
+ rubocop-rake (0.6.0)
156
+ rubocop (~> 1.0)
157
+ rubocop-rspec (2.26.1)
158
+ rubocop (~> 1.40)
159
+ rubocop-capybara (~> 2.17)
160
+ rubocop-factory_bot (~> 2.22)
161
+ ruby-progressbar (1.13.0)
162
+ sawyer (0.9.2)
163
+ addressable (>= 2.3.5)
164
+ faraday (>= 0.17.3, < 3)
165
+ shellany (0.0.1)
166
+ terminal-table (3.0.2)
167
+ unicode-display_width (>= 1.1.1, < 3)
168
+ thor (1.0.1)
169
+ unicode-display_width (2.5.0)
170
+ uri (0.13.0)
171
+ xcresult (0.2.1)
172
+ yard (0.9.34)
173
+
174
+ PLATFORMS
175
+ arm64-darwin-22
176
+ ruby
177
+
178
+ DEPENDENCIES
179
+ bundler (~> 2.0)
180
+ danger-dangermattic!
181
+ guard (~> 2.18)
182
+ guard-rspec (~> 4.7)
183
+ pry
184
+ rake (~> 13.1)
185
+ rspec (~> 3.4)
186
+ rubocop-rake
187
+ rubocop-rspec
188
+ yard
189
+
190
+ BUNDLED WITH
191
+ 2.4.13
data/Guardfile ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A guardfile for making Danger Plugins
4
+ # For more info see https://github.com/guard/guard#readme
5
+
6
+ # To run, use `bundle exec guard`.
7
+
8
+ guard :rspec, cmd: 'bundle exec rspec' do
9
+ require 'guard/rspec/dsl'
10
+ dsl = Guard::RSpec::Dsl.new(self)
11
+
12
+ # RSpec files
13
+ rspec = dsl.rspec
14
+ watch(rspec.spec_helper) { rspec.spec_dir }
15
+ watch(rspec.spec_support) { rspec.spec_dir }
16
+ watch(rspec.spec_files)
17
+
18
+ # Ruby files
19
+ ruby = dsl.ruby
20
+ dsl.watch_spec_files_for(ruby.lib_files)
21
+ end