arvados-google-api-client 0.8.7.5 → 0.8.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -215
- data/arvados-google-api-client.gemspec +7 -2
- data/lib/google/api_client/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b66c7d46eb69544bbd4dceb0187b3e8c794b0eab06a88b0f0c12815f095f40b
|
4
|
+
data.tar.gz: e8948b2721dcd00013c816d36d1fc602a5ce15918d1c0d28b2722855f761f9a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 543b11a3bd80fb68891f7767760394f90c327274e53c1183e628c7f81d648f0b84d2a24ea7b63e8942af2bb62d1ef6a39f6657c22d749ee995cc47605ace9ec4
|
7
|
+
data.tar.gz: 88bbf7ee54bb883383f807948859e60af6793fa67d938c02a4d41cea729477fb46c43d67a428980187f9bfecf6f5552ec36b155650d1a5c81e931156ce8bb73e
|
data/README.md
CHANGED
@@ -1,218 +1,7 @@
|
|
1
|
-
# Google API Client
|
1
|
+
# Arvados Google API Client
|
2
2
|
|
3
|
-
|
4
|
-
<dt>Homepage</dt><dd><a href="http://www.github.com/google/google-api-ruby-client">http://www.github.com/google/google-api-ruby-client</a></dd>
|
5
|
-
<dt>Authors</dt><dd>Bob Aman, <a href="mailto:sbazyl@google.com">Steven Bazyl</a></dd>
|
6
|
-
<dt>Copyright</dt><dd>Copyright © 2011 Google, Inc.</dd>
|
7
|
-
<dt>License</dt><dd>Apache 2.0</dd>
|
8
|
-
</dl>
|
3
|
+
This is a fork of the google-api-client gem, based on https://github.com/google/google-api-ruby-client version 0.8.6.
|
9
4
|
|
10
|
-
|
11
|
-
[![Dependency Status](https://gemnasium.com/google/google-api-ruby-client.png)](https://gemnasium.com/google/google-api-ruby-client)
|
5
|
+
It adds compatibility fixes for newer versions of dependencies (Ruby, faraday, etc.) while avoiding the breaking API changes that have been made in the upstream project.
|
12
6
|
|
13
|
-
|
14
|
-
|
15
|
-
The Google API Ruby Client makes it trivial to discover and access supported
|
16
|
-
APIs.
|
17
|
-
|
18
|
-
## Alpha
|
19
|
-
|
20
|
-
This library is in Alpha. We will make an effort to support the library, but we reserve the right to make incompatible changes when necessary.
|
21
|
-
|
22
|
-
## Install
|
23
|
-
|
24
|
-
Be sure `https://rubygems.org/` is in your gem sources.
|
25
|
-
|
26
|
-
For normal client usage, this is sufficient:
|
27
|
-
|
28
|
-
```bash
|
29
|
-
$ gem install google-api-client
|
30
|
-
```
|
31
|
-
|
32
|
-
## Example Usage
|
33
|
-
|
34
|
-
```ruby
|
35
|
-
require 'google/api_client'
|
36
|
-
require 'google/api_client/client_secrets'
|
37
|
-
require 'google/api_client/auth/installed_app'
|
38
|
-
|
39
|
-
# Initialize the client.
|
40
|
-
client = Google::APIClient.new(
|
41
|
-
:application_name => 'Example Ruby application',
|
42
|
-
:application_version => '1.0.0'
|
43
|
-
)
|
44
|
-
|
45
|
-
# Initialize Google+ API. Note this will make a request to the
|
46
|
-
# discovery service every time, so be sure to use serialization
|
47
|
-
# in your production code. Check the samples for more details.
|
48
|
-
plus = client.discovered_api('plus')
|
49
|
-
|
50
|
-
# Load client secrets from your client_secrets.json.
|
51
|
-
client_secrets = Google::APIClient::ClientSecrets.load
|
52
|
-
|
53
|
-
# Run installed application flow. Check the samples for a more
|
54
|
-
# complete example that saves the credentials between runs.
|
55
|
-
flow = Google::APIClient::InstalledAppFlow.new(
|
56
|
-
:client_id => client_secrets.client_id,
|
57
|
-
:client_secret => client_secrets.client_secret,
|
58
|
-
:scope => ['https://www.googleapis.com/auth/plus.me']
|
59
|
-
)
|
60
|
-
client.authorization = flow.authorize
|
61
|
-
|
62
|
-
# Make an API call.
|
63
|
-
result = client.execute(
|
64
|
-
:api_method => plus.activities.list,
|
65
|
-
:parameters => {'collection' => 'public', 'userId' => 'me'}
|
66
|
-
)
|
67
|
-
|
68
|
-
puts result.data
|
69
|
-
```
|
70
|
-
|
71
|
-
## API Features
|
72
|
-
|
73
|
-
### API Discovery
|
74
|
-
|
75
|
-
To take full advantage of the client, load API definitions prior to use. To load an API:
|
76
|
-
|
77
|
-
```ruby
|
78
|
-
urlshortener = client.discovered_api('urlshortener')
|
79
|
-
```
|
80
|
-
|
81
|
-
Specific versions of the API can be loaded as well:
|
82
|
-
|
83
|
-
```ruby
|
84
|
-
drive = client.discovered_api('drive', 'v2')
|
85
|
-
```
|
86
|
-
|
87
|
-
Locally cached discovery documents may be used as well. To load an API from a local file:
|
88
|
-
|
89
|
-
```ruby
|
90
|
-
# Output discovery document to JSON
|
91
|
-
File.open('my-api.json', 'w') do |f| f.puts MultiJson.dump(client.discovery_document('myapi', 'v1')) end
|
92
|
-
|
93
|
-
# Read discovery document and load API
|
94
|
-
doc = File.read('my-api.json')
|
95
|
-
client.register_discovery_document('myapi', 'v1', doc)
|
96
|
-
my_api = client.discovered_api('myapi', 'v1')
|
97
|
-
```
|
98
|
-
|
99
|
-
### Authorization
|
100
|
-
|
101
|
-
Most interactions with Google APIs require users to authorize applications via OAuth 2.0. The client library uses [Signet](https://github.com/google/signet) to handle most aspects of authorization. For additional details about Google's OAuth support, see [Google Developers](https://developers.google.com/accounts/docs/OAuth2).
|
102
|
-
|
103
|
-
Credentials can be managed at the connection level, as shown, or supplied on a per-request basis when calling `execute`.
|
104
|
-
|
105
|
-
For server-to-server interactions, like those between a web application and Google Cloud Storage, Prediction, or BigQuery APIs, use service accounts.
|
106
|
-
|
107
|
-
As of version 0.8.3, service accounts can be configured using
|
108
|
-
[Application Default Credentials][1], which rely on the credentials being
|
109
|
-
available in a well-known location. If the credentials are not present
|
110
|
-
and it's being used on a Compute Engine VM, it will use the VM's default credentials.
|
111
|
-
|
112
|
-
```ruby
|
113
|
-
client.authorization = :google_app_default # in a later version, this will become the default
|
114
|
-
client.authorization.fetch_access_token!
|
115
|
-
client.execute(...)
|
116
|
-
```
|
117
|
-
|
118
|
-
This is simpler API to use than in previous versions, although that is still available:
|
119
|
-
|
120
|
-
```ruby
|
121
|
-
key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret')
|
122
|
-
client.authorization = Signet::OAuth2::Client.new(
|
123
|
-
:token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
|
124
|
-
:audience => 'https://accounts.google.com/o/oauth2/token',
|
125
|
-
:scope => 'https://www.googleapis.com/auth/prediction',
|
126
|
-
:issuer => '123456-abcdef@developer.gserviceaccount.com',
|
127
|
-
:signing_key => key)
|
128
|
-
client.authorization.fetch_access_token!
|
129
|
-
client.execute(...)
|
130
|
-
```
|
131
|
-
|
132
|
-
Service accounts are also used for delegation in Google Apps domains. The target user for impersonation is specified by setting the `:person` parameter to the user's email address
|
133
|
-
in the credentials. Detailed instructions on how to enable delegation for your domain can be found at [developers.google.com](https://developers.google.com/drive/delegation).
|
134
|
-
|
135
|
-
### Automatic Retries & Backoff
|
136
|
-
|
137
|
-
The API client can automatically retry requests for recoverable errors. To enable retries, set the `client.retries` property to
|
138
|
-
the number of additional attempts. To avoid flooding servers, retries invovle a 1 second delay that increases on each subsequent retry.
|
139
|
-
In the case of authentication token expiry, the API client will attempt to refresh the token and retry the failed operation - this
|
140
|
-
is a specific exception to the retry rules.
|
141
|
-
|
142
|
-
The default value for retries is 0, but will be enabled by default in future releases.
|
143
|
-
|
144
|
-
### Batching Requests
|
145
|
-
|
146
|
-
Some Google APIs support batching requests into a single HTTP request. Use `Google::APIClient::BatchRequest`
|
147
|
-
to bundle multiple requests together.
|
148
|
-
|
149
|
-
Example:
|
150
|
-
|
151
|
-
```ruby
|
152
|
-
client = Google::APIClient.new
|
153
|
-
urlshortener = client.discovered_api('urlshortener')
|
154
|
-
|
155
|
-
batch = Google::APIClient::BatchRequest.new do |result|
|
156
|
-
puts result.data
|
157
|
-
end
|
158
|
-
|
159
|
-
batch.add(:api_method => urlshortener.url.insert,
|
160
|
-
:body_object => { 'longUrl' => 'http://example.com/foo' })
|
161
|
-
batch.add(:api_method => urlshortener.url.insert,
|
162
|
-
:body_object => { 'longUrl' => 'http://example.com/bar' })
|
163
|
-
client.execute(batch)
|
164
|
-
```
|
165
|
-
|
166
|
-
Blocks for handling responses can be specified either at the batch level or when adding an individual API call. For example:
|
167
|
-
|
168
|
-
```ruby
|
169
|
-
batch.add(:api_method=>urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) do |result|
|
170
|
-
puts result.data
|
171
|
-
end
|
172
|
-
```
|
173
|
-
|
174
|
-
### Media Upload
|
175
|
-
|
176
|
-
For APIs that support file uploads, use `Google::APIClient::UploadIO` to load the stream. Both multipart and resumable
|
177
|
-
uploads can be used. For example, to upload a file to Google Drive using multipart
|
178
|
-
|
179
|
-
```ruby
|
180
|
-
drive = client.discovered_api('drive', 'v2')
|
181
|
-
|
182
|
-
media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4')
|
183
|
-
metadata = {
|
184
|
-
'title' => 'My movie',
|
185
|
-
'description' => 'The best home movie ever made'
|
186
|
-
}
|
187
|
-
client.execute(:api_method => drive.files.insert,
|
188
|
-
:parameters => { 'uploadType' => 'multipart' },
|
189
|
-
:body_object => metadata,
|
190
|
-
:media => media )
|
191
|
-
```
|
192
|
-
|
193
|
-
To use resumable uploads, change the `uploadType` parameter to `resumable`. To check the status of the upload
|
194
|
-
and continue if necessary, check `result.resumable_upload`.
|
195
|
-
|
196
|
-
```ruby
|
197
|
-
client.execute(:api_method => drive.files.insert,
|
198
|
-
:parameters => { 'uploadType' => 'resumable' },
|
199
|
-
:body_object => metadata,
|
200
|
-
:media => media )
|
201
|
-
upload = result.resumable_upload
|
202
|
-
|
203
|
-
# Resume if needed
|
204
|
-
if upload.resumable?
|
205
|
-
client.execute(upload)
|
206
|
-
end
|
207
|
-
```
|
208
|
-
|
209
|
-
## Samples
|
210
|
-
|
211
|
-
See the full list of [samples on Github](https://github.com/google/google-api-ruby-client-samples).
|
212
|
-
|
213
|
-
|
214
|
-
## Support
|
215
|
-
|
216
|
-
Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
|
217
|
-
|
218
|
-
[1]: https://developers.google.com/accounts/docs/application-default-credentials
|
7
|
+
It is entirely focused on the use cases needed by the Arvados Ruby SDK and is not intended or expected to work elsewhere.
|
@@ -20,13 +20,18 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.files += Dir.glob("vendor/**/*.rb")
|
21
21
|
s.files += Dir.glob("tasks/**/*")
|
22
22
|
s.files += Dir.glob("website/**/*")
|
23
|
-
s.homepage = "https://github.com/arvados/google-api-
|
23
|
+
s.homepage = "https://github.com/arvados/arvados/tree/main/sdk/ruby-google-api-client"
|
24
24
|
s.rdoc_options = ["--main", "README.md"]
|
25
25
|
s.summary = "Fork of google-api-client used by Ruby-based Arvados components."
|
26
26
|
|
27
27
|
s.add_runtime_dependency 'addressable', '~> 2.3'
|
28
28
|
s.add_runtime_dependency 'signet', '~> 0.16.0'
|
29
|
-
|
29
|
+
# faraday requires Ruby 3.0 starting with 2.9.0. If you install this gem
|
30
|
+
# on Ruby 2.7, the dependency resolver asks you to resolve the conflict
|
31
|
+
# manually. Instead of teaching all our tooling to do that, we prefer to
|
32
|
+
# require the latest version that supports Ruby 2.7 here. This requirement
|
33
|
+
# can be relaxed to '~> 2.0' when we drop support for Ruby 2.7.
|
34
|
+
s.add_runtime_dependency 'faraday', '~> 2.8.0'
|
30
35
|
s.add_runtime_dependency 'faraday-multipart', '~> 1.0'
|
31
36
|
s.add_runtime_dependency 'faraday-gzip', '~> 2.0'
|
32
37
|
s.add_runtime_dependency 'googleauth', '~> 1.0'
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arvados-google-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.7.
|
4
|
+
version: 0.8.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Aman
|
8
8
|
- Steven Bazyl
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: 2.8.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 2.8.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: faraday-multipart
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -335,11 +335,11 @@ files:
|
|
335
335
|
- spec/google/api_client/simple_file_store_spec.rb
|
336
336
|
- spec/google/api_client_spec.rb
|
337
337
|
- spec/spec_helper.rb
|
338
|
-
homepage: https://github.com/arvados/google-api-
|
338
|
+
homepage: https://github.com/arvados/arvados/tree/main/sdk/ruby-google-api-client
|
339
339
|
licenses:
|
340
340
|
- Apache-2.0
|
341
341
|
metadata: {}
|
342
|
-
post_install_message:
|
342
|
+
post_install_message:
|
343
343
|
rdoc_options:
|
344
344
|
- "--main"
|
345
345
|
- README.md
|
@@ -356,8 +356,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
356
356
|
- !ruby/object:Gem::Version
|
357
357
|
version: 1.3.5
|
358
358
|
requirements: []
|
359
|
-
rubygems_version: 3.
|
360
|
-
signing_key:
|
359
|
+
rubygems_version: 3.4.21
|
360
|
+
signing_key:
|
361
361
|
specification_version: 4
|
362
362
|
summary: Fork of google-api-client used by Ruby-based Arvados components.
|
363
363
|
test_files: []
|