ci_toolkit 1.5.17 → 1.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -1
- data/Gemfile.lock +1 -1
- data/lib/ci_toolkit/build_status.rb +1 -1
- data/lib/ci_toolkit/seetest_bot.rb +2 -1
- data/lib/ci_toolkit/{seetest_upload.rb → seetest_client.rb} +35 -45
- data/lib/ci_toolkit.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cda24a26780af2c15fddb5fbcec7342eab295503cf25d03efc34342a41121db1
         | 
| 4 | 
            +
              data.tar.gz: 16acb67a59d264fe7a67bf7d9ab2a843940f26cdc7c037d583e9ebc7b2590e43
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 869f39c1325eeb759c755438c66113e153fa445b93b67c61bcfe203bbc4997d97d6bafb9aa94ade7279b11c4f0003920b94240a0a46e3ec12e616806fe64da6c
         | 
| 7 | 
            +
              data.tar.gz: 3f2b65acbc8bf32d78900c214b16f0380f019e55ec8ff3196c867591487bfe210a39dfc31aa3ca86f961ffb5ebc9beefdf976f5fd8b1ed7f19cfc94c8d4d5189
         | 
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            require "gitlab"
         | 
| 4 4 |  | 
| 5 5 | 
             
            module CiToolkit
         | 
| 6 | 
            -
              # Utility class that provides an  | 
| 6 | 
            +
              # Utility class that provides an faraday connection
         | 
| 7 7 | 
             
              class SeeTestBot
         | 
| 8 8 | 
             
                attr_reader :faraday_conn
         | 
| 9 9 |  | 
| @@ -27,6 +27,7 @@ module CiToolkit | |
| 27 27 | 
             
                    f.request :authorization, "Bearer", credentials.access_token
         | 
| 28 28 | 
             
                    f.request :multipart
         | 
| 29 29 | 
             
                    f.request :url_encoded
         | 
| 30 | 
            +
                    f.response :json, parser_options: { object_class: OpenStruct }
         | 
| 30 31 | 
             
                    f.adapter :net_http # A MUST for file upload to work with Faraday::Multipart::FilePart
         | 
| 31 32 | 
             
                  end
         | 
| 32 33 | 
             
                )
         | 
| @@ -5,19 +5,18 @@ require "faraday/net_http" | |
| 5 5 | 
             
            require "faraday/multipart"
         | 
| 6 6 |  | 
| 7 7 | 
             
            module CiToolkit
         | 
| 8 | 
            -
              #  | 
| 8 | 
            +
              # A client for Seetest webservice.
         | 
| 9 9 | 
             
              # See API doc for more info: https://docs.experitest.com/display/PM/How+To+Execute+Rest+API
         | 
| 10 10 | 
             
              # rubocop:disable Metrics/ClassLength
         | 
| 11 | 
            -
              class  | 
| 11 | 
            +
              class SeeTestClient
         | 
| 12 12 | 
             
                SUCCESS = "SUCCESS"
         | 
| 13 | 
            -
                BAD_REQUEST = "BAD_REQUEST"
         | 
| 14 13 | 
             
                OKAY = "OK"
         | 
| 15 14 | 
             
                ERROR = "ERROR"
         | 
| 15 | 
            +
                API_VERSION = "v1"
         | 
| 16 | 
            +
                attr_reader :faraday_conn
         | 
| 16 17 |  | 
| 17 | 
            -
                def initialize(
         | 
| 18 | 
            -
                   | 
| 19 | 
            -
                )
         | 
| 20 | 
            -
                  @bot = bot
         | 
| 18 | 
            +
                def initialize(bot = CiToolkit::SeeTestBot.new)
         | 
| 19 | 
            +
                  @faraday_conn = bot.faraday_conn
         | 
| 21 20 | 
             
                end
         | 
| 22 21 |  | 
| 23 22 | 
             
                # rubocop:disable Metrics/AbcSize
         | 
| @@ -28,39 +27,41 @@ module CiToolkit | |
| 28 27 | 
             
                  full_path_to_file:,
         | 
| 29 28 | 
             
                  content_type: "application/octet-stream"
         | 
| 30 29 | 
             
                )
         | 
| 31 | 
            -
                  uploaded = ""
         | 
| 32 | 
            -
             | 
| 33 30 | 
             
                  response = faraday_upload(
         | 
| 34 31 | 
             
                    project_name,
         | 
| 35 32 | 
             
                    unique_name,
         | 
| 36 33 | 
             
                    full_path_to_file,
         | 
| 37 34 | 
             
                    content_type
         | 
| 38 | 
            -
                  )
         | 
| 39 | 
            -
                  response_obj = get_response_body(response.body)
         | 
| 35 | 
            +
                  ).body
         | 
| 40 36 |  | 
| 41 | 
            -
                  # Application  | 
| 42 | 
            -
                  if  | 
| 43 | 
            -
                     | 
| 44 | 
            -
                       | 
| 37 | 
            +
                  # Application already exists. Replace it.
         | 
| 38 | 
            +
                  if response.status == SUCCESS && response.data.created == "false"
         | 
| 39 | 
            +
                    response = replace_existing_application(
         | 
| 40 | 
            +
                      response.data.id,
         | 
| 45 41 | 
             
                      project_name,
         | 
| 46 42 | 
             
                      unique_name,
         | 
| 47 43 | 
             
                      full_path_to_file,
         | 
| 48 44 | 
             
                      content_type
         | 
| 49 45 | 
             
                    )
         | 
| 50 | 
            -
                   | 
| 46 | 
            +
                  # Application with unique name already exist. Replace it.
         | 
| 47 | 
            +
                  elsif response.status == ERROR && !response.data.nil? && !response.data.uniqueName.nil?
         | 
| 51 48 | 
             
                    application_info_response = faraday_get_application_info(unique_name)
         | 
| 52 49 | 
             
                    application_id = application_info_response[0].id
         | 
| 53 | 
            -
                     | 
| 50 | 
            +
                    response = replace_existing_application(
         | 
| 54 51 | 
             
                      application_id,
         | 
| 55 52 | 
             
                      project_name,
         | 
| 56 53 | 
             
                      unique_name,
         | 
| 57 54 | 
             
                      full_path_to_file,
         | 
| 58 55 | 
             
                      content_type
         | 
| 59 56 | 
             
                    )
         | 
| 60 | 
            -
                  else
         | 
| 61 | 
            -
                    uploaded = response_obj
         | 
| 62 57 | 
             
                  end
         | 
| 63 | 
            -
             | 
| 58 | 
            +
             | 
| 59 | 
            +
                  unless response.status == SUCCESS
         | 
| 60 | 
            +
                    raise StandardError,
         | 
| 61 | 
            +
                          "Upload response from Seetest returned an error. Response body is: '#{response.marshal_dump}'"
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  response.status
         | 
| 64 65 | 
             
                end
         | 
| 65 66 | 
             
                # rubocop:enable Metrics/AbcSize Metrics/MethodLength
         | 
| 66 67 | 
             
                # rubocop:enable Metrics/MethodLength
         | 
| @@ -84,14 +85,13 @@ module CiToolkit | |
| 84 85 | 
             
                  full_path_to_file,
         | 
| 85 86 | 
             
                  content_type
         | 
| 86 87 | 
             
                )
         | 
| 87 | 
            -
                  response = faraday_upload(project_name, unique_name, full_path_to_file, content_type)
         | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
                    raise StandardError, "Upload response from Seetest returned an error. Response body is: '#{response.body}'"
         | 
| 88 | 
            +
                  response = faraday_upload(project_name, unique_name, full_path_to_file, content_type).body
         | 
| 89 | 
            +
                  unless response.status == SUCCESS && response.data.created == "true"
         | 
| 90 | 
            +
                    raise StandardError,
         | 
| 91 | 
            +
                          "Upload response from Seetest returned an error. Response body is: '#{response.marshal_dump}'"
         | 
| 92 92 | 
             
                  end
         | 
| 93 93 |  | 
| 94 | 
            -
                   | 
| 94 | 
            +
                  response
         | 
| 95 95 | 
             
                end
         | 
| 96 96 |  | 
| 97 97 | 
             
                def faraday_upload(
         | 
| @@ -106,38 +106,28 @@ module CiToolkit | |
| 106 106 | 
             
                    uniqueName: unique_name,
         | 
| 107 107 | 
             
                    project: project_name
         | 
| 108 108 | 
             
                  }
         | 
| 109 | 
            -
                  @ | 
| 109 | 
            +
                  @faraday_conn.post("/api/#{API_VERSION}/applications/new", params)
         | 
| 110 110 | 
             
                end
         | 
| 111 111 |  | 
| 112 112 | 
             
                def faraday_get_application_info(unique_name)
         | 
| 113 113 | 
             
                  params = { uniqueName: unique_name }
         | 
| 114 | 
            -
                  response = @ | 
| 115 | 
            -
                   | 
| 116 | 
            -
                  if response_obj.empty?
         | 
| 114 | 
            +
                  response = @faraday_conn.get("/api/#{API_VERSION}/applications", params).body
         | 
| 115 | 
            +
                  if response.empty?
         | 
| 117 116 | 
             
                    raise StandardError,
         | 
| 118 117 | 
             
                          "Get application info for uniqueName: #{unique_name} from Seetest returned an error. "\
         | 
| 119 | 
            -
                          "Response body is: '#{response | 
| 118 | 
            +
                          "Response body is: '#{response}'"
         | 
| 120 119 | 
             
                  end
         | 
| 121 | 
            -
             | 
| 122 | 
            -
                  response_obj
         | 
| 120 | 
            +
                  response
         | 
| 123 121 | 
             
                end
         | 
| 124 122 |  | 
| 125 123 | 
             
                def faraday_delete_application(application_id)
         | 
| 126 | 
            -
                  response = @ | 
| 127 | 
            -
             | 
| 128 | 
            -
                  response_obj = get_response_body(response.body)
         | 
| 129 | 
            -
             | 
| 130 | 
            -
                  unless  response_obj.status == SUCCESS && response_obj.code == OKAY
         | 
| 124 | 
            +
                  response = @faraday_conn.post("/api/#{API_VERSION}/applications/#{application_id}/delete").body
         | 
| 125 | 
            +
                  unless response.status == SUCCESS && response.code == OKAY
         | 
| 131 126 | 
             
                    raise StandardError,
         | 
| 132 127 | 
             
                          "Delete application id: #{application_id} from Seetest returned an error. "\
         | 
| 133 | 
            -
                          "Response body is: '#{response. | 
| 128 | 
            +
                          "Response body is: '#{response.marshal_dump}'"
         | 
| 134 129 | 
             
                  end
         | 
| 135 | 
            -
             | 
| 136 | 
            -
                  response_obj
         | 
| 137 | 
            -
                end
         | 
| 138 | 
            -
             | 
| 139 | 
            -
                def get_response_body(response)
         | 
| 140 | 
            -
                  JSON.parse(response, object_class: OpenStruct)
         | 
| 130 | 
            +
                  response
         | 
| 141 131 | 
             
                end
         | 
| 142 132 | 
             
              end
         | 
| 143 133 | 
             
              # rubocop:enable Metrics/ClassLength
         | 
    
        data/lib/ci_toolkit.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ require "ci_toolkit/gitlab_bot" | |
| 11 11 | 
             
            require "ci_toolkit/gitlab_pr"
         | 
| 12 12 | 
             
            require "ci_toolkit/gitlab_release"
         | 
| 13 13 | 
             
            require "ci_toolkit/seetest_bot"
         | 
| 14 | 
            -
            require "ci_toolkit/ | 
| 14 | 
            +
            require "ci_toolkit/seetest_client"
         | 
| 15 15 | 
             
            require "ci_toolkit/dvcs_pr_factory"
         | 
| 16 16 | 
             
            require "ci_toolkit/git"
         | 
| 17 17 | 
             
            require "ci_toolkit/jira"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ci_toolkit
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.5. | 
| 4 | 
            +
              version: 1.5.20
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Gero Keller
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2023-04-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -248,7 +248,7 @@ files: | |
| 248 248 | 
             
            - lib/ci_toolkit/pr_messenger.rb
         | 
| 249 249 | 
             
            - lib/ci_toolkit/pr_messenger_text.rb
         | 
| 250 250 | 
             
            - lib/ci_toolkit/seetest_bot.rb
         | 
| 251 | 
            -
            - lib/ci_toolkit/ | 
| 251 | 
            +
            - lib/ci_toolkit/seetest_client.rb
         | 
| 252 252 | 
             
            - transform_coverage_data.rb
         | 
| 253 253 | 
             
            homepage: https://github.com/crvshlab/ci_toolkit
         | 
| 254 254 | 
             
            licenses:
         |