The public Travis API
Go to file
Joe Corcoran cae6da540f Add env vars endpoints
This adds API V3 endpoints for querying, creating, modifying and
deleting environment variables.

It has no concept of encryption yet and should be considered a work in
progress.

We should also talk about the slightly off-track approach in the
EnvVars::Create service – maybe there's a way to standardise the
querying and rendering for post requests?

2016-06-21 15:34:11 +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 Add env vars endpoints 2016-06-21 15:34:11 +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 Add env vars endpoints 2016-06-21 15:34:11 +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 to manage JSON settings field 2016-06-21 15:33:05 +02:00
Gemfile.lock Use travis-settings to manage JSON settings field 2016-06-21 15:33:05 +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.