fastlane-plugin-rustore 0.2.0 → 0.3.0
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
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fd8b75fbb201a3400db901e3d014e10697c12308b5c250fbc669d867181c1311
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2f5bbe7b9a5f5ab02531c81d47cbf7051eddbae7a338d747bc7befd204a0139a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1e2a1c5340c7c3a46aec090debc74b102123edc74cdb3b3222953cf82c29fa63e2dccf3f39571ec6d9186ad98dc220e34d2b9b0660eb2a6d8a8dc40b7788edf0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 10c5a5490ea0affce79e930e96c9e2de43fa5112c2768fe608a05140ee59054e3d584bba9b89a8f52ac3630647d33905c12fd1717bfea6ef21c8cdb6214d3ae5
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -7,6 +7,8 @@ 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            Пока что реализован базовый функционал с заливкой апк. Скриншоты, описание и прочие материалы наследуются от предыдущего релиза. Обработки ошибок нет. Если у вас уже есть черновик релиза, то скорей всего ничего не заработает. Черновик, созданный через апи, в админке отображаться не будет. Если случилась ошибка где-то на этапе заливки, то останется черновик, который будет мешать следующему запуску скрипта, удалить его лучше с помощью [питонскрипта](https://github.com/stfbee/python-rustore-api), а экшен удаления тут будет чуть позже.
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
            Также есть признаки того, что заливать апк из вне РФ больше нельзя (смотри [#2](https://github.com/stfbee/fastlane-plugin-rustore/issues/2)), так что выбирайте раннер, где будет запускаться скрипт.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       10 
12 
     | 
    
         
             
            ## Поехали
         
     | 
| 
       11 
13 
     | 
    
         | 
| 
       12 
14 
     | 
    
         
             
            Для начала добавь плагин в ваш fastlane проект:
         
     | 
| 
         @@ -20,7 +22,7 @@ fastlane add_plugin rustore 
     | 
|
| 
       20 
22 
     | 
    
         
             
                    hms_apk: "../../app-release-hms.apk",
         
     | 
| 
       21 
23 
     | 
    
         
             
                    package_name: "com.example.example",
         
     | 
| 
       22 
24 
     | 
    
         
             
                    publish_type: "MANUAL"
         
     | 
| 
       23 
     | 
    
         
            -
                     
     | 
| 
      
 25 
     | 
    
         
            +
                    key_id: "123123",
         
     | 
| 
       24 
26 
     | 
    
         
             
                    private_key: "MIIE....."
         
     | 
| 
       25 
27 
     | 
    
         
             
                )
         
     | 
| 
       26 
28 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -29,7 +31,7 @@ fastlane add_plugin rustore 
     | 
|
| 
       29 
31 
     | 
    
         
             
            * `hms_apk` - путь до .apk с Huawei-сервисами (опционально). У Рустора пока все плохо с документацией об этом, но залить его можно, что получится - пока хз. 
         
     | 
| 
       30 
32 
     | 
    
         
             
            * `package_name` - название пакета
         
     | 
| 
       31 
33 
     | 
    
         
             
            * `publish_type` - тип публикации (MANUAL - ручная, DELAYED - отложенная, INSTANTLY - автоматическая после модерации). По умолчанию - INSTANTLY. 
         
     | 
| 
       32 
     | 
    
         
            -
            * ` 
     | 
| 
      
 34 
     | 
    
         
            +
            * `key_id` и `private_key` надо взять в админке рустора, доступ к ним имеет только оунер.
         
     | 
| 
       33 
35 
     | 
    
         | 
| 
       34 
36 
     | 
    
         
             
            ## Ссылочки
         
     | 
| 
       35 
37 
     | 
    
         
             
            * [_fastlane_](https://github.com/fastlane/fastlane)
         
     | 
| 
         @@ -14,14 +14,14 @@ module Fastlane 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                  def self.run(params)
         
     | 
| 
       16 
16 
     | 
    
         
             
                    package_name = params[:package_name]
         
     | 
| 
       17 
     | 
    
         
            -
                     
     | 
| 
      
 17 
     | 
    
         
            +
                    key_id = params[:key_id]
         
     | 
| 
       18 
18 
     | 
    
         
             
                    private_key = params[:private_key]
         
     | 
| 
       19 
19 
     | 
    
         
             
                    publish_type = params[:publish_type]
         
     | 
| 
       20 
20 
     | 
    
         
             
                    gms_apk = params[:gms_apk]
         
     | 
| 
       21 
21 
     | 
    
         
             
                    hms_apk = params[:hms_apk]
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                    # Получение токена
         
     | 
| 
       24 
     | 
    
         
            -
                    token = Helper::RustoreHelper.get_token( 
     | 
| 
      
 24 
     | 
    
         
            +
                    token = Helper::RustoreHelper.get_token(key_id: key_id, private_key: private_key)
         
     | 
| 
       25 
25 
     | 
    
         
             
                    # Создание черновика
         
     | 
| 
       26 
26 
     | 
    
         
             
                    draft_id = Helper::RustoreHelper.create_draft(token, package_name, publish_type)
         
     | 
| 
       27 
27 
     | 
    
         
             
                    # Загрузка апк
         
     | 
| 
         @@ -41,9 +41,9 @@ module Fastlane 
     | 
|
| 
       41 
41 
     | 
    
         
             
                                                   env_name: "RUSTORE_PACKAGE_NAME",
         
     | 
| 
       42 
42 
     | 
    
         
             
                                                   description: "пакет приложения, например `com.example.example`",
         
     | 
| 
       43 
43 
     | 
    
         
             
                                                   optional: false),
         
     | 
| 
       44 
     | 
    
         
            -
                      FastlaneCore::ConfigItem.new(key: : 
     | 
| 
       45 
     | 
    
         
            -
                                                   env_name: " 
     | 
| 
       46 
     | 
    
         
            -
                                                   description: " 
     | 
| 
      
 44 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :key_id,
         
     | 
| 
      
 45 
     | 
    
         
            +
                                                   env_name: "RUSTORE_KEY_ID",
         
     | 
| 
      
 46 
     | 
    
         
            +
                                                   description: "идентификатор приватного ключа в русторе",
         
     | 
| 
       47 
47 
     | 
    
         
             
                                                   optional: false),
         
     | 
| 
       48 
48 
     | 
    
         
             
                      FastlaneCore::ConfigItem.new(key: :private_key,
         
     | 
| 
       49 
49 
     | 
    
         
             
                                                   env_name: "RUSTORE_PRIVATE_KEY",
         
     | 
| 
         @@ -29,18 +29,18 @@ module Fastlane 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    end
         
     | 
| 
       30 
30 
     | 
    
         
             
                  end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                  def self.rsa_sign(timestamp,  
     | 
| 
      
 32 
     | 
    
         
            +
                  def self.rsa_sign(timestamp, key_id, private_key)
         
     | 
| 
       33 
33 
     | 
    
         
             
                    key = OpenSSL::PKey::RSA.new("-----BEGIN RSA PRIVATE KEY-----\n#{private_key}\n-----END RSA PRIVATE KEY-----")
         
     | 
| 
       34 
     | 
    
         
            -
                    signature = key.sign(OpenSSL::Digest.new('SHA512'),  
     | 
| 
      
 34 
     | 
    
         
            +
                    signature = key.sign(OpenSSL::Digest.new('SHA512'), key_id + timestamp)
         
     | 
| 
       35 
35 
     | 
    
         
             
                    Base64.encode64(signature)
         
     | 
| 
       36 
36 
     | 
    
         
             
                  end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                  def self.get_token( 
     | 
| 
      
 38 
     | 
    
         
            +
                  def self.get_token(key_id:, private_key:)
         
     | 
| 
       39 
39 
     | 
    
         
             
                    timestamp = DateTime.now.iso8601(3)
         
     | 
| 
       40 
     | 
    
         
            -
                    signature = rsa_sign(timestamp,  
     | 
| 
      
 40 
     | 
    
         
            +
                    signature = rsa_sign(timestamp, key_id, private_key)
         
     | 
| 
       41 
41 
     | 
    
         
             
                    url = "/public/auth/"
         
     | 
| 
       42 
42 
     | 
    
         
             
                    response = connection.post(url) do |req|
         
     | 
| 
       43 
     | 
    
         
            -
                      req.body = {  
     | 
| 
      
 43 
     | 
    
         
            +
                      req.body = { keyId: key_id, timestamp: timestamp, signature: signature }
         
     | 
| 
       44 
44 
     | 
    
         
             
                    end
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                    UI.message("Debug: response #{response.body}") if ENV['DEBUG']
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: fastlane-plugin-rustore
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Vladislav Onishchenko
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire:
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-09-16 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -150,7 +150,7 @@ dependencies: 
     | 
|
| 
       150 
150 
     | 
    
         
             
                - - ">="
         
     | 
| 
       151 
151 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
152 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       153 
     | 
    
         
            -
            description:
         
     | 
| 
      
 153 
     | 
    
         
            +
            description: 
         
     | 
| 
       154 
154 
     | 
    
         
             
            email: pinkey.950@gmail.com
         
     | 
| 
       155 
155 
     | 
    
         
             
            executables: []
         
     | 
| 
       156 
156 
     | 
    
         
             
            extensions: []
         
     | 
| 
         @@ -166,7 +166,7 @@ homepage: https://github.com/stfbee/fastlane-plugin-rustore 
     | 
|
| 
       166 
166 
     | 
    
         
             
            licenses:
         
     | 
| 
       167 
167 
     | 
    
         
             
            - MIT
         
     | 
| 
       168 
168 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       169 
     | 
    
         
            -
            post_install_message:
         
     | 
| 
      
 169 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
       170 
170 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       171 
171 
     | 
    
         
             
            require_paths:
         
     | 
| 
       172 
172 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -181,8 +181,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       181 
181 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       182 
182 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       183 
183 
     | 
    
         
             
            requirements: []
         
     | 
| 
       184 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       185 
     | 
    
         
            -
            signing_key:
         
     | 
| 
      
 184 
     | 
    
         
            +
            rubygems_version: 3.5.16
         
     | 
| 
      
 185 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
       186 
186 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       187 
187 
     | 
    
         
             
            summary: Rustore fastlane integration plugin
         
     | 
| 
       188 
188 
     | 
    
         
             
            test_files: []
         
     |