The public Travis API
![]() : add require sidekiq to the sidekiq.rb update Gemfile.lock bump travis-sidekiqs correct require statement fix another request connect to the database add current user add current user correctly add current user correctly add puts to see were in the condition we are missing invertted comma add comments to the worker I HAVE NO IDEA Revert "I HAVE NO IDEA" This reverts commit 8bd1259bf4ea1b479f9391847a4700b7b15efe57. change the id and source to symbols in the params because siedekiq expects that add more printout setup database connection, metrics and notification correct the test |
||
---|---|---|
bin | ||
config | ||
lib | ||
public | ||
script | ||
spec | ||
tmp | ||
.buildpacks | ||
.gitignore | ||
.ruby-version | ||
.travis.yml | ||
config.ru | ||
CONTRIBUTING.md | ||
Gemfile | ||
Gemfile.lock | ||
Procfile | ||
Rakefile | ||
README.md | ||
travis-api.gemspec |
The public Travis API
This is the app running on https://api.travis-ci.org/
Requirements
- PostgreSQL 9.3 or higher
- Redis
- RabbitMQ
Installation
Setup
$ bundle install
Database setup
rake db:create db:structure:load
- Clone
travis-logs
and copy thelogs
database (assume the PostgreSQL user ispostgres
):
cd ..
git clone https://github.com/travis-ci/travis-logs.git
cd travis-logs
rvm jruby do bundle exec rake db:migrate # `travis-logs` requires JRuby
psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_development
pg_dump -t logs travis_logs_development | psql -U postgres travis_development
Repeat the database steps for RAILS_ENV=test
.
RAILS_ENV=test rake db:create db:structure:load
pushd ../travis-logs
RAILS_ENV=test rvm jruby do bundle exec rake db:migrate
psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_test
pg_dump -t logs travis_logs_test | psql -U postgres travis_test
popd
Run tests
$ rake spec
Run the server
$ script/server
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - 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