The public Travis API
Go to file
Piotr Sarnacki 95b240e211 Revert "switch to unicorn"
The switch was done in order to see if puma may be related to 503
issues, but since it didn't change a thing, we may bring it back

This reverts commit 74612ed067.
2013-04-16 20:03:47 +02:00
config Use unicorn.rb config, sans prefork for now. 2012-12-05 18:19:23 +01:00
docs fix link to travis-web 2012-11-16 17:35:17 +01:00
lib Revert "disable new relic" 2013-04-16 20:01:14 +02:00
public Add favicon 2013-04-15 02:17:08 -05:00
script Revert "switch to unicorn" 2013-04-16 20:03:47 +02:00
spec Ensure that we properly handle 404 formats 2013-04-11 14:47:00 +02:00
.buildpacks Add last-commit-sha-buildpack 2012-11-25 23:48:39 +01:00
.gitignore Ignore log dir 2013-01-19 22:36:58 +01:00
.travis.yml also test against jruby 2013-02-24 13:25:16 +11:00
config.ru disable new relic 2013-02-13 17:55:11 +01:00
CONTRIBUTING.md First cut generic Contributing.md file for Travis 2013-03-18 23:07:55 -03:00
Gemfile Revert "switch to unicorn" 2013-04-16 20:03:47 +02:00
Gemfile.lock Revert "switch to unicorn" 2013-04-16 20:03:47 +02:00
Procfile add console 2012-10-23 00:24:23 +02:00
Rakefile Don't error out on micro migrations on production 2013-03-27 15:13:19 +01:00
README.md update readme 2012-08-15 02:25:30 +02:00
travis-api.gemspec Update new relic 2013-04-16 20:03:37 +02: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:schema:load
$ rake spec

Run the server:

$ rake db:create db:schema:load
$ foreman start

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