Merge branch 'master' into cronjobs

This commit is contained in:
Steffen 2016-04-04 10:39:55 +02:00
commit a522607673
11 changed files with 172 additions and 84 deletions

View File

@ -5,13 +5,12 @@ ruby '2.1.7' if ENV.key?('DYNO')
gem 's3', github: 'travis-ci/s3'
gem 'travis-core', github: 'travis-ci/travis-core'
gem 'travis-core', github: 'travis-ci/travis-core', ref: 'sf-ar-te'
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'
gem 'travis-migrations', github: 'travis-ci/travis-migrations'
gem 'mustermann', github: 'rkh/mustermann'
gem 'sinatra'
gem 'sinatra-contrib', require: nil #github: 'sinatra/sinatra-contrib', require: nil
@ -37,6 +36,10 @@ 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'

View File

@ -48,7 +48,8 @@ GIT
GIT
remote: git://github.com/travis-ci/travis-core.git
revision: f7b3a76b3f39c28bb5cf7b9dc24acec13908a11a
revision: fdcd69981dc9ccb6f85452213d8bdc096f4308be
ref: sf-ar-te
specs:
travis-core (0.0.1)
actionmailer (~> 3.2.19)
@ -56,7 +57,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)
@ -332,7 +333,7 @@ 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
@ -392,4 +393,4 @@ DEPENDENCIES
yard-sinatra!
BUNDLED WITH
1.11.2
1.12.0.pre.1

View File

@ -17,7 +17,7 @@ This is the app running on https://api.travis-ci.org/
### 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.
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.
1. `bundle exec rake db:create`
2. for testing 'RAILS_ENV=test bundle exec rake db:create --trace'

View File

@ -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 }

View File

@ -26,6 +26,8 @@ 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'
@ -174,7 +176,6 @@ module Travis::Api
def self.setup!
setup_travis
load_endpoints
setup_endpoints
@setup = true
end
@ -217,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

View File

@ -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.

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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

View File

@ -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"
]