The public Travis API
Go to file
Igor Wiedler 0156671fc8 safelist build status image requests coming from github
Currently almost all calls against API are being rate limited, including
build status images. This leads to common requesters such as GitHub's
camo proxy to get rate limited and receive a 429 response code.

This patch attempts to allow those requests.
2016-06-29 10:53:27 +02:00
bin set tmp_dir in script/server 2015-10-09 09:19:07 +02:00
config Signal Sciences support (#254) 2016-05-26 17:44:12 +02:00
lib safelist build status image requests coming from github 2016-06-29 10:53:27 +02:00
public Use brightgreen color for passing builds. 2014-12-10 12:57:45 +01:00
script some changes to get errors to report to Sentry 2016-05-30 17:16:27 +02:00
spec Mark current_build as experimental 2016-06-22 14:19:31 +02:00
spec_core try fixing updating github oauth scopes 2016-06-21 14:00:04 +02:00
tmp Add Skylight stuff 2014-04-09 02:57:34 -05:00
vendor/travis-core remove commented callback code 2016-06-21 15:20:24 +02:00
.buildpacks Signal Sciences support (#254) 2016-05-26 17:44:12 +02:00
.gitignore log pattern got excluded 2016-06-14 15:17:20 +02:00
.rspec get rid of spec_helper_core 2016-06-19 14:35:54 +02:00
.ruby-version Copies spec from core 2016-06-14 15:10:40 +02:00
.travis.yml wrong ruby in travis file 2016-06-14 15:17:20 +02:00
config.ru Update travis-support to sans-newrelic version 2014-07-29 11:30:11 +02:00
CONTRIBUTING.md First cut generic Contributing.md file for Travis 2013-03-18 23:07:55 -03:00
Gemfile use travis-settings, remove travis/settings 2016-06-19 16:07:06 +02:00
Gemfile.lock use travis-settings, remove travis/settings 2016-06-19 16:07:06 +02:00
LICENSE seems we don't have a license 2015-07-15 20:51:57 +02:00
Procfile add command to procfile 2016-04-28 15:15:57 +02:00
Rakefile delete github/find_or_create[org|repo|user] services 2016-06-20 11:26:47 +02:00
README.md run both tests 2016-06-14 15:11:58 +02:00
travis-api.gemspec delete github/services/sync_user and user_mailer, remove action_mailer 2016-06-19 15:04:39 +02:00

The public Travis API

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

Requirements

You will need the following packages to get travis-api to work:

  1. PostgreSQL 9.3 or higher
  2. Bundler
  3. Redis Server
  4. Optional: RabbitMQ Server
  5. Nginx - If working in Ubuntu please install nginx manually from source: Download and extract latest nginx version, open a terminal in extracted folder and then run the following:
    $ sudo apt-get install libpcre3 libpcre3-dev
    $ auto/configure --user=$USER
    $ make
    $ sudo make install
    $ sudo ln -s /usr/local/nginx/sbin/nginx /bin/nginx

Installation

Setup

$ bundle install

Database setup

You might need to create a role first. For this you should run the following:

$ sudo -u postgres psql -c "CREATE USER yourusername WITH SUPERUSER PASSWORD 'yourpassword'"

NB detail for how rake sets up the database can be found in the Rakefile. In the namespace :db block you will see the database name is configured using the environment variable RAILS_ENV. If you are using a different configuration you will have to make your own adjustments.

$ RAILS_ENV=development bundle exec rake db:create
$ RAILS_ENV=test bundle exec rake db:create

Optional

Clone travis-logs and copy the logs database (assume the PostgreSQL user is postgres):

$ 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

$ RAILS_ENV=test bundle exec rake db:create
$ 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

$ bundle exec rake

Run the server

$ bundle exec script/server

If you have problems with Nginx because the websocket is already in use, try restarting your computer.

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 documentation at /docs.