![]() On enterprise, the reverse proxy is not correctly set up, and therefore the client IP address not passed through properly. For that reason, all requests look like they originate from the same client, and if one gets blocked, everyone gets blocked. |
||
---|---|---|
bin | ||
config | ||
lib | ||
public | ||
script | ||
spec | ||
spec_core | ||
tmp | ||
vendor/travis-core | ||
.buildpacks | ||
.gitignore | ||
.rspec | ||
.ruby-version | ||
.travis.yml | ||
config.ru | ||
CONTRIBUTING.md | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
Procfile | ||
Rakefile | ||
README.md | ||
travis-api.gemspec |
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:
- PostgreSQL 9.3 or higher
- Bundler
- Redis Server
- Optional: RabbitMQ Server
- 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
- 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 documentation at /docs
.