Auto-merged master into cd-v3 on deployment.
This commit is contained in:
commit
866fd2a617
8
Gemfile
8
Gemfile
|
@ -7,6 +7,7 @@ gem 's3', github: 'travis-ci/s3'
|
|||
|
||||
gem 'travis-core', github: 'travis-ci/travis-core'
|
||||
gem 'travis-support', github: 'travis-ci/travis-support'
|
||||
gem 'travis-amqp', github: 'travis-ci/travis-amqp'
|
||||
gem 'travis-config', '~> 0.1.0'
|
||||
gem 'travis-sidekiqs', github: 'travis-ci/travis-sidekiqs', require: nil
|
||||
gem 'travis-yaml', github: 'travis-ci/travis-yaml'
|
||||
|
@ -16,7 +17,7 @@ gem 'sinatra-contrib', require: nil #github: 'sinatra/sinatra-contrib', require:
|
|||
|
||||
gem 'active_model_serializers'
|
||||
gem 'unicorn'
|
||||
gem 'sentry-raven', github: 'getsentry/raven-ruby'
|
||||
gem 'sentry-raven'
|
||||
gem 'yard-sinatra', github: 'rkh/yard-sinatra'
|
||||
gem 'rack-contrib', github: 'rack/rack-contrib'
|
||||
gem 'rack-cache', github: 'rtomayko/rack-cache'
|
||||
|
@ -35,13 +36,16 @@ gem 'stackprof'
|
|||
gem 'jemalloc'
|
||||
gem 'customerio'
|
||||
|
||||
group :development, :test do
|
||||
gem 'travis-migrations', github: 'travis-ci/travis-migrations'
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem 'rspec', '~> 2.13'
|
||||
gem 'rspec-its'
|
||||
gem 'factory_girl', '~> 2.4.0'
|
||||
gem 'mocha', '~> 0.12'
|
||||
gem 'database_cleaner', '~> 0.8.0'
|
||||
gem 'travis-migrations', github: 'travis-ci/travis-migrations'
|
||||
end
|
||||
|
||||
group :development do
|
||||
|
|
26
Gemfile.lock
26
Gemfile.lock
|
@ -5,14 +5,6 @@ GIT
|
|||
metriks-librato_metrics (1.0.2)
|
||||
metriks (>= 0.9.9.6)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/getsentry/raven-ruby.git
|
||||
revision: 84392e5db701f0b5c66802aab9cc82ef9a5ad830
|
||||
specs:
|
||||
sentry-raven (0.10.1)
|
||||
faraday (>= 0.7.6)
|
||||
uuidtools
|
||||
|
||||
GIT
|
||||
remote: git://github.com/rack/rack-contrib.git
|
||||
revision: 1b11346d729efd88b274cd7f704e0bca9eb3de7a
|
||||
|
@ -48,9 +40,15 @@ GIT
|
|||
s3 (0.3.21)
|
||||
proxies (~> 0.2.0)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/travis-ci/travis-amqp.git
|
||||
revision: c388299757b7eda2cc0e33cdc7d90113cf283e6a
|
||||
specs:
|
||||
travis-amqp (0.0.1)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/travis-ci/travis-core.git
|
||||
revision: f7b3a76b3f39c28bb5cf7b9dc24acec13908a11a
|
||||
revision: a66c345d44fd9c28884d694acfff3b1a0fbc5232
|
||||
specs:
|
||||
travis-core (0.0.1)
|
||||
actionmailer (~> 3.2.19)
|
||||
|
@ -58,7 +56,7 @@ GIT
|
|||
coder (~> 0.4.0)
|
||||
data_migrations (~> 0.0.1)
|
||||
gh
|
||||
hashr (~> 0.0.19)
|
||||
hashr
|
||||
metriks (~> 0.9.7)
|
||||
multi_json
|
||||
pusher (~> 0.14.0)
|
||||
|
@ -286,6 +284,8 @@ GEM
|
|||
rspec-core (>= 2.99.0.beta1)
|
||||
rspec-expectations (>= 2.99.0.beta1)
|
||||
rspec-mocks (2.99.2)
|
||||
sentry-raven (0.15.3)
|
||||
faraday (>= 0.7.6)
|
||||
sidekiq (3.3.0)
|
||||
celluloid (>= 0.16.0)
|
||||
connection_pool (>= 2.0.0)
|
||||
|
@ -331,13 +331,12 @@ GEM
|
|||
treetop (1.4.15)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
tzinfo (0.3.47)
|
||||
tzinfo (0.3.48)
|
||||
unicorn (4.8.3)
|
||||
kgio (~> 2.6)
|
||||
rack
|
||||
raindrops (~> 0.7)
|
||||
useragent (0.13.3)
|
||||
uuidtools (2.1.5)
|
||||
virtus (1.0.5)
|
||||
axiom-types (~> 0.1)
|
||||
coercible (~> 1.0)
|
||||
|
@ -373,12 +372,13 @@ DEPENDENCIES
|
|||
rspec (~> 2.13)
|
||||
rspec-its
|
||||
s3!
|
||||
sentry-raven!
|
||||
sentry-raven
|
||||
simplecov
|
||||
sinatra
|
||||
sinatra-contrib
|
||||
skylight (~> 0.6.0.beta.1)
|
||||
stackprof
|
||||
travis-amqp!
|
||||
travis-api!
|
||||
travis-config (~> 0.1.0)
|
||||
travis-core!
|
||||
|
|
75
README.md
75
README.md
|
@ -4,51 +4,68 @@ 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
|
||||
1. Redis
|
||||
1. RabbitMQ
|
||||
1. Nginx *NB: If working on Ubuntu please install Nginx manually from source. [This guide](http://www.rackspace.com/knowledge_center/article/ubuntu-and-debian-installing-nginx-from-source) is helpful but make sure you install the [latest stable version](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#stable), include the user name on your ubuntu machine when compiling (add `--user=[yourusername]` as an option when running `./configure`), and don't follow any subsequent server configuration steps. Travis-api will start and configure its own nginx server when run locally.
|
||||
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:*
|
||||
```sh-session
|
||||
$ 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
|
||||
|
||||
```sh-session
|
||||
$ bundle install
|
||||
```
|
||||
### Database setup
|
||||
|
||||
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 for development is hardcoded to `travis-development`. If you are using a different configuration you will have to make your own adjustments.
|
||||
|
||||
1. `bundle exec rake db:create`
|
||||
2. for testing 'RAILS_ENV=test bundle exec rake db:create --trace'
|
||||
1. Clone `travis-logs` and copy the `logs` database (assume the PostgreSQL user is `postgres`):
|
||||
*You might need to create a role first. For this you should run the following:*
|
||||
```sh-session
|
||||
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
|
||||
$ sudo -u postgres psql -c "CREATE USER yourusername WITH SUPERUSER PASSWORD 'yourpassword'"
|
||||
```
|
||||
|
||||
Repeat the database steps for `RAILS_ENV=test`.
|
||||
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.
|
||||
```sh-session
|
||||
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
|
||||
$ 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`):
|
||||
```sh-session
|
||||
$ 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
|
||||
|
||||
$ rake spec
|
||||
|
||||
```sh-session
|
||||
$ bundle exec rspec
|
||||
```
|
||||
### Run the server
|
||||
|
||||
$ bundle exec script/server
|
||||
```sh-session
|
||||
$ bundle exec script/server
|
||||
```
|
||||
If you have problems with Nginx because the websocket is already in use, try restarting your computer.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
|
56
Rakefile
56
Rakefile
|
@ -1,45 +1,35 @@
|
|||
require 'rake'
|
||||
require 'travis/migrations'
|
||||
|
||||
task default: :spec
|
||||
|
||||
namespace :db do
|
||||
if ENV["RAILS_ENV"] == 'test'
|
||||
desc 'Create and migrate the test database'
|
||||
env = ENV["RAILS_ENV"]
|
||||
if env != 'production'
|
||||
desc "Create and migrate the #{env} database"
|
||||
task :create do
|
||||
sh 'createdb travis_test' rescue nil
|
||||
sh "psql -q travis_test < #{Gem.loaded_specs['travis-migrations'].full_gem_path}/db/structure.sql"
|
||||
end
|
||||
else
|
||||
desc 'Create and migrate the development database'
|
||||
task :create do
|
||||
sh 'createdb travis_development' rescue nil
|
||||
sh "psql -q travis_development < #{Gem.loaded_specs['travis-migrations'].full_gem_path}/db/structure.sql"
|
||||
sh "createdb travis_#{env}" rescue nil
|
||||
sh "psql -q travis_#{env} < #{Gem.loaded_specs['travis-migrations'].full_gem_path}/db/structure.sql"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
desc "generate gemspec"
|
||||
task 'travis-api.gemspec' do
|
||||
content = File.read 'travis-api.gemspec'
|
||||
content = File.read 'travis-api.gemspec'
|
||||
|
||||
fields = {
|
||||
authors: `git shortlog -sn`.scan(/[^\d\s].*/),
|
||||
email: `git shortlog -sne`.scan(/[^<]+@[^>]+/),
|
||||
files: `git ls-files`.split("\n").reject { |f| f =~ /^(\.|Gemfile)/ }
|
||||
}
|
||||
fields = {
|
||||
authors: `git shortlog -sn`.scan(/[^\d\s].*/),
|
||||
email: `git shortlog -sne`.scan(/[^<]+@[^>]+/),
|
||||
files: `git ls-files`.split("\n").reject { |f| f =~ /^(\.|Gemfile)/ }
|
||||
}
|
||||
|
||||
fields.each do |field, values|
|
||||
updated = " s.#{field} = ["
|
||||
updated << values.map { |v| "\n %p" % v }.join(',')
|
||||
updated << "\n ]"
|
||||
content.sub!(/ s\.#{field} = \[\n( .*\n)* \]/, updated)
|
||||
end
|
||||
fields.each do |field, values|
|
||||
updated = " s.#{field} = ["
|
||||
updated << values.map { |v| "\n %p" % v }.join(',')
|
||||
updated << "\n ]"
|
||||
content.sub!(/ s\.#{field} = \[\n( .*\n)* \]/, updated)
|
||||
end
|
||||
|
||||
File.open('travis-api.gemspec', 'w') { |f| f << content }
|
||||
end
|
||||
File.open('travis-api.gemspec', 'w') { |f| f << content }
|
||||
end
|
||||
task default: 'travis-api.gemspec'
|
||||
|
||||
task default: 'travis-api.gemspec'
|
||||
|
||||
tasks_path = File.expand_path('../lib/tasks/*.rake', __FILE__)
|
||||
Dir.glob(tasks_path).each { |r| import r }
|
||||
## can this be removed? what other rakefiles need to be included?
|
||||
# tasks_path = File.expand_path('../lib/tasks/*.rake', __FILE__)
|
||||
# Dir.glob(tasks_path).each { |r| import r }
|
||||
|
|
|
@ -4,12 +4,14 @@ require 'active_record_postgres_variables'
|
|||
|
||||
# now actually load travis
|
||||
require 'travis'
|
||||
require 'travis/amqp'
|
||||
require 'travis/model'
|
||||
require 'travis/support/amqp'
|
||||
require 'travis/states_cache'
|
||||
require 'rack'
|
||||
require 'rack/protection'
|
||||
require 'rack/contrib'
|
||||
require 'rack/contrib/config'
|
||||
require 'rack/contrib/jsonp'
|
||||
require 'rack/contrib/post_body_content_type_parser'
|
||||
require 'dalli'
|
||||
require 'memcachier'
|
||||
require 'rack/cache'
|
||||
|
@ -18,11 +20,14 @@ require 'active_record'
|
|||
require 'redis'
|
||||
require 'gh'
|
||||
require 'raven'
|
||||
require 'raven/integrations/rack'
|
||||
require 'sidekiq'
|
||||
require 'metriks/reporter/logger'
|
||||
require 'metriks/librato_metrics_reporter'
|
||||
require 'travis/support/log_subscriber/active_record_metrics'
|
||||
require 'fileutils'
|
||||
require 'travis/api/app/endpoint'
|
||||
require 'travis/api/app/middleware'
|
||||
require 'travis/api/instruments'
|
||||
require 'travis/api/v2/http'
|
||||
require 'travis/api/v3'
|
||||
|
@ -171,14 +176,13 @@ module Travis::Api
|
|||
|
||||
def self.setup!
|
||||
setup_travis
|
||||
load_endpoints
|
||||
setup_endpoints
|
||||
@setup = true
|
||||
end
|
||||
|
||||
def self.setup_travis
|
||||
Travis::Async.enabled = true
|
||||
Travis::Amqp.config = Travis.config.amqp
|
||||
Travis::Amqp.setup(Travis.config.amqp)
|
||||
|
||||
setup_database_connections
|
||||
|
||||
|
@ -214,11 +218,6 @@ module Travis::Api
|
|||
Travis::Metrics.setup
|
||||
end
|
||||
|
||||
def self.load_endpoints
|
||||
Dir.glob("#{__dir__}/app/middleware/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] }
|
||||
Dir.glob("#{__dir__}/app/endpoint/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] }
|
||||
end
|
||||
|
||||
def self.setup_endpoints
|
||||
Base.subclasses.each(&:setup)
|
||||
end
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require 'travis/api/app'
|
||||
require 'sinatra/base'
|
||||
require 'mustermann'
|
||||
require 'travis/api/app'
|
||||
require 'travis/api/app/extensions'
|
||||
require 'travis/api/app/helpers'
|
||||
|
||||
class Travis::Api::App
|
||||
# Superclass for any endpoint and middleware.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require 'travis/api/app'
|
||||
require 'addressable/uri'
|
||||
require 'active_record/base'
|
||||
require 'travis/api/app'
|
||||
require 'travis/api/app/base'
|
||||
|
||||
class Travis::Api::App
|
||||
# Superclass for HTTP endpoints. Takes care of prefixing.
|
||||
|
@ -48,3 +49,23 @@ class Travis::Api::App
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
require 'travis/api/app/endpoint/accounts'
|
||||
require 'travis/api/app/endpoint/authorization'
|
||||
require 'travis/api/app/endpoint/branches'
|
||||
require 'travis/api/app/endpoint/broadcasts'
|
||||
require 'travis/api/app/endpoint/builds'
|
||||
require 'travis/api/app/endpoint/documentation'
|
||||
require 'travis/api/app/endpoint/endpoints'
|
||||
require 'travis/api/app/endpoint/env_vars'
|
||||
require 'travis/api/app/endpoint/home'
|
||||
require 'travis/api/app/endpoint/hooks'
|
||||
require 'travis/api/app/endpoint/jobs'
|
||||
require 'travis/api/app/endpoint/lint'
|
||||
require 'travis/api/app/endpoint/logs'
|
||||
require 'travis/api/app/endpoint/repos'
|
||||
require 'travis/api/app/endpoint/requests'
|
||||
require 'travis/api/app/endpoint/setting_endpoint'
|
||||
require 'travis/api/app/endpoint/singleton_settings_endpoint'
|
||||
require 'travis/api/app/endpoint/uptime'
|
||||
require 'travis/api/app/endpoint/users'
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
require 'travis/api/app'
|
||||
|
||||
class Travis::Api::App
|
||||
# Namespace for Sinatra extensions.
|
||||
module Extensions
|
||||
Dir.glob("#{__dir__}/extensions/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] }
|
||||
end
|
||||
end
|
||||
require 'travis/api/app/extensions/expose_pattern'
|
||||
require 'travis/api/app/extensions/scoping'
|
||||
require 'travis/api/app/extensions/smart_constants'
|
||||
require 'travis/api/app/extensions/subclass_tracker'
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
require 'travis/api/app'
|
||||
|
||||
class Travis::Api::App
|
||||
# Namespace for helpers.
|
||||
module Helpers
|
||||
Dir.glob("#{__dir__}/helpers/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] }
|
||||
end
|
||||
end
|
||||
require 'travis/api/app/helpers/accept'
|
||||
require 'travis/api/app/helpers/current_user'
|
||||
require 'travis/api/app/helpers/db_follower'
|
||||
require 'travis/api/app/helpers/flash'
|
||||
require 'travis/api/app/helpers/mime_types'
|
||||
require 'travis/api/app/helpers/respond_with'
|
||||
|
|
|
@ -3,5 +3,11 @@ require 'travis/api/app'
|
|||
class Travis::Api::App
|
||||
# Superclass for all middleware.
|
||||
class Middleware < Base
|
||||
require 'travis/api/app/middleware/logging'
|
||||
require 'travis/api/app/middleware/metriks'
|
||||
require 'travis/api/app/middleware/rewrite'
|
||||
require 'travis/api/app/middleware/scope_check'
|
||||
require 'travis/api/app/middleware/skylight'
|
||||
require 'travis/api/app/middleware/user_agent_tracker'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -50,9 +50,9 @@ class Rack::Attack
|
|||
# Ban time: 5 hours
|
||||
# Ban after: 10 POST requests within five minutes to /auth/github
|
||||
blacklist('hammering /auth/github') do |request|
|
||||
Rack::Attack::Allow2Ban.filter(request.identifier, maxretry: 2, findtime: 5.minutes, bantime: bantime(5.hours)) do
|
||||
request.post? and request.path == '/auth/github'
|
||||
end
|
||||
Rack::Attack::Allow2Ban.filter(request.identifier, maxretry: 2, findtime: 5.minutes, bantime: bantime(5.hours)) do
|
||||
request.post? and request.path == '/auth/github'
|
||||
end
|
||||
end
|
||||
|
||||
####
|
||||
|
@ -60,9 +60,9 @@ class Rack::Attack
|
|||
# Ban time: 1 hour
|
||||
# Ban after: 10 POST requests within 30 seconds
|
||||
blacklist('spamming with POST requests') do |request|
|
||||
Rack::Attack::Allow2Ban.filter(request.identifier, maxretry: 10, findtime: 30.seconds, bantime: bantime(1.hour)) do
|
||||
request.post? and not POST_WHITELISTED.include? request.path
|
||||
end
|
||||
Rack::Attack::Allow2Ban.filter(request.identifier, maxretry: 10, findtime: 30.seconds, bantime: bantime(1.hour)) do
|
||||
request.post? and not POST_WHITELISTED.include? request.path
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -62,5 +62,9 @@ module Travis::API::V3
|
|||
|
||||
__send__(name, *args, &block)
|
||||
end
|
||||
|
||||
def settings
|
||||
@settings ||= JSON.load(super)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
module Travis::API::V3
|
||||
class Services::Requests::Create < Service
|
||||
TIME_FRAME = 1.hour
|
||||
LIMIT = 10
|
||||
LIMIT = 10
|
||||
private_constant :TIME_FRAME, :LIMIT
|
||||
|
||||
result_type :request
|
||||
|
@ -22,14 +22,19 @@ module Travis::API::V3
|
|||
accepted(remaining_requests: remaining, repository: repository, request: payload)
|
||||
end
|
||||
|
||||
def limit
|
||||
Travis.config.requests_create_api_limit || LIMIT
|
||||
def limit(repository)
|
||||
if repository.settings.nil?
|
||||
Travis.config.requests_create_api_limit || LIMIT
|
||||
else
|
||||
repository.settings["api_builds_rate_limit"] || Travis.config.requests_create_api_limit || LIMIT
|
||||
end
|
||||
end
|
||||
|
||||
def remaining_requests(repository)
|
||||
return limit if access_control.full_access?
|
||||
api_builds_rate_limit = limit(repository)
|
||||
return api_builds_rate_limit if access_control.full_access?
|
||||
count = query(:requests).count(repository, TIME_FRAME)
|
||||
count > limit ? 0 : limit - count
|
||||
count > api_builds_rate_limit ? 0 : api_builds_rate_limit - count
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -239,6 +239,26 @@ describe Travis::API::V3::Services::Requests::Create do
|
|||
}
|
||||
end
|
||||
|
||||
describe "overrides default request limit if included in repository.settings" do
|
||||
before { repo.update_attribute(:settings, { api_builds_rate_limit: 12 }.to_json) }
|
||||
|
||||
before { 10.times { repo.requests.create(event_type: 'api', result: 'accepted') } }
|
||||
before { post("/v3/repo/#{repo.id}/requests", {}, headers) }
|
||||
|
||||
example { expect(last_response.status).to be == 202 }
|
||||
example { expect(JSON.load(body).to_s).to include(
|
||||
"@type",
|
||||
"repository",
|
||||
"remaining_requests",
|
||||
"2",
|
||||
"request",
|
||||
"representation",
|
||||
"minimal",
|
||||
"slug",
|
||||
"svenfuchs/minimal")
|
||||
}
|
||||
end
|
||||
|
||||
describe "passing the token in params" do
|
||||
let(:params) {{ request: { token: 'foo-bar' }}}
|
||||
example { expect(sidekiq_params[:credentials]).to be == {
|
||||
|
|
|
@ -11,75 +11,85 @@ Gem::Specification.new do |s|
|
|||
s.authors = [
|
||||
"Konstantin Haase",
|
||||
"Piotr Sarnacki",
|
||||
"carlad",
|
||||
"Sven Fuchs",
|
||||
"Hiro Asari",
|
||||
"Mathias Meyer",
|
||||
"Josh Kalderimis",
|
||||
"Henrik Hodne",
|
||||
"carlad",
|
||||
"Tyranja",
|
||||
"Andre Arko",
|
||||
"Dan Buch",
|
||||
"Andre Arko",
|
||||
"C. Scott Ananian",
|
||||
"Erik Michaels-Ober",
|
||||
"Brian Ford",
|
||||
"Lisa P",
|
||||
"Steve Richert",
|
||||
"Bryan Goldstein",
|
||||
"Dan Rice",
|
||||
"James Dennes",
|
||||
"María de Antón",
|
||||
"Nick Schonning",
|
||||
"Patrick Williams",
|
||||
"Puneeth Chaganti",
|
||||
"Thais Camilo and Konstantin Haase",
|
||||
"Tim Carey-Smith",
|
||||
"Bryan Goldstein",
|
||||
"Zachary Scott",
|
||||
"James Dennes",
|
||||
"rainsun",
|
||||
"Nick Schonning",
|
||||
"Patrick Williams",
|
||||
"Dan Rice"
|
||||
"rainsun"
|
||||
]
|
||||
|
||||
s.email = [
|
||||
"konstantin.mailinglists@googlemail.com",
|
||||
"drogus@gmail.com",
|
||||
"me@svenfuchs.com",
|
||||
"carla@travis-ci.com",
|
||||
"asari.ruby@gmail.com",
|
||||
"meyer@paperplanes.de",
|
||||
"josh.kalderimis@gmail.com",
|
||||
"me@henrikhodne.com",
|
||||
"carlad@users.noreply.github.com",
|
||||
"henrik@hodne.io",
|
||||
"konstantin.haase@gmail.com",
|
||||
"carla@travis-ci.org",
|
||||
"konstantin.haase@gmail.com",
|
||||
"tyranja@cassiopeia.uberspace.de",
|
||||
"andre@arko.net",
|
||||
"svenfuchs@artweb-design.de",
|
||||
"dan@travis-ci.org",
|
||||
"sferik@gmail.com",
|
||||
"svenfuchs@artweb-design.de",
|
||||
"cscott@cscott.net",
|
||||
"henrik@travis-ci.com",
|
||||
"steve.richert@gmail.com",
|
||||
"sferik@gmail.com",
|
||||
"bford@engineyard.com",
|
||||
"henrik@travis-ci.com",
|
||||
"mail@lislis.de",
|
||||
"steve.richert@gmail.com",
|
||||
"brysgo@gmail.com",
|
||||
"dan@meatballhat.com",
|
||||
"dan@zoombody.com",
|
||||
"jdennes@gmail.com",
|
||||
"MariadeAnton@users.noreply.github.com",
|
||||
"nschonni@gmail.com",
|
||||
"patrick@bittorrent.com",
|
||||
"punchagan@muse-amuse.in",
|
||||
"carlad@users.noreply.github.com",
|
||||
"dan@zoombody.com",
|
||||
"rainsuner@gmail.com",
|
||||
"dev+narwen+rkh@rkh.im",
|
||||
"tim@spork.in",
|
||||
"brysgo@gmail.com",
|
||||
"e@zzak.io",
|
||||
"jdennes@gmail.com",
|
||||
"nschonni@gmail.com",
|
||||
"dan@meatballhat.com"
|
||||
"rainsuner@gmail.com"
|
||||
]
|
||||
|
||||
s.files = [
|
||||
"CONTRIBUTING.md",
|
||||
"LICENSE",
|
||||
"Procfile",
|
||||
"README.md",
|
||||
"Rakefile",
|
||||
"bin/start-nginx",
|
||||
"config.ru",
|
||||
"config/database.yml",
|
||||
"config/mime.types",
|
||||
"config/nginx.conf.erb",
|
||||
"config/puma-config.rb",
|
||||
"config/ruby_config.sh",
|
||||
"config/unicorn.rb",
|
||||
"lib/active_record_postgres_variables.rb",
|
||||
"lib/conditional_skylight.rb",
|
||||
"lib/tasks/build_update_branch.rake",
|
||||
"lib/tasks/build_update_pull_request_data.rake",
|
||||
|
@ -141,6 +151,7 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/app/responders/xml.rb",
|
||||
"lib/travis/api/app/services/schedule_request.rb",
|
||||
"lib/travis/api/app/stack_instrumentation.rb",
|
||||
"lib/travis/api/attack.rb",
|
||||
"lib/travis/api/instruments.rb",
|
||||
"lib/travis/api/serializer.rb",
|
||||
"lib/travis/api/v2.rb",
|
||||
|
@ -184,6 +195,7 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/extensions/encrypted_column.rb",
|
||||
"lib/travis/api/v3/features.rb",
|
||||
"lib/travis/api/v3/github.rb",
|
||||
"lib/travis/api/v3/metrics.rb",
|
||||
"lib/travis/api/v3/model.rb",
|
||||
"lib/travis/api/v3/models.rb",
|
||||
"lib/travis/api/v3/models/account.rb",
|
||||
|
@ -201,14 +213,30 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/models/repository.rb",
|
||||
"lib/travis/api/v3/models/request.rb",
|
||||
"lib/travis/api/v3/models/ssl_key.rb",
|
||||
"lib/travis/api/v3/models/star.rb",
|
||||
"lib/travis/api/v3/models/subscription.rb",
|
||||
"lib/travis/api/v3/models/token.rb",
|
||||
"lib/travis/api/v3/models/user.rb",
|
||||
"lib/travis/api/v3/opt_in.rb",
|
||||
"lib/travis/api/v3/paginator.rb",
|
||||
"lib/travis/api/v3/paginator/url_generator.rb",
|
||||
"lib/travis/api/v3/permissions.rb",
|
||||
"lib/travis/api/v3/permissions/account.rb",
|
||||
"lib/travis/api/v3/permissions/build.rb",
|
||||
"lib/travis/api/v3/permissions/generic.rb",
|
||||
"lib/travis/api/v3/permissions/job.rb",
|
||||
"lib/travis/api/v3/permissions/organization.rb",
|
||||
"lib/travis/api/v3/permissions/repository.rb",
|
||||
"lib/travis/api/v3/permissions/user.rb",
|
||||
"lib/travis/api/v3/queries.rb",
|
||||
"lib/travis/api/v3/queries/accounts.rb",
|
||||
"lib/travis/api/v3/queries/branch.rb",
|
||||
"lib/travis/api/v3/queries/branches.rb",
|
||||
"lib/travis/api/v3/queries/broadcasts.rb",
|
||||
"lib/travis/api/v3/queries/build.rb",
|
||||
"lib/travis/api/v3/queries/builds.rb",
|
||||
"lib/travis/api/v3/queries/job.rb",
|
||||
"lib/travis/api/v3/queries/jobs.rb",
|
||||
"lib/travis/api/v3/queries/organization.rb",
|
||||
"lib/travis/api/v3/queries/organizations.rb",
|
||||
"lib/travis/api/v3/queries/owner.rb",
|
||||
|
@ -224,15 +252,24 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/renderer/accounts.rb",
|
||||
"lib/travis/api/v3/renderer/avatar_url.rb",
|
||||
"lib/travis/api/v3/renderer/branch.rb",
|
||||
"lib/travis/api/v3/renderer/branches.rb",
|
||||
"lib/travis/api/v3/renderer/broadcast.rb",
|
||||
"lib/travis/api/v3/renderer/broadcasts.rb",
|
||||
"lib/travis/api/v3/renderer/build.rb",
|
||||
"lib/travis/api/v3/renderer/builds.rb",
|
||||
"lib/travis/api/v3/renderer/collection_renderer.rb",
|
||||
"lib/travis/api/v3/renderer/commit.rb",
|
||||
"lib/travis/api/v3/renderer/error.rb",
|
||||
"lib/travis/api/v3/renderer/job.rb",
|
||||
"lib/travis/api/v3/renderer/jobs.rb",
|
||||
"lib/travis/api/v3/renderer/lint.rb",
|
||||
"lib/travis/api/v3/renderer/model_renderer.rb",
|
||||
"lib/travis/api/v3/renderer/organization.rb",
|
||||
"lib/travis/api/v3/renderer/organizations.rb",
|
||||
"lib/travis/api/v3/renderer/owner.rb",
|
||||
"lib/travis/api/v3/renderer/repositories.rb",
|
||||
"lib/travis/api/v3/renderer/repository.rb",
|
||||
"lib/travis/api/v3/renderer/request.rb",
|
||||
"lib/travis/api/v3/renderer/requests.rb",
|
||||
"lib/travis/api/v3/renderer/user.rb",
|
||||
"lib/travis/api/v3/result.rb",
|
||||
|
@ -245,19 +282,34 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/services.rb",
|
||||
"lib/travis/api/v3/services/accounts/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/branch/find.rb",
|
||||
"lib/travis/api/v3/services/branches/find.rb",
|
||||
"lib/travis/api/v3/services/broadcasts/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/build/cancel.rb",
|
||||
"lib/travis/api/v3/services/build/find.rb",
|
||||
"lib/travis/api/v3/services/build/restart.rb",
|
||||
"lib/travis/api/v3/services/builds/find.rb",
|
||||
"lib/travis/api/v3/services/job/cancel.rb",
|
||||
"lib/travis/api/v3/services/job/debug.rb",
|
||||
"lib/travis/api/v3/services/job/find.rb",
|
||||
"lib/travis/api/v3/services/job/restart.rb",
|
||||
"lib/travis/api/v3/services/jobs/find.rb",
|
||||
"lib/travis/api/v3/services/lint/lint.rb",
|
||||
"lib/travis/api/v3/services/organization/find.rb",
|
||||
"lib/travis/api/v3/services/organization/sync.rb",
|
||||
"lib/travis/api/v3/services/organizations/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/owner/find.rb",
|
||||
"lib/travis/api/v3/services/repositories/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/repositories/for_owner.rb",
|
||||
"lib/travis/api/v3/services/repository/disable.rb",
|
||||
"lib/travis/api/v3/services/repository/enable.rb",
|
||||
"lib/travis/api/v3/services/repository/find.rb",
|
||||
"lib/travis/api/v3/services/repository/star.rb",
|
||||
"lib/travis/api/v3/services/repository/unstar.rb",
|
||||
"lib/travis/api/v3/services/requests/create.rb",
|
||||
"lib/travis/api/v3/services/requests/find.rb",
|
||||
"lib/travis/api/v3/services/user/current.rb",
|
||||
"lib/travis/api/v3/services/user/find.rb",
|
||||
"lib/travis/api/v3/services/user/sync.rb",
|
||||
"lib/travis/api/workers/build_cancellation.rb",
|
||||
"lib/travis/api/workers/build_restart.rb",
|
||||
"lib/travis/api/workers/job_cancellation.rb",
|
||||
|
@ -280,6 +332,8 @@ Gem::Specification.new do |s|
|
|||
"script/console",
|
||||
"script/repos_stats.rb",
|
||||
"script/server",
|
||||
"script/web_concurrency",
|
||||
"spec/active_record_postgres_variables_spec.rb",
|
||||
"spec/integration/error_handling_spec.rb",
|
||||
"spec/integration/formats_handling_spec.rb",
|
||||
"spec/integration/responders_spec.rb",
|
||||
|
@ -344,7 +398,7 @@ Gem::Specification.new do |s|
|
|||
"spec/unit/endpoint/lint_spec.rb",
|
||||
"spec/unit/endpoint/logs_spec.rb",
|
||||
"spec/unit/endpoint/repos_spec.rb",
|
||||
"spec/unit/endpoint/requests_spec.rb",
|
||||
"spec/unit/endpoint/requests/throttle_spec.rb",
|
||||
"spec/unit/endpoint/users_spec.rb",
|
||||
"spec/unit/endpoint_spec.rb",
|
||||
"spec/unit/extensions/expose_pattern_spec.rb",
|
||||
|
@ -358,20 +412,40 @@ Gem::Specification.new do |s|
|
|||
"spec/unit/middleware/user_agent_tracker_spec.rb",
|
||||
"spec/unit/responders/json_spec.rb",
|
||||
"spec/unit/responders/service_spec.rb",
|
||||
"spec/v3/error_handling_spec.rb",
|
||||
"spec/v3/extensions/belongs_to_spec.rb",
|
||||
"spec/v3/metrics_spec.rb",
|
||||
"spec/v3/renderer/avatar_url_spec.rb",
|
||||
"spec/v3/result_spec.rb",
|
||||
"spec/v3/service_index_spec.rb",
|
||||
"spec/v3/services/accounts/for_current_user_spec.rb",
|
||||
"spec/v3/services/branch/find_spec.rb",
|
||||
"spec/v3/services/branches/find_spec.rb",
|
||||
"spec/v3/services/broadcasts/for_current_user_spec.rb",
|
||||
"spec/v3/services/build/cancel_spec.rb",
|
||||
"spec/v3/services/build/find_spec.rb",
|
||||
"spec/v3/services/build/restart_spec.rb",
|
||||
"spec/v3/services/builds/find_spec.rb",
|
||||
"spec/v3/services/job/cancel_spec.rb",
|
||||
"spec/v3/services/job/debug_sepc.rb",
|
||||
"spec/v3/services/job/find_spec.rb",
|
||||
"spec/v3/services/job/restart_spec.rb",
|
||||
"spec/v3/services/jobs/find_spec.rb",
|
||||
"spec/v3/services/lint/lint_spec.rb",
|
||||
"spec/v3/services/organization/find_spec.rb",
|
||||
"spec/v3/services/organizations/for_current_user_spec.rb",
|
||||
"spec/v3/services/owner/find_spec.rb",
|
||||
"spec/v3/services/repositories/for_current_user_spec.rb",
|
||||
"spec/v3/services/repositories/for_owner_spec.rb",
|
||||
"spec/v3/services/repository/disable_spec.rb",
|
||||
"spec/v3/services/repository/enable_spec.rb",
|
||||
"spec/v3/services/repository/find_spec.rb",
|
||||
"spec/v3/services/repository/star_spec.rb",
|
||||
"spec/v3/services/repository/unstar_spec.rb",
|
||||
"spec/v3/services/requests/create_spec.rb",
|
||||
"spec/v3/services/user/current_spec.rb",
|
||||
"spec/v3/services/user/find_spec.rb",
|
||||
"spec/v3/services/user/sync_spec.rb",
|
||||
"tmp/.gitkeep",
|
||||
"travis-api.gemspec"
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue
Block a user