File tree Expand file tree Collapse file tree 12 files changed +476
-653
lines changed
lib/cc/engine/bundler_audit Expand file tree Collapse file tree 12 files changed +476
-653
lines changed Original file line number Diff line number Diff line change @@ -6,12 +6,13 @@ RUN apk --update add ruby ruby-dev ruby-bundler build-base git
66COPY Gemfile /usr/src/app/
77COPY Gemfile.lock /usr/src/app/
88RUN bundle install -j 4 && \
9- bundle-audit update && \
109 apk del build-base && rm -fr /usr/share/ri
1110
1211RUN adduser -u 9000 -D app
1312USER app
1413
14+ RUN bundle-audit update
15+
1516COPY . /usr/src/app
1617
1718CMD ["/usr/src/app/bin/bundler-audit" ]
Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ def remediation_points
6767 end
6868
6969 def severity
70- SEVERITIES [ advisory . criticality ]
70+ SEVERITIES . fetch ( advisory . criticality , "normal" )
7171 end
7272
7373 def solution
Original file line number Diff line number Diff line change @@ -4,7 +4,8 @@ module BundlerAudit
44 class UnpatchedGemRemediation
55 MAJOR_UPGRADE_POINTS = 50_000_000
66 MINOR_UPGRADE_POINTS = 5_000_000
7- PATCH_UPGRADE_POINTS = 500_000
7+ TINY_UPGRADE_POINTS = 500_000
8+ MINIMUM_UPGRADE_POINTS = 50_000
89 UNPATCHED_VERSION_POINTS = 500_000_000
910
1011 def initialize ( gem_version , patched_versions )
@@ -31,7 +32,9 @@ def calculate_points(upgrade_version)
3132 when current_version . minor != upgrade_version . minor
3233 MINOR_UPGRADE_POINTS
3334 when current_version . tiny != upgrade_version . tiny
34- PATCH_UPGRADE_POINTS
35+ TINY_UPGRADE_POINTS
36+ else
37+ MINIMUM_UPGRADE_POINTS
3538 end
3639 end
3740
Original file line number Diff line number Diff line change @@ -15,15 +15,19 @@ module CC::Engine::BundlerAudit
1515
1616 issues = analyze_directory ( directory )
1717
18- expect ( issues ) . to eq ( expected_issues ( "unpatched_versions" ) )
18+ expected_issues ( "unpatched_versions" ) . each do |expected_issue |
19+ expect ( issues ) . to include ( expected_issue )
20+ end
1921 end
2022
2123 it "emits issues for insecure sources in Gemfile.lock" do
22- directory = fixture_directory ( "insecure_source " )
24+ directory = fixture_directory ( "insecure_sources " )
2325
2426 issues = analyze_directory ( directory )
2527
26- expect ( issues ) . to eq ( expected_issues ( "insecure_source" ) )
28+ expected_issues ( "insecure_sources" ) . each do |expected_issue |
29+ expect ( issues ) . to include ( expected_issue )
30+ end
2731 end
2832
2933 it "logs to stderr when we encounter an unsupported vulnerability" do
Original file line number Diff line number Diff line change @@ -15,10 +15,28 @@ module CC::Engine::BundlerAudit
1515 expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::MINOR_UPGRADE_POINTS )
1616 end
1717
18- it "returns patch upgrade remediation points when an upgrade requies a patch version bump" do
19- remediation = UnpatchedGemRemediation . new ( "1.0.0 " , %w[ 1.0.3 2.0.3 ] )
18+ it "returns tiny upgrade remediation points when an upgrade requies a tiny version bump" do
19+ remediation = UnpatchedGemRemediation . new ( "1.0" , %w[ 1.0.2 ] )
2020
21- expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::PATCH_UPGRADE_POINTS )
21+ expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::TINY_UPGRADE_POINTS )
22+ end
23+
24+ it "returns minimum upgrade remediation points when an upgrade requies a <= tiny2 version bump" do
25+ remediation = UnpatchedGemRemediation . new ( "1.0" , %w[ 1.0.0.2-2 ] )
26+
27+ expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::MINIMUM_UPGRADE_POINTS )
28+
29+ remediation = UnpatchedGemRemediation . new ( "1.0" , %w[ 1.0.0.2-2 ] )
30+
31+ expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::MINIMUM_UPGRADE_POINTS )
32+
33+ remediation = UnpatchedGemRemediation . new ( "1.0" , %w[ 1.0a2 ] )
34+
35+ expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::MINIMUM_UPGRADE_POINTS )
36+
37+ remediation = UnpatchedGemRemediation . new ( "1.0" , %w[ 1.0b2 ] )
38+
39+ expect ( remediation . points ) . to eq ( UnpatchedGemRemediation ::MINIMUM_UPGRADE_POINTS )
2240 end
2341
2442 it "returns unpatched version remediation points when an upgrade is not possible" do
You can’t perform that action at this time.
0 commit comments