The public Travis API
Go to file
2014-04-24 11:36:35 +02:00
bin Add an empty bin/start-nginx wrapper, to allow running Procfile locally 2013-11-05 12:28:13 +01:00
config Remove New Relic 2014-04-09 05:25:00 -05:00
docs Is accomplishable a word? 2014-03-19 12:18:15 +05:30
lib Enable async in the API. 2014-04-24 11:36:35 +02:00
public Add SVG badges. 2014-03-19 14:15:13 +01:00
script Remove New Relic 2014-04-09 05:25:00 -05:00
spec Remove ssh_keys endpoint 2014-04-15 11:14:11 +02:00
tmp Add Skylight stuff 2014-04-09 02:57:34 -05:00
.buildpacks Try nginx 2013-09-02 09:52:26 +02:00
.gitignore Ignore log dir 2013-01-19 22:36:58 +01:00
.travis.yml Revert "Update Ruby to 2.1.0" 2014-01-30 15:17:03 -06:00
config.ru Remove RackTimer. 2014-04-22 19:07:39 +02:00
CONTRIBUTING.md First cut generic Contributing.md file for Travis 2013-03-18 23:07:55 -03:00
Gemfile Point Librato exporter back to original. 2014-04-24 08:01:54 +02:00
Gemfile.lock Point Librato exporter back to original. 2014-04-24 08:01:54 +02:00
Procfile Try nginx 2013-09-02 09:52:26 +02:00
Rakefile Add path for structrure.sql 2013-12-04 13:25:48 +01:00
README.md recommend using script/server 2014-03-14 13:20:42 +01:00
travis-api.gemspec Remove New Relic 2014-04-09 05:25:00 -05:00

The public Travis API

This is the app running on https://api.travis-ci.org/

Installation

Setup:

$ bundle install

Run tests:

$ RAILS_ENV=test rake db:create db:structure:load
$ rake spec

Run the server:

$ rake db:create db:structure:load
$ script/server

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

API documentation

We use source code comments to add documentation. If the server is running, you can browse an HTML documenation at /docs.

Project architecture

lib
`-- travis
    `-- api
        `-- app
            |-- endpoint    # API endpoints
            |-- extensions  # Sinatra extensions
            |-- helpers     # Sinatra helpers
            `-- middleware  # Rack middleware

Classes inheriting from Endpoint or Middleware, they will automatically be set up properly.

Each endpoint class gets mapped to a prefix, which defaults to the snake-case class name (i.e. Travis::Api::App::Profile will map to /profile). It can be overridden by setting :prefix:

require 'travis/api/app'

class Travis::Api::App
  class MyRouts < Endpoint
    set :prefix, '/awesome'
  end
end