Description
A simple abstraction layer for the Travis CI API v3.
Trav3 alternatives and similar gems
Based on the "Third-party APIs" category.
Alternatively, view Trav3 alternatives based on common mentions on social networks and blogs.
-
ruby-gmail
A Rubyesque interface to Gmail. Connect to Gmail via IMAP and manipulate emails and labels. Send email with your Gmail account via SMTP. Includes full support for parsing and generating MIME messages. -
pivotal-tracker
DISCONTINUED. Ruby gem that provides an AR-style interface for the Pivotal Tracker API -
itunes_store_transporter
Upload and manage your assets in the iTunes Store using the iTunes Store’s Transporter (iTMSTransporter). -
pivotal-tracker-api
This is a Ruby Gem that can be used to communicate with the Pivotal Tracker API v5
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Trav3 or a related project?
Popular Comparisons
README
Trav3
A simple abstraction layer for Travis CI API v3.
The benefits of this library over the official gem are:
- No gem dependencies
- Designed much like the API documentation
- Handling the returned data is the same for nearly every response
- Little to no learning curve
Installation
Add this line to your application's Gemfile:
gem 'trav3', '~> 1.0.0'
And then execute:
$ bundle
Or install it yourself as:
$ gem install trav3
Usage
You can get started with the following.
require 'trav3'
project = Trav3::Travis.new("name/example")
When you instantiate an instance of Trav3::Travis you get some default headers and default options.
Default Options
limit: 25
— for limiting data queries to 25 items at most
Options can be changed via the #options
getter method which will give you a
Trav3::Options instance.
All changes to it affect the options that the Trav3::Travis
instance will submit
in url requests.
Default Headers
'Content-Type': 'application/json'
'Accept': 'application/json'
'Travis-API-Version': 3
Headers can be changed via the #headers
getter method which will give you a
Trav3::Headers instance.
All changes to it affect the headers that the Trav3::Travis
instance will submit
in url requests.
API
The client has the full API implemented. Here are the methods.
General Usage
project.owner
project.owner("owner")
project.repositories
project.repositories("owner")
project.repository
project.repository("owner/repo")
project.builds
project.build(12345)
project.build_jobs(12345)
project.job(1234)
project.log(1234)
# API Request Options
project.options.build({limit: 25})
# Pagination
builds = project.builds
builds.page.next
builds.page.first
builds.page.last
# Recommended inspection
builds.keys
builds.dig("some_key")
# Follow `@href`
repositories = project.repositories("owner")['repositories']
repositories.first.follow
Response
The results from queries return either Success
or RequestError
which both repsond with Hash like query methods for the JSON data or the Net::HTTP resonse object methods.
The Response
classes Success
and RequestError
forward method calls for all of the instance methods of a ResponseCollection
to the collection. And for the actual Net::HTTP response the following methods are forwarded from these classes to it:
#code
#code_type
#uri
#message
#read_header
#header
#value
#entity
#response
#body
#decode_content
#msg
#reading_body
#read_body
#http_version
#connection_close?
#connection_keep_alive?
#initialize_http_header
#get_fields
#each_header
The keys for the response are displayed with #inspect
along with the object. Opening up any of the items from its key will produce a ResponseCollection
object that behaves like both an Array or Hash and has a method to follow response links.
ResponseCollection
uniformly implements:
#[]
#dig
#each
#fetch
#first
#follow
#hash?
#last
#warnings
Which each behave as they would on the collection type per collection type, Hash
or Array
, with the exception of #each
. #each
will wrap every item in an Array
with another ResponseCollection
, but if it's a Hash
then #each
simply works as it normally would on a Hash
ResponseCollection
also forwards:
#count
#keys
#values
#has_key?
#key?
empty?
to the inner collection.
Follow
Each request returns a Response
type of either Success
or RequestError
.
When you have an instance of Success
each response collection of either Hash
or Array
will
be an instance of ResponseCollection
. If the #hash?
method responds as true
the #follow
method will follow any immediate @href
link provided in the collection. If #hash?
produces false
then the collection is an Array of items and you may use the index of the item you want to follow the
@href
with; like so #follow(3)
.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/danielpclark/trav3.
License
The gem is available as open source under the terms of the MIT License.
*Note that all licence references and agreements mentioned in the Trav3 README section above
are relevant to that project's source code only.