The public Travis API
Go to file
Brian Ford 51a07c892b Update spec/support/matchers.rb
Rubinius does not yet destructure block (or method) arguments in 1.9 mode. This change makes the specs pass on Rubinius. It's not clear to me why destructering is being used here. Ruby will already destructure a single Array-ish argument into separate block argument locals. In this case, unless you want, give `a, b` passed, `name, content = a` and NOT `name, content = a, b`, the unparenthesized (ie non-extra-level-destructuring) should work fine. If that makes any sense. :)
2012-10-11 14:58:45 -07:00
config try syncing stdout 2012-10-07 20:52:25 +02:00
docs more documentation 2012-09-22 19:22:43 +02:00
lib/travis/api try using rack/cache with memcached 2012-10-11 15:04:24 +02:00
public/images/result moar work on acceptance tests 2012-10-02 19:10:29 +02:00
script disable threaded mode for now 2012-09-18 17:02:01 +02:00
spec Update spec/support/matchers.rb 2012-10-11 14:58:45 -07:00
.gitignore ignore config/travis.yml 2012-08-10 15:28:23 +02:00
.travis.yml does not work and i can't get rbx working locally, deactivating it again 2012-10-11 22:25:05 +02:00
config.ru try syncing stdout 2012-10-07 20:52:25 +02:00
Gemfile try using rack/cache with memcached 2012-10-11 15:04:24 +02:00
Gemfile.lock try using rack/cache with memcached 2012-10-11 15:04:24 +02:00
Procfile rewrite all the things 2012-07-27 15:55:57 +02:00
Rakefile actually use gemspec 2012-08-05 14:42:05 +02:00
README.md update readme 2012-08-15 02:25:30 +02:00
travis-api.gemspec move helpers around 2012-09-28 16:54:29 +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