trav3 0.2.4 → 0.2.5

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: 93d77ee47c7ed5e7c1f75e2acd89a0e54fb535a43f3d733e34846dc978221215
4
- data.tar.gz: c4dd8fbb0fbdc9f49da8813658034fd4d267e2fed16fabc74bcf545b348df6dd
3
+ metadata.gz: f0e2d396b8b3a4e5aa159cf69661b88b2d3919bb7e9aceac6658251592e69f02
4
+ data.tar.gz: e3956e9b90b658689b21026d4e69c1198eb2ad10d15f9376bef4c16bb95eae6f
5
5
  SHA512:
6
- metadata.gz: ecd602f45589d107c1c8b34389edb61b2b5b6b10e1849cc7fd867bd877e31ae2fe2dae5973e487c0e2b69814c9150d3030adcf3bd7c8b74220143b87cec22f9b
7
- data.tar.gz: ff47d0c65e5b74e3992132b686d04eb539d384127485228533413992ac83214acad961dec1aba6000921d143360b6ac5b7fcea4cc5712ef40035e65cd3cf16e1
6
+ metadata.gz: 111a2df7f87c5748c86d319231f6b0a09c0dd47507ecabcb20844fb8b4335cc2841377e52d01f82305e3111329dc81470b8bfee126289df068ccb174d2483390
7
+ data.tar.gz: 2dda90b5419e0f1761344ba6ce1d365e2af5565ca8e9095cd123d6c2d1eb9f17f706b1f10d4b8ef22599fa6a2a982a7949937185f761c52afebf679b960cf3d9
@@ -624,6 +624,7 @@ module Trav3
624
624
  # ```
625
625
  #
626
626
  # DELETE <code>/repo/{repository.id}/caches</code>
627
+ #
627
628
  # Template Variable Type Description
628
629
  # repository.id Integer Value uniquely identifying the repository.
629
630
  #
@@ -1164,7 +1165,8 @@ module Trav3
1164
1165
  #
1165
1166
  # **Sortable by:** <code>id</code>, <code>github_id</code>, <code>owner_name</code>, <code>name</code>, <code>active</code>, <code>default_branch.last_build</code>, append <code>:desc</code> to any attribute to reverse order.
1166
1167
  #
1167
- # **For Current User**<br />
1168
+ # **For Current User**
1169
+ #
1168
1170
  # This returns a list of repositories the current user has access to.
1169
1171
  #
1170
1172
  # GET <code>/repos</code>
@@ -1333,7 +1335,7 @@ module Trav3
1333
1335
  validate_repo_format repo
1334
1336
 
1335
1337
  repo = sanitize_repo_name repo
1336
- action = '' unless %w[star unstar activate deavtivate].include? action.to_s
1338
+ action = '' unless %w[star unstar activate deactivate].include? action.to_s
1337
1339
 
1338
1340
  if action.empty?
1339
1341
  get("#{without_repo}/repo/#{repo}")
@@ -1342,6 +1344,206 @@ module Trav3
1342
1344
  end
1343
1345
  end
1344
1346
 
1347
+ # An individual request
1348
+ #
1349
+ # ## Attributes
1350
+ #
1351
+ # **Minimal Representation**
1352
+ #
1353
+ # Included when the resource is returned as part of another resource.
1354
+ #
1355
+ # Name Type Description
1356
+ # id Integer Value uniquely identifying the request.
1357
+ # state String The state of a request (eg. whether it has been processed or not).
1358
+ # result String The result of the request (eg. rejected or approved).
1359
+ # message String Travis-ci status message attached to the request.
1360
+ #
1361
+ # **Standard Representation**
1362
+ #
1363
+ # Included when the resource is the main response of a request, or is {https://developer.travis-ci.com/eager-loading eager loaded}.
1364
+ #
1365
+ # Name Type Description
1366
+ # id Integer Value uniquely identifying the request.
1367
+ # state String The state of a request (eg. whether it has been processed or not).
1368
+ # result String The result of the request (eg. rejected or approved).
1369
+ # message String Travis-ci status message attached to the request.
1370
+ # repository Repository GitHub user or organization the request belongs to.
1371
+ # branch_name String Name of the branch requested to be built.
1372
+ # commit Commit The commit the request is associated with.
1373
+ # builds [Build] The request's builds.
1374
+ # owner Owner GitHub user or organization the request belongs to.
1375
+ # created_at String When Travis CI created the request.
1376
+ # event_type String Origin of request (push, pull request, api).
1377
+ # base_commit String The base commit the request is associated with.
1378
+ # head_commit String The head commit the request is associated with.
1379
+ #
1380
+ # ## Actions
1381
+ #
1382
+ # **Find**
1383
+ #
1384
+ # Document `resources/request/actions/find` not found.
1385
+ #
1386
+ # GET <code>/repo/{repository.id}/request/{request.id}</code>
1387
+ #
1388
+ # Template Variable Type Description
1389
+ # repository.id Integer Value uniquely identifying the repository.
1390
+ # request.id Integer Value uniquely identifying the request.
1391
+ # Query Parameter Type Description
1392
+ # include [String] List of attributes to eager load.
1393
+ #
1394
+ # GET <code>/repo/{repository.slug}/request/{request.id}</code>
1395
+ #
1396
+ # Template Variable Type Description
1397
+ # repository.slug String Same as {repository.owner.name}/{repository.name}.
1398
+ # request.id Integer Value uniquely identifying the request.
1399
+ # Query Parameter Type Description
1400
+ # include [String] List of attributes to eager load.
1401
+ #
1402
+ # @param request_id [String, Integer] request id
1403
+ # @return [Success, RequestError]
1404
+ def request(request_id)
1405
+ validate_number request_id
1406
+
1407
+ get("#{with_repo}/request/#{request_id}")
1408
+ end
1409
+
1410
+ # A list of requests.
1411
+ #
1412
+ # If querying using the repository slug, it must be formatted using {http://www.w3schools.com/tags/ref_urlencode.asp standard URL encoding}, including any special characters.
1413
+ #
1414
+ # ## Attributes
1415
+ #
1416
+ # Name Type Description
1417
+ # requests [Request] List of requests.
1418
+ #
1419
+ # **Collection Items**
1420
+ #
1421
+ # Each entry in the **requests** array has the following attributes:
1422
+ #
1423
+ # Name Type Description
1424
+ # id Integer Value uniquely identifying the request.
1425
+ # state String The state of a request (eg. whether it has been processed or not).
1426
+ # result String The result of the request (eg. rejected or approved).
1427
+ # message String Travis-ci status message attached to the request.
1428
+ # repository Repository GitHub user or organization the request belongs to.
1429
+ # branch_name String Name of the branch requested to be built.
1430
+ # commit Commit The commit the request is associated with.
1431
+ # builds [Build] The request's builds.
1432
+ # owner Owner GitHub user or organization the request belongs to.
1433
+ # created_at String When Travis CI created the request.
1434
+ # event_type String Origin of request (push, pull request, api).
1435
+ # base_commit String The base commit the request is associated with.
1436
+ # head_commit String The head commit the request is associated with.
1437
+ # yaml_config Unknown The request's yaml_config.
1438
+ #
1439
+ # ## Actions
1440
+ #
1441
+ # **Find**
1442
+ #
1443
+ # This will return a list of requests belonging to a repository.
1444
+ #
1445
+ # GET <code>/repo/{repository.id}/requests</code>
1446
+ #
1447
+ # Template Variable Type Description
1448
+ # repository.id Integer Value uniquely identifying the repository.
1449
+ # Query Parameter Type Description
1450
+ # include [String] List of attributes to eager load.
1451
+ # limit Integer How many requests to include in the response. Used for pagination.
1452
+ # offset Integer How many requests to skip before the first entry in the response. Used for pagination.
1453
+ #
1454
+ # Example: GET /repo/891/requests?limit=5
1455
+ #
1456
+ # GET <code>/repo/{repository.slug}/requests</code>
1457
+ #
1458
+ # Template Variable Type Description
1459
+ # repository.slug String Same as {repository.owner.name}/{repository.name}.
1460
+ # Query Parameter Type Description
1461
+ # include [String] List of attributes to eager load.
1462
+ # limit Integer How many requests to include in the response. Used for pagination.
1463
+ # offset Integer How many requests to skip before the first entry in the response. Used for pagination.
1464
+ #
1465
+ # Example: GET /repo/rails%2Frails/requests?limit=5
1466
+ #
1467
+ # **Create**
1468
+ #
1469
+ # This will create a request for an individual repository, triggering a build to run on Travis CI.
1470
+ #
1471
+ # Use namespaced params in JSON format in the request body to pass any accepted parameters. Any keys in the request's config will override keys existing in the `.travis.yml`.
1472
+ #
1473
+ # ```bash
1474
+ # curl -X POST \
1475
+ # -H "Content-Type: application/json" \
1476
+ # -H "Travis-API-Version: 3" \
1477
+ # -H "Authorization: token xxxxxxxxxxxx" \
1478
+ # -d '{ "request": {
1479
+ # "message": "Override the commit message: this is an api request", "branch": "master" }}'\
1480
+ # https://api.travis-ci.com/repo/1/requests
1481
+ # ```
1482
+ #
1483
+ # The response includes the following body:
1484
+ #
1485
+ # ```json
1486
+ # {
1487
+ # "@type": "pending",
1488
+ # "remaining_requests": 1,
1489
+ # "repository": {
1490
+ # "@type": "repository",
1491
+ # "@href": "/repo/1",
1492
+ # "@representation": "minimal",
1493
+ # "id": 1,
1494
+ # "name": "test",
1495
+ # "slug": "owner/repo"
1496
+ # },
1497
+ # "request": {
1498
+ # "repository": {
1499
+ # "id": 1,
1500
+ # "owner_name": "owner",
1501
+ # "name": "repo"
1502
+ # },
1503
+ # "user": {
1504
+ # "id": 1
1505
+ # },
1506
+ # "id": 1,
1507
+ # "message": "Override the commit message: this is an api request",
1508
+ # "branch": "master",
1509
+ # "config": { }
1510
+ # },
1511
+ # "resource_type": "request"
1512
+ # }
1513
+ # ```
1514
+ #
1515
+ # POST <code>/repo/{repository.id}/requests</code>
1516
+ #
1517
+ # Template Variable Type Description
1518
+ # repository.id Integer Value uniquely identifying the repository.
1519
+ # Accepted Parameter Type Description
1520
+ # request.config String Build configuration (as parsed from .travis.yml).
1521
+ # request.message String Travis-ci status message attached to the request.
1522
+ # request.branch String Branch requested to be built.
1523
+ # request.token Object Travis token associated with webhook on GitHub (DEPRECATED).
1524
+ #
1525
+ # Example: POST /repo/891/requests
1526
+ #
1527
+ # POST <code>/repo/{repository.slug}/requests</code>
1528
+ #
1529
+ # Template Variable Type Description
1530
+ # repository.slug String Same as {repository.owner.name}/{repository.name}.
1531
+ # Accepted Parameter Type Description
1532
+ # request.config String Build configuration (as parsed from .travis.yml).
1533
+ # request.message String Travis-ci status message attached to the request.
1534
+ # request.branch String Branch requested to be built.
1535
+ # request.token Object Travis token associated with webhook on GitHub (DEPRECATED).
1536
+ #
1537
+ # Example: POST /repo/rails%2Frails/requests
1538
+ #
1539
+ # @param attributes [Hash] request attributes
1540
+ # @return [Success, RequestError]
1541
+ def requests(**attributes)
1542
+ return get("#{with_repo}/requests") if attributes.empty?
1543
+
1544
+ create("#{with_repo}/requests", 'request': attributes)
1545
+ end
1546
+
1345
1547
  # A list of stages.
1346
1548
  #
1347
1549
  # Currently this is nested within a build.
@@ -1624,6 +1826,10 @@ module Trav3
1624
1826
 
1625
1827
  private # @private
1626
1828
 
1829
+ def create(url, **data)
1830
+ Trav3::REST.create(self, url, **data)
1831
+ end
1832
+
1627
1833
  def delete(url)
1628
1834
  Trav3::REST.delete(self, url)
1629
1835
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'rest/create'
3
4
  require_relative 'rest/delete'
4
5
  require_relative 'rest/get'
5
6
  require_relative 'rest/patch'
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Metrics/MethodLength
4
+ require 'net/http'
5
+ require 'uri'
6
+ require 'json'
7
+
8
+ module Trav3
9
+ module REST
10
+ def self.create(travis, url, **data)
11
+ uri = URI( url.sub(/\?.*$/, '') )
12
+ req = Net::HTTP::Post.new(uri.request_uri)
13
+ travis.headers.each_pair do |header, value|
14
+ req[header] = value
15
+ end
16
+ req.body = JSON.generate(data) unless data.empty?
17
+ http = Net::HTTP.new(uri.host, uri.port)
18
+ http.use_ssl = (uri.scheme == 'https')
19
+ response = http.request(req)
20
+
21
+ if [Net::HTTPAccepted, Net::HTTPOK].include? response.code_type
22
+ Success.new(travis, response)
23
+ else
24
+ RequestError.new(travis, response)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ # rubocop:enable Metrics/MethodLength
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Trav3
4
- VERSION = '0.2.4'
4
+ VERSION = '0.2.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trav3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel P. Clark
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-19 00:00:00.000000000 Z
11
+ date: 2019-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -90,6 +90,7 @@ files:
90
90
  - lib/trav3/options.rb
91
91
  - lib/trav3/pagination.rb
92
92
  - lib/trav3/rest.rb
93
+ - lib/trav3/rest/create.rb
93
94
  - lib/trav3/rest/delete.rb
94
95
  - lib/trav3/rest/get.rb
95
96
  - lib/trav3/rest/patch.rb