From 7c97c1f26d97fd7aa432a317b011270e64e72f01 Mon Sep 17 00:00:00 2001 From: Gowtham Date: Fri, 24 Nov 2023 14:07:04 +0530 Subject: [PATCH] Add language property to service entity --- port-packages/packages.rb | 2 ++ port-service/action.yml | 14 ++++++++++++++ port-service/packages.rb | 2 ++ 3 files changed, 18 insertions(+) diff --git a/port-packages/packages.rb b/port-packages/packages.rb index 92aedc2..24db417 100644 --- a/port-packages/packages.rb +++ b/port-packages/packages.rb @@ -63,6 +63,7 @@ def extract_ruby_packages return unless File.exist?('Gemfile.lock') in_specification_block = false + version_pattern = /(~>|=>|>|=|<=|<)/ File.readlines('Gemfile.lock').each do |line| line.strip! @@ -71,6 +72,7 @@ def extract_ruby_packages in_specification_block = true elsif in_specification_block && line =~ /^(\S+)\s+\(([^,]+),.*\)$/ name, version = $1, $2 + version.gsub!(version_pattern, '').strip! $packages << {"properties" => {"name" => name, "version" => version, "language" => "Ruby"}, "blueprint" => "package", "identifier" => "#{name}@#{version}", "title" => "#{name}@#{version}"} elsif line.empty? && in_specification_block in_specification_block = false diff --git a/port-service/action.yml b/port-service/action.yml index bfca3d4..cffd9e4 100644 --- a/port-service/action.yml +++ b/port-service/action.yml @@ -9,6 +9,7 @@ inputs: required: true description: 'Client secret' testCoverage: + default: 0 required: false descripition: 'Service test coverage' sonarStatus: @@ -30,6 +31,18 @@ runs: run: | echo "identifiers=$(echo '${{steps.extract-packages.outputs.packages}}' | jq --compact-output -r '[.[] | .identifier]')" >> "$GITHUB_OUTPUT" + - uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7' # Not needed with a .ruby-version file + + - name: "Service language" + id: service-language + shell: bash + run: | + gem install github-linguist + language=`github-linguist | head -1 | awk '{print $3}'` + echo "language=$language" >> "$GITHUB_OUTPUT" + # Extract packages from package manager version file based on the language. - name: "Readme content" id: readme @@ -51,6 +64,7 @@ runs: "url": "${{ github.server_url }}/${{ github.repository }}", "README": "${{ steps.readme.outputs.readme }}", "about": "${{ github.event.repository.description }}", + "language": "${{ steps.service-language.outputs.language }}", "test_coverage": "${{ inputs.testCoverage }}", "sonar_status": "${{ inputs.sonarStatus }}" } diff --git a/port-service/packages.rb b/port-service/packages.rb index 92aedc2..24db417 100644 --- a/port-service/packages.rb +++ b/port-service/packages.rb @@ -63,6 +63,7 @@ def extract_ruby_packages return unless File.exist?('Gemfile.lock') in_specification_block = false + version_pattern = /(~>|=>|>|=|<=|<)/ File.readlines('Gemfile.lock').each do |line| line.strip! @@ -71,6 +72,7 @@ def extract_ruby_packages in_specification_block = true elsif in_specification_block && line =~ /^(\S+)\s+\(([^,]+),.*\)$/ name, version = $1, $2 + version.gsub!(version_pattern, '').strip! $packages << {"properties" => {"name" => name, "version" => version, "language" => "Ruby"}, "blueprint" => "package", "identifier" => "#{name}@#{version}", "title" => "#{name}@#{version}"} elsif line.empty? && in_specification_block in_specification_block = false