The public Travis API
Go to file
Piotr Sarnacki 093831c1a2 Add requests API
Requests API allows to get the requests from the DB and thus enable
users to have more insight into what's going on in their repositories.
2014-03-06 19:36:55 +01:00
bin Add an empty bin/start-nginx wrapper, to allow running Procfile locally 2013-11-05 12:28:13 +01:00
config Use localhost in development mode. 2013-11-28 18:19:54 +01:00
docs Correct link to next.travis-ci.org, more Travis CI. 2013-11-07 15:27:07 +01:00
lib Add requests API 2014-03-06 19:36:55 +01:00
public Add favicon 2013-04-15 02:17:08 -05:00
script Switch to unicorn 2013-09-02 11:54:04 +02:00
spec Add requests API 2014-03-06 19:36:55 +01: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 Bump travis-core 2013-09-03 14:37:26 +02:00
CONTRIBUTING.md First cut generic Contributing.md file for Travis 2013-03-18 23:07:55 -03:00
Gemfile Revert "Update Ruby to 2.1.0" 2014-01-30 15:17:03 -06:00
Gemfile.lock Add requests API 2014-03-06 19:36:55 +01: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 change readme with test db command 2013-12-31 23:02:50 +08:00
travis-api.gemspec update the gemspec for profit! 2013-11-12 13:16:13 +01: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
$ 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