Module: StillActive::DepsDevClient
- Extended by:
- DepsDevClient
- Included in:
- DepsDevClient
- Defined in:
- lib/still_active/deps_dev_client.rb
Constant Summary collapse
- BASE_URI =
URI("https://api.deps.dev/")
Instance Method Summary collapse
- #advisory_detail(advisory_id:) ⇒ Object
- #project_scorecard(project_id:) ⇒ Object
- #version_info(gem_name:, version:) ⇒ Object
Instance Method Details
#advisory_detail(advisory_id:) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/still_active/deps_dev_client.rb', line 40 def advisory_detail(advisory_id:) return if advisory_id.nil? path = "/v3alpha/advisories/#{encode(advisory_id)}" body = HttpHelper.get_json(BASE_URI, path) return if body.nil? { id: body.dig("advisoryKey", "id"), url: body["url"], title: body["title"], aliases: body["aliases"]&.map { |a| a["id"] } || [], cvss3_score: body["cvss3Score"], cvss3_vector: body["cvss3Vector"], cvss2_score: body["cvss2Score"], source: "deps.dev", } end |
#project_scorecard(project_id:) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/still_active/deps_dev_client.rb', line 24 def project_scorecard(project_id:) return if project_id.nil? path = "/v3alpha/projects/#{encode(project_id)}" body = HttpHelper.get_json(BASE_URI, path) return if body.nil? scorecard = body["scorecard"] return if scorecard.nil? { score: scorecard["overallScore"], date: scorecard["date"], } end |
#version_info(gem_name:, version:) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/still_active/deps_dev_client.rb', line 11 def version_info(gem_name:, version:) return if gem_name.nil? || version.nil? path = "/v3alpha/systems/rubygems/packages/#{encode(gem_name)}/versions/#{encode(version)}" body = HttpHelper.get_json(BASE_URI, path) return if body.nil? { advisory_keys: body.dig("advisoryKeys")&.map { |a| a["id"] } || [], project_id: extract_project_id(body), } end |