apprepo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bd547e9cce7c88aed5a608c31780f8102217da0b
4
+ data.tar.gz: 52c5fc0501fc93cae235323b4fcf8d5f6eccae30
5
+ SHA512:
6
+ metadata.gz: fec94ca077861b568eedcab127030e909d0ff02197feb11693bafa2d6a348cb9368149c2d1029351bf32815668e783c7280aca0915bc1af078208b69fbb5b2ca
7
+ data.tar.gz: a53949bee9c0b95a942e84c9e2b4dcda9b7f40ba690b0522c4e7514f0fa3423bbe8e7043fca4294eac58f2760fd60b060db34c3586c4211ddaa3b5555dd88377
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Felix Krause
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,140 @@
1
+ <h3 align="center">
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="assets/fastlane.png" width="150" />
4
+ <br />
5
+ fastlane
6
+ </a>
7
+ </h3>
8
+ <p align="center">
9
+ <b>apprepo</b> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
18
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
19
+ <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
23
+ </p>
24
+ -------
25
+
26
+ <p align="center">
27
+ <img src="assets/apprepo.png" height="110">
28
+ </p>
29
+
30
+ apprepo
31
+ ============
32
+
33
+ [![Twitter: @igraczech](https://img.shields.io/badge/contact-%40igraczech-green.svg?style=flat)](https://twitter.com/igraczech)
34
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/deliver/LICENSE)
35
+ [![Gem](https://img.shields.io/badge/gem-0.0.1-blue.svg)](http://rubygems.org/gems/apprepo)
36
+ [![Build Status](https://img.shields.io/circleci/project/apprepo/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
37
+
38
+ ###### Upload screenshots, metadata and your app to the App Store using a single command
39
+
40
+ `apprepo` can upload ipa files, app icons and metadata to T-Mobile Enterprise AppRepo from the command line.
41
+
42
+ Get in contact with the developer on Twitter: [@igraczech](https://twitter.com/igraczech)
43
+
44
+ -------
45
+ <p align="center">
46
+ <a href="#features">Features</a> &bull;
47
+ <a href="#installation">Installation</a> &bull;
48
+ <a href="#quick-start">Quick Start</a> &bull;
49
+ <a href="#usage">Usage</a> &bull;
50
+ <a href="#tips">Tips</a> &bull;
51
+ <a href="#need-help">Need help?</a>
52
+ </p>
53
+
54
+ -------
55
+
56
+ <h5 align="center"><code>deliver</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate building and releasing your iOS and Android apps.</h5>
57
+
58
+ # Features
59
+ - Upload to AppRepo completely automatically
60
+ - Upload a new ipa file to AppRepo without Xcode from any Mac
61
+ - Maintain your app metadata locally and push changes back to AppRepo
62
+ - Easily implement a real Continuous Deployment process using [fastlane](https://fastlane.tools)
63
+ - Store the configuration in git to easily deploy from **any** Mac, including your Continuous Integration server
64
+
65
+ To upload builds to AppStore check out [deliver](https://github.com/fastlane/fastlane/tree/master/deliver).
66
+
67
+ To upload builds to TestFlight check out [pilot](https://github.com/fastlane/fastlane/tree/master/pilot).
68
+
69
+ ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
70
+
71
+ # Installation
72
+
73
+ Install the gem
74
+
75
+ sudo gem install apprepo
76
+
77
+ Make sure, you have the latest version of the Xcode command line tools installed:
78
+
79
+ xcode-select --install
80
+
81
+ # Quick Start
82
+
83
+ The guide will create all the necessary files for you, using the existing app metadata from iTunes Connect.
84
+
85
+ - ```cd [your_project_folder]```
86
+ - ```apprepo init```
87
+ - Enter your AppRepo credentials (path to RSA private key)
88
+ - Enter your app-code
89
+ - Enjoy a good drink, while the computer does all the work for you
90
+
91
+ From now on, you can run `apprepo` to deploy a new update, or just upload new app metadata and icons.
92
+
93
+ Already using Jenkins and just updated to `apprepo`? Check out the [Migration Guide](https://github.com/fastlane/fastlane/blob/master/deliver/MigrationGuide.md).
94
+
95
+ # Usage
96
+
97
+ ...
98
+
99
+ # Credentials
100
+
101
+ ...
102
+
103
+ ### How does this thing even work? Is magic involved? 🎩###
104
+
105
+ ...
106
+
107
+ # Tips
108
+
109
+ ## [`fastlane`](https://fastlane.tools) Toolchain
110
+
111
+ - [`fastlane`](https://fastlane.tools): The easiest way to automate building and releasing your iOS and Android apps
112
+ - [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
113
+ - [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
114
+ - [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
115
+ - [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
116
+ - [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
117
+ - [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
118
+ - [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
119
+ - [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
120
+ - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
121
+ - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
122
+ - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
123
+ - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
124
+
125
+ ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
126
+
127
+
128
+ ## Editing the ```Deliverfile```
129
+ Change syntax highlighting to *Ruby*.
130
+
131
+ # Need help?
132
+ Please submit an issue on GitHub and provide information about your setup
133
+
134
+ # Code of Conduct
135
+ Help us keep `apprepo` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
136
+
137
+ # License
138
+ This project is licensed under the terms of the MIT license. See the LICENSE file.
139
+
140
+ > This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+ require_relative 'apprepo/version'
5
+ require_relative 'apprepo/uploader'
6
+ require_relative 'apprepo/upload_descriptor'
7
+ require 'fastlane_core'
8
+
9
+ module AppRepo
10
+
11
+ class << self
12
+ def initialize
13
+ puts 'Initializing "AppRepo:Uploader"'
14
+ end
15
+ end
16
+
17
+ Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
18
+ UI = FastlaneCore::UI
19
+
20
+ # Should read following parameters from fastlane/Repofile:
21
+ #test only
22
+ upload = Uploader.new('repo.teacloud.net', 'ubuntu', '/Users/sychram/.ssh/REPOKey.pem')
23
+ uploadDescriptor = UploadDescriptor.new("APPREPO")
24
+ upload.run
25
+ end
@@ -0,0 +1,39 @@
1
+ module AppRepo
2
+
3
+ class Manifest
4
+
5
+ #
6
+ # Translated internal key names from Fastlane to AppRepo
7
+ #
8
+
9
+ attr_accessor :appcode # AppRepo Internal Code
10
+ attr_accessor :filename # IPA file name
11
+ attr_accessor :bundle_identifier # app_identifier
12
+ attr_accessor :bundle_version # app_version
13
+ attr_accessor :title # app_name
14
+ attr_accessor :subtitle # app_description
15
+ attr_accessor :notify # will send push notification / slack
16
+
17
+ def initialize (appcode)
18
+ self.appcode = appcode
19
+ puts 'Initializing "AppRepo:Manifest requies at least APPCODE :"'+self.appcode
20
+ end
21
+
22
+ # Provide JSON serialized data
23
+ def getJSON
24
+ structure = {
25
+ appcode: self.appcode,
26
+ filename: self.filename,
27
+ bundle_identifier: self.bundle_identifier,
28
+ bundle_version: self.bundle_version,
29
+ title: self.title,
30
+ subtitle: self.subtitle,
31
+ notify: self.notify
32
+ }
33
+
34
+ fputs structure
35
+ end
36
+
37
+ end
38
+ end
39
+
@@ -0,0 +1,14 @@
1
+ module AppRepo
2
+
3
+ class UploadDescriptor
4
+
5
+ attr_accessor :appcode
6
+
7
+ def initialize (appcode)
8
+ self.appcode = appcode
9
+ puts 'Initializing "AppRepo:UploadDescriptor with appcode "'+self.appcode
10
+ end
11
+ end
12
+
13
+ end
14
+
@@ -0,0 +1,102 @@
1
+ require 'rubygems'
2
+ require 'net/ssh'
3
+ require 'net/sftp'
4
+ require 'fastlane_core/languages'
5
+ require_relative 'upload_descriptor'
6
+
7
+ module AppRepo
8
+
9
+ class Uploader
10
+
11
+ attr_accessor :host
12
+
13
+ attr_accessor :login
14
+
15
+ attr_accessor :keypath
16
+
17
+ def initialize (host, login, keypath)
18
+ self.host = host
19
+ self.login = login
20
+ self.keypath = keypath
21
+ puts 'Initializing "AppRepo:Uploader"'
22
+ end
23
+
24
+ def run
25
+
26
+ File.open(self.keypath, "r") do |file|
27
+
28
+ puts '[AppRepo:Uploader] reading private key...'
29
+
30
+ rsa_key = [ file.read ]
31
+
32
+ puts '[AppRepo:Uploader] starting SSH connection...'
33
+
34
+ Net::SSH.start( self.host, self.login, :key_data => rsa_key, :keys_only => true) do |ssh|
35
+
36
+ puts '[AppRepo:Uploader] logging to AppRepo...'
37
+
38
+ ssh.sftp.connect do |sftp|
39
+
40
+ puts '[AppRepo:Uploader] AppRepo successfully connected...'
41
+
42
+ puts '[AppRepo:Uploader] TODO: Traverse to correct "APPCODE" folder...'
43
+
44
+ result = ssh.exec!('cd repo/apps; ls')
45
+ puts result
46
+
47
+ # upload a file or directory to the remote host
48
+ sftp.upload!("/Users/sychram/test.data", "/home/ubuntu/repo/test.data")
49
+
50
+ result = ssh.exec!('ls')
51
+
52
+ puts result
53
+
54
+ remote = '/home/ubuntu/repo/test.data'
55
+ local = '/Users/sychram/test.data.from-remote'
56
+
57
+ # download a file or directory from the remote host
58
+ sftp.download!(remote, local)
59
+
60
+ # grab data off the remote host directly to a buffer
61
+ data = sftp.download!(remote)
62
+
63
+ # open and write to a pseudo-IO for a remote file
64
+ sftp.file.open(remote, "w") do |f|
65
+ f.puts "Hello, world!\n"
66
+ end
67
+
68
+ # open and read from a pseudo-IO for a remote file
69
+ sftp.file.open(remote, "r") do |f|
70
+ puts f.gets
71
+ end
72
+
73
+ directory = '/home/ubuntu/ruby-test'
74
+
75
+ # safely make a directory
76
+ begin
77
+ sftp.mkdir directory
78
+ rescue Net::SFTP::StatusException => e
79
+ # verify if this returns 11. Your server may return
80
+ # something different like 4.
81
+ if e.code == 11
82
+ puts "directory already exists. Carry on..."
83
+ sftp.rmdir!("/home/ubuntu/ruby-test")
84
+ else
85
+ raise
86
+ end
87
+
88
+ end
89
+
90
+ # list the entries in a directory
91
+ sftp.dir.foreach(".") do |entry|
92
+ puts entry.longname
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+ #upload = new AppRepo:Upload('repo.teacloud.net', 'ubuntu', '/Users/sychram/.ssh/REPOKey.pem')
100
+
101
+ end
102
+ end
@@ -0,0 +1,4 @@
1
+ module AppRepo
2
+ VERSION = "0.0.1"
3
+ DESCRIPTION = 'Upload icon, metadata and your app to the T-Mobile Enterprise AppRepo and notify users on updaet using a single command'
4
+ end
@@ -0,0 +1 @@
1
+ testdata
@@ -0,0 +1 @@
1
+ testdata
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'net/ssh'
5
+ require 'net/sftp'
6
+
7
+ #
8
+ # These want to be an input parameters:
9
+ #
10
+
11
+ host = 'repo.teacloud.net'
12
+ user = 'ubuntu'
13
+ keypath = '/Users/sychram/.ssh/REPOKey.pem'
14
+
15
+ File.open(keypath, "r") do |file|
16
+
17
+ rsa_key = [ file.read ]
18
+
19
+ Net::SSH.start( host, user, :key_data => rsa_key, :keys_only => true) do |ssh|
20
+
21
+ ssh.sftp.connect do |sftp|
22
+
23
+ # upload a file or directory to the remote host
24
+ sftp.upload!("/Users/sychram/test.data", "/home/ubuntu/repo/test.data")
25
+
26
+ result = ssh.exec!('ls')
27
+
28
+ puts result
29
+
30
+ remote = '/home/ubuntu/repo/test.data'
31
+ local = '/Users/sychram/test.data.from-remote'
32
+
33
+ # download a file or directory from the remote host
34
+ sftp.download!(remote, local)
35
+
36
+ # grab data off the remote host directly to a buffer
37
+ data = sftp.download!(remote)
38
+
39
+ # open and write to a pseudo-IO for a remote file
40
+ sftp.file.open(remote, "w") do |f|
41
+ f.puts "Hello, world!\n"
42
+ end
43
+
44
+ # open and read from a pseudo-IO for a remote file
45
+ sftp.file.open(remote, "r") do |f|
46
+ puts f.gets
47
+ end
48
+
49
+ directory = '/home/ubuntu/ruby-test'
50
+
51
+ # safely make a directory
52
+ begin
53
+ sftp.mkdir directory
54
+ rescue Net::SFTP::StatusException => e
55
+ # verify if this returns 11. Your server may return
56
+ # something different like 4.
57
+ if e.code == 11
58
+ puts "directory already exists. Carry on..."
59
+ sftp.rmdir!("/home/ubuntu/ruby-test")
60
+ else
61
+ raise
62
+ end
63
+ end
64
+
65
+ # list the entries in a directory
66
+ sftp.dir.foreach(".") do |entry|
67
+ puts entry.longname
68
+ end
69
+ end
70
+ end
71
+ end
metadata ADDED
@@ -0,0 +1,326 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apprepo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matej Sychra
8
+ - Felix Krause
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-05-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: fastlane_core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 0.43.1
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 0.43.1
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.0
34
+ - !ruby/object:Gem::Dependency
35
+ name: credentials_manager
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.16.0
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.16.0
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: net-ssh
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: net-sftp
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: fastimage
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.6'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.6'
96
+ - !ruby/object:Gem::Dependency
97
+ name: plist
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.1'
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 3.1.0
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.1'
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 3.1.0
116
+ - !ruby/object:Gem::Dependency
117
+ name: bundler
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ - !ruby/object:Gem::Dependency
131
+ name: rake
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ - !ruby/object:Gem::Dependency
145
+ name: rspec
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '3.1'
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: 3.1.0
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '3.1'
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: 3.1.0
164
+ - !ruby/object:Gem::Dependency
165
+ name: rspec_junit_formatter
166
+ requirement: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: 0.2.3
171
+ type: :development
172
+ prerelease: false
173
+ version_requirements: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: 0.2.3
178
+ - !ruby/object:Gem::Dependency
179
+ name: pry
180
+ requirement: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ - !ruby/object:Gem::Dependency
193
+ name: yard
194
+ requirement: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: 0.8.7.4
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - "~>"
204
+ - !ruby/object:Gem::Version
205
+ version: 0.8.7.4
206
+ - !ruby/object:Gem::Dependency
207
+ name: webmock
208
+ requirement: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - "~>"
211
+ - !ruby/object:Gem::Version
212
+ version: '1.19'
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: 1.19.0
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '1.19'
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: 1.19.0
226
+ - !ruby/object:Gem::Dependency
227
+ name: coveralls
228
+ requirement: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ - !ruby/object:Gem::Dependency
241
+ name: fastlane
242
+ requirement: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - "~>"
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - "~>"
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ - !ruby/object:Gem::Dependency
255
+ name: rubocop
256
+ requirement: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: 0.38.0
261
+ type: :development
262
+ prerelease: false
263
+ version_requirements: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - "~>"
266
+ - !ruby/object:Gem::Version
267
+ version: 0.38.0
268
+ - !ruby/object:Gem::Dependency
269
+ name: fakefs
270
+ requirement: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - "~>"
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ type: :development
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - "~>"
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ description: Upload icon, metadata and your app to the T-Mobile Enterprise AppRepo
283
+ and notify users on updaet using a single command
284
+ email:
285
+ - suculent@me.com
286
+ executables: []
287
+ extensions: []
288
+ extra_rdoc_files: []
289
+ files:
290
+ - LICENSE
291
+ - README.md
292
+ - lib/apprepo.rb
293
+ - lib/apprepo/manifest.rb
294
+ - lib/apprepo/upload_descriptor.rb
295
+ - lib/apprepo/uploader.rb
296
+ - lib/apprepo/version.rb
297
+ - lib/test.data
298
+ - lib/test.data.from-remote
299
+ - lib/test.rb
300
+ homepage: https://github.com/suculent/apprepo
301
+ licenses:
302
+ - MIT
303
+ metadata: {}
304
+ post_install_message:
305
+ rdoc_options: []
306
+ require_paths:
307
+ - lib
308
+ required_ruby_version: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ version: 2.0.0
313
+ required_rubygems_version: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - ">="
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
318
+ requirements: []
319
+ rubyforge_project:
320
+ rubygems_version: 2.6.1
321
+ signing_key:
322
+ specification_version: 4
323
+ summary: Upload icon, metadata and your app to the T-Mobile Enterprise AppRepo and
324
+ notify users on updaet using a single command
325
+ test_files: []
326
+ has_rdoc: