From 82b8512f413bcc61ee15cb2c1f2cd5b5100835b3 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Fri, 8 Jan 2016 14:31:49 +0100 Subject: [PATCH 01/17] do not require all of rack/contrib, it now assumes a git repository --- lib/travis/api/app.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 6b72b8ce..482e3b7e 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -9,7 +9,9 @@ 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' From ba0e43c75a55b0f7dbf1d452050c73cfe2aeff1a Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 12 Jan 2016 13:52:01 +0100 Subject: [PATCH 02/17] require raven/integrations/rack --- lib/travis/api/app.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 482e3b7e..b476333c 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -20,6 +20,7 @@ require 'active_record' require 'redis' require 'gh' require 'raven' +require 'raven/integrations/rack' require 'sidekiq' require 'metriks/reporter/logger' require 'metriks/librato_metrics_reporter' From 1e69683c3cf73dd6d0f78a3edddffaa3f49c11d7 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 12 Jan 2016 13:58:21 +0100 Subject: [PATCH 03/17] bump sentry-raven --- Gemfile | 2 +- Gemfile.lock | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index bf2e564b..b8481a0b 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,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' diff --git a/Gemfile.lock b/Gemfile.lock index f4305853..327385fc 100644 --- a/Gemfile.lock +++ b/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 @@ -286,6 +278,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) @@ -337,7 +331,6 @@ GEM rack raindrops (~> 0.7) useragent (0.13.3) - uuidtools (2.1.5) virtus (1.0.5) axiom-types (~> 0.1) coercible (~> 1.0) @@ -373,7 +366,7 @@ DEPENDENCIES rspec (~> 2.13) rspec-its s3! - sentry-raven! + sentry-raven simplecov sinatra sinatra-contrib From 1af7cd5f450bcfc3ff7c9524314c30e1d06307fe Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 24 Jan 2016 23:55:38 +0100 Subject: [PATCH 04/17] use travis-amqp --- Gemfile | 1 + Gemfile.lock | 7 +++++++ lib/travis/api/app.rb | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index b8481a0b..c296671d 100644 --- a/Gemfile +++ b/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' diff --git a/Gemfile.lock b/Gemfile.lock index 327385fc..2dd61f90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -40,6 +40,12 @@ 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 @@ -372,6 +378,7 @@ DEPENDENCIES sinatra-contrib skylight (~> 0.6.0.beta.1) stackprof + travis-amqp! travis-api! travis-config (~> 0.1.0) travis-core! diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index b476333c..7fe1a6b7 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -4,8 +4,8 @@ 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' @@ -181,7 +181,7 @@ module Travis::Api def self.setup_travis Travis::Async.enabled = true - Travis::Amqp.config = Travis.config.amqp + Travis::Amqp.setup(Travis.config.amqp) setup_database_connections From 1dd8b6aec57741dba6a90f6470714ebe6ca15f7a Mon Sep 17 00:00:00 2001 From: carlad Date: Tue, 22 Mar 2016 12:09:33 +0100 Subject: [PATCH 05/17] add buildpack url --- .buildpacks | 1 + 1 file changed, 1 insertion(+) diff --git a/.buildpacks b/.buildpacks index 36201cad..08c5a04b 100644 --- a/.buildpacks +++ b/.buildpacks @@ -1,3 +1,4 @@ +https://github.com/ddollar/heroku-buildpack-multi https://github.com/heroku/heroku-buildpack-ruby.git https://github.com/drogus/last-commit-sha-buildpack.git https://github.com/ryandotsmith/nginx-buildpack.git From 5af88d005c0a40a6adcfa321ab36ae2f87d91d81 Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Tue, 22 Mar 2016 12:27:10 +0100 Subject: [PATCH 06/17] Revert "add buildpack url" This reverts commit 197120a9eb68c8a629f05979a7f1d44050bc7b3c. --- .buildpacks | 1 - 1 file changed, 1 deletion(-) diff --git a/.buildpacks b/.buildpacks index 08c5a04b..36201cad 100644 --- a/.buildpacks +++ b/.buildpacks @@ -1,4 +1,3 @@ -https://github.com/ddollar/heroku-buildpack-multi https://github.com/heroku/heroku-buildpack-ruby.git https://github.com/drogus/last-commit-sha-buildpack.git https://github.com/ryandotsmith/nginx-buildpack.git From 8085710646ddd3dc6f9b7a410cd277969b96e1d2 Mon Sep 17 00:00:00 2001 From: carlad Date: Tue, 22 Mar 2016 12:35:28 +0100 Subject: [PATCH 07/17] move travis-migrations into main group --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index c296671d..9cef1b4c 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ 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 @@ -42,7 +43,6 @@ group :test do 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 From f8bee8f80106e3cf12de7239e505948debf24453 Mon Sep 17 00:00:00 2001 From: carlad Date: Wed, 23 Mar 2016 13:13:22 +0100 Subject: [PATCH 08/17] clean up rakefile, update gemspec --- Rakefile | 41 +++++++--------- travis-api.gemspec | 116 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 113 insertions(+), 44 deletions(-) diff --git a/Rakefile b/Rakefile index 93c7d171..9fc70650 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,3 @@ -require 'rake' -require 'travis/migrations' - -task default: :spec - namespace :db do if ENV["RAILS_ENV"] == 'test' desc 'Create and migrate the test database' @@ -21,25 +16,25 @@ 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 } diff --git a/travis-api.gemspec b/travis-api.gemspec index 92ee8839..472324a1 100644 --- a/travis-api.gemspec +++ b/travis-api.gemspec @@ -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" ] From dd82c14f5b1e3d71e55771374925d5439a7b2f4f Mon Sep 17 00:00:00 2001 From: carlad Date: Wed, 23 Mar 2016 14:09:29 +0100 Subject: [PATCH 09/17] refactor db create, move migrations into dev/test group --- Gemfile | 5 ++++- Rakefile | 17 +++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 9cef1b4c..da99c923 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,6 @@ 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' diff --git a/Rakefile b/Rakefile index 9fc70650..d9cb1796 100644 --- a/Rakefile +++ b/Rakefile @@ -1,16 +1,9 @@ namespace :db do - if ENV["RAILS_ENV"] == 'test' - desc 'Create and migrate the test 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" - end + env = ENV["RAILS_ENV"] + desc "Create and migrate the #{env} database" + task :create do + sh "createdb travis_pro_#{env}" rescue nil + sh "psql -q travis_pro_#{env} < #{Gem.loaded_specs['travis-migrations'].full_gem_path}/db/structure.sql" end end From 1d6ed1e3648b05db931c4b2492eee156eefc745d Mon Sep 17 00:00:00 2001 From: carlad Date: Wed, 23 Mar 2016 14:16:48 +0100 Subject: [PATCH 10/17] fix incorrect db name --- Rakefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rakefile b/Rakefile index d9cb1796..f1cee930 100644 --- a/Rakefile +++ b/Rakefile @@ -2,8 +2,8 @@ namespace :db do env = ENV["RAILS_ENV"] desc "Create and migrate the #{env} database" task :create do - sh "createdb travis_pro_#{env}" rescue nil - sh "psql -q travis_pro_#{env} < #{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 From 2db04f068cfbe441d5ced9d1ede800d1aa3c515a Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Wed, 23 Mar 2016 14:42:39 +0100 Subject: [PATCH 11/17] unsmart loading app extensions --- lib/travis/api/app/extensions.rb | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/travis/api/app/extensions.rb b/lib/travis/api/app/extensions.rb index d7faa8fe..f6bb9c2e 100644 --- a/lib/travis/api/app/extensions.rb +++ b/lib/travis/api/app/extensions.rb @@ -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' From 30b8f2d772fabb619f8af7b87fb70188bc919a55 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Thu, 24 Mar 2016 12:53:57 +0100 Subject: [PATCH 12/17] unsmart requiring helpers --- Gemfile.lock | 3 --- lib/travis/api/app/helpers.rb | 13 ++++++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2dd61f90..7f9f612b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -388,6 +388,3 @@ DEPENDENCIES travis-yaml! unicorn yard-sinatra! - -BUNDLED WITH - 1.11.2 diff --git a/lib/travis/api/app/helpers.rb b/lib/travis/api/app/helpers.rb index e09bbd8f..9612a43b 100644 --- a/lib/travis/api/app/helpers.rb +++ b/lib/travis/api/app/helpers.rb @@ -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' From aa211be12a3be72cd055ee25e89c68023adac873 Mon Sep 17 00:00:00 2001 From: carlad Date: Thu, 24 Mar 2016 13:39:41 +0100 Subject: [PATCH 13/17] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f6aaee5..5ae72505 100644 --- a/README.md +++ b/README.md @@ -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 conigured according to the 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' From bcdd15f4cfa1f9593157908b1a61c99c19ef4765 Mon Sep 17 00:00:00 2001 From: carlad Date: Thu, 24 Mar 2016 13:41:27 +0100 Subject: [PATCH 14/17] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ae72505..7dc23457 100644 --- a/README.md +++ b/README.md @@ -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 is conigured according to the RAILS_ENV. 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 according to the 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' From 75937e45ee6f86bcfbe515fa2654c2ff19cf9b0a Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Thu, 24 Mar 2016 17:03:55 +0100 Subject: [PATCH 15/17] Remove load_endpoints, too --- lib/travis/api/app.rb | 8 ++------ lib/travis/api/app/base.rb | 4 +++- lib/travis/api/app/endpoint.rb | 23 ++++++++++++++++++++++- lib/travis/api/app/middleware.rb | 6 ++++++ 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 7fe1a6b7..624b3fc7 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -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 diff --git a/lib/travis/api/app/base.rb b/lib/travis/api/app/base.rb index 1f5f4570..51e4e253 100644 --- a/lib/travis/api/app/base.rb +++ b/lib/travis/api/app/base.rb @@ -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. diff --git a/lib/travis/api/app/endpoint.rb b/lib/travis/api/app/endpoint.rb index c4ef62f1..29323b3c 100644 --- a/lib/travis/api/app/endpoint.rb +++ b/lib/travis/api/app/endpoint.rb @@ -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' diff --git a/lib/travis/api/app/middleware.rb b/lib/travis/api/app/middleware.rb index 619db9d6..8cdde661 100644 --- a/lib/travis/api/app/middleware.rb +++ b/lib/travis/api/app/middleware.rb @@ -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 From 1dd47df6bfcc8c640bfa701df7c4108c26539270 Mon Sep 17 00:00:00 2001 From: carlad Date: Wed, 30 Mar 2016 12:18:05 +0200 Subject: [PATCH 16/17] add better condition check for rake --- Rakefile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Rakefile b/Rakefile index 5d4cd585..0b13d449 100644 --- a/Rakefile +++ b/Rakefile @@ -1,10 +1,11 @@ namespace :db do env = ENV["RAILS_ENV"] - fail "Cannot run rake db:create in production." if env == 'production' - desc "Create and migrate the #{env} database" - task :create do - sh "createdb travis_#{env}" rescue nil - sh "psql -q travis_#{env} < #{Gem.loaded_specs['travis-migrations'].full_gem_path}/db/structure.sql" + if env != 'production' + desc "Create and migrate the #{env} database" + task :create do + 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 From 2f870e6826feb876e4b852e15b47fe6e06ebb2c8 Mon Sep 17 00:00:00 2001 From: Tyranja Date: Wed, 30 Mar 2016 16:35:34 +0200 Subject: [PATCH 17/17] Bump travis-core --- Gemfile | 2 +- Gemfile.lock | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index da99c923..cf09b3c1 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ 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' diff --git a/Gemfile.lock b/Gemfile.lock index 7f9f612b..665485d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -331,7 +332,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 @@ -388,3 +389,6 @@ DEPENDENCIES travis-yaml! unicorn yard-sinatra! + +BUNDLED WITH + 1.12.0.pre.1