From 81d8c64e984165eb2dbb10022b12afa37f45c450 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sat, 18 Jun 2016 16:54:06 +0200 Subject: [PATCH 01/17] rename api/v[0-2] to api/serialize/v[0-2] --- lib/travis/api/app.rb | 6 +- lib/travis/api/app/responders/json.rb | 4 +- lib/travis/api/serialize/v2.rb | 1 + lib/travis/api/serialize/v2/http.rb | 24 ++++ lib/travis/api/serialize/v2/http/accounts.rb | 44 +++++++ .../api/serialize/v2/http/annotations.rb | 38 ++++++ lib/travis/api/serialize/v2/http/branch.rb | 31 +++++ lib/travis/api/serialize/v2/http/branches.rb | 64 ++++++++++ .../api/serialize/v2/http/broadcasts.rb | 33 +++++ lib/travis/api/serialize/v2/http/build.rb | 97 ++++++++++++++ lib/travis/api/serialize/v2/http/builds.rb | 71 +++++++++++ lib/travis/api/serialize/v2/http/caches.rb | 37 ++++++ lib/travis/api/serialize/v2/http/env_var.rb | 25 ++++ lib/travis/api/serialize/v2/http/env_vars.rb | 2 + .../api/{ => serialize}/v2/http/error.rb | 0 lib/travis/api/serialize/v2/http/hooks.rb | 38 ++++++ lib/travis/api/serialize/v2/http/job.rb | 72 +++++++++++ lib/travis/api/serialize/v2/http/jobs.rb | 65 ++++++++++ lib/travis/api/serialize/v2/http/log.rb | 80 ++++++++++++ .../api/serialize/v2/http/permissions.rb | 52 ++++++++ .../api/serialize/v2/http/repositories.rb | 47 +++++++ .../api/serialize/v2/http/repository.rb | 47 +++++++ lib/travis/api/serialize/v2/http/request.rb | 75 +++++++++++ lib/travis/api/serialize/v2/http/requests.rb | 72 +++++++++++ lib/travis/api/serialize/v2/http/ssh_key.rb | 28 ++++ lib/travis/api/serialize/v2/http/ssl_key.rb | 28 ++++ lib/travis/api/serialize/v2/http/user.rb | 50 ++++++++ .../api/serialize/v2/http/validation_error.rb | 40 ++++++ lib/travis/api/serializer.rb | 2 +- lib/travis/api/v2.rb | 8 -- lib/travis/api/v2/http.rb | 33 ----- lib/travis/api/v2/http/accounts.rb | 42 ------ lib/travis/api/v2/http/annotations.rb | 34 ----- lib/travis/api/v2/http/branch.rb | 28 ---- lib/travis/api/v2/http/branches.rb | 60 --------- lib/travis/api/v2/http/broadcasts.rb | 32 ----- lib/travis/api/v2/http/build.rb | 93 -------------- lib/travis/api/v2/http/builds.rb | 67 ---------- lib/travis/api/v2/http/caches.rb | 33 ----- lib/travis/api/v2/http/env_var.rb | 23 ---- lib/travis/api/v2/http/env_vars.rb | 2 - lib/travis/api/v2/http/hooks.rb | 37 ------ lib/travis/api/v2/http/job.rb | 68 ---------- lib/travis/api/v2/http/log.rb | 79 ------------ lib/travis/api/v2/http/permissions.rb | 50 -------- lib/travis/api/v2/http/request.rb | 71 ----------- lib/travis/api/v2/http/requests.rb | 68 ---------- lib/travis/api/v2/http/ssh_key.rb | 26 ---- lib/travis/api/v2/http/ssl_key.rb | 27 ---- lib/travis/api/v2/http/user.rb | 48 ------- lib/travis/api/v2/http/validation_error.rb | 39 ------ spec/integration/settings_endpoint_spec.rb | 8 +- .../singleton_settings_endpoint_spec.rb | 4 +- spec/integration/version_spec.rb | 4 +- spec/support/matchers.rb | 2 +- .../v2/http/accounts_spec.rb | 4 +- .../v2/http/annotations_spec.rb | 2 +- .../{api => serialize}/v2/http/branch_spec.rb | 4 +- .../v2/http/branches_spec.rb | 4 +- .../v2/http/broadcasts_spec.rb | 4 +- .../{api => serialize}/v2/http/build_spec.rb | 10 +- .../{api => serialize}/v2/http/builds_spec.rb | 10 +- .../{api => serialize}/v2/http/caches_spec.rb | 6 +- .../v2/http/env_var_spec.rb | 4 +- .../{api => serialize}/v2/http/hooks_spec.rb | 4 +- .../{api => serialize}/v2/http/job_spec.rb | 8 +- .../{api => serialize}/v2/http/jobs_spec.rb | 8 +- .../{api => serialize}/v2/http/log_spec.rb | 2 +- .../v2/http/permissions_spec.rb | 4 +- .../v2/http/repositories_spec.rb | 8 +- .../v2/http/repository_spec.rb | 8 +- .../v2/http/request_spec.rb | 4 +- .../v2/http/requests_spec.rb | 6 +- .../v2/http/ssl_key_spec.rb | 4 +- .../{api => serialize}/v2/http/user_spec.rb | 4 +- vendor/travis-core/lib/travis.rb | 2 +- .../travis/addons/flowdock/event_handler.rb | 2 +- .../lib/travis/addons/pusher/event_handler.rb | 2 +- .../travis/addons/webhook/event_handler.rb | 2 +- vendor/travis-core/lib/travis/api.rb | 67 ---------- .../lib/travis/api/README.markdown | 10 -- vendor/travis-core/lib/travis/api/formats.rb | 9 -- .../travis-core/lib/travis/api/serialize.rb | 68 ++++++++++ .../lib/travis/api/serialize/formats.rb | 11 ++ .../lib/travis/api/serialize/v0.rb | 6 + .../lib/travis/api/serialize/v0/event.rb | 2 + .../travis/api/serialize/v0/event/build.rb | 96 ++++++++++++++ .../lib/travis/api/serialize/v0/event/job.rb | 37 ++++++ .../travis/api/serialize/v0/notification.rb | 3 + .../api/serialize/v0/notification/build.rb | 29 +++++ .../serialize/v0/notification/repository.rb | 30 +++++ .../api/serialize/v0/notification/user.rb | 30 +++++ .../lib/travis/api/serialize/v0/pusher.rb | 3 + .../api/serialize/v0/pusher/annotation.rb | 35 +++++ .../serialize/v0/pusher/annotation/created.rb | 14 ++ .../serialize/v0/pusher/annotation/updated.rb | 14 ++ .../travis/api/serialize/v0/pusher/build.rb | 112 ++++++++++++++++ .../api/serialize/v0/pusher/build/canceled.rb | 14 ++ .../api/serialize/v0/pusher/build/created.rb | 14 ++ .../api/serialize/v0/pusher/build/finished.rb | 14 ++ .../api/serialize/v0/pusher/build/received.rb | 14 ++ .../serialize/v0/pusher/build/received/job.rb | 49 +++++++ .../api/serialize/v0/pusher/build/started.rb | 14 ++ .../serialize/v0/pusher/build/started/job.rb | 49 +++++++ .../lib/travis/api/serialize/v0/pusher/job.rb | 69 ++++++++++ .../api/serialize/v0/pusher/job/canceled.rb | 14 ++ .../api/serialize/v0/pusher/job/created.rb | 14 ++ .../api/serialize/v0/pusher/job/finished.rb | 14 ++ .../travis/api/serialize/v0/pusher/job/log.rb | 32 +++++ .../api/serialize/v0/pusher/job/received.rb | 14 ++ .../api/serialize/v0/pusher/job/started.rb | 14 ++ .../lib/travis/api/serialize/v0/worker.rb | 1 + .../lib/travis/api/serialize/v0/worker/job.rb | 35 +++++ .../api/serialize/v0/worker/job/test.rb | 120 ++++++++++++++++++ .../lib/travis/api/serialize/v1.rb | 4 + .../lib/travis/api/serialize/v1/archive.rb | 1 + .../travis/api/serialize/v1/archive/build.rb | 52 ++++++++ .../api/serialize/v1/archive/build/job.rb | 33 +++++ .../lib/travis/api/serialize/v1/helpers.rb | 1 + .../travis/api/serialize/v1/helpers/legacy.rb | 36 ++++++ .../lib/travis/api/serialize/v1/http.rb | 9 ++ .../travis/api/serialize/v1/http/branches.rb | 45 +++++++ .../lib/travis/api/serialize/v1/http/build.rb | 49 +++++++ .../travis/api/serialize/v1/http/build/job.rb | 34 +++++ .../travis/api/serialize/v1/http/builds.rb | 40 ++++++ .../lib/travis/api/serialize/v1/http/hooks.rb | 36 ++++++ .../lib/travis/api/serialize/v1/http/job.rb | 63 ++++----- .../lib/travis/api/serialize/v1/http/jobs.rb | 36 ++++++ .../api/serialize/v1}/http/repositories.rb | 34 +++-- .../api/serialize/v1}/http/repository.rb | 36 ++---- .../lib/travis/api/serialize/v1/http/user.rb | 33 +++++ .../lib/travis/api/serialize/v1/webhook.rb | 1 + .../travis/api/serialize/v1/webhook/build.rb | 29 +++++ .../serialize/v1/webhook/build/finished.rb | 72 +++++++++++ .../v1/webhook/build/finished/job.rb | 52 ++++++++ vendor/travis-core/lib/travis/api/v0.rb | 11 -- vendor/travis-core/lib/travis/api/v0/event.rb | 12 -- .../lib/travis/api/v0/event/build.rb | 95 -------------- .../lib/travis/api/v0/event/job.rb | 38 ------ .../lib/travis/api/v0/notification.rb | 12 -- .../lib/travis/api/v0/notification/build.rb | 28 ---- .../travis/api/v0/notification/repository.rb | 28 ---- .../lib/travis/api/v0/notification/user.rb | 28 ---- .../travis-core/lib/travis/api/v0/pusher.rb | 11 -- .../lib/travis/api/v0/pusher/annotation.rb | 33 ----- .../api/v0/pusher/annotation/created.rb | 12 -- .../api/v0/pusher/annotation/updated.rb | 12 -- .../lib/travis/api/v0/pusher/build.rb | 111 ---------------- .../travis/api/v0/pusher/build/canceled.rb | 12 -- .../lib/travis/api/v0/pusher/build/created.rb | 15 --- .../travis/api/v0/pusher/build/finished.rb | 14 -- .../travis/api/v0/pusher/build/received.rb | 12 -- .../api/v0/pusher/build/received/job.rb | 47 ------- .../lib/travis/api/v0/pusher/build/started.rb | 13 -- .../travis/api/v0/pusher/build/started/job.rb | 47 ------- .../lib/travis/api/v0/pusher/job.rb | 67 ---------- .../lib/travis/api/v0/pusher/job/canceled.rb | 12 -- .../lib/travis/api/v0/pusher/job/created.rb | 12 -- .../lib/travis/api/v0/pusher/job/finished.rb | 12 -- .../lib/travis/api/v0/pusher/job/log.rb | 31 ----- .../lib/travis/api/v0/pusher/job/received.rb | 12 -- .../lib/travis/api/v0/pusher/job/started.rb | 12 -- .../travis-core/lib/travis/api/v0/worker.rb | 9 -- .../lib/travis/api/v0/worker/job.rb | 33 ----- .../lib/travis/api/v0/worker/job/test.rb | 118 ----------------- vendor/travis-core/lib/travis/api/v1.rb | 10 -- .../travis-core/lib/travis/api/v1/archive.rb | 9 -- .../lib/travis/api/v1/archive/build.rb | 50 -------- .../lib/travis/api/v1/archive/build/job.rb | 31 ----- .../travis-core/lib/travis/api/v1/helpers.rb | 9 -- .../lib/travis/api/v1/helpers/legacy.rb | 34 ----- vendor/travis-core/lib/travis/api/v1/http.rb | 17 --- .../lib/travis/api/v1/http/branches.rb | 43 ------- .../lib/travis/api/v1/http/build.rb | 47 ------- .../lib/travis/api/v1/http/build/job.rb | 32 ----- .../lib/travis/api/v1/http/builds.rb | 38 ------ .../lib/travis/api/v1/http/hooks.rb | 34 ----- .../travis-core/lib/travis/api/v1/http/job.rb | 44 ------- .../lib/travis/api/v1/http/jobs.rb | 34 ----- .../lib/travis/api/v1/http/repositories.rb | 37 ------ .../lib/travis/api/v1/http/repository.rb | 34 ----- .../lib/travis/api/v1/http/user.rb | 31 ----- .../travis-core/lib/travis/api/v1/webhook.rb | 9 -- .../lib/travis/api/v1/webhook/build.rb | 27 ---- .../travis/api/v1/webhook/build/finished.rb | 70 ---------- .../api/v1/webhook/build/finished/job.rb | 50 -------- vendor/travis-core/lib/travis/api/v2.rb | 7 - .../travis-core/lib/travis/event/handler.rb | 2 +- vendor/travis-core/lib/travis/states_cache.rb | 4 +- 189 files changed, 2841 insertions(+), 2813 deletions(-) create mode 100644 lib/travis/api/serialize/v2.rb create mode 100644 lib/travis/api/serialize/v2/http.rb create mode 100644 lib/travis/api/serialize/v2/http/accounts.rb create mode 100644 lib/travis/api/serialize/v2/http/annotations.rb create mode 100644 lib/travis/api/serialize/v2/http/branch.rb create mode 100644 lib/travis/api/serialize/v2/http/branches.rb create mode 100644 lib/travis/api/serialize/v2/http/broadcasts.rb create mode 100644 lib/travis/api/serialize/v2/http/build.rb create mode 100644 lib/travis/api/serialize/v2/http/builds.rb create mode 100644 lib/travis/api/serialize/v2/http/caches.rb create mode 100644 lib/travis/api/serialize/v2/http/env_var.rb create mode 100644 lib/travis/api/serialize/v2/http/env_vars.rb rename lib/travis/api/{ => serialize}/v2/http/error.rb (100%) create mode 100644 lib/travis/api/serialize/v2/http/hooks.rb create mode 100644 lib/travis/api/serialize/v2/http/job.rb create mode 100644 lib/travis/api/serialize/v2/http/jobs.rb create mode 100644 lib/travis/api/serialize/v2/http/log.rb create mode 100644 lib/travis/api/serialize/v2/http/permissions.rb create mode 100644 lib/travis/api/serialize/v2/http/repositories.rb create mode 100644 lib/travis/api/serialize/v2/http/repository.rb create mode 100644 lib/travis/api/serialize/v2/http/request.rb create mode 100644 lib/travis/api/serialize/v2/http/requests.rb create mode 100644 lib/travis/api/serialize/v2/http/ssh_key.rb create mode 100644 lib/travis/api/serialize/v2/http/ssl_key.rb create mode 100644 lib/travis/api/serialize/v2/http/user.rb create mode 100644 lib/travis/api/serialize/v2/http/validation_error.rb delete mode 100644 lib/travis/api/v2.rb delete mode 100644 lib/travis/api/v2/http.rb delete mode 100644 lib/travis/api/v2/http/accounts.rb delete mode 100644 lib/travis/api/v2/http/annotations.rb delete mode 100644 lib/travis/api/v2/http/branch.rb delete mode 100644 lib/travis/api/v2/http/branches.rb delete mode 100644 lib/travis/api/v2/http/broadcasts.rb delete mode 100644 lib/travis/api/v2/http/build.rb delete mode 100644 lib/travis/api/v2/http/builds.rb delete mode 100644 lib/travis/api/v2/http/caches.rb delete mode 100644 lib/travis/api/v2/http/env_var.rb delete mode 100644 lib/travis/api/v2/http/env_vars.rb delete mode 100644 lib/travis/api/v2/http/hooks.rb delete mode 100644 lib/travis/api/v2/http/job.rb delete mode 100644 lib/travis/api/v2/http/log.rb delete mode 100644 lib/travis/api/v2/http/permissions.rb delete mode 100644 lib/travis/api/v2/http/request.rb delete mode 100644 lib/travis/api/v2/http/requests.rb delete mode 100644 lib/travis/api/v2/http/ssh_key.rb delete mode 100644 lib/travis/api/v2/http/ssl_key.rb delete mode 100644 lib/travis/api/v2/http/user.rb delete mode 100644 lib/travis/api/v2/http/validation_error.rb rename spec/unit/{api => serialize}/v2/http/accounts_spec.rb (86%) rename spec/unit/{api => serialize}/v2/http/annotations_spec.rb (87%) rename spec/unit/{api => serialize}/v2/http/branch_spec.rb (91%) rename spec/unit/{api => serialize}/v2/http/branches_spec.rb (91%) rename spec/unit/{api => serialize}/v2/http/broadcasts_spec.rb (65%) rename spec/unit/{api => serialize}/v2/http/build_spec.rb (87%) rename spec/unit/{api => serialize}/v2/http/builds_spec.rb (87%) rename spec/unit/{api => serialize}/v2/http/caches_spec.rb (74%) rename spec/unit/{api => serialize}/v2/http/env_var_spec.rb (83%) rename spec/unit/{api => serialize}/v2/http/hooks_spec.rb (82%) rename spec/unit/{api => serialize}/v2/http/job_spec.rb (89%) rename spec/unit/{api => serialize}/v2/http/jobs_spec.rb (84%) rename spec/unit/{api => serialize}/v2/http/log_spec.rb (96%) rename spec/unit/{api => serialize}/v2/http/permissions_spec.rb (83%) rename spec/unit/{api => serialize}/v2/http/repositories_spec.rb (75%) rename spec/unit/{api => serialize}/v2/http/repository_spec.rb (75%) rename spec/unit/{api => serialize}/v2/http/request_spec.rb (93%) rename spec/unit/{api => serialize}/v2/http/requests_spec.rb (91%) rename spec/unit/{api => serialize}/v2/http/ssl_key_spec.rb (76%) rename spec/unit/{api => serialize}/v2/http/user_spec.rb (86%) delete mode 100644 vendor/travis-core/lib/travis/api.rb delete mode 100644 vendor/travis-core/lib/travis/api/README.markdown delete mode 100644 vendor/travis-core/lib/travis/api/formats.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/formats.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/event.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/notification.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/worker.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/archive.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb rename lib/travis/api/v2/http/jobs.rb => vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb (50%) create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb rename {lib/travis/api/v2 => vendor/travis-core/lib/travis/api/serialize/v1}/http/repositories.rb (55%) rename {lib/travis/api/v2 => vendor/travis-core/lib/travis/api/serialize/v1}/http/repository.rb (50%) create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb create mode 100644 vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/event.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/event/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/event/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/notification.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/notification/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/notification/repository.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/notification/user.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/annotation.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/annotation/created.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/annotation/updated.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/canceled.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/created.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/finished.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/received.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/received/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/started.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/build/started/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/canceled.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/created.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/finished.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/log.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/received.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/pusher/job/started.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/worker.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/worker/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v0/worker/job/test.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/archive.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/archive/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/archive/build/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/helpers.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/helpers/legacy.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/branches.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/build/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/builds.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/hooks.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/jobs.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/repositories.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/repository.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/http/user.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/webhook.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/webhook/build.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/webhook/build/finished.rb delete mode 100644 vendor/travis-core/lib/travis/api/v1/webhook/build/finished/job.rb delete mode 100644 vendor/travis-core/lib/travis/api/v2.rb diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 4c30857c..a0ca55b4 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -26,10 +26,14 @@ require 'metriks/reporter/logger' require 'metriks/librato_metrics_reporter' require 'travis/support/log_subscriber/active_record_metrics' require 'fileutils' + +module Travis::Api +end + require 'travis/api/app/endpoint' require 'travis/api/app/middleware' require 'travis/api/instruments' -require 'travis/api/v2/http' +require 'travis/api/serialize/v2' require 'travis/api/v3' require 'travis/api/app/stack_instrumentation' require 'travis/api/app/error_handling' diff --git a/lib/travis/api/app/responders/json.rb b/lib/travis/api/app/responders/json.rb index 441039a9..127b691a 100644 --- a/lib/travis/api/app/responders/json.rb +++ b/lib/travis/api/app/responders/json.rb @@ -1,3 +1,5 @@ +require 'travis/api/serialize' + class Travis::Api::App module Responders class Json < Base @@ -46,7 +48,7 @@ class Travis::Api::App if defined?(@builder) @builder else - @builder = Travis::Api.builder(resource, { :version => version }.merge(options)) + @builder = Travis::Api::Serialize.builder(resource, { :version => version }.merge(options)) end end diff --git a/lib/travis/api/serialize/v2.rb b/lib/travis/api/serialize/v2.rb new file mode 100644 index 00000000..78c2bf3d --- /dev/null +++ b/lib/travis/api/serialize/v2.rb @@ -0,0 +1 @@ +require 'travis/api/serialize/v2/http' diff --git a/lib/travis/api/serialize/v2/http.rb b/lib/travis/api/serialize/v2/http.rb new file mode 100644 index 00000000..49e7f42f --- /dev/null +++ b/lib/travis/api/serialize/v2/http.rb @@ -0,0 +1,24 @@ +require 'travis/api/serializer' +require 'travis/api/serialize/v2/http/accounts' +require 'travis/api/serialize/v2/http/annotations' +require 'travis/api/serialize/v2/http/broadcasts' +require 'travis/api/serialize/v2/http/branch' +require 'travis/api/serialize/v2/http/branches' +require 'travis/api/serialize/v2/http/build' +require 'travis/api/serialize/v2/http/builds' +require 'travis/api/serialize/v2/http/caches' +require 'travis/api/serialize/v2/http/hooks' +require 'travis/api/serialize/v2/http/job' +require 'travis/api/serialize/v2/http/jobs' +require 'travis/api/serialize/v2/http/log' +require 'travis/api/serialize/v2/http/permissions' +require 'travis/api/serialize/v2/http/repositories' +require 'travis/api/serialize/v2/http/repository' +require 'travis/api/serialize/v2/http/requests' +require 'travis/api/serialize/v2/http/request' +require 'travis/api/serialize/v2/http/ssl_key' +require 'travis/api/serialize/v2/http/env_var' +require 'travis/api/serialize/v2/http/env_vars' +require 'travis/api/serialize/v2/http/user' +require 'travis/api/serialize/v2/http/validation_error' +require 'travis/api/serialize/v2/http/ssh_key' diff --git a/lib/travis/api/serialize/v2/http/accounts.rb b/lib/travis/api/serialize/v2/http/accounts.rb new file mode 100644 index 00000000..572021d0 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/accounts.rb @@ -0,0 +1,44 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Accounts + include Formats + + attr_reader :accounts, :options + + def initialize(accounts, options = {}) + @accounts = accounts + @options = options + end + + def data + { + :accounts => accounts.map { |account| account_data(account) } + } + end + + private + + def account_data(account) + data = { + 'id' => account.id, + 'name' => account.name, + 'login' => account.login, + 'type' => account.type.underscore, + 'repos_count' => account.repos_count + } + + data['avatar_url'] = account.avatar_url if account.respond_to?(:avatar_url) + + data + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/annotations.rb b/lib/travis/api/serialize/v2/http/annotations.rb new file mode 100644 index 00000000..fc937f2d --- /dev/null +++ b/lib/travis/api/serialize/v2/http/annotations.rb @@ -0,0 +1,38 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Annotations + include Formats + + def initialize(annotations, options = {}) + @annotations = annotations + end + + def data + { + "annotations" => @annotations.map { |annotation| build_annotation(annotation) }, + } + end + + private + + def build_annotation(annotation) + { + "id" => annotation.id, + "job_id" => annotation.job_id, + "description" => annotation.description, + "url" => annotation.url, + "status" => annotation.status, + "provider_name" => annotation.annotation_provider.name, + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/branch.rb b/lib/travis/api/serialize/v2/http/branch.rb new file mode 100644 index 00000000..44a9724d --- /dev/null +++ b/lib/travis/api/serialize/v2/http/branch.rb @@ -0,0 +1,31 @@ +require 'travis/api/serialize/formats' +require 'travis/api/serialize/v2/http/branches' + +module Travis + module Api + module Serialize + module V2 + module Http + class Branch < Branches + include Formats + + attr_reader :build, :commit, :options + + def initialize(build, options = {}) + @build = build + @commit = build.commit + @options = options + end + + def data + { + 'branch' => build_data(build), + 'commit' => commit_data(commit) + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/branches.rb b/lib/travis/api/serialize/v2/http/branches.rb new file mode 100644 index 00000000..de94e68a --- /dev/null +++ b/lib/travis/api/serialize/v2/http/branches.rb @@ -0,0 +1,64 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Branches + include Formats + + attr_reader :builds, :commits, :options + + def initialize(builds, options = {}) + builds = builds.last_finished_builds_by_branches if builds.is_a?(Repository) # TODO remove, bc + @builds = builds + @commits = builds.map(&:commit) + @options = options + end + + def data + { + 'branches' => builds.map { |build| build_data(build) }, + 'commits' => commits.map { |commit| commit_data(commit) } + } + end + + private + + def build_data(build) + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'commit_id' => build.commit_id, + 'number' => build.number, + 'config' => build.obfuscated_config.stringify_keys, + 'state' => build.state.to_s, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'job_ids' => build.matrix.map { |job| job.id }, + 'pull_request' => build.pull_request? + } + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/broadcasts.rb b/lib/travis/api/serialize/v2/http/broadcasts.rb new file mode 100644 index 00000000..fc1afbb1 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/broadcasts.rb @@ -0,0 +1,33 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class Broadcasts + attr_reader :broadcasts, :options + + def initialize(broadcasts, options = {}) + @broadcasts = broadcasts + @options = options + end + + def data + { + 'broadcasts' => broadcasts.map { |broadcast| broadcast_data(broadcast) } + } + end + + private + + def broadcast_data(broadcast) + { + 'id' => broadcast.id, + 'message' => broadcast.message + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/build.rb b/lib/travis/api/serialize/v2/http/build.rb new file mode 100644 index 00000000..27ff3416 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/build.rb @@ -0,0 +1,97 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Build + include Formats + + attr_reader :build, :options + + def initialize(build, options = {}) + options[:include_jobs] = true unless options.key?(:include_jobs) + + @build = build + @options = options + end + + def data + { + 'build' => build_data(build), + 'commit' => commit_data(build.commit, build.repository), + 'jobs' => options[:include_jobs] ? build.matrix.map { |job| job_data(job) } : [], + 'annotations' => options[:include_jobs] ? Annotations.new(annotations(build), @options).data["annotations"] : [], + } + end + + private + + def build_data(build) + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'commit_id' => build.commit_id, + 'number' => build.number, + 'event_type' => build.event_type, + 'pull_request' => build.pull_request?, + 'pull_request_title' => build.pull_request_title, + 'pull_request_number' => build.pull_request_number, + 'config' => build.obfuscated_config.stringify_keys, + 'state' => build.state.to_s, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'job_ids' => build.matrix_ids + } + end + + def commit_data(commit, repository) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'branch_is_default' => branch_is_default(commit, repository), + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + + def job_data(job) + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'build_id' => job.source_id, + 'commit_id' => job.commit_id, + 'log_id' => job.log_id, + 'state' => job.state.to_s, + 'number' => job.number, + 'config' => job.obfuscated_config.stringify_keys, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'queue' => job.queue, + 'allow_failure' => job.allow_failure, + 'tags' => job.tags, + 'annotation_ids' => job.annotation_ids, + } + end + + def branch_is_default(commit, repository) + repository.default_branch == commit.branch + end + + def annotations(build) + build.matrix.map(&:annotations).flatten + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/builds.rb b/lib/travis/api/serialize/v2/http/builds.rb new file mode 100644 index 00000000..d2309208 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/builds.rb @@ -0,0 +1,71 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Builds + include Formats + + attr_reader :builds, :commits, :options + + def initialize(builds, options = {}) + @builds = builds + @commits = builds.map(&:commit) + @options = options + end + + def data + { + 'builds' => builds.map { |build| build_data(build) }, + 'commits' => commits.map { |commit| commit_data(commit) } + } + end + + private + + def build_data(build) + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'commit_id' => build.commit_id, + 'number' => build.number, + 'event_type' => build.event_type, + 'pull_request' => build.pull_request?, + 'pull_request_title' => build.pull_request_title, + 'pull_request_number' => build.pull_request_number, + 'config' => build.obfuscated_config.stringify_keys, + 'state' => build.state.to_s, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'job_ids' => matrix_ids(build) + } + end + + def matrix_ids(build) + build.cached_matrix_ids || build.matrix_ids + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + 'pull_request_number' => commit.pull_request_number + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/caches.rb b/lib/travis/api/serialize/v2/http/caches.rb new file mode 100644 index 00000000..b5167dd7 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/caches.rb @@ -0,0 +1,37 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Caches + include Formats + attr_reader :caches, :options + + def initialize(caches, options = {}) + @caches = caches + @options = options + end + + def data + { 'caches' => caches.map { |cache| cache_data(cache) } } + end + + private + + def cache_data(cache) + { + 'repository_id' => cache.repository.id, + 'size' => cache.size, + 'slug' => cache.slug, + 'branch' => cache.branch, + 'last_modified' => format_date(cache.last_modified) + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/env_var.rb b/lib/travis/api/serialize/v2/http/env_var.rb new file mode 100644 index 00000000..23fce2dc --- /dev/null +++ b/lib/travis/api/serialize/v2/http/env_var.rb @@ -0,0 +1,25 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class EnvVar < Travis::Api::Serializer + attributes :id, :name, :value, :public, :repository_id + + def value + if object.public? + object.value.decrypt + end + end + + def serializable_hash + hash = super + hash.delete :value unless object.public? + hash + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/env_vars.rb b/lib/travis/api/serialize/v2/http/env_vars.rb new file mode 100644 index 00000000..2091264e --- /dev/null +++ b/lib/travis/api/serialize/v2/http/env_vars.rb @@ -0,0 +1,2 @@ +class Travis::Api::Serialize::V2::Http::EnvVars < Travis::Api::ArraySerializer +end diff --git a/lib/travis/api/v2/http/error.rb b/lib/travis/api/serialize/v2/http/error.rb similarity index 100% rename from lib/travis/api/v2/http/error.rb rename to lib/travis/api/serialize/v2/http/error.rb diff --git a/lib/travis/api/serialize/v2/http/hooks.rb b/lib/travis/api/serialize/v2/http/hooks.rb new file mode 100644 index 00000000..937ae829 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/hooks.rb @@ -0,0 +1,38 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class Hooks + attr_reader :hooks, :options + + def initialize(hooks, options = {}) + @hooks = hooks + @options = options + end + + def data + { + 'hooks' => hooks.map { |hook| hook_data(hook) }, + } + end + + private + + def hook_data(hook) + { + 'id' => hook.id, + 'name' => hook.name, + 'owner_name' => hook.owner_name, + 'description' => hook.description, + 'active' => hook.active, + 'private' => hook.private, + 'admin' => hook.admin? + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/job.rb b/lib/travis/api/serialize/v2/http/job.rb new file mode 100644 index 00000000..436be37c --- /dev/null +++ b/lib/travis/api/serialize/v2/http/job.rb @@ -0,0 +1,72 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Job + include Formats + + attr_reader :job, :options + + def initialize(job, options = {}) + @job = job + @options = options + end + + def data + { + 'job' => job_data(job), + 'commit' => commit_data(job.commit, job.repository), + 'annotations' => Annotations.new(job.annotations, @options).data["annotations"], + } + end + + private + + def job_data(job) + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'repository_slug' => job.repository.slug, + 'build_id' => job.source_id, + 'commit_id' => job.commit_id, + 'log_id' => job.log_id, + 'number' => job.number, + 'config' => job.obfuscated_config.stringify_keys, + 'state' => job.state.to_s, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'queue' => job.queue, + 'allow_failure' => job.allow_failure, + 'tags' => job.tags, + 'annotation_ids' => job.annotation_ids, + } + end + + def commit_data(commit, repository) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'branch_is_default' => branch_is_default(commit, repository), + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + + def branch_is_default(commit, repository) + repository.default_branch == commit.branch + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/jobs.rb b/lib/travis/api/serialize/v2/http/jobs.rb new file mode 100644 index 00000000..f8fcff73 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/jobs.rb @@ -0,0 +1,65 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Jobs + include Formats + + attr_reader :jobs, :options + + def initialize(jobs, options = {}) + @jobs = jobs + @options = options + end + + def data + { + 'jobs' => jobs.map { |job| job_data(job) }, + 'commits' => jobs.map { |job| commit_data(job.commit) } + } + end + + private + + def job_data(job) + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'repository_slug' => job.repository.slug, + 'build_id' => job.source_id, + 'commit_id' => job.commit_id, + 'log_id' => job.log_id, + 'number' => job.number, + 'config' => job.obfuscated_config.stringify_keys, + 'state' => job.state.to_s, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'queue' => job.queue, + 'allow_failure' => job.allow_failure, + 'tags' => job.tags + } + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/log.rb b/lib/travis/api/serialize/v2/http/log.rb new file mode 100644 index 00000000..f89b6af9 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/log.rb @@ -0,0 +1,80 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class Log + attr_reader :log, :options + + def initialize(log, options = {}) + @log = log + @options = options + end + + def data + log_hash = options[:chunked] ? chunked_log_data : log_data + if log.removed_at + log_hash['removed_at'] = log.removed_at + log_hash['removed_by'] = log.removed_by.name || log.removed_by.login + end + + { + 'log' => log_hash, + } + end + + private + + def log_data + { + 'id' => log.id, + 'job_id' => log.job_id, + 'type' => log.class.name.demodulize, + 'body' => log.content + } + end + + def chunked_log_data + { + 'id' => log.id, + 'job_id' => log.job_id, + 'type' => log.class.name.demodulize, + 'parts' => log_parts + } + end + + def log_parts + if log.removed_at + # if log is removed we don't have actual parts + parts = [{ 'number' => 1, 'content' => log.content, 'final' => true }] + else + parts = log.parts + parts = parts.where(number: part_numbers) if part_numbers + parts = parts.where(["number > ?", after]) if after + parts.sort_by(&:number).map do |part| + { + 'id' => part.id, + 'number' => part.number, + 'content' => part.content, + 'final' => part.final + } + end + end + end + + def after + after = options['after'].to_i + after == 0 ? nil : after + end + + def part_numbers + if numbers = options['part_numbers'] + numbers.is_a?(String) ? numbers.split(',').map(&:to_i) : numbers + end + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/permissions.rb b/lib/travis/api/serialize/v2/http/permissions.rb new file mode 100644 index 00000000..5db379f9 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/permissions.rb @@ -0,0 +1,52 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class Permissions + attr_reader :permissions, :options + + def initialize(permissions, options = {}) + @permissions = permissions + @options = options + end + + def data + { + 'permissions' => repo_ids, + 'admin' => admin_ids, + 'pull' => pull_ids, + 'push' => push_ids + } + end + + private + def filtered_ids(perm = nil) + if perm + permissions.find_all { |p| p.send("#{perm}?") }.map { |permission| permission.repository_id } + else + permissions.map { |permission| permission.repository_id } + end + end + + def repo_ids + filtered_ids + end + + def admin_ids + filtered_ids(:admin) + end + + def pull_ids + filtered_ids(:pull) + end + + def push_ids + filtered_ids(:push) + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/repositories.rb b/lib/travis/api/serialize/v2/http/repositories.rb new file mode 100644 index 00000000..d153ea39 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/repositories.rb @@ -0,0 +1,47 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Repositories + include Formats + + attr_reader :repositories, :options + + def initialize(repositories, options = {}) + @repositories = repositories + @options = options + end + + def data + { + 'repos' => repositories.map { |repository| repository_data(repository) } + } + end + + private + + def repository_data(repository) + { + 'id' => repository.id, + 'slug' => repository.slug, + 'description' => repository.description, + 'last_build_id' => repository.last_build_id, + 'last_build_number' => repository.last_build_number, + 'last_build_state' => repository.last_build_state.to_s, + 'last_build_duration' => repository.last_build_duration, + 'last_build_language' => nil, + 'last_build_started_at' => format_date(repository.last_build_started_at), + 'last_build_finished_at' => format_date(repository.last_build_finished_at), + 'active' => repository.active, + 'github_language' => repository.github_language + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/repository.rb b/lib/travis/api/serialize/v2/http/repository.rb new file mode 100644 index 00000000..3125d7a0 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/repository.rb @@ -0,0 +1,47 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Repository + include Formats + + attr_reader :repository, :options + + def initialize(repository, options = {}) + @repository = repository + end + + def data + { + 'repo' => repository_data(repository) + } + end + + private + + # TODO why does this not include the last build? (i.e. 'builds' => { last build here }) + def repository_data(repository) + { + 'id' => repository.id, + 'slug' => repository.slug, + 'active' => repository.active, + 'description' => repository.description, + 'last_build_id' => repository.last_build_id, + 'last_build_number' => repository.last_build_number, + 'last_build_state' => repository.last_build_state.to_s, + 'last_build_duration' => repository.last_build_duration, + 'last_build_language' => nil, + 'last_build_started_at' => format_date(repository.last_build_started_at), + 'last_build_finished_at' => format_date(repository.last_build_finished_at), + 'github_language' => repository.github_language + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/request.rb b/lib/travis/api/serialize/v2/http/request.rb new file mode 100644 index 00000000..8b0b434f --- /dev/null +++ b/lib/travis/api/serialize/v2/http/request.rb @@ -0,0 +1,75 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Request + include Formats + attr_reader :request, :commit, :options + + def initialize(request, options = {}) + @request = request + @commit = request.commit + @options = options + end + + def data + data = { + 'request' => request_data + } + if commit + data['commit'] = commit_data + end + data + end + + private + + def request_data + data = { + 'id' => request.id, + 'repository_id' => request.repository_id, + 'commit_id' => request.commit_id, + 'created_at' => format_date(request.created_at), + 'owner_id' => request.owner_id, + 'owner_type' => request.owner_type, + 'event_type' => request.event_type, + 'base_commit' => request.base_commit, + 'head_commit' => request.head_commit, + 'result' => request.result, + 'message' => request.message, + 'pull_request' => request.pull_request?, + 'pull_request_number' => request.pull_request_number, + 'pull_request_title' => request.pull_request_title, + 'branch' => request.branch_name, + 'tag' => request.tag_name + } + + data['build_id'] = request.builds.first.id if request.builds.present? + + data + end + + def commit_data + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + 'pull_request_number' => commit.pull_request_number + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/requests.rb b/lib/travis/api/serialize/v2/http/requests.rb new file mode 100644 index 00000000..97a6485e --- /dev/null +++ b/lib/travis/api/serialize/v2/http/requests.rb @@ -0,0 +1,72 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class Requests + include Formats + attr_reader :requests, :commits, :options + + def initialize(requests, options = {}) + @requests = requests + @commits = requests.map(&:commit) + @options = options + end + + def data + { + 'requests' => requests.map { |request| request_data(request) }, + 'commits' => commits.compact.map { |commit| commit_data(commit) } + } + end + + private + + def request_data(request) + data = { + 'id' => request.id, + 'repository_id' => request.repository_id, + 'commit_id' => request.commit_id, + 'created_at' => format_date(request.created_at), + 'owner_id' => request.owner_id, + 'owner_type' => request.owner_type, + 'event_type' => request.event_type, + 'base_commit' => request.base_commit, + 'head_commit' => request.head_commit, + 'result' => request.result, + 'message' => request.message, + 'pull_request' => request.pull_request?, + 'pull_request_number' => request.pull_request_number, + 'pull_request_title' => request.pull_request_title, + 'branch' => request.branch_name, + 'tag' => request.tag_name + } + + data['build_id'] = request.builds.first.id if request.builds.present? + + data + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + 'pull_request_number' => commit.pull_request_number + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/ssh_key.rb b/lib/travis/api/serialize/v2/http/ssh_key.rb new file mode 100644 index 00000000..2f1c7a5b --- /dev/null +++ b/lib/travis/api/serialize/v2/http/ssh_key.rb @@ -0,0 +1,28 @@ +require 'openssl' +require 'travis/private_key' + +module Travis + module Api + module Serialize + module V2 + module Http + class SshKey < Travis::Api::Serializer + attributes :id, :description, :fingerprint + + def id + object.repository_id + end + + def fingerprint + value = object.value.decrypt + return unless value + PrivateKey.new(value).fingerprint + rescue OpenSSL::PKey::RSAError + nil + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/ssl_key.rb b/lib/travis/api/serialize/v2/http/ssl_key.rb new file mode 100644 index 00000000..37402b28 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/ssl_key.rb @@ -0,0 +1,28 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class SslKey + attr_reader :key + + def initialize(key, options = {}) + @key = key + end + + def fingerprint + PrivateKey.new(key.private_key).fingerprint + end + + def data + { + 'key' => key.public_key, + 'fingerprint' => fingerprint + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/user.rb b/lib/travis/api/serialize/v2/http/user.rb new file mode 100644 index 00000000..e7bbbf55 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/user.rb @@ -0,0 +1,50 @@ +require 'travis/api/serialize/formats' + +module Travis + module Api + module Serialize + module V2 + module Http + class User + include Formats + + attr_reader :user, :options + + def initialize(user, options = {}) + @user = user + @options = options + end + + def data + { + 'user' => user_data, + } + end + + private + + def user_data + { + 'id' => user.id, + 'name' => user.name, + 'login' => user.login, + 'email' => user.email, + 'gravatar_id' => user.email ? Digest::MD5.hexdigest(user.email) : "", + 'locale' => user.locale, + 'is_syncing' => user.syncing?, + 'synced_at' => format_date(user.synced_at), + 'correct_scopes' => user.correct_scopes?, + 'created_at' => format_date(user.created_at), + 'channels' => channels + } + end + + def channels + ["user-#{user.id}"] + user.repository_ids.map { |id| "repo-#{id}" } + end + end + end + end + end + end +end diff --git a/lib/travis/api/serialize/v2/http/validation_error.rb b/lib/travis/api/serialize/v2/http/validation_error.rb new file mode 100644 index 00000000..22b882a1 --- /dev/null +++ b/lib/travis/api/serialize/v2/http/validation_error.rb @@ -0,0 +1,40 @@ +module Travis + module Api + module Serialize + module V2 + module Http + class ValidationError + attr_reader :resource + + def initialize(resource, options = {}) + @resource = resource + end + + def data + response = { + message: 'Validation failed' + } + resource.errors.to_hash.each do |name, errors| + response['errors'] ||= [] + errors.each do |error_code| + response['errors'] << { field: name, code: code(error_code) } + end + end + + response + end + + def code(error_code) + case error_code + when :blank + 'missing_field' + else + error_code.to_s + end + end + end + end + end + end + end +end diff --git a/lib/travis/api/serializer.rb b/lib/travis/api/serializer.rb index a34ecdff..caac66df 100644 --- a/lib/travis/api/serializer.rb +++ b/lib/travis/api/serializer.rb @@ -14,7 +14,7 @@ module Travis end def initialize(resource, options) - options[:each_serializer] ||= Travis::Api::V2::Http.const_get(options[:root].to_s.singularize.camelize) + options[:each_serializer] ||= Travis::Api::Serialize::V2::Http.const_get(options[:root].to_s.singularize.camelize) super(resource, options) end end diff --git a/lib/travis/api/v2.rb b/lib/travis/api/v2.rb deleted file mode 100644 index 8b452406..00000000 --- a/lib/travis/api/v2.rb +++ /dev/null @@ -1,8 +0,0 @@ -module Travis - module Api - module V2 - require 'travis/api/v2/http' - end - end -end - diff --git a/lib/travis/api/v2/http.rb b/lib/travis/api/v2/http.rb deleted file mode 100644 index a733b364..00000000 --- a/lib/travis/api/v2/http.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'travis/api/serializer' - -module Travis - module Api - module V2 - module Http - require 'travis/api/v2/http/accounts' - require 'travis/api/v2/http/annotations' - require 'travis/api/v2/http/broadcasts' - require 'travis/api/v2/http/branch' - require 'travis/api/v2/http/branches' - require 'travis/api/v2/http/build' - require 'travis/api/v2/http/builds' - require 'travis/api/v2/http/caches' - require 'travis/api/v2/http/hooks' - require 'travis/api/v2/http/job' - require 'travis/api/v2/http/jobs' - require 'travis/api/v2/http/log' - require 'travis/api/v2/http/permissions' - require 'travis/api/v2/http/repositories' - require 'travis/api/v2/http/repository' - require 'travis/api/v2/http/requests' - require 'travis/api/v2/http/request' - require 'travis/api/v2/http/ssl_key' - require 'travis/api/v2/http/env_var' - require 'travis/api/v2/http/env_vars' - require 'travis/api/v2/http/user' - require 'travis/api/v2/http/validation_error' - require 'travis/api/v2/http/ssh_key' - end - end - end -end diff --git a/lib/travis/api/v2/http/accounts.rb b/lib/travis/api/v2/http/accounts.rb deleted file mode 100644 index 5b8be3ef..00000000 --- a/lib/travis/api/v2/http/accounts.rb +++ /dev/null @@ -1,42 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Accounts - include Formats - - attr_reader :accounts, :options - - def initialize(accounts, options = {}) - @accounts = accounts - @options = options - end - - def data - { - :accounts => accounts.map { |account| account_data(account) } - } - end - - private - - def account_data(account) - data = { - 'id' => account.id, - 'name' => account.name, - 'login' => account.login, - 'type' => account.type.underscore, - 'repos_count' => account.repos_count - } - - data['avatar_url'] = account.avatar_url if account.respond_to?(:avatar_url) - - data - end - end - end - end - end -end - - diff --git a/lib/travis/api/v2/http/annotations.rb b/lib/travis/api/v2/http/annotations.rb deleted file mode 100644 index ac750c72..00000000 --- a/lib/travis/api/v2/http/annotations.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Annotations - include Formats - - def initialize(annotations, options = {}) - @annotations = annotations - end - - def data - { - "annotations" => @annotations.map { |annotation| build_annotation(annotation) }, - } - end - - private - - def build_annotation(annotation) - { - "id" => annotation.id, - "job_id" => annotation.job_id, - "description" => annotation.description, - "url" => annotation.url, - "status" => annotation.status, - "provider_name" => annotation.annotation_provider.name, - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/branch.rb b/lib/travis/api/v2/http/branch.rb deleted file mode 100644 index 833e755e..00000000 --- a/lib/travis/api/v2/http/branch.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'travis/api/v2/http/branches' - -module Travis - module Api - module V2 - module Http - class Branch < Branches - include Formats - - attr_reader :build, :commit, :options - - def initialize(build, options = {}) - @build = build - @commit = build.commit - @options = options - end - - def data - { - 'branch' => build_data(build), - 'commit' => commit_data(commit) - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/branches.rb b/lib/travis/api/v2/http/branches.rb deleted file mode 100644 index a1aaef37..00000000 --- a/lib/travis/api/v2/http/branches.rb +++ /dev/null @@ -1,60 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Branches - include Formats - - attr_reader :builds, :commits, :options - - def initialize(builds, options = {}) - builds = builds.last_finished_builds_by_branches if builds.is_a?(Repository) # TODO remove, bc - @builds = builds - @commits = builds.map(&:commit) - @options = options - end - - def data - { - 'branches' => builds.map { |build| build_data(build) }, - 'commits' => commits.map { |commit| commit_data(commit) } - } - end - - private - - def build_data(build) - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'commit_id' => build.commit_id, - 'number' => build.number, - 'config' => build.obfuscated_config.stringify_keys, - 'state' => build.state.to_s, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'job_ids' => build.matrix.map { |job| job.id }, - 'pull_request' => build.pull_request? - } - end - - def commit_data(commit) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/broadcasts.rb b/lib/travis/api/v2/http/broadcasts.rb deleted file mode 100644 index a95d775d..00000000 --- a/lib/travis/api/v2/http/broadcasts.rb +++ /dev/null @@ -1,32 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Broadcasts - attr_reader :broadcasts, :options - - def initialize(broadcasts, options = {}) - @broadcasts = broadcasts - @options = options - end - - def data - { - 'broadcasts' => broadcasts.map { |broadcast| broadcast_data(broadcast) } - } - end - - private - - def broadcast_data(broadcast) - { - 'id' => broadcast.id, - 'message' => broadcast.message - } - end - end - end - end - end -end - diff --git a/lib/travis/api/v2/http/build.rb b/lib/travis/api/v2/http/build.rb deleted file mode 100644 index 394c4ac8..00000000 --- a/lib/travis/api/v2/http/build.rb +++ /dev/null @@ -1,93 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Build - include Formats - - attr_reader :build, :options - - def initialize(build, options = {}) - options[:include_jobs] = true unless options.key?(:include_jobs) - - @build = build - @options = options - end - - def data - { - 'build' => build_data(build), - 'commit' => commit_data(build.commit, build.repository), - 'jobs' => options[:include_jobs] ? build.matrix.map { |job| job_data(job) } : [], - 'annotations' => options[:include_jobs] ? Annotations.new(annotations(build), @options).data["annotations"] : [], - } - end - - private - - def build_data(build) - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'commit_id' => build.commit_id, - 'number' => build.number, - 'event_type' => build.event_type, - 'pull_request' => build.pull_request?, - 'pull_request_title' => build.pull_request_title, - 'pull_request_number' => build.pull_request_number, - 'config' => build.obfuscated_config.stringify_keys, - 'state' => build.state.to_s, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'job_ids' => build.matrix_ids - } - end - - def commit_data(commit, repository) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'branch_is_default' => branch_is_default(commit, repository), - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - - def job_data(job) - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'build_id' => job.source_id, - 'commit_id' => job.commit_id, - 'log_id' => job.log_id, - 'state' => job.state.to_s, - 'number' => job.number, - 'config' => job.obfuscated_config.stringify_keys, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'queue' => job.queue, - 'allow_failure' => job.allow_failure, - 'tags' => job.tags, - 'annotation_ids' => job.annotation_ids, - } - end - - def branch_is_default(commit, repository) - repository.default_branch == commit.branch - end - - def annotations(build) - build.matrix.map(&:annotations).flatten - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/builds.rb b/lib/travis/api/v2/http/builds.rb deleted file mode 100644 index 5b234115..00000000 --- a/lib/travis/api/v2/http/builds.rb +++ /dev/null @@ -1,67 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Builds - include Formats - - attr_reader :builds, :commits, :options - - def initialize(builds, options = {}) - @builds = builds - @commits = builds.map(&:commit) - @options = options - end - - def data - { - 'builds' => builds.map { |build| build_data(build) }, - 'commits' => commits.map { |commit| commit_data(commit) } - } - end - - private - - def build_data(build) - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'commit_id' => build.commit_id, - 'number' => build.number, - 'event_type' => build.event_type, - 'pull_request' => build.pull_request?, - 'pull_request_title' => build.pull_request_title, - 'pull_request_number' => build.pull_request_number, - 'config' => build.obfuscated_config.stringify_keys, - 'state' => build.state.to_s, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'job_ids' => matrix_ids(build) - } - end - - def matrix_ids(build) - build.cached_matrix_ids || build.matrix_ids - end - - def commit_data(commit) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - 'pull_request_number' => commit.pull_request_number - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/caches.rb b/lib/travis/api/v2/http/caches.rb deleted file mode 100644 index d36efced..00000000 --- a/lib/travis/api/v2/http/caches.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Caches - include Formats - attr_reader :caches, :options - - def initialize(caches, options = {}) - @caches = caches - @options = options - end - - def data - { 'caches' => caches.map { |cache| cache_data(cache) } } - end - - private - - def cache_data(cache) - { - 'repository_id' => cache.repository.id, - 'size' => cache.size, - 'slug' => cache.slug, - 'branch' => cache.branch, - 'last_modified' => format_date(cache.last_modified) - } - end - end - end - end - end -end \ No newline at end of file diff --git a/lib/travis/api/v2/http/env_var.rb b/lib/travis/api/v2/http/env_var.rb deleted file mode 100644 index 864392a1..00000000 --- a/lib/travis/api/v2/http/env_var.rb +++ /dev/null @@ -1,23 +0,0 @@ -module Travis - module Api - module V2 - module Http - class EnvVar < Travis::Api::Serializer - attributes :id, :name, :value, :public, :repository_id - - def value - if object.public? - object.value.decrypt - end - end - - def serializable_hash - hash = super - hash.delete :value unless object.public? - hash - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/env_vars.rb b/lib/travis/api/v2/http/env_vars.rb deleted file mode 100644 index 601dcc3a..00000000 --- a/lib/travis/api/v2/http/env_vars.rb +++ /dev/null @@ -1,2 +0,0 @@ -class Travis::Api::V2::Http::EnvVars < Travis::Api::ArraySerializer -end diff --git a/lib/travis/api/v2/http/hooks.rb b/lib/travis/api/v2/http/hooks.rb deleted file mode 100644 index 34203517..00000000 --- a/lib/travis/api/v2/http/hooks.rb +++ /dev/null @@ -1,37 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Hooks - attr_reader :hooks, :options - - def initialize(hooks, options = {}) - @hooks = hooks - @options = options - end - - def data - { - 'hooks' => hooks.map { |hook| hook_data(hook) }, - } - end - - private - - def hook_data(hook) - { - 'id' => hook.id, - 'name' => hook.name, - 'owner_name' => hook.owner_name, - 'description' => hook.description, - 'active' => hook.active, - 'private' => hook.private, - 'admin' => hook.admin? - } - end - end - end - end - end -end - diff --git a/lib/travis/api/v2/http/job.rb b/lib/travis/api/v2/http/job.rb deleted file mode 100644 index 92366474..00000000 --- a/lib/travis/api/v2/http/job.rb +++ /dev/null @@ -1,68 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Job - include Formats - - attr_reader :job, :options - - def initialize(job, options = {}) - @job = job - @options = options - end - - def data - { - 'job' => job_data(job), - 'commit' => commit_data(job.commit, job.repository), - 'annotations' => Annotations.new(job.annotations, @options).data["annotations"], - } - end - - private - - def job_data(job) - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'repository_slug' => job.repository.slug, - 'build_id' => job.source_id, - 'commit_id' => job.commit_id, - 'log_id' => job.log_id, - 'number' => job.number, - 'config' => job.obfuscated_config.stringify_keys, - 'state' => job.state.to_s, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'queue' => job.queue, - 'allow_failure' => job.allow_failure, - 'tags' => job.tags, - 'annotation_ids' => job.annotation_ids, - } - end - - def commit_data(commit, repository) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'branch_is_default' => branch_is_default(commit, repository), - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - - def branch_is_default(commit, repository) - repository.default_branch == commit.branch - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/log.rb b/lib/travis/api/v2/http/log.rb deleted file mode 100644 index 1ace5cd8..00000000 --- a/lib/travis/api/v2/http/log.rb +++ /dev/null @@ -1,79 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Log - attr_reader :log, :options - - def initialize(log, options = {}) - @log = log - @options = options - end - - def data - log_hash = options[:chunked] ? chunked_log_data : log_data - if log.removed_at - log_hash['removed_at'] = log.removed_at - log_hash['removed_by'] = log.removed_by.name || log.removed_by.login - end - - { - 'log' => log_hash, - } - end - - private - - def log_data - { - 'id' => log.id, - 'job_id' => log.job_id, - 'type' => log.class.name.demodulize, - 'body' => log.content - } - end - - def chunked_log_data - { - 'id' => log.id, - 'job_id' => log.job_id, - 'type' => log.class.name.demodulize, - 'parts' => log_parts - } - end - - def log_parts - if log.removed_at - # if log is removed we don't have actual parts - parts = [{ 'number' => 1, 'content' => log.content, 'final' => true }] - else - parts = log.parts - parts = parts.where(number: part_numbers) if part_numbers - parts = parts.where(["number > ?", after]) if after - parts.sort_by(&:number).map do |part| - { - 'id' => part.id, - 'number' => part.number, - 'content' => part.content, - 'final' => part.final - } - end - end - end - - def after - after = options['after'].to_i - after == 0 ? nil : after - end - - def part_numbers - if numbers = options['part_numbers'] - numbers.is_a?(String) ? numbers.split(',').map(&:to_i) : numbers - end - end - end - end - end - end -end - diff --git a/lib/travis/api/v2/http/permissions.rb b/lib/travis/api/v2/http/permissions.rb deleted file mode 100644 index a4c494c1..00000000 --- a/lib/travis/api/v2/http/permissions.rb +++ /dev/null @@ -1,50 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Permissions - attr_reader :permissions, :options - - def initialize(permissions, options = {}) - @permissions = permissions - @options = options - end - - def data - { - 'permissions' => repo_ids, - 'admin' => admin_ids, - 'pull' => pull_ids, - 'push' => push_ids - } - end - - private - def filtered_ids(perm = nil) - if perm - permissions.find_all { |p| p.send("#{perm}?") }.map { |permission| permission.repository_id } - else - permissions.map { |permission| permission.repository_id } - end - end - - def repo_ids - filtered_ids - end - - def admin_ids - filtered_ids(:admin) - end - - def pull_ids - filtered_ids(:pull) - end - - def push_ids - filtered_ids(:push) - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/request.rb b/lib/travis/api/v2/http/request.rb deleted file mode 100644 index 709512e5..00000000 --- a/lib/travis/api/v2/http/request.rb +++ /dev/null @@ -1,71 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Request - include Formats - attr_reader :request, :commit, :options - - def initialize(request, options = {}) - @request = request - @commit = request.commit - @options = options - end - - def data - data = { - 'request' => request_data - } - if commit - data['commit'] = commit_data - end - data - end - - private - - def request_data - data = { - 'id' => request.id, - 'repository_id' => request.repository_id, - 'commit_id' => request.commit_id, - 'created_at' => format_date(request.created_at), - 'owner_id' => request.owner_id, - 'owner_type' => request.owner_type, - 'event_type' => request.event_type, - 'base_commit' => request.base_commit, - 'head_commit' => request.head_commit, - 'result' => request.result, - 'message' => request.message, - 'pull_request' => request.pull_request?, - 'pull_request_number' => request.pull_request_number, - 'pull_request_title' => request.pull_request_title, - 'branch' => request.branch_name, - 'tag' => request.tag_name - } - - data['build_id'] = request.builds.first.id if request.builds.present? - - data - end - - def commit_data - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - 'pull_request_number' => commit.pull_request_number - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/requests.rb b/lib/travis/api/v2/http/requests.rb deleted file mode 100644 index d55fe8b4..00000000 --- a/lib/travis/api/v2/http/requests.rb +++ /dev/null @@ -1,68 +0,0 @@ -module Travis - module Api - module V2 - module Http - class Requests - include Formats - attr_reader :requests, :commits, :options - - def initialize(requests, options = {}) - @requests = requests - @commits = requests.map(&:commit) - @options = options - end - - def data - { - 'requests' => requests.map { |request| request_data(request) }, - 'commits' => commits.compact.map { |commit| commit_data(commit) } - } - end - - private - - def request_data(request) - data = { - 'id' => request.id, - 'repository_id' => request.repository_id, - 'commit_id' => request.commit_id, - 'created_at' => format_date(request.created_at), - 'owner_id' => request.owner_id, - 'owner_type' => request.owner_type, - 'event_type' => request.event_type, - 'base_commit' => request.base_commit, - 'head_commit' => request.head_commit, - 'result' => request.result, - 'message' => request.message, - 'pull_request' => request.pull_request?, - 'pull_request_number' => request.pull_request_number, - 'pull_request_title' => request.pull_request_title, - 'branch' => request.branch_name, - 'tag' => request.tag_name - } - - data['build_id'] = request.builds.first.id if request.builds.present? - - data - end - - def commit_data(commit) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - 'pull_request_number' => commit.pull_request_number - } - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/ssh_key.rb b/lib/travis/api/v2/http/ssh_key.rb deleted file mode 100644 index afff8987..00000000 --- a/lib/travis/api/v2/http/ssh_key.rb +++ /dev/null @@ -1,26 +0,0 @@ -require 'openssl' -require 'travis/private_key' - -module Travis - module Api - module V2 - module Http - class SshKey < Travis::Api::Serializer - attributes :id, :description, :fingerprint - - def id - object.repository_id - end - - def fingerprint - value = object.value.decrypt - return unless value - PrivateKey.new(value).fingerprint - rescue OpenSSL::PKey::RSAError - nil - end - end - end - end - end -end diff --git a/lib/travis/api/v2/http/ssl_key.rb b/lib/travis/api/v2/http/ssl_key.rb deleted file mode 100644 index 51754f12..00000000 --- a/lib/travis/api/v2/http/ssl_key.rb +++ /dev/null @@ -1,27 +0,0 @@ -module Travis - module Api - module V2 - module Http - class SslKey - attr_reader :key - - def initialize(key, options = {}) - @key = key - end - - def fingerprint - PrivateKey.new(key.private_key).fingerprint - end - - def data - { - 'key' => key.public_key, - 'fingerprint' => fingerprint - } - end - end - end - end - end -end - diff --git a/lib/travis/api/v2/http/user.rb b/lib/travis/api/v2/http/user.rb deleted file mode 100644 index 51f17a99..00000000 --- a/lib/travis/api/v2/http/user.rb +++ /dev/null @@ -1,48 +0,0 @@ -module Travis - module Api - module V2 - module Http - class User - include Formats - - attr_reader :user, :options - - def initialize(user, options = {}) - @user = user - @options = options - end - - def data - { - 'user' => user_data, - } - end - - private - - def user_data - { - 'id' => user.id, - 'name' => user.name, - 'login' => user.login, - 'email' => user.email, - 'gravatar_id' => user.email ? Digest::MD5.hexdigest(user.email) : "", - 'locale' => user.locale, - 'is_syncing' => user.syncing?, - 'synced_at' => format_date(user.synced_at), - 'correct_scopes' => user.correct_scopes?, - 'created_at' => format_date(user.created_at), - 'channels' => channels - } - end - - def channels - ["user-#{user.id}"] + user.repository_ids.map { |id| "repo-#{id}" } - end - end - end - end - end -end - - diff --git a/lib/travis/api/v2/http/validation_error.rb b/lib/travis/api/v2/http/validation_error.rb deleted file mode 100644 index dc5cfe33..00000000 --- a/lib/travis/api/v2/http/validation_error.rb +++ /dev/null @@ -1,39 +0,0 @@ -module Travis - module Api - module V2 - module Http - class ValidationError - attr_reader :resource - - def initialize(resource, options = {}) - @resource = resource - end - - def data - response = { - message: 'Validation failed' - } - resource.errors.to_hash.each do |name, errors| - response['errors'] ||= [] - errors.each do |error_code| - response['errors'] << { field: name, code: code(error_code) } - end - end - - response - end - - def code(error_code) - case error_code - when :blank - 'missing_field' - else - error_code.to_s - end - end - end - end - end - end -end - diff --git a/spec/integration/settings_endpoint_spec.rb b/spec/integration/settings_endpoint_spec.rb index 86d2a942..fc25ebcd 100644 --- a/spec/integration/settings_endpoint_spec.rb +++ b/spec/integration/settings_endpoint_spec.rb @@ -22,16 +22,16 @@ describe Travis::Api::App::SettingsEndpoint do serializer_class = Class.new(Travis::Api::Serializer) do attributes :id, :name end - Travis::Api::V2::Http.const_set(:Item, serializer_class) - Travis::Api::V2::Http.const_set(:Items, Travis::Api::ArraySerializer) + Travis::Api::Serialize::V2::Http.const_set(:Item, serializer_class) + Travis::Api::Serialize::V2::Http.const_set(:Items, Travis::Api::ArraySerializer) add_settings_endpoint :items end after do Travis::Api::App::Endpoint.send :remove_const, :Items - Travis::Api::V2::Http.send :remove_const, :Items - Travis::Api::V2::Http.send :remove_const, :Item + Travis::Api::Serialize::V2::Http.send :remove_const, :Items + Travis::Api::Serialize::V2::Http.send :remove_const, :Item end describe 'with authenticated user' do diff --git a/spec/integration/singleton_settings_endpoint_spec.rb b/spec/integration/singleton_settings_endpoint_spec.rb index 08ed54af..b465770a 100644 --- a/spec/integration/singleton_settings_endpoint_spec.rb +++ b/spec/integration/singleton_settings_endpoint_spec.rb @@ -18,14 +18,14 @@ describe Travis::Api::App::SettingsEndpoint do serializer_class = Class.new(Travis::Api::Serializer) do attributes :name end - Travis::Api::V2::Http.const_set(:Item, serializer_class) + Travis::Api::Serialize::V2::Http.const_set(:Item, serializer_class) add_settings_endpoint :item, singleton: true end after do Travis::Api::App::Endpoint.send :remove_const, :Item - Travis::Api::V2::Http.send :remove_const, :Item + Travis::Api::Serialize::V2::Http.send :remove_const, :Item end describe 'with authenticated user' do diff --git a/spec/integration/version_spec.rb b/spec/integration/version_spec.rb index 818a0dbd..fcab65e9 100644 --- a/spec/integration/version_spec.rb +++ b/spec/integration/version_spec.rb @@ -10,7 +10,7 @@ describe 'App' do end it 'uses version from current accept header' do - Travis::Api.expects(:builder).with { |r, options| options[:version] == 'v1' } + Travis::Api::Serialize.expects(:builder).with { |r, options| options[:version] == 'v1' } Travis::Api::App::Responders::Json.any_instance.stubs(:apply?). returns(false).then.returns(true) @@ -20,7 +20,7 @@ describe 'App' do end it 'uses v1 by default' do - Travis::Api.expects(:builder).with { |r, options| options[:version] == 'v1' } + Travis::Api::Serialize.expects(:builder).with { |r, options| options[:version] == 'v1' } get '/foo', {}, 'HTTP_ACCEPT' => 'application/json' end end diff --git a/spec/support/matchers.rb b/spec/support/matchers.rb index 883a49f2..d43e2cb3 100644 --- a/spec/support/matchers.rb +++ b/spec/support/matchers.rb @@ -4,7 +4,7 @@ RSpec::Matchers.define :deliver_json_for do |resource, options = {}| match do |response| if response.status == 200 actual = parse(response.body) - expected = resource.is_a?(Hash) ? resource : Travis::Api.data(resource, options) + expected = resource.is_a?(Hash) ? resource : Travis::Api::Serialize.data(resource, options) failure_message_for_should do "expected\n\n#{actual}\n\nto equal\n\n#{expected}" diff --git a/spec/unit/api/v2/http/accounts_spec.rb b/spec/unit/serialize/v2/http/accounts_spec.rb similarity index 86% rename from spec/unit/api/v2/http/accounts_spec.rb rename to spec/unit/serialize/v2/http/accounts_spec.rb index d444c2fa..acd17699 100644 --- a/spec/unit/api/v2/http/accounts_spec.rb +++ b/spec/unit/serialize/v2/http/accounts_spec.rb @@ -1,13 +1,13 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Accounts do +describe Travis::Api::Serialize::V2::Http::Accounts do include Travis::Testing::Stubs, Support::Formats let(:user) { { 'id' => 1, 'type' => 'User', 'login' => 'sven', 'name' => 'Sven', 'repos_count' => 2 } } let(:org) { { 'id' => 1, 'type' => 'Organization', 'login' => 'travis', 'name' => 'Travis', 'repos_count' => 1, 'avatar_url' => 'https://example.org/avatar.png' } } let(:accounts) { [Account.new(user), Account.new(org)] } - let(:data) { Travis::Api::V2::Http::Accounts.new(accounts).data } + let(:data) { described_class.new(accounts).data } it 'accounts' do data[:accounts].should == [ diff --git a/spec/unit/api/v2/http/annotations_spec.rb b/spec/unit/serialize/v2/http/annotations_spec.rb similarity index 87% rename from spec/unit/api/v2/http/annotations_spec.rb rename to spec/unit/serialize/v2/http/annotations_spec.rb index 5a973333..995a2b94 100644 --- a/spec/unit/api/v2/http/annotations_spec.rb +++ b/spec/unit/serialize/v2/http/annotations_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Annotations do +describe Travis::Api::Serialize::V2::Http::Annotations do include Travis::Testing::Stubs, Support::Formats let(:data) { described_class.new([annotation]).data } diff --git a/spec/unit/api/v2/http/branch_spec.rb b/spec/unit/serialize/v2/http/branch_spec.rb similarity index 91% rename from spec/unit/api/v2/http/branch_spec.rb rename to spec/unit/serialize/v2/http/branch_spec.rb index ada13b3e..68c37b98 100644 --- a/spec/unit/api/v2/http/branch_spec.rb +++ b/spec/unit/serialize/v2/http/branch_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Branch do +describe Travis::Api::Serialize::V2::Http::Branch do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Branch.new(branch).data } + let(:data) { described_class.new(branch).data } let(:branch) { build } specify 'branch' do diff --git a/spec/unit/api/v2/http/branches_spec.rb b/spec/unit/serialize/v2/http/branches_spec.rb similarity index 91% rename from spec/unit/api/v2/http/branches_spec.rb rename to spec/unit/serialize/v2/http/branches_spec.rb index c0cec4e6..0e560f64 100644 --- a/spec/unit/api/v2/http/branches_spec.rb +++ b/spec/unit/serialize/v2/http/branches_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Branches do +describe Travis::Api::Serialize::V2::Http::Branches do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Branches.new(branches).data } + let(:data) { described_class.new(branches).data } let(:branches) { [build] } it 'branches' do diff --git a/spec/unit/api/v2/http/broadcasts_spec.rb b/spec/unit/serialize/v2/http/broadcasts_spec.rb similarity index 65% rename from spec/unit/api/v2/http/broadcasts_spec.rb rename to spec/unit/serialize/v2/http/broadcasts_spec.rb index e7a5a45c..85ed3fe9 100644 --- a/spec/unit/api/v2/http/broadcasts_spec.rb +++ b/spec/unit/serialize/v2/http/broadcasts_spec.rb @@ -1,10 +1,10 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Broadcasts do +describe Travis::Api::Serialize::V2::Http::Broadcasts do include Support::Formats let(:broadcast) { stub(:id => 1, :message => 'yo hey!') } - let(:data) { Travis::Api::V2::Http::Broadcasts.new([broadcast]).data } + let(:data) { described_class.new([broadcast]).data } it 'broadcasts' do data['broadcasts'].first.should == { diff --git a/spec/unit/api/v2/http/build_spec.rb b/spec/unit/serialize/v2/http/build_spec.rb similarity index 87% rename from spec/unit/api/v2/http/build_spec.rb rename to spec/unit/serialize/v2/http/build_spec.rb index 2997a6ce..d9558f8b 100644 --- a/spec/unit/api/v2/http/build_spec.rb +++ b/spec/unit/serialize/v2/http/build_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Build do +describe Travis::Api::Serialize::V2::Http::Build do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Build.new(build).data } + let(:data) { described_class.new(build).data } it 'build' do data['build'].should == { @@ -46,7 +46,7 @@ describe Travis::Api::V2::Http::Build do pull_request_title: 'A pull request', pull_request_number: 44 end - let(:data) { Travis::Api::V2::Http::Build.new(build).data } + let(:data) { described_class.new(build).data } it 'returns pull request data' do data['build']['pull_request'].should == true @@ -75,10 +75,10 @@ describe Travis::Api::V2::Http::Build do end end -describe 'Travis::Api::V2::Http::Build using Travis::Services::Builds::FindOne' do +describe Travis::Api::Serialize::V2::Http::Build, 'using Travis::Services::Builds::FindOne' do let!(:record) { Factory(:build) } let(:build) { Travis.run_service(:find_build, nil, :id => record.id) } - let(:data) { Travis::Api::V2::Http::Build.new(build).data } + let(:data) { described_class.new(build).data } it 'queries' do lambda { data }.should issue_queries(8) diff --git a/spec/unit/api/v2/http/builds_spec.rb b/spec/unit/serialize/v2/http/builds_spec.rb similarity index 87% rename from spec/unit/api/v2/http/builds_spec.rb rename to spec/unit/serialize/v2/http/builds_spec.rb index f59ac427..3a587257 100644 --- a/spec/unit/api/v2/http/builds_spec.rb +++ b/spec/unit/serialize/v2/http/builds_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Builds do +describe Travis::Api::Serialize::V2::Http::Builds do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Builds.new([build]).data } + let(:data) { described_class.new([build]).data } it 'builds' do data['builds'].first.should == { @@ -43,7 +43,7 @@ describe Travis::Api::V2::Http::Builds do it 'uses uses cached_matrix_ids if the column exists in DB' do build = stub_build build.expects(:cached_matrix_ids).returns([1, 2, 3]) - data = Travis::Api::V2::Http::Builds.new([build]).data + data = described_class.new([build]).data data['builds'].first['job_ids'].should == [1, 2, 3] end @@ -61,10 +61,10 @@ describe Travis::Api::V2::Http::Builds do end end -describe 'Travis::Api::V2::Http::Builds using Travis::Services::Builds::FindAll' do +describe Travis::Api::Serialize::V2::Http::Builds, 'using Travis::Services::Builds::FindAll' do let!(:repo) { Factory(:repository) } let(:builds) { Travis.run_service(:find_builds, nil, :event_type => 'push', :repository_id => repo.id) } - let(:data) { Travis::Api::V2::Http::Builds.new(builds).data } + let(:data) { described_class.new(builds).data } before :each do 3.times { Factory(:build, :repository => repo) } diff --git a/spec/unit/api/v2/http/caches_spec.rb b/spec/unit/serialize/v2/http/caches_spec.rb similarity index 74% rename from spec/unit/api/v2/http/caches_spec.rb rename to spec/unit/serialize/v2/http/caches_spec.rb index 9a310e32..0fd41c89 100644 --- a/spec/unit/api/v2/http/caches_spec.rb +++ b/spec/unit/serialize/v2/http/caches_spec.rb @@ -1,8 +1,8 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Branch do +describe Travis::Api::Serialize::V2::Http::Caches do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Caches.new([cache]).data } + let(:data) { described_class.new([cache]).data } specify 'caches' do data['caches'].should be == [{ @@ -13,4 +13,4 @@ describe Travis::Api::V2::Http::Branch do "last_modified" => "1970-01-01T00:00:00Z" }] end -end \ No newline at end of file +end diff --git a/spec/unit/api/v2/http/env_var_spec.rb b/spec/unit/serialize/v2/http/env_var_spec.rb similarity index 83% rename from spec/unit/api/v2/http/env_var_spec.rb rename to spec/unit/serialize/v2/http/env_var_spec.rb index 8f9e703e..f5510f36 100644 --- a/spec/unit/api/v2/http/env_var_spec.rb +++ b/spec/unit/serialize/v2/http/env_var_spec.rb @@ -1,8 +1,8 @@ require 'spec_helper' -describe Travis::Api::V2::Http::EnvVar do +describe Travis::Api::Serialize::V2::Http::EnvVar do let(:env_var) { Repository::Settings::EnvVar.new(name: 'FOO', value: 'bar', public: true) } - let(:data) { Travis::Api::V2::Http::EnvVar.new(env_var) } + let(:data) { described_class.new(env_var) } it 'returns value' do data.as_json['env_var'][:value].should == 'bar' diff --git a/spec/unit/api/v2/http/hooks_spec.rb b/spec/unit/serialize/v2/http/hooks_spec.rb similarity index 82% rename from spec/unit/api/v2/http/hooks_spec.rb rename to spec/unit/serialize/v2/http/hooks_spec.rb index cf51580c..f084e849 100644 --- a/spec/unit/api/v2/http/hooks_spec.rb +++ b/spec/unit/serialize/v2/http/hooks_spec.rb @@ -1,12 +1,12 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Hooks do +describe Travis::Api::Serialize::V2::Http::Hooks do include Travis::Testing::Stubs let(:data) { r = repository r.stubs(:admin?).returns(true) - Travis::Api::V2::Http::Hooks.new([r]).data + described_class.new([r]).data } it 'hooks' do diff --git a/spec/unit/api/v2/http/job_spec.rb b/spec/unit/serialize/v2/http/job_spec.rb similarity index 89% rename from spec/unit/api/v2/http/job_spec.rb rename to spec/unit/serialize/v2/http/job_spec.rb index ca10373b..d8c0fcf9 100644 --- a/spec/unit/api/v2/http/job_spec.rb +++ b/spec/unit/serialize/v2/http/job_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Job do +describe Travis::Api::Serialize::V2::Http::Job do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Job.new(test).data } + let(:data) { described_class.new(test).data } it 'job' do data['job'].should == { @@ -63,10 +63,10 @@ describe Travis::Api::V2::Http::Job do end end -describe 'Travis::Api::V2::Http::Job using Travis::Services::Jobs::FindOne' do +describe Travis::Api::Serialize::V2::Http::Job, 'using Travis::Services::Jobs::FindOne' do let!(:record) { Factory(:test) } let(:job) { Travis.run_service(:find_job, nil, :id => record.id) } - let(:data) { Travis::Api::V2::Http::Job.new(job).data } + let(:data) { described_class.new(job).data } it 'queries' do lambda { data }.should issue_queries(5) diff --git a/spec/unit/api/v2/http/jobs_spec.rb b/spec/unit/serialize/v2/http/jobs_spec.rb similarity index 84% rename from spec/unit/api/v2/http/jobs_spec.rb rename to spec/unit/serialize/v2/http/jobs_spec.rb index ba3e0d3f..ef9a11d8 100644 --- a/spec/unit/api/v2/http/jobs_spec.rb +++ b/spec/unit/serialize/v2/http/jobs_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Jobs do +describe Travis::Api::Serialize::V2::Http::Jobs do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Jobs.new([test]).data } + let(:data) { described_class.new([test]).data } it 'jobs' do data['jobs'].first.should == { @@ -40,9 +40,9 @@ describe Travis::Api::V2::Http::Jobs do end end -describe 'Travis::Api::V2::Http::Jobs using Travis::Services::Jobs::FindAll' do +describe Travis::Api::Serialize::V2::Http::Jobs, 'using Travis::Services::Jobs::FindAll' do let(:jobs) { Travis.run_service(:find_jobs, nil) } - let(:data) { Travis::Api::V2::Http::Jobs.new(jobs).data } + let(:data) { described_class.new(jobs).data } before :each do 3.times { Factory(:test) } diff --git a/spec/unit/api/v2/http/log_spec.rb b/spec/unit/serialize/v2/http/log_spec.rb similarity index 96% rename from spec/unit/api/v2/http/log_spec.rb rename to spec/unit/serialize/v2/http/log_spec.rb index 6a9c3064..5ea45cf1 100644 --- a/spec/unit/api/v2/http/log_spec.rb +++ b/spec/unit/serialize/v2/http/log_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Log do +describe Travis::Api::Serialize::V2::Http::Log do include Travis::Testing::Stubs let(:log) { diff --git a/spec/unit/api/v2/http/permissions_spec.rb b/spec/unit/serialize/v2/http/permissions_spec.rb similarity index 83% rename from spec/unit/api/v2/http/permissions_spec.rb rename to spec/unit/serialize/v2/http/permissions_spec.rb index 084f6a66..0eb7ba7f 100644 --- a/spec/unit/api/v2/http/permissions_spec.rb +++ b/spec/unit/serialize/v2/http/permissions_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Permissions do +describe Travis::Api::Serialize::V2::Http::Permissions do include Travis::Testing::Stubs let(:permissions) do @@ -11,7 +11,7 @@ describe Travis::Api::V2::Http::Permissions do ] end - let(:data) { Travis::Api::V2::Http::Permissions.new(permissions).data } + let(:data) { described_class.new(permissions).data } it 'permissions' do data['permissions'].should == [1, 2, 3] diff --git a/spec/unit/api/v2/http/repositories_spec.rb b/spec/unit/serialize/v2/http/repositories_spec.rb similarity index 75% rename from spec/unit/api/v2/http/repositories_spec.rb rename to spec/unit/serialize/v2/http/repositories_spec.rb index 34e4c041..35f212fb 100644 --- a/spec/unit/api/v2/http/repositories_spec.rb +++ b/spec/unit/serialize/v2/http/repositories_spec.rb @@ -1,9 +1,9 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Repositories do +describe Travis::Api::Serialize::V2::Http::Repositories do include Travis::Testing::Stubs, Support::Formats - let(:data) { Travis::Api::V2::Http::Repositories.new([repository]).data } + let(:data) { described_class.new([repository]).data } it 'repositories' do data['repos'].first.should == { @@ -23,9 +23,9 @@ describe Travis::Api::V2::Http::Repositories do end end -describe 'Travis::Api::V2::Http::Repositories using Travis::Services::FindRepos' do +describe Travis::Api::Serialize::V2::Http::Repositories, 'using Travis::Services::FindRepos' do let(:repos) { Travis.run_service(:find_repos) } - let(:data) { Travis::Api::V2::Http::Repositories.new(repos).data } + let(:data) { described_class.new(repos).data } before :each do 3.times { |i| Factory(:repository, :name => i) } diff --git a/spec/unit/api/v2/http/repository_spec.rb b/spec/unit/serialize/v2/http/repository_spec.rb similarity index 75% rename from spec/unit/api/v2/http/repository_spec.rb rename to spec/unit/serialize/v2/http/repository_spec.rb index 33f655fc..7597daca 100644 --- a/spec/unit/api/v2/http/repository_spec.rb +++ b/spec/unit/serialize/v2/http/repository_spec.rb @@ -1,10 +1,10 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Repository do +describe Travis::Api::Serialize::V2::Http::Repository do include Travis::Testing::Stubs include Support::Formats - let(:data) { Travis::Api::V2::Http::Repository.new(repository).data } + let(:data) { described_class.new(repository).data } it 'repository' do data['repo'].should == { @@ -24,10 +24,10 @@ describe Travis::Api::V2::Http::Repository do end end -describe 'Travis::Api::V2::Http::Repository using Travis::Services::FindRepo' do +describe Travis::Api::Serialize::V2::Http::Repository, 'using Travis::Services::FindRepo' do let!(:record) { Factory(:repository) } let(:repo) { Travis.run_service(:find_repo, :id => record.id) } - let(:data) { Travis::Api::V2::Http::Repository.new(repo).data } + let(:data) { described_class.new(repo).data } it 'queries' do lambda { data }.should issue_queries(1) diff --git a/spec/unit/api/v2/http/request_spec.rb b/spec/unit/serialize/v2/http/request_spec.rb similarity index 93% rename from spec/unit/api/v2/http/request_spec.rb rename to spec/unit/serialize/v2/http/request_spec.rb index c7eb2edf..5d604dc7 100644 --- a/spec/unit/api/v2/http/request_spec.rb +++ b/spec/unit/serialize/v2/http/request_spec.rb @@ -1,13 +1,13 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Request do +describe Travis::Api::Serialize::V2::Http::Request do include Travis::Testing::Stubs, Support::Formats let(:data) { request = stub_request request.stubs(:builds).returns([build]) request.stubs(:tag_name).returns(nil) - Travis::Api::V2::Http::Request.new(request).data + described_class.new(request).data } it 'returns request data' do diff --git a/spec/unit/api/v2/http/requests_spec.rb b/spec/unit/serialize/v2/http/requests_spec.rb similarity index 91% rename from spec/unit/api/v2/http/requests_spec.rb rename to spec/unit/serialize/v2/http/requests_spec.rb index 2f72bf63..130eedf9 100644 --- a/spec/unit/api/v2/http/requests_spec.rb +++ b/spec/unit/serialize/v2/http/requests_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Requests do +describe Travis::Api::Serialize::V2::Http::Requests do include Travis::Testing::Stubs, Support::Formats before do @@ -11,7 +11,7 @@ describe Travis::Api::V2::Http::Requests do request = stub_request request.stubs(:builds).returns([build]) request.stubs(:tag_name).returns(nil) - Travis::Api::V2::Http::Requests.new([request]).data + described_class.new([request]).data } it 'returns requests data' do @@ -59,7 +59,7 @@ describe Travis::Api::V2::Http::Requests do request = stub_request request.stubs(:commit).returns(nil) request.stubs(:builds).returns([build]) - Travis::Api::V2::Http::Requests.new([request]).data + described_class.new([request]).data } it "doesn't fail if there is no commit data for a given request" do diff --git a/spec/unit/api/v2/http/ssl_key_spec.rb b/spec/unit/serialize/v2/http/ssl_key_spec.rb similarity index 76% rename from spec/unit/api/v2/http/ssl_key_spec.rb rename to spec/unit/serialize/v2/http/ssl_key_spec.rb index 5be3da1c..c2c3918e 100644 --- a/spec/unit/api/v2/http/ssl_key_spec.rb +++ b/spec/unit/serialize/v2/http/ssl_key_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Travis::Api::V2::Http::Repository do +describe Travis::Api::Serialize::V2::Http::SslKey do include Travis::Testing::Stubs include Support::Formats @@ -9,7 +9,7 @@ describe Travis::Api::V2::Http::Repository do key.stubs(:private_key).returns(TEST_PRIVATE_KEY) key } - let(:data) { Travis::Api::V2::Http::SslKey.new(key).data } + let(:data) { described_class.new(key).data } it 'returns data' do data['key'].should == '-----BEGIN PUBLIC KEY-----' diff --git a/spec/unit/api/v2/http/user_spec.rb b/spec/unit/serialize/v2/http/user_spec.rb similarity index 86% rename from spec/unit/api/v2/http/user_spec.rb rename to spec/unit/serialize/v2/http/user_spec.rb index 71232484..8bb5d4ae 100644 --- a/spec/unit/api/v2/http/user_spec.rb +++ b/spec/unit/serialize/v2/http/user_spec.rb @@ -1,10 +1,10 @@ require 'spec_helper' -describe Travis::Api::V2::Http::User do +describe Travis::Api::Serialize::V2::Http::User do include Travis::Testing::Stubs, Support::Formats let(:user) { stub_user(repository_ids: [1, 4, 8]) } - let(:data) { Travis::Api::V2::Http::User.new(user).data } + let(:data) { described_class.new(user).data } it 'user' do data['user'].should == { diff --git a/vendor/travis-core/lib/travis.rb b/vendor/travis-core/lib/travis.rb index 8b8c8550..af73f92a 100644 --- a/vendor/travis-core/lib/travis.rb +++ b/vendor/travis-core/lib/travis.rb @@ -42,7 +42,7 @@ module Travis require 'travis/task' require 'travis/event' require 'travis/addons' - require 'travis/api' + require 'travis/api/serialize' require 'travis/config/defaults' require 'travis/features' require 'travis/github' diff --git a/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb b/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb index 08167d63..64adb5bc 100644 --- a/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb @@ -16,7 +16,7 @@ module Travis def initialize(*) super - @payload = Api.data(object, for: 'event', version: 'v0', params: data) + @payload = Serializer.data(object, for: 'event', version: 'v0', params: data) end def handle? diff --git a/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb b/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb index 27c3d620..ec11da32 100644 --- a/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb @@ -16,7 +16,7 @@ module Travis def initialize(*) super - @pusher_payload = Api.data(object, :for => 'pusher', :type => type, :params => data) if handle? + @pusher_payload = Serializer.data(object, :for => 'pusher', :type => type, :params => data) if handle? end def handle? diff --git a/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb b/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb index 129757d0..94f2d947 100644 --- a/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb @@ -25,7 +25,7 @@ module Travis end def webhook_payload - Api.data(object, :for => 'webhook', :type => 'build/finished', :version => 'v1') + Serializer.data(object, :for => 'webhook', :type => 'build/finished', :version => 'v1') end def targets diff --git a/vendor/travis-core/lib/travis/api.rb b/vendor/travis-core/lib/travis/api.rb deleted file mode 100644 index b3991d7b..00000000 --- a/vendor/travis-core/lib/travis/api.rb +++ /dev/null @@ -1,67 +0,0 @@ -module Travis - module Api - require 'travis/api/formats' - require 'travis/api/v0' - require 'travis/api/v1' - require 'travis/api/v2' - - DEFAULT_VERSION = 'v2' - - class << self - def data(resource, options = {}) - new(resource, options).data - end - - def builder(resource, options = {}) - target = (options[:for] || 'http').to_s.camelize - version = (options[:version] || default_version(options)).to_s.camelize - type = (options[:type] || type_for(resource)).to_s.camelize.split('::') - ([version, target] + type).inject(Travis::Api) do |const, name| - begin - if const && const.const_defined?(name.to_s.camelize, false) - const.const_get(name, false) - else - nil - end - rescue NameError - nil - end - end - end - - def new(resource, options = {}) - builder = builder(resource, options) || raise(ArgumentError, "cannot serialize #{resource.inspect}, options: #{options.inspect}") - builder.new(resource, options[:params] || {}) - end - - private - - def type_for(resource) - if arel_relation?(resource) - type = resource.klass.name.pluralize - else - type = resource.class - type = type.base_class if active_record?(type) - type = type.name - end - type.split('::').last - end - - def arel_relation?(object) - object.respond_to?(:klass) - end - - def active_record?(object) - object.respond_to?(:base_class) - end - - def default_version(options) - if options[:for].to_s.downcase == "pusher" - "v0" - else - DEFAULT_VERSION - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/README.markdown b/vendor/travis-core/lib/travis/api/README.markdown deleted file mode 100644 index 0ca565b1..00000000 --- a/vendor/travis-core/lib/travis/api/README.markdown +++ /dev/null @@ -1,10 +0,0 @@ -This directory contains serializers for events and models. - -- `v0/event`: Payloads used by [`Travis::Event::Handler`](../event/handler.rb). These are the payloads that the [addons](../addons) will get. -- `v0/pusher`: Payloads used to send events to the web UI using Pusher. -- `v0/worker`: Payloads sent to [travis-worker](https://github.com/travis-ci/travis-worker). - -- `v1/http`: Payloads for the v1 [API](https://github.com/travis-ci/travis-api). -- `v1/webhook`: Payloads for the webhook notifications. - -- `v2/http`: Payloads for the v2 [API](https://github.com/travis-ci/travis-api). \ No newline at end of file diff --git a/vendor/travis-core/lib/travis/api/formats.rb b/vendor/travis-core/lib/travis/api/formats.rb deleted file mode 100644 index b218bda5..00000000 --- a/vendor/travis-core/lib/travis/api/formats.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Travis - module Api - module Formats - def format_date(date) - date && date.strftime('%Y-%m-%dT%H:%M:%SZ') - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/serialize.rb b/vendor/travis-core/lib/travis/api/serialize.rb new file mode 100644 index 00000000..f433046f --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize.rb @@ -0,0 +1,68 @@ +require 'travis/api/serialize/formats' +require 'travis/api/serialize/v0' +require 'travis/api/serialize/v1' + +module Travis + module Api + module Serialize + DEFAULT_VERSION = 'v2' + + class << self + def data(resource, options = {}) + new(resource, options).data + end + + def builder(resource, options = {}) + target = (options[:for] || 'http').to_s.camelize + version = (options[:version] || default_version(options)).to_s.camelize + type = (options[:type] || type_for(resource)).to_s.camelize.split('::') + ([version, target] + type).inject(self) do |const, name| + begin + if const && const.const_defined?(name.to_s.camelize, false) + const.const_get(name, false) + else + nil + end + rescue NameError + nil + end + end + end + + def new(resource, options = {}) + builder = builder(resource, options) || raise(ArgumentError, "cannot serialize #{resource.inspect}, options: #{options.inspect}") + builder.new(resource, options[:params] || {}) + end + + private + + def type_for(resource) + if arel_relation?(resource) + type = resource.klass.name.pluralize + else + type = resource.class + type = type.base_class if active_record?(type) + type = type.name + end + type.split('::').last + end + + def arel_relation?(object) + object.respond_to?(:klass) + end + + def active_record?(object) + object.respond_to?(:base_class) + end + + def default_version(options) + if options[:for].to_s.downcase == "pusher" + "v0" + else + DEFAULT_VERSION + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/formats.rb b/vendor/travis-core/lib/travis/api/serialize/formats.rb new file mode 100644 index 00000000..feea3e36 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/formats.rb @@ -0,0 +1,11 @@ +module Travis + module Api + module Serialize + module Formats + def format_date(date) + date && date.strftime('%Y-%m-%dT%H:%M:%SZ') + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0.rb b/vendor/travis-core/lib/travis/api/serialize/v0.rb new file mode 100644 index 00000000..a4ba9ef2 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0.rb @@ -0,0 +1,6 @@ +# V0 is an internal api that we can change at any time + +require 'travis/api/serialize/v0/event' +require 'travis/api/serialize/v0/notification' +require 'travis/api/serialize/v0/pusher' +require 'travis/api/serialize/v0/worker' diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event.rb b/vendor/travis-core/lib/travis/api/serialize/v0/event.rb new file mode 100644 index 00000000..12fd153d --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/event.rb @@ -0,0 +1,2 @@ +require 'travis/api/serialize/v0/event/build' +require 'travis/api/serialize/v0/event/job' diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb b/vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb new file mode 100644 index 00000000..1d6066c1 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb @@ -0,0 +1,96 @@ +module Travis + module Api + module Serialize + module V0 + module Event + class Build + include Formats + + attr_reader :build, :repository, :request, :commit, :options + + def initialize(build, options = {}) + @build = build + @repository = build.repository + @request = build.request + @commit = build.commit + # @options = options + end + + def data(extra = {}) + { + 'repository' => repository_data, + 'request' => request_data, + 'commit' => commit_data, + 'build' => build_data, + 'jobs' => build.matrix.map { |job| job_data(job) } + } + end + + private + + def build_data + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'commit_id' => build.commit_id, + 'number' => build.number, + 'pull_request' => build.pull_request?, + 'pull_request_number' => build.pull_request_number, + 'config' => build.config.try(:except, :source_key), + 'state' => build.state.to_s, + 'previous_state' => build.previous_state.to_s, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'job_ids' => build.matrix_ids + } + end + + def repository_data + { + 'id' => repository.id, + 'key' => repository.key.try(:public_key), + 'slug' => repository.slug, + 'name' => repository.name, + 'owner_email' => repository.owner_email, + 'owner_avatar_url' => repository.owner.try(:avatar_url) + } + end + + def request_data + { + 'token' => request.token, + 'head_commit' => (request.head_commit || '') + } + end + + def commit_data + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + + def job_data(job) + { + 'id' => job.id, + 'number' => job.number, + 'state' => job.state.to_s, + 'tags' => job.tags + } + end + end + end + end + end + end + +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb b/vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb new file mode 100644 index 00000000..d7fd3961 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb @@ -0,0 +1,37 @@ +module Travis + module Api + module Serialize + module V0 + module Event + class Job + include Formats + + attr_reader :job + + def initialize(job, options = {}) + @job = job + # @options = options + end + + def data(extra = {}) + { + 'job' => job_data, + } + end + + private + + def job_data + { + 'queue' => job.queue, + 'created_at' => job.created_at, + 'started_at' => job.started_at, + 'finished_at' => job.finished_at, + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification.rb b/vendor/travis-core/lib/travis/api/serialize/v0/notification.rb new file mode 100644 index 00000000..6ff461c4 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/notification.rb @@ -0,0 +1,3 @@ +require 'travis/api/serialize/v0/notification/build' +require 'travis/api/serialize/v0/notification/repository' +require 'travis/api/serialize/v0/notification/user' diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb b/vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb new file mode 100644 index 00000000..f2786e8f --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb @@ -0,0 +1,29 @@ +module Travis + module Api + module Serialize + module V0 + module Notification + class Build + attr_reader :build + + def initialize(build, options = {}) + @build = build + end + + def data + { + 'build' => build_data + } + end + + def build_data + { + 'id' => build.id + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb b/vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb new file mode 100644 index 00000000..f4ce68d8 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb @@ -0,0 +1,30 @@ +module Travis + module Api + module Serialize + module V0 + module Notification + class Repository + attr_reader :repository + + def initialize(repository, options = {}) + @repository = repository + end + + def data + { + 'repository' => repository_data + } + end + + def repository_data + { + 'id' => repository.id, + 'slug' => repository.slug + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb b/vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb new file mode 100644 index 00000000..e9de9482 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb @@ -0,0 +1,30 @@ +module Travis + module Api + module Serialize + module V0 + module Notification + class User + attr_reader :user + + def initialize(user, options = {}) + @user = user + end + + def data + { + 'user' => user_data + } + end + + def user_data + { + 'id' => user.id, + 'login' => user.login + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb new file mode 100644 index 00000000..75bd107b --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb @@ -0,0 +1,3 @@ +require 'travis/api/serialize/v0/pusher/annotation' +require 'travis/api/serialize/v0/pusher/build' +require 'travis/api/serialize/v0/pusher/job' diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb new file mode 100644 index 00000000..df7d1364 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb @@ -0,0 +1,35 @@ +require 'travis/api/serialize/v0/pusher/annotation/created' +require 'travis/api/serialize/v0/pusher/annotation/updated' + +module Travis + module Api + module Serialize + module V0 + module Pusher + class Annotation + include Formats + + attr_reader :annotation + + def initialize(annotation, options = {}) + @annotation = annotation + end + + def data + { + "annotation" => { + "id" => annotation.id, + "job_id" => annotation.job_id, + "description" => annotation.description, + "url" => annotation.url, + "status" => annotation.status, + "provider_name" => annotation.annotation_provider.name, + } + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb new file mode 100644 index 00000000..88dfd21d --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Annotation + class Created < Annotation + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb new file mode 100644 index 00000000..2b17c91a --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Annotation + class Updated < Annotation + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb new file mode 100644 index 00000000..eec94b38 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb @@ -0,0 +1,112 @@ +require 'travis/api/serialize/v0/pusher/build/canceled' +require 'travis/api/serialize/v0/pusher/build/created' +require 'travis/api/serialize/v0/pusher/build/received' +require 'travis/api/serialize/v0/pusher/build/started' +require 'travis/api/serialize/v0/pusher/build/finished' + +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + include Formats + + attr_reader :build, :options + + def initialize(build, options = {}) + @build = build + @options = options + end + + def data + { + 'build' => build_data(build), + 'commit' => commit_data(build.commit), + 'repository' => repository_data(build.repository) + } + end + + private + + def build_data(build) + commit = build.commit + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'commit_id' => build.commit_id, + 'number' => build.number, + 'pull_request' => build.pull_request?, + 'pull_request_title' => build.pull_request_title, + 'pull_request_number' => build.pull_request_number, + 'state' => build.state.to_s, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'job_ids' => build.matrix_ids, + 'event_type' => build.event_type, + + # this is a legacy thing, we should think about removing it + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'compare_url' => commit.compare_url, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email + } + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + + def repository_data(repository) + { + 'id' => repository.id, + 'slug' => repository.slug, + 'description' => repository.description, + 'private' => repository.private, + 'last_build_id' => repository.last_build_id, + 'last_build_number' => repository.last_build_number, + 'last_build_state' => repository.last_build_state.to_s, + 'last_build_duration' => repository.last_build_duration, + 'last_build_language' => nil, + 'last_build_started_at' => format_date(repository.last_build_started_at), + 'last_build_finished_at' => format_date(repository.last_build_finished_at), + 'github_language' => repository.github_language, + 'default_branch' => { + 'name' => repository.default_branch, + 'last_build_id' => last_build_on_default_branch_id(repository) + }, + 'active' => repository.active, + 'current_build_id' => repository.current_build_id + } + end + + def last_build_on_default_branch_id(repository) + default_branch = Branch.where(repository_id: repository.id, name: repository.default_branch).first + + if default_branch + default_branch.last_build_id + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb new file mode 100644 index 00000000..79185406 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Canceled < Build + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb new file mode 100644 index 00000000..263b44d7 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Created < Build + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb new file mode 100644 index 00000000..c9cc7c46 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Finished < Build + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb new file mode 100644 index 00000000..f8b5187c --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Received < Build + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb new file mode 100644 index 00000000..80b0a1a3 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb @@ -0,0 +1,49 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Received < Build + class Job + include Formats, V1::Helpers::Legacy + + attr_reader :job, :commit + + def initialize(job) + @job = job + @commit = job.commit + end + + def data + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'repository_private' => repository.private, + 'parent_id' => job.source_id, + 'number' => job.number, + 'state' => job.state.to_s, + 'result' => legacy_job_result(job), + 'config' => job.obfuscated_config, + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'compare_url' => commit.compare_url, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'allow_failure' => job.allow_failure + } + end + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb new file mode 100644 index 00000000..8cfc5093 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Started < Build + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb new file mode 100644 index 00000000..e23e9151 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb @@ -0,0 +1,49 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Build + class Started < Build + class Job + include Formats, V1::Helpers::Legacy + + attr_reader :job, :commit + + def initialize(job) + @job = job + @commit = job.commit + end + + def data + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'repository_private' => repository.private, + 'parent_id' => job.source_id, + 'number' => job.number, + 'state' => job.state.to_s, + 'result' => legacy_job_result(job), + 'config' => job.obfuscated_config, + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'compare_url' => commit.compare_url, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'allow_failure' => job.allow_failure + } + end + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb new file mode 100644 index 00000000..f615a83d --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb @@ -0,0 +1,69 @@ +require 'travis/api/serialize/v0/pusher/job/canceled' +require 'travis/api/serialize/v0/pusher/job/created' +require 'travis/api/serialize/v0/pusher/job/log' +require 'travis/api/serialize/v0/pusher/job/received' +require 'travis/api/serialize/v0/pusher/job/started' +require 'travis/api/serialize/v0/pusher/job/finished' + +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + include Formats + + attr_reader :job, :options + + def initialize(job, options = {}) + @job = job + @options = options + end + + def data + job_data(job).merge( + 'commit' => commit_data(job.commit) + ) + end + + private + + def job_data(job) + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'repository_slug' => job.repository.slug, + 'repository_private' => job.repository.private, + 'build_id' => job.source_id, + 'commit_id' => job.commit_id, + 'log_id' => job.log_id, + 'number' => job.number, + 'state' => job.state.to_s, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'queue' => job.queue, + 'allow_failure' => job.allow_failure, + 'annotation_ids' => job.annotation_ids + } + end + + def commit_data(commit) + { + 'id' => commit.id, + 'sha' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb new file mode 100644 index 00000000..35b7cd57 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Canceled < Job + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb new file mode 100644 index 00000000..041e8ca6 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Created < Job + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb new file mode 100644 index 00000000..3a758b78 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Finished < Job + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb new file mode 100644 index 00000000..632d7ab6 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb @@ -0,0 +1,32 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Log + attr_reader :job, :options + + def initialize(job, options = {}) + @job = job + @options = options + end + + def data + { + 'id' => job.id, + 'build_id' => job.source_id, + 'repository_id' => job.repository_id, + 'repository_private' => repository.private, + '_log' => options[:_log], + 'number' => options[:number], + 'final' => options[:final] + } + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb new file mode 100644 index 00000000..dfc21e69 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Received < Job + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb new file mode 100644 index 00000000..f777d85c --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb @@ -0,0 +1,14 @@ +module Travis + module Api + module Serialize + module V0 + module Pusher + class Job + class Started < Job + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker.rb b/vendor/travis-core/lib/travis/api/serialize/v0/worker.rb new file mode 100644 index 00000000..79c6a695 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/worker.rb @@ -0,0 +1 @@ +require 'travis/api/serialize/v0/worker/job' diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb b/vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb new file mode 100644 index 00000000..88a349fb --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb @@ -0,0 +1,35 @@ +require 'travis/api/serialize/v0/worker/job/test' + +module Travis + module Api + module Serialize + module V0 + module Worker + class Job + attr_reader :job + + def initialize(job, options = {}) + @job = job + end + + def commit + job.commit + end + + def repository + job.repository + end + + def request + build.request + end + + def build + job.source + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb b/vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb new file mode 100644 index 00000000..25159e9e --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb @@ -0,0 +1,120 @@ +module Travis + module Api + module Serialize + module V0 + module Worker + class Job + class Test < Job + include Formats + + def data + { + 'type' => 'test', + # TODO legacy. remove this once workers respond to a 'job' key + 'build' => job_data, + 'job' => job_data, + 'source' => build_data, + 'repository' => repository_data, + 'pull_request' => commit.pull_request? ? pull_request_data : false, + 'config' => job.decrypted_config, + 'queue' => job.queue, + 'uuid' => Travis.uuid, + 'ssh_key' => ssh_key, + 'env_vars' => env_vars, + 'timeouts' => timeouts + } + end + + def build_data + { + 'id' => build.id, + 'number' => build.number + } + end + + def job_data + data = { + 'id' => job.id, + 'number' => job.number, + 'commit' => commit.commit, + 'commit_range' => commit.range, + 'commit_message' => commit.message, + 'branch' => commit.branch, + 'ref' => commit.pull_request? ? commit.ref : nil, + 'state' => job.state.to_s, + 'secure_env_enabled' => job.secure_env_enabled? + } + data['tag'] = request.tag_name if include_tag_name? + data['pull_request'] = commit.pull_request? ? commit.pull_request_number : false + data + end + + def repository_data + { + 'id' => repository.id, + 'slug' => repository.slug, + 'github_id' => repository.github_id, + 'source_url' => repository.source_url, + 'api_url' => repository.api_url, + 'last_build_id' => repository.last_build_id, + 'last_build_number' => repository.last_build_number, + 'last_build_started_at' => format_date(repository.last_build_started_at), + 'last_build_finished_at' => format_date(repository.last_build_finished_at), + 'last_build_duration' => repository.last_build_duration, + 'last_build_state' => repository.last_build_state.to_s, + 'description' => repository.description, + 'default_branch' => repository.default_branch + } + end + + def pull_request_data + { + 'number' => commit.pull_request_number, + 'head_repo' => request.head_repo, + 'base_repo' => request.base_repo, + 'head_branch' => request.head_branch, + 'base_branch' => request.base_branch + } + end + + def ssh_key + nil + end + + def env_vars + vars = settings.env_vars + vars = vars.public unless job.secure_env_enabled? + + vars.map do |var| + { + 'name' => var.name, + 'value' => var.value.decrypt, + 'public' => var.public + } + end + end + + def timeouts + { 'hard_limit' => timeout(:hard_limit), 'log_silence' => timeout(:log_silence) } + end + + def timeout(type) + timeout = settings.send(:"timeout_#{type}") + timeout = timeout * 60 if timeout # worker handles timeouts in seconds + timeout + end + + def include_tag_name? + Travis.config.include_tag_name_in_worker_payload && request.tag_name.present? + end + + def settings + repository.settings + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1.rb b/vendor/travis-core/lib/travis/api/serialize/v1.rb new file mode 100644 index 00000000..93f6ada1 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1.rb @@ -0,0 +1,4 @@ +require 'travis/api/serialize/v1/archive' +require 'travis/api/serialize/v1/http' +require 'travis/api/serialize/v1/helpers' +require 'travis/api/serialize/v1/webhook' diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive.rb b/vendor/travis-core/lib/travis/api/serialize/v1/archive.rb new file mode 100644 index 00000000..7fc2c640 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/archive.rb @@ -0,0 +1 @@ +require 'travis/api/serialize/v1/archive/build' diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb b/vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb new file mode 100644 index 00000000..1c1d1aae --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb @@ -0,0 +1,52 @@ +require 'travis/api/serialize/v1/archive/build/job' + +module Travis + module Api + module Serialize + module V1 + module Archive + class Build + include Formats + + attr_reader :build, :commit, :repository + + def initialize(build, options = {}) + @build = build + @commit = build.commit + @repository = build.repository + end + + def data + { + 'id' => build.id, + 'number' => build.number, + 'config' => build.obfuscated_config.stringify_keys, + 'result' => 0, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'matrix' => build.matrix.map { |job| Job.new(job).data }, + 'repository' => repository_data + } + end + + def repository_data + { + 'id' => repository.id, + 'slug' => repository.slug + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb b/vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb new file mode 100644 index 00000000..c77227b3 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb @@ -0,0 +1,33 @@ +module Travis + module Api + module Serialize + module V1 + module Archive + class Build + class Job + include Formats + + attr_reader :job, :commit + + def initialize(job) + @job = job + @commit = job.commit + end + + def data + { + 'id' => job.id, + 'number' => job.number, + 'config' => job.obfuscated_config, + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'log' => job.log_content + } + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb b/vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb new file mode 100644 index 00000000..bf79516b --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb @@ -0,0 +1 @@ +require 'travis/api/serialize/v1/helpers/legacy' diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb b/vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb new file mode 100644 index 00000000..4a840760 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb @@ -0,0 +1,36 @@ +module Travis + module Api + module Serialize + module V1 + module Helpers + module Legacy + RESULTS = { + passed: 0, + failed: 1 + } + + def legacy_repository_last_build_result(repository) + RESULTS[repository.last_build_state.try(:to_sym)] + end + + def legacy_build_state(build) + build.finished? ? 'finished' : build.state.to_s + end + + def legacy_build_result(build) + RESULTS[build.state.try(:to_sym)] + end + + def legacy_job_state(job) + job.finished? ? 'finished' : job.state.to_s + end + + def legacy_job_result(job) + RESULTS[job.state.try(:to_sym)] + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http.rb new file mode 100644 index 00000000..0be99aca --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http.rb @@ -0,0 +1,9 @@ +require 'travis/api/serialize/v1/http/branches' +require 'travis/api/serialize/v1/http/build' +require 'travis/api/serialize/v1/http/builds' +require 'travis/api/serialize/v1/http/hooks' +require 'travis/api/serialize/v1/http/job' +require 'travis/api/serialize/v1/http/jobs' +require 'travis/api/serialize/v1/http/repositories' +require 'travis/api/serialize/v1/http/repository' +require 'travis/api/serialize/v1/http/user' diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb new file mode 100644 index 00000000..a890cb01 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb @@ -0,0 +1,45 @@ +require 'travis/api/serialize/v1/helpers/legacy' + +module Travis + module Api + module Serialize + module V1 + module Http + class Branches + include Formats, Helpers::Legacy + + attr_reader :builds, :options + + def initialize(builds, options = {}) + builds = builds.last_finished_builds_by_branches if builds.is_a?(Repository) # TODO remove, bc + @builds = builds + end + + def cache_key + "branches-#{builds.map(&:id).join('-')}" + end + + def updated_at + builds.compact.map(&:finished_at).compact.sort.first + end + + def data + builds.compact.map do |build| + { + 'repository_id' => build.repository_id, + 'build_id' => build.id, + 'commit' => build.commit.commit, + 'branch' => build.commit.branch, + 'message' => build.commit.message, + 'result' => legacy_build_result(build), + 'finished_at' => format_date(build.finished_at), + 'started_at' => format_date(build.started_at) + } + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb new file mode 100644 index 00000000..295199a9 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb @@ -0,0 +1,49 @@ +require 'travis/api/serialize/v1/http/build/job' + +module Travis + module Api + module Serialize + module V1 + module Http + class Build + include Formats, Helpers::Legacy + + attr_reader :build, :commit, :request + + def initialize(build, options = {}) + @build = build + @commit = build.commit + @request = build.request + end + + def data + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'number' => build.number, + 'config' => build.obfuscated_config.stringify_keys, + 'state' => legacy_build_state(build), + 'result' => legacy_build_result(build), + 'status' => legacy_build_result(build), + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'compare_url' => commit.compare_url, + 'event_type' => build.event_type, + 'matrix' => build.matrix.map { |job| Job.new(job).data }, + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb new file mode 100644 index 00000000..8c052575 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb @@ -0,0 +1,34 @@ +module Travis + module Api + module Serialize + module V1 + module Http + class Build + class Job + include Formats, Helpers::Legacy + + attr_reader :job + + def initialize(job) + @job = job + end + + def data + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'number' => job.number, + 'config' => job.obfuscated_config.stringify_keys, + 'result' => legacy_job_result(job), + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'allow_failure' => job.allow_failure + } + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb new file mode 100644 index 00000000..c94983e0 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb @@ -0,0 +1,40 @@ +module Travis + module Api + module Serialize + module V1 + module Http + class Builds + include Formats, Helpers::Legacy + + attr_reader :builds + + def initialize(builds, options = {}) + @builds = builds + end + + def data + builds.map { |build| build_data(build) } + end + + def build_data(build) + { + 'id' => build.id, + 'repository_id' => build.repository_id, + 'number' => build.number, + 'state' => legacy_build_state(build), + 'result' => legacy_build_result(build), + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'commit' => build.commit.commit, + 'branch' => build.commit.branch, + 'message' => build.commit.message, + 'event_type' => build.event_type, + } + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb new file mode 100644 index 00000000..11dbdf4f --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb @@ -0,0 +1,36 @@ +module Travis + module Api + module Serialize + module V1 + module Http + class Hooks + attr_reader :repos, :options + + def initialize(repos, options = {}) + @repos = repos + @options = options + end + + def data + repos.map { |repo| repo_data(repo) } + end + + private + + def repo_data(repo) + { + 'uid' => [repo.owner_name, repo.name].join(':'), + 'url' => "https://github.com/#{repo.owner_name}/#{repo.name}", + 'name' => repo.name, + 'owner_name' => repo.owner_name, + 'description' => repo.description, + 'active' => repo.active, + 'private' => repo.private + } + end + end + end + end + end + end +end diff --git a/lib/travis/api/v2/http/jobs.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb similarity index 50% rename from lib/travis/api/v2/http/jobs.rb rename to vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb index c27bd08e..a8f8626b 100644 --- a/lib/travis/api/v2/http/jobs.rb +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb @@ -1,49 +1,32 @@ module Travis module Api - module V2 - module Http - class Jobs - include Formats + module Serialize + module V1 + module Http + class Job + include Formats, Helpers::Legacy - attr_reader :jobs, :options + attr_reader :job, :commit - def initialize(jobs, options = {}) - @jobs = jobs - @options = options - end - - def data - { - 'jobs' => jobs.map { |job| job_data(job) }, - 'commits' => jobs.map { |job| commit_data(job.commit) } - } - end - - private - - def job_data(job) - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'repository_slug' => job.repository.slug, - 'build_id' => job.source_id, - 'commit_id' => job.commit_id, - 'log_id' => job.log_id, - 'number' => job.number, - 'config' => job.obfuscated_config.stringify_keys, - 'state' => job.state.to_s, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'queue' => job.queue, - 'allow_failure' => job.allow_failure, - 'tags' => job.tags - } + def initialize(job, options = {}) + @job = job + @commit = job.commit end - def commit_data(commit) + def data { - 'id' => commit.id, - 'sha' => commit.commit, + 'id' => job.id, + 'number' => job.number, + 'config' => job.obfuscated_config.stringify_keys, + 'repository_id' => job.repository_id, + 'build_id' => job.source_id, + 'state' => job.finished? ? 'finished' : job.state.to_s, + 'result' => legacy_job_result(job), + 'status' => legacy_job_result(job), + 'started_at' => format_date(job.started_at), + 'finished_at' => format_date(job.finished_at), + 'log' => job.log_content, + 'commit' => commit.commit, 'branch' => commit.branch, 'message' => commit.message, 'committed_at' => format_date(commit.committed_at), @@ -52,8 +35,10 @@ module Travis 'committer_name' => commit.committer_name, 'committer_email' => commit.committer_email, 'compare_url' => commit.compare_url, + 'worker' => job.worker } end + end end end end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb new file mode 100644 index 00000000..42839735 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb @@ -0,0 +1,36 @@ +module Travis + module Api + module Serialize + module V1 + module Http + class Jobs + include Formats, Helpers::Legacy + + attr_reader :jobs + + def initialize(jobs, options = {}) + @jobs = jobs + end + + def data + jobs.map { |job| job_data(job) } + end + + def job_data(job) + commit = job.commit + { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'number' => job.number, + 'state' => legacy_job_state(job), + 'queue' => job.queue, + 'allow_failure' => job.allow_failure + } + end + end + end + end + end + end + +end diff --git a/lib/travis/api/v2/http/repositories.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/repositories.rb similarity index 55% rename from lib/travis/api/v2/http/repositories.rb rename to vendor/travis-core/lib/travis/api/serialize/v1/http/repositories.rb index 84871d16..dc534cbd 100644 --- a/lib/travis/api/v2/http/repositories.rb +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/repositories.rb @@ -1,24 +1,20 @@ module Travis module Api - module V2 - module Http - class Repositories - include Formats + module Serialize + module V1 + module Http + class Repositories + include Formats, Helpers::Legacy - attr_reader :repositories, :options + attr_reader :repositories - def initialize(repositories, options = {}) - @repositories = repositories - @options = options - end + def initialize(repositories, options = {}) + @repositories = repositories + end - def data - { - 'repos' => repositories.map { |repository| repository_data(repository) } - } - end - - private + def data + repositories.map { |repository| repository_data(repository) } + end def repository_data(repository) { @@ -27,15 +23,15 @@ module Travis 'description' => repository.description, 'last_build_id' => repository.last_build_id, 'last_build_number' => repository.last_build_number, - 'last_build_state' => repository.last_build_state.to_s, + 'last_build_status' => legacy_repository_last_build_result(repository), + 'last_build_result' => legacy_repository_last_build_result(repository), 'last_build_duration' => repository.last_build_duration, 'last_build_language' => nil, 'last_build_started_at' => format_date(repository.last_build_started_at), 'last_build_finished_at' => format_date(repository.last_build_finished_at), - 'active' => repository.active, - 'github_language' => repository.github_language } end + end end end end diff --git a/lib/travis/api/v2/http/repository.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/repository.rb similarity index 50% rename from lib/travis/api/v2/http/repository.rb rename to vendor/travis-core/lib/travis/api/serialize/v1/http/repository.rb index c6c716e0..960b9fe7 100644 --- a/lib/travis/api/v2/http/repository.rb +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/repository.rb @@ -1,44 +1,36 @@ module Travis module Api - module V2 - module Http - class Repository - include Formats + module Serialize + module V1 + module Http + class Repository + include Formats, Helpers::Legacy - attr_reader :repository, :options + attr_reader :repository, :options - def initialize(repository, options = {}) - @repository = repository - end + def initialize(repository, options = {}) + @repository = repository + end - def data - { - 'repo' => repository_data(repository) - } - end - - private - - # TODO why does this not include the last build? (i.e. 'builds' => { last build here }) - def repository_data(repository) + def data { 'id' => repository.id, 'slug' => repository.slug, - 'active' => repository.active, 'description' => repository.description, + 'public_key' => repository.key.public_key, 'last_build_id' => repository.last_build_id, 'last_build_number' => repository.last_build_number, - 'last_build_state' => repository.last_build_state.to_s, + 'last_build_status' => legacy_repository_last_build_result(repository), + 'last_build_result' => legacy_repository_last_build_result(repository), 'last_build_duration' => repository.last_build_duration, 'last_build_language' => nil, 'last_build_started_at' => format_date(repository.last_build_started_at), 'last_build_finished_at' => format_date(repository.last_build_finished_at), - 'github_language' => repository.github_language } end + end end end end end end - diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb b/vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb new file mode 100644 index 00000000..47072a6b --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb @@ -0,0 +1,33 @@ +module Travis + module Api + module Serialize + module V1 + module Http + class User + include Formats + + attr_reader :user, :options + + def initialize(user, options = {}) + @user = user + @options = options + end + + def data + { + 'login' => user.login, + 'name' => user.name, + 'email' => user.email, + 'gravatar_id' => user.gravatar_id, + 'locale' => user.locale, + 'is_syncing' => user.is_syncing, + 'synced_at' => format_date(user.synced_at) + } + end + end + end + end + end + end + +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb b/vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb new file mode 100644 index 00000000..a8f5484e --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb @@ -0,0 +1 @@ +require 'travis/api/serialize/v1/webhook/build' diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb new file mode 100644 index 00000000..0c7db7a9 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb @@ -0,0 +1,29 @@ +require 'travis/api/serialize/v1/webhook/build/finished' + +module Travis + module Api + module Serialize + module V1 + module Webhook + class Build + attr_reader :build, :commit, :request, :repository, :options + + def initialize(build, options = {}) + @build = build + @commit = build.commit + @request = build.request + @repository = build.repository + @options = options + end + + private + + def build_url + ["https://#{Travis.config.host}", repository.slug, 'builds', build.id].join('/') + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb new file mode 100644 index 00000000..b39982b7 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb @@ -0,0 +1,72 @@ +require 'travis/api/serialize/v1/webhook/build/finished/job' + +module Travis + module Api + module Serialize + module V1 + module Webhook + class Build + class Finished < Build + include Formats + + def data + data = { + 'id' => build.id, + 'repository' => repository_data, + 'number' => build.number, + 'config' => build.obfuscated_config.stringify_keys, + 'status' => build.result, + 'result' => build.result, + 'status_message' => result_message, + 'result_message' => result_message, + 'started_at' => format_date(build.started_at), + 'finished_at' => format_date(build.finished_at), + 'duration' => build.duration, + 'build_url' => build_url, + 'commit_id' => commit.id, + 'commit' => commit.commit, + 'base_commit' => request.base_commit, + 'head_commit' => request.head_commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'compare_url' => commit.compare_url, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'matrix' => build.matrix.map { |job| Job.new(job, options).data }, + 'type' => build.event_type, + 'state' => build.state.to_s, + 'pull_request' => build.pull_request?, + 'pull_request_number' => build.pull_request_number, + 'pull_request_title' => build.pull_request_title, + 'tag' => request.tag_name + } + + if commit.pull_request? + data['pull_request_number'] = commit.pull_request_number + end + + data + end + + def repository_data + { + 'id' => repository.id, + 'name' => repository.name, + 'owner_name' => repository.owner_name, + 'url' => repository.url + } + end + + def result_message + @result_message ||= ::Build::ResultMessage.new(build).short + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb new file mode 100644 index 00000000..7d7f51c9 --- /dev/null +++ b/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb @@ -0,0 +1,52 @@ +module Travis + module Api + module Serialize + module V1 + module Webhook + class Build + class Finished < Build + class Job + include Formats + + attr_reader :job, :commit, :options + + def initialize(job, options = {}) + @job = job + @commit = job.commit + @options = options + end + + def data + data = { + 'id' => job.id, + 'repository_id' => job.repository_id, + 'parent_id' => job.source_id, + 'number' => job.number, + 'state' => job.finished? ? 'finished' : job.state.to_s, + 'config' => job.obfuscated_config, + 'status' => job.result, + 'result' => job.result, + 'commit' => commit.commit, + 'branch' => commit.branch, + 'message' => commit.message, + 'compare_url' => commit.compare_url, + 'committed_at' => format_date(commit.committed_at), + 'author_name' => commit.author_name, + 'author_email' => commit.author_email, + 'committer_name' => commit.committer_name, + 'committer_email' => commit.committer_email, + 'allow_failure' => job.allow_failure + } + data['log'] = job.log_content || '' if options[:include_logs] + data['started_at'] = format_date(job.started_at) if job.started? + data['finished_at'] = format_date(job.finished_at) if job.finished? + data + end + end + end + end + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/api/v0.rb b/vendor/travis-core/lib/travis/api/v0.rb deleted file mode 100644 index d21ff344..00000000 --- a/vendor/travis-core/lib/travis/api/v0.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Travis - module Api - # V0 is an internal api that we can change at any time - module V0 - require 'travis/api/v0/event' - require 'travis/api/v0/notification' - require 'travis/api/v0/pusher' - require 'travis/api/v0/worker' - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/event.rb b/vendor/travis-core/lib/travis/api/v0/event.rb deleted file mode 100644 index efd03a8d..00000000 --- a/vendor/travis-core/lib/travis/api/v0/event.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Event - require 'travis/api/v0/event/build' - require 'travis/api/v0/event/job' - end - end - end -end - - diff --git a/vendor/travis-core/lib/travis/api/v0/event/build.rb b/vendor/travis-core/lib/travis/api/v0/event/build.rb deleted file mode 100644 index 797d399a..00000000 --- a/vendor/travis-core/lib/travis/api/v0/event/build.rb +++ /dev/null @@ -1,95 +0,0 @@ -module Travis - module Api - module V0 - module Event - class Build - include Formats - - attr_reader :build, :repository, :request, :commit, :options - - def initialize(build, options = {}) - @build = build - @repository = build.repository - @request = build.request - @commit = build.commit - # @options = options - end - - def data(extra = {}) - { - 'repository' => repository_data, - 'request' => request_data, - 'commit' => commit_data, - 'build' => build_data, - 'jobs' => build.matrix.map { |job| job_data(job) } - } - end - - private - - def build_data - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'commit_id' => build.commit_id, - 'number' => build.number, - 'pull_request' => build.pull_request?, - 'pull_request_number' => build.pull_request_number, - 'config' => build.config.try(:except, :source_key), - 'state' => build.state.to_s, - 'previous_state' => build.previous_state.to_s, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'job_ids' => build.matrix_ids - } - end - - def repository_data - { - 'id' => repository.id, - 'key' => repository.key.try(:public_key), - 'slug' => repository.slug, - 'name' => repository.name, - 'owner_email' => repository.owner_email, - 'owner_avatar_url' => repository.owner.try(:avatar_url) - } - end - - def request_data - { - 'token' => request.token, - 'head_commit' => (request.head_commit || '') - } - end - - def commit_data - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - - def job_data(job) - { - 'id' => job.id, - 'number' => job.number, - 'state' => job.state.to_s, - 'tags' => job.tags - } - end - end - end - end - end -end - - diff --git a/vendor/travis-core/lib/travis/api/v0/event/job.rb b/vendor/travis-core/lib/travis/api/v0/event/job.rb deleted file mode 100644 index ddbc58e8..00000000 --- a/vendor/travis-core/lib/travis/api/v0/event/job.rb +++ /dev/null @@ -1,38 +0,0 @@ -module Travis - module Api - module V0 - module Event - class Job - include Formats - - attr_reader :job - - def initialize(job, options = {}) - @job = job - # @options = options - end - - def data(extra = {}) - { - 'job' => job_data, - } - end - - private - - def job_data - { - 'queue' => job.queue, - 'created_at' => job.created_at, - 'started_at' => job.started_at, - 'finished_at' => job.finished_at, - } - end - end - end - end - end -end - - - diff --git a/vendor/travis-core/lib/travis/api/v0/notification.rb b/vendor/travis-core/lib/travis/api/v0/notification.rb deleted file mode 100644 index 45d37770..00000000 --- a/vendor/travis-core/lib/travis/api/v0/notification.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Notification - require 'travis/api/v0/notification/build' - require 'travis/api/v0/notification/repository' - require 'travis/api/v0/notification/user' - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/notification/build.rb b/vendor/travis-core/lib/travis/api/v0/notification/build.rb deleted file mode 100644 index 27b00504..00000000 --- a/vendor/travis-core/lib/travis/api/v0/notification/build.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Travis - module Api - module V0 - module Notification - class Build - attr_reader :build - - def initialize(build, options = {}) - @build = build - end - - def data - { - 'build' => build_data - } - end - - def build_data - { - 'id' => build.id - } - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/notification/repository.rb b/vendor/travis-core/lib/travis/api/v0/notification/repository.rb deleted file mode 100644 index 6b9861b8..00000000 --- a/vendor/travis-core/lib/travis/api/v0/notification/repository.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Travis - module Api - module V0 - module Notification - class Repository - attr_reader :repository - - def initialize(repository, options = {}) - @repository = repository - end - - def data - { - 'repository' => repository_data - } - end - - def repository_data - { - 'id' => repository.id, - 'slug' => repository.slug - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/notification/user.rb b/vendor/travis-core/lib/travis/api/v0/notification/user.rb deleted file mode 100644 index 95ba9192..00000000 --- a/vendor/travis-core/lib/travis/api/v0/notification/user.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Travis - module Api - module V0 - module Notification - class User - attr_reader :user - - def initialize(user, options = {}) - @user = user - end - - def data - { - 'user' => user_data - } - end - - def user_data - { - 'id' => user.id, - 'login' => user.login - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher.rb b/vendor/travis-core/lib/travis/api/v0/pusher.rb deleted file mode 100644 index 852c3045..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - require 'travis/api/v0/pusher/annotation' - require 'travis/api/v0/pusher/build' - require 'travis/api/v0/pusher/job' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/annotation.rb b/vendor/travis-core/lib/travis/api/v0/pusher/annotation.rb deleted file mode 100644 index f29f3d42..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/annotation.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Annotation - require 'travis/api/v0/pusher/annotation/created' - require 'travis/api/v0/pusher/annotation/updated' - - include Formats - - attr_reader :annotation - - def initialize(annotation, options = {}) - @annotation = annotation - end - - def data - { - "annotation" => { - "id" => annotation.id, - "job_id" => annotation.job_id, - "description" => annotation.description, - "url" => annotation.url, - "status" => annotation.status, - "provider_name" => annotation.annotation_provider.name, - } - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/annotation/created.rb b/vendor/travis-core/lib/travis/api/v0/pusher/annotation/created.rb deleted file mode 100644 index fb476fd1..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/annotation/created.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Annotation - class Created < Annotation - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/annotation/updated.rb b/vendor/travis-core/lib/travis/api/v0/pusher/annotation/updated.rb deleted file mode 100644 index 99865c40..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/annotation/updated.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Annotation - class Updated < Annotation - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build.rb deleted file mode 100644 index 3762aa38..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build.rb +++ /dev/null @@ -1,111 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - require 'travis/api/v0/pusher/build/canceled' - require 'travis/api/v0/pusher/build/created' - require 'travis/api/v0/pusher/build/received' - require 'travis/api/v0/pusher/build/started' - require 'travis/api/v0/pusher/build/finished' - - include Formats - - attr_reader :build, :options - - def initialize(build, options = {}) - @build = build - @options = options - end - - def data - { - 'build' => build_data(build), - 'commit' => commit_data(build.commit), - 'repository' => repository_data(build.repository) - } - end - - private - - def build_data(build) - commit = build.commit - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'commit_id' => build.commit_id, - 'number' => build.number, - 'pull_request' => build.pull_request?, - 'pull_request_title' => build.pull_request_title, - 'pull_request_number' => build.pull_request_number, - 'state' => build.state.to_s, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'job_ids' => build.matrix_ids, - 'event_type' => build.event_type, - - # this is a legacy thing, we should think about removing it - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'compare_url' => commit.compare_url, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email - } - end - - def commit_data(commit) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - - def repository_data(repository) - { - 'id' => repository.id, - 'slug' => repository.slug, - 'description' => repository.description, - 'private' => repository.private, - 'last_build_id' => repository.last_build_id, - 'last_build_number' => repository.last_build_number, - 'last_build_state' => repository.last_build_state.to_s, - 'last_build_duration' => repository.last_build_duration, - 'last_build_language' => nil, - 'last_build_started_at' => format_date(repository.last_build_started_at), - 'last_build_finished_at' => format_date(repository.last_build_finished_at), - 'github_language' => repository.github_language, - 'default_branch' => { - 'name' => repository.default_branch, - 'last_build_id' => last_build_on_default_branch_id(repository) - }, - 'active' => repository.active, - 'current_build_id' => repository.current_build_id - } - end - - def last_build_on_default_branch_id(repository) - default_branch = Branch.where(repository_id: repository.id, name: repository.default_branch).first - - if default_branch - default_branch.last_build_id - end - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/canceled.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/canceled.rb deleted file mode 100644 index 19ae8256..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/canceled.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Canceled < Build - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/created.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/created.rb deleted file mode 100644 index 2a0d008e..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/created.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'travis/api/v1' - -module Travis - module Api - module V0 - module Pusher - class Build - class Created < Build - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/finished.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/finished.rb deleted file mode 100644 index 299df81d..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/finished.rb +++ /dev/null @@ -1,14 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Finished < Build - end - end - end - end - end -end - - diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/received.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/received.rb deleted file mode 100644 index 005f2ab2..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/received.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Received < Build - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/received/job.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/received/job.rb deleted file mode 100644 index 6786f598..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/received/job.rb +++ /dev/null @@ -1,47 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Received < Build - class Job - include Formats, V1::Helpers::Legacy - - attr_reader :job, :commit - - def initialize(job) - @job = job - @commit = job.commit - end - - def data - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'repository_private' => repository.private, - 'parent_id' => job.source_id, - 'number' => job.number, - 'state' => job.state.to_s, - 'result' => legacy_job_result(job), - 'config' => job.obfuscated_config, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'compare_url' => commit.compare_url, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'allow_failure' => job.allow_failure - } - end - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/started.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/started.rb deleted file mode 100644 index 1ad598b0..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/started.rb +++ /dev/null @@ -1,13 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Started < Build - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/build/started/job.rb b/vendor/travis-core/lib/travis/api/v0/pusher/build/started/job.rb deleted file mode 100644 index 4a94660b..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/build/started/job.rb +++ /dev/null @@ -1,47 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Build - class Started < Build - class Job - include Formats, V1::Helpers::Legacy - - attr_reader :job, :commit - - def initialize(job) - @job = job - @commit = job.commit - end - - def data - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'repository_private' => repository.private, - 'parent_id' => job.source_id, - 'number' => job.number, - 'state' => job.state.to_s, - 'result' => legacy_job_result(job), - 'config' => job.obfuscated_config, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'compare_url' => commit.compare_url, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'allow_failure' => job.allow_failure - } - end - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job.rb deleted file mode 100644 index efd3cbc8..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job.rb +++ /dev/null @@ -1,67 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - require 'travis/api/v0/pusher/job/canceled' - require 'travis/api/v0/pusher/job/created' - require 'travis/api/v0/pusher/job/log' - require 'travis/api/v0/pusher/job/received' - require 'travis/api/v0/pusher/job/started' - require 'travis/api/v0/pusher/job/finished' - - include Formats - - attr_reader :job, :options - - def initialize(job, options = {}) - @job = job - @options = options - end - - def data - job_data(job).merge( - 'commit' => commit_data(job.commit) - ) - end - - private - - def job_data(job) - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'repository_slug' => job.repository.slug, - 'repository_private' => job.repository.private, - 'build_id' => job.source_id, - 'commit_id' => job.commit_id, - 'log_id' => job.log_id, - 'number' => job.number, - 'state' => job.state.to_s, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'queue' => job.queue, - 'allow_failure' => job.allow_failure, - 'annotation_ids' => job.annotation_ids - } - end - - def commit_data(commit) - { - 'id' => commit.id, - 'sha' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/canceled.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/canceled.rb deleted file mode 100644 index 426d03f3..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/canceled.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Canceled < Job - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/created.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/created.rb deleted file mode 100644 index c2af620e..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/created.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Created < Job - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/finished.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/finished.rb deleted file mode 100644 index 2214041c..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/finished.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Finished < Job - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/log.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/log.rb deleted file mode 100644 index 54115ee6..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/log.rb +++ /dev/null @@ -1,31 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Log - attr_reader :job, :options - - def initialize(job, options = {}) - @job = job - @options = options - end - - def data - { - 'id' => job.id, - 'build_id' => job.source_id, - 'repository_id' => job.repository_id, - 'repository_private' => repository.private, - '_log' => options[:_log], - 'number' => options[:number], - 'final' => options[:final] - } - end - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/received.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/received.rb deleted file mode 100644 index 0921280d..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/received.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Received < Job - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/pusher/job/started.rb b/vendor/travis-core/lib/travis/api/v0/pusher/job/started.rb deleted file mode 100644 index 90ccc963..00000000 --- a/vendor/travis-core/lib/travis/api/v0/pusher/job/started.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Travis - module Api - module V0 - module Pusher - class Job - class Started < Job - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/worker.rb b/vendor/travis-core/lib/travis/api/v0/worker.rb deleted file mode 100644 index 4826160e..00000000 --- a/vendor/travis-core/lib/travis/api/v0/worker.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Travis - module Api - module V0 - module Worker - require 'travis/api/v0/worker/job' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/worker/job.rb b/vendor/travis-core/lib/travis/api/v0/worker/job.rb deleted file mode 100644 index 796d0620..00000000 --- a/vendor/travis-core/lib/travis/api/v0/worker/job.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Travis - module Api - module V0 - module Worker - class Job - require 'travis/api/v0/worker/job/test' - - attr_reader :job - - def initialize(job, options = {}) - @job = job - end - - def commit - job.commit - end - - def repository - job.repository - end - - def request - build.request - end - - def build - job.source - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v0/worker/job/test.rb b/vendor/travis-core/lib/travis/api/v0/worker/job/test.rb deleted file mode 100644 index 8462a9bc..00000000 --- a/vendor/travis-core/lib/travis/api/v0/worker/job/test.rb +++ /dev/null @@ -1,118 +0,0 @@ -module Travis - module Api - module V0 - module Worker - class Job - class Test < Job - include Formats - - def data - { - 'type' => 'test', - # TODO legacy. remove this once workers respond to a 'job' key - 'build' => job_data, - 'job' => job_data, - 'source' => build_data, - 'repository' => repository_data, - 'pull_request' => commit.pull_request? ? pull_request_data : false, - 'config' => job.decrypted_config, - 'queue' => job.queue, - 'uuid' => Travis.uuid, - 'ssh_key' => ssh_key, - 'env_vars' => env_vars, - 'timeouts' => timeouts - } - end - - def build_data - { - 'id' => build.id, - 'number' => build.number - } - end - - def job_data - data = { - 'id' => job.id, - 'number' => job.number, - 'commit' => commit.commit, - 'commit_range' => commit.range, - 'commit_message' => commit.message, - 'branch' => commit.branch, - 'ref' => commit.pull_request? ? commit.ref : nil, - 'state' => job.state.to_s, - 'secure_env_enabled' => job.secure_env_enabled? - } - data['tag'] = request.tag_name if include_tag_name? - data['pull_request'] = commit.pull_request? ? commit.pull_request_number : false - data - end - - def repository_data - { - 'id' => repository.id, - 'slug' => repository.slug, - 'github_id' => repository.github_id, - 'source_url' => repository.source_url, - 'api_url' => repository.api_url, - 'last_build_id' => repository.last_build_id, - 'last_build_number' => repository.last_build_number, - 'last_build_started_at' => format_date(repository.last_build_started_at), - 'last_build_finished_at' => format_date(repository.last_build_finished_at), - 'last_build_duration' => repository.last_build_duration, - 'last_build_state' => repository.last_build_state.to_s, - 'description' => repository.description, - 'default_branch' => repository.default_branch - } - end - - def pull_request_data - { - 'number' => commit.pull_request_number, - 'head_repo' => request.head_repo, - 'base_repo' => request.base_repo, - 'head_branch' => request.head_branch, - 'base_branch' => request.base_branch - } - end - - def ssh_key - nil - end - - def env_vars - vars = settings.env_vars - vars = vars.public unless job.secure_env_enabled? - - vars.map do |var| - { - 'name' => var.name, - 'value' => var.value.decrypt, - 'public' => var.public - } - end - end - - def timeouts - { 'hard_limit' => timeout(:hard_limit), 'log_silence' => timeout(:log_silence) } - end - - def timeout(type) - timeout = settings.send(:"timeout_#{type}") - timeout = timeout * 60 if timeout # worker handles timeouts in seconds - timeout - end - - def include_tag_name? - Travis.config.include_tag_name_in_worker_payload && request.tag_name.present? - end - - def settings - repository.settings - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1.rb b/vendor/travis-core/lib/travis/api/v1.rb deleted file mode 100644 index bb29b348..00000000 --- a/vendor/travis-core/lib/travis/api/v1.rb +++ /dev/null @@ -1,10 +0,0 @@ -module Travis - module Api - module V1 - require 'travis/api/v1/archive' - require 'travis/api/v1/http' - require 'travis/api/v1/helpers' - require 'travis/api/v1/webhook' - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/archive.rb b/vendor/travis-core/lib/travis/api/v1/archive.rb deleted file mode 100644 index db343c81..00000000 --- a/vendor/travis-core/lib/travis/api/v1/archive.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Travis - module Api - module V1 - module Archive - require 'travis/api/v1/archive/build' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/archive/build.rb b/vendor/travis-core/lib/travis/api/v1/archive/build.rb deleted file mode 100644 index 9911cd0d..00000000 --- a/vendor/travis-core/lib/travis/api/v1/archive/build.rb +++ /dev/null @@ -1,50 +0,0 @@ -module Travis - module Api - module V1 - module Archive - class Build - autoload :Job, 'travis/api/v1/archive/build/job' - - include Formats - - attr_reader :build, :commit, :repository - - def initialize(build, options = {}) - @build = build - @commit = build.commit - @repository = build.repository - end - - def data - { - 'id' => build.id, - 'number' => build.number, - 'config' => build.obfuscated_config.stringify_keys, - 'result' => 0, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'matrix' => build.matrix.map { |job| Job.new(job).data }, - 'repository' => repository_data - } - end - - def repository_data - { - 'id' => repository.id, - 'slug' => repository.slug - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/archive/build/job.rb b/vendor/travis-core/lib/travis/api/v1/archive/build/job.rb deleted file mode 100644 index 110d971a..00000000 --- a/vendor/travis-core/lib/travis/api/v1/archive/build/job.rb +++ /dev/null @@ -1,31 +0,0 @@ -module Travis - module Api - module V1 - module Archive - class Build - class Job - include Formats - - attr_reader :job, :commit - - def initialize(job) - @job = job - @commit = job.commit - end - - def data - { - 'id' => job.id, - 'number' => job.number, - 'config' => job.obfuscated_config, - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'log' => job.log_content - } - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/helpers.rb b/vendor/travis-core/lib/travis/api/v1/helpers.rb deleted file mode 100644 index c4905ed9..00000000 --- a/vendor/travis-core/lib/travis/api/v1/helpers.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Travis - module Api - module V1 - module Helpers - require 'travis/api/v1/helpers/legacy' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/helpers/legacy.rb b/vendor/travis-core/lib/travis/api/v1/helpers/legacy.rb deleted file mode 100644 index 2a8d3a8b..00000000 --- a/vendor/travis-core/lib/travis/api/v1/helpers/legacy.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Travis - module Api - module V1 - module Helpers - module Legacy - RESULTS = { - passed: 0, - failed: 1 - } - - def legacy_repository_last_build_result(repository) - RESULTS[repository.last_build_state.try(:to_sym)] - end - - def legacy_build_state(build) - build.finished? ? 'finished' : build.state.to_s - end - - def legacy_build_result(build) - RESULTS[build.state.try(:to_sym)] - end - - def legacy_job_state(job) - job.finished? ? 'finished' : job.state.to_s - end - - def legacy_job_result(job) - RESULTS[job.state.try(:to_sym)] - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http.rb b/vendor/travis-core/lib/travis/api/v1/http.rb deleted file mode 100644 index a7db9f95..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Travis - module Api - module V1 - module Http - require 'travis/api/v1/http/branches' - require 'travis/api/v1/http/build' - require 'travis/api/v1/http/builds' - require 'travis/api/v1/http/hooks' - require 'travis/api/v1/http/job' - require 'travis/api/v1/http/jobs' - require 'travis/api/v1/http/repositories' - require 'travis/api/v1/http/repository' - require 'travis/api/v1/http/user' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/branches.rb b/vendor/travis-core/lib/travis/api/v1/http/branches.rb deleted file mode 100644 index 30e0c01d..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/branches.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'travis/api/v1/helpers/legacy' - -module Travis - module Api - module V1 - module Http - class Branches - include Formats, Helpers::Legacy - - attr_reader :builds, :options - - def initialize(builds, options = {}) - builds = builds.last_finished_builds_by_branches if builds.is_a?(Repository) # TODO remove, bc - @builds = builds - end - - def cache_key - "branches-#{builds.map(&:id).join('-')}" - end - - def updated_at - builds.compact.map(&:finished_at).compact.sort.first - end - - def data - builds.compact.map do |build| - { - 'repository_id' => build.repository_id, - 'build_id' => build.id, - 'commit' => build.commit.commit, - 'branch' => build.commit.branch, - 'message' => build.commit.message, - 'result' => legacy_build_result(build), - 'finished_at' => format_date(build.finished_at), - 'started_at' => format_date(build.started_at) - } - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/build.rb b/vendor/travis-core/lib/travis/api/v1/http/build.rb deleted file mode 100644 index e0431718..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/build.rb +++ /dev/null @@ -1,47 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Build - require 'travis/api/v1/http/build/job' - - include Formats, Helpers::Legacy - - attr_reader :build, :commit, :request - - def initialize(build, options = {}) - @build = build - @commit = build.commit - @request = build.request - end - - def data - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'number' => build.number, - 'config' => build.obfuscated_config.stringify_keys, - 'state' => legacy_build_state(build), - 'result' => legacy_build_result(build), - 'status' => legacy_build_result(build), - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - 'event_type' => build.event_type, - 'matrix' => build.matrix.map { |job| Job.new(job).data }, - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/build/job.rb b/vendor/travis-core/lib/travis/api/v1/http/build/job.rb deleted file mode 100644 index e924041d..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/build/job.rb +++ /dev/null @@ -1,32 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Build - class Job - include Formats, Helpers::Legacy - - attr_reader :job - - def initialize(job) - @job = job - end - - def data - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'number' => job.number, - 'config' => job.obfuscated_config.stringify_keys, - 'result' => legacy_job_result(job), - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'allow_failure' => job.allow_failure - } - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/builds.rb b/vendor/travis-core/lib/travis/api/v1/http/builds.rb deleted file mode 100644 index 74ca3e3d..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/builds.rb +++ /dev/null @@ -1,38 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Builds - include Formats, Helpers::Legacy - - attr_reader :builds - - def initialize(builds, options = {}) - @builds = builds - end - - def data - builds.map { |build| build_data(build) } - end - - def build_data(build) - { - 'id' => build.id, - 'repository_id' => build.repository_id, - 'number' => build.number, - 'state' => legacy_build_state(build), - 'result' => legacy_build_result(build), - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'commit' => build.commit.commit, - 'branch' => build.commit.branch, - 'message' => build.commit.message, - 'event_type' => build.event_type, - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/hooks.rb b/vendor/travis-core/lib/travis/api/v1/http/hooks.rb deleted file mode 100644 index a35412cb..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/hooks.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Hooks - attr_reader :repos, :options - - def initialize(repos, options = {}) - @repos = repos - @options = options - end - - def data - repos.map { |repo| repo_data(repo) } - end - - private - - def repo_data(repo) - { - 'uid' => [repo.owner_name, repo.name].join(':'), - 'url' => "https://github.com/#{repo.owner_name}/#{repo.name}", - 'name' => repo.name, - 'owner_name' => repo.owner_name, - 'description' => repo.description, - 'active' => repo.active, - 'private' => repo.private - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/job.rb b/vendor/travis-core/lib/travis/api/v1/http/job.rb deleted file mode 100644 index dd832083..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/job.rb +++ /dev/null @@ -1,44 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Job - include Formats, Helpers::Legacy - - attr_reader :job, :commit - - def initialize(job, options = {}) - @job = job - @commit = job.commit - end - - def data - { - 'id' => job.id, - 'number' => job.number, - 'config' => job.obfuscated_config.stringify_keys, - 'repository_id' => job.repository_id, - 'build_id' => job.source_id, - 'state' => job.finished? ? 'finished' : job.state.to_s, - 'result' => legacy_job_result(job), - 'status' => legacy_job_result(job), - 'started_at' => format_date(job.started_at), - 'finished_at' => format_date(job.finished_at), - 'log' => job.log_content, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'compare_url' => commit.compare_url, - 'worker' => job.worker - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/jobs.rb b/vendor/travis-core/lib/travis/api/v1/http/jobs.rb deleted file mode 100644 index 3279211b..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/jobs.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Jobs - include Formats, Helpers::Legacy - - attr_reader :jobs - - def initialize(jobs, options = {}) - @jobs = jobs - end - - def data - jobs.map { |job| job_data(job) } - end - - def job_data(job) - commit = job.commit - { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'number' => job.number, - 'state' => legacy_job_state(job), - 'queue' => job.queue, - 'allow_failure' => job.allow_failure - } - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v1/http/repositories.rb b/vendor/travis-core/lib/travis/api/v1/http/repositories.rb deleted file mode 100644 index efb00792..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/repositories.rb +++ /dev/null @@ -1,37 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Repositories - include Formats, Helpers::Legacy - - attr_reader :repositories - - def initialize(repositories, options = {}) - @repositories = repositories - end - - def data - repositories.map { |repository| repository_data(repository) } - end - - def repository_data(repository) - { - 'id' => repository.id, - 'slug' => repository.slug, - 'description' => repository.description, - 'last_build_id' => repository.last_build_id, - 'last_build_number' => repository.last_build_number, - 'last_build_status' => legacy_repository_last_build_result(repository), - 'last_build_result' => legacy_repository_last_build_result(repository), - 'last_build_duration' => repository.last_build_duration, - 'last_build_language' => nil, - 'last_build_started_at' => format_date(repository.last_build_started_at), - 'last_build_finished_at' => format_date(repository.last_build_finished_at), - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/repository.rb b/vendor/travis-core/lib/travis/api/v1/http/repository.rb deleted file mode 100644 index dfceebd0..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/repository.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Travis - module Api - module V1 - module Http - class Repository - include Formats, Helpers::Legacy - - attr_reader :repository, :options - - def initialize(repository, options = {}) - @repository = repository - end - - def data - { - 'id' => repository.id, - 'slug' => repository.slug, - 'description' => repository.description, - 'public_key' => repository.key.public_key, - 'last_build_id' => repository.last_build_id, - 'last_build_number' => repository.last_build_number, - 'last_build_status' => legacy_repository_last_build_result(repository), - 'last_build_result' => legacy_repository_last_build_result(repository), - 'last_build_duration' => repository.last_build_duration, - 'last_build_language' => nil, - 'last_build_started_at' => format_date(repository.last_build_started_at), - 'last_build_finished_at' => format_date(repository.last_build_finished_at), - } - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/http/user.rb b/vendor/travis-core/lib/travis/api/v1/http/user.rb deleted file mode 100644 index 833f7533..00000000 --- a/vendor/travis-core/lib/travis/api/v1/http/user.rb +++ /dev/null @@ -1,31 +0,0 @@ -module Travis - module Api - module V1 - module Http - class User - include Formats - - attr_reader :user, :options - - def initialize(user, options = {}) - @user = user - @options = options - end - - def data - { - 'login' => user.login, - 'name' => user.name, - 'email' => user.email, - 'gravatar_id' => user.gravatar_id, - 'locale' => user.locale, - 'is_syncing' => user.is_syncing, - 'synced_at' => format_date(user.synced_at) - } - end - end - end - end - end -end - diff --git a/vendor/travis-core/lib/travis/api/v1/webhook.rb b/vendor/travis-core/lib/travis/api/v1/webhook.rb deleted file mode 100644 index 2b38d28f..00000000 --- a/vendor/travis-core/lib/travis/api/v1/webhook.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Travis - module Api - module V1 - module Webhook - require 'travis/api/v1/webhook/build' - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/webhook/build.rb b/vendor/travis-core/lib/travis/api/v1/webhook/build.rb deleted file mode 100644 index ccea2076..00000000 --- a/vendor/travis-core/lib/travis/api/v1/webhook/build.rb +++ /dev/null @@ -1,27 +0,0 @@ -module Travis - module Api - module V1 - module Webhook - class Build - require 'travis/api/v1/webhook/build/finished' - - attr_reader :build, :commit, :request, :repository, :options - - def initialize(build, options = {}) - @build = build - @commit = build.commit - @request = build.request - @repository = build.repository - @options = options - end - - private - - def build_url - ["https://#{Travis.config.host}", repository.slug, 'builds', build.id].join('/') - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/webhook/build/finished.rb b/vendor/travis-core/lib/travis/api/v1/webhook/build/finished.rb deleted file mode 100644 index 7c49cd95..00000000 --- a/vendor/travis-core/lib/travis/api/v1/webhook/build/finished.rb +++ /dev/null @@ -1,70 +0,0 @@ -module Travis - module Api - module V1 - module Webhook - class Build - class Finished < Build - require 'travis/api/v1/webhook/build/finished/job' - - include Formats - - def data - data = { - 'id' => build.id, - 'repository' => repository_data, - 'number' => build.number, - 'config' => build.obfuscated_config.stringify_keys, - 'status' => build.result, - 'result' => build.result, - 'status_message' => result_message, - 'result_message' => result_message, - 'started_at' => format_date(build.started_at), - 'finished_at' => format_date(build.finished_at), - 'duration' => build.duration, - 'build_url' => build_url, - 'commit_id' => commit.id, - 'commit' => commit.commit, - 'base_commit' => request.base_commit, - 'head_commit' => request.head_commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'compare_url' => commit.compare_url, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'matrix' => build.matrix.map { |job| Job.new(job, options).data }, - 'type' => build.event_type, - 'state' => build.state.to_s, - 'pull_request' => build.pull_request?, - 'pull_request_number' => build.pull_request_number, - 'pull_request_title' => build.pull_request_title, - 'tag' => request.tag_name - } - - if commit.pull_request? - data['pull_request_number'] = commit.pull_request_number - end - - data - end - - def repository_data - { - 'id' => repository.id, - 'name' => repository.name, - 'owner_name' => repository.owner_name, - 'url' => repository.url - } - end - - def result_message - @result_message ||= ::Build::ResultMessage.new(build).short - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v1/webhook/build/finished/job.rb b/vendor/travis-core/lib/travis/api/v1/webhook/build/finished/job.rb deleted file mode 100644 index bf0493cc..00000000 --- a/vendor/travis-core/lib/travis/api/v1/webhook/build/finished/job.rb +++ /dev/null @@ -1,50 +0,0 @@ -module Travis - module Api - module V1 - module Webhook - class Build - class Finished < Build - class Job - include Formats - - attr_reader :job, :commit, :options - - def initialize(job, options = {}) - @job = job - @commit = job.commit - @options = options - end - - def data - data = { - 'id' => job.id, - 'repository_id' => job.repository_id, - 'parent_id' => job.source_id, - 'number' => job.number, - 'state' => job.finished? ? 'finished' : job.state.to_s, - 'config' => job.obfuscated_config, - 'status' => job.result, - 'result' => job.result, - 'commit' => commit.commit, - 'branch' => commit.branch, - 'message' => commit.message, - 'compare_url' => commit.compare_url, - 'committed_at' => format_date(commit.committed_at), - 'author_name' => commit.author_name, - 'author_email' => commit.author_email, - 'committer_name' => commit.committer_name, - 'committer_email' => commit.committer_email, - 'allow_failure' => job.allow_failure - } - data['log'] = job.log_content || '' if options[:include_logs] - data['started_at'] = format_date(job.started_at) if job.started? - data['finished_at'] = format_date(job.finished_at) if job.finished? - data - end - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/api/v2.rb b/vendor/travis-core/lib/travis/api/v2.rb deleted file mode 100644 index e70b19f4..00000000 --- a/vendor/travis-core/lib/travis/api/v2.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Travis - module Api - module V2 - end - end -end - diff --git a/vendor/travis-core/lib/travis/event/handler.rb b/vendor/travis-core/lib/travis/event/handler.rb index 177c41ab..9930fd34 100644 --- a/vendor/travis-core/lib/travis/event/handler.rb +++ b/vendor/travis-core/lib/travis/event/handler.rb @@ -3,9 +3,9 @@ require 'travis/support/logging' require 'travis/support/instrumentation' require 'travis/support/exceptions/handling' -require 'travis/api' require 'travis/event/config' require 'travis/model/build' +require 'travis/api/serialize' module Travis module Event diff --git a/vendor/travis-core/lib/travis/states_cache.rb b/vendor/travis-core/lib/travis/states_cache.rb index 8703b486..145e14c8 100644 --- a/vendor/travis-core/lib/travis/states_cache.rb +++ b/vendor/travis-core/lib/travis/states_cache.rb @@ -1,13 +1,13 @@ require 'dalli' require 'connection_pool' require 'active_support/core_ext/module/delegation' -require 'travis/api' +require 'travis/api/serialize' module Travis class StatesCache class CacheError < StandardError; end - include Travis::Api::Formats + include Travis::Api::Serialize::Formats attr_reader :adapter From 51c6c8f58f3c9bdf73e6e1c251850b11314da586 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sat, 18 Jun 2016 17:58:36 +0200 Subject: [PATCH 02/17] move api/serializer to api/serialize/serializer --- lib/travis/api/serialize/serializer.rb | 25 +++++++++++++++++++ lib/travis/api/serialize/v2/http.rb | 2 +- lib/travis/api/serialize/v2/http/env_var.rb | 2 +- lib/travis/api/serialize/v2/http/env_vars.rb | 2 +- lib/travis/api/serialize/v2/http/ssh_key.rb | 2 +- lib/travis/api/serializer.rb | 23 ----------------- spec/integration/settings_endpoint_spec.rb | 4 +-- .../singleton_settings_endpoint_spec.rb | 2 +- 8 files changed, 32 insertions(+), 30 deletions(-) create mode 100644 lib/travis/api/serialize/serializer.rb delete mode 100644 lib/travis/api/serializer.rb diff --git a/lib/travis/api/serialize/serializer.rb b/lib/travis/api/serialize/serializer.rb new file mode 100644 index 00000000..f11639e0 --- /dev/null +++ b/lib/travis/api/serialize/serializer.rb @@ -0,0 +1,25 @@ +require 'active_model_serializers' + +module Travis + module Api + module Serialize + class ObjectSerializer < ActiveModel::Serializer + def data + as_json + end + end + + class ArraySerializer < ActiveModel::ArraySerializer + def data + as_json + end + + def initialize(resource, options) + options[:each_serializer] ||= V2::Http.const_get(options[:root].to_s.singularize.camelize) + super(resource, options) + end + end + end + end +end + diff --git a/lib/travis/api/serialize/v2/http.rb b/lib/travis/api/serialize/v2/http.rb index 49e7f42f..a57529d8 100644 --- a/lib/travis/api/serialize/v2/http.rb +++ b/lib/travis/api/serialize/v2/http.rb @@ -1,4 +1,4 @@ -require 'travis/api/serializer' +require 'travis/api/serialize/serializer' require 'travis/api/serialize/v2/http/accounts' require 'travis/api/serialize/v2/http/annotations' require 'travis/api/serialize/v2/http/broadcasts' diff --git a/lib/travis/api/serialize/v2/http/env_var.rb b/lib/travis/api/serialize/v2/http/env_var.rb index 23fce2dc..ed52509c 100644 --- a/lib/travis/api/serialize/v2/http/env_var.rb +++ b/lib/travis/api/serialize/v2/http/env_var.rb @@ -3,7 +3,7 @@ module Travis module Serialize module V2 module Http - class EnvVar < Travis::Api::Serializer + class EnvVar < Travis::Api::Serialize::ObjectSerializer attributes :id, :name, :value, :public, :repository_id def value diff --git a/lib/travis/api/serialize/v2/http/env_vars.rb b/lib/travis/api/serialize/v2/http/env_vars.rb index 2091264e..b7fa3ad2 100644 --- a/lib/travis/api/serialize/v2/http/env_vars.rb +++ b/lib/travis/api/serialize/v2/http/env_vars.rb @@ -1,2 +1,2 @@ -class Travis::Api::Serialize::V2::Http::EnvVars < Travis::Api::ArraySerializer +class Travis::Api::Serialize::V2::Http::EnvVars < Travis::Api::Serialize::ArraySerializer end diff --git a/lib/travis/api/serialize/v2/http/ssh_key.rb b/lib/travis/api/serialize/v2/http/ssh_key.rb index 2f1c7a5b..d8916ab5 100644 --- a/lib/travis/api/serialize/v2/http/ssh_key.rb +++ b/lib/travis/api/serialize/v2/http/ssh_key.rb @@ -6,7 +6,7 @@ module Travis module Serialize module V2 module Http - class SshKey < Travis::Api::Serializer + class SshKey < Travis::Api::Serialize::ObjectSerializer attributes :id, :description, :fingerprint def id diff --git a/lib/travis/api/serializer.rb b/lib/travis/api/serializer.rb deleted file mode 100644 index caac66df..00000000 --- a/lib/travis/api/serializer.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'active_model_serializers' - -module Travis - module Api - class Serializer < ActiveModel::Serializer - def data - as_json - end - end - - class ArraySerializer < ActiveModel::ArraySerializer - def data - as_json - end - - def initialize(resource, options) - options[:each_serializer] ||= Travis::Api::Serialize::V2::Http.const_get(options[:root].to_s.singularize.camelize) - super(resource, options) - end - end - end -end - diff --git a/spec/integration/settings_endpoint_spec.rb b/spec/integration/settings_endpoint_spec.rb index fc25ebcd..cc895029 100644 --- a/spec/integration/settings_endpoint_spec.rb +++ b/spec/integration/settings_endpoint_spec.rb @@ -19,11 +19,11 @@ describe Travis::Api::App::SettingsEndpoint do Repository::Settings.class_eval do attribute :items, collection_class end - serializer_class = Class.new(Travis::Api::Serializer) do + serializer_class = Class.new(Travis::Api::Serialize::ObjectSerializer) do attributes :id, :name end Travis::Api::Serialize::V2::Http.const_set(:Item, serializer_class) - Travis::Api::Serialize::V2::Http.const_set(:Items, Travis::Api::ArraySerializer) + Travis::Api::Serialize::V2::Http.const_set(:Items, Travis::Api::Serialize::ArraySerializer) add_settings_endpoint :items end diff --git a/spec/integration/singleton_settings_endpoint_spec.rb b/spec/integration/singleton_settings_endpoint_spec.rb index b465770a..dd62100a 100644 --- a/spec/integration/singleton_settings_endpoint_spec.rb +++ b/spec/integration/singleton_settings_endpoint_spec.rb @@ -15,7 +15,7 @@ describe Travis::Api::App::SettingsEndpoint do Repository::Settings.class_eval do attribute :item, model_class end - serializer_class = Class.new(Travis::Api::Serializer) do + serializer_class = Class.new(Travis::Api::Serialize::ObjectSerializer) do attributes :name end Travis::Api::Serialize::V2::Http.const_set(:Item, serializer_class) From a26c188822bedc3247b365a78d69ed5af700ae7f Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sat, 18 Jun 2016 18:01:09 +0200 Subject: [PATCH 03/17] move travis/api/serialize/* from core to lib --- {vendor/travis-core/lib => lib}/travis/api/serialize.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/formats.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v0.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v0/event.rb | 0 .../lib => lib}/travis/api/serialize/v0/event/build.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v0/event/job.rb | 0 .../lib => lib}/travis/api/serialize/v0/notification.rb | 0 .../lib => lib}/travis/api/serialize/v0/notification/build.rb | 0 .../travis/api/serialize/v0/notification/repository.rb | 0 .../lib => lib}/travis/api/serialize/v0/notification/user.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/annotation.rb | 0 .../travis/api/serialize/v0/pusher/annotation/created.rb | 0 .../travis/api/serialize/v0/pusher/annotation/updated.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build/canceled.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build/created.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build/finished.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build/received.rb | 0 .../travis/api/serialize/v0/pusher/build/received/job.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/build/started.rb | 0 .../travis/api/serialize/v0/pusher/build/started/job.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v0/pusher/job.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/canceled.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/created.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/finished.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/log.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/received.rb | 0 .../lib => lib}/travis/api/serialize/v0/pusher/job/started.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v0/worker.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v0/worker/job.rb | 0 .../lib => lib}/travis/api/serialize/v0/worker/job/test.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v1.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/archive.rb | 0 .../lib => lib}/travis/api/serialize/v1/archive/build.rb | 0 .../lib => lib}/travis/api/serialize/v1/archive/build/job.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/helpers.rb | 0 .../lib => lib}/travis/api/serialize/v1/helpers/legacy.rb | 0 {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http.rb | 0 .../lib => lib}/travis/api/serialize/v1/http/branches.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/http/build.rb | 0 .../lib => lib}/travis/api/serialize/v1/http/build/job.rb | 0 .../lib => lib}/travis/api/serialize/v1/http/builds.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/http/hooks.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/http/job.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/http/jobs.rb | 0 .../lib => lib}/travis/api/serialize/v1/http/repositories.rb | 0 .../lib => lib}/travis/api/serialize/v1/http/repository.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/http/user.rb | 0 .../travis-core/lib => lib}/travis/api/serialize/v1/webhook.rb | 0 .../lib => lib}/travis/api/serialize/v1/webhook/build.rb | 0 .../lib => lib}/travis/api/serialize/v1/webhook/build/finished.rb | 0 .../travis/api/serialize/v1/webhook/build/finished/job.rb | 0 53 files changed, 0 insertions(+), 0 deletions(-) rename {vendor/travis-core/lib => lib}/travis/api/serialize.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/formats.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/event.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/event/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/event/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/notification.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/notification/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/notification/repository.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/notification/user.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/annotation.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/annotation/created.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/annotation/updated.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/canceled.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/created.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/finished.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/received.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/received/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/started.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/build/started/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/canceled.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/created.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/finished.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/log.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/received.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/pusher/job/started.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/worker.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/worker/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v0/worker/job/test.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/archive.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/archive/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/archive/build/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/helpers.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/helpers/legacy.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/branches.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/build/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/builds.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/hooks.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/job.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/jobs.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/repositories.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/repository.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/http/user.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/webhook.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/webhook/build.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/webhook/build/finished.rb (100%) rename {vendor/travis-core/lib => lib}/travis/api/serialize/v1/webhook/build/finished/job.rb (100%) diff --git a/vendor/travis-core/lib/travis/api/serialize.rb b/lib/travis/api/serialize.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize.rb rename to lib/travis/api/serialize.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/formats.rb b/lib/travis/api/serialize/formats.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/formats.rb rename to lib/travis/api/serialize/formats.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0.rb b/lib/travis/api/serialize/v0.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0.rb rename to lib/travis/api/serialize/v0.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event.rb b/lib/travis/api/serialize/v0/event.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/event.rb rename to lib/travis/api/serialize/v0/event.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb b/lib/travis/api/serialize/v0/event/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/event/build.rb rename to lib/travis/api/serialize/v0/event/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb b/lib/travis/api/serialize/v0/event/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/event/job.rb rename to lib/travis/api/serialize/v0/event/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification.rb b/lib/travis/api/serialize/v0/notification.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/notification.rb rename to lib/travis/api/serialize/v0/notification.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb b/lib/travis/api/serialize/v0/notification/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/notification/build.rb rename to lib/travis/api/serialize/v0/notification/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb b/lib/travis/api/serialize/v0/notification/repository.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/notification/repository.rb rename to lib/travis/api/serialize/v0/notification/repository.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb b/lib/travis/api/serialize/v0/notification/user.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/notification/user.rb rename to lib/travis/api/serialize/v0/notification/user.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb b/lib/travis/api/serialize/v0/pusher.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher.rb rename to lib/travis/api/serialize/v0/pusher.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb b/lib/travis/api/serialize/v0/pusher/annotation.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation.rb rename to lib/travis/api/serialize/v0/pusher/annotation.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb b/lib/travis/api/serialize/v0/pusher/annotation/created.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/created.rb rename to lib/travis/api/serialize/v0/pusher/annotation/created.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb b/lib/travis/api/serialize/v0/pusher/annotation/updated.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/annotation/updated.rb rename to lib/travis/api/serialize/v0/pusher/annotation/updated.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb b/lib/travis/api/serialize/v0/pusher/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build.rb rename to lib/travis/api/serialize/v0/pusher/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb b/lib/travis/api/serialize/v0/pusher/build/canceled.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/canceled.rb rename to lib/travis/api/serialize/v0/pusher/build/canceled.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb b/lib/travis/api/serialize/v0/pusher/build/created.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/created.rb rename to lib/travis/api/serialize/v0/pusher/build/created.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb b/lib/travis/api/serialize/v0/pusher/build/finished.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/finished.rb rename to lib/travis/api/serialize/v0/pusher/build/finished.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb b/lib/travis/api/serialize/v0/pusher/build/received.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received.rb rename to lib/travis/api/serialize/v0/pusher/build/received.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb b/lib/travis/api/serialize/v0/pusher/build/received/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/received/job.rb rename to lib/travis/api/serialize/v0/pusher/build/received/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb b/lib/travis/api/serialize/v0/pusher/build/started.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started.rb rename to lib/travis/api/serialize/v0/pusher/build/started.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb b/lib/travis/api/serialize/v0/pusher/build/started/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/build/started/job.rb rename to lib/travis/api/serialize/v0/pusher/build/started/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb b/lib/travis/api/serialize/v0/pusher/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job.rb rename to lib/travis/api/serialize/v0/pusher/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb b/lib/travis/api/serialize/v0/pusher/job/canceled.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/canceled.rb rename to lib/travis/api/serialize/v0/pusher/job/canceled.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb b/lib/travis/api/serialize/v0/pusher/job/created.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/created.rb rename to lib/travis/api/serialize/v0/pusher/job/created.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb b/lib/travis/api/serialize/v0/pusher/job/finished.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/finished.rb rename to lib/travis/api/serialize/v0/pusher/job/finished.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb b/lib/travis/api/serialize/v0/pusher/job/log.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/log.rb rename to lib/travis/api/serialize/v0/pusher/job/log.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb b/lib/travis/api/serialize/v0/pusher/job/received.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/received.rb rename to lib/travis/api/serialize/v0/pusher/job/received.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb b/lib/travis/api/serialize/v0/pusher/job/started.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/pusher/job/started.rb rename to lib/travis/api/serialize/v0/pusher/job/started.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker.rb b/lib/travis/api/serialize/v0/worker.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/worker.rb rename to lib/travis/api/serialize/v0/worker.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb b/lib/travis/api/serialize/v0/worker/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/worker/job.rb rename to lib/travis/api/serialize/v0/worker/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb b/lib/travis/api/serialize/v0/worker/job/test.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v0/worker/job/test.rb rename to lib/travis/api/serialize/v0/worker/job/test.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1.rb b/lib/travis/api/serialize/v1.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1.rb rename to lib/travis/api/serialize/v1.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive.rb b/lib/travis/api/serialize/v1/archive.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/archive.rb rename to lib/travis/api/serialize/v1/archive.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb b/lib/travis/api/serialize/v1/archive/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/archive/build.rb rename to lib/travis/api/serialize/v1/archive/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb b/lib/travis/api/serialize/v1/archive/build/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/archive/build/job.rb rename to lib/travis/api/serialize/v1/archive/build/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb b/lib/travis/api/serialize/v1/helpers.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/helpers.rb rename to lib/travis/api/serialize/v1/helpers.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb b/lib/travis/api/serialize/v1/helpers/legacy.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/helpers/legacy.rb rename to lib/travis/api/serialize/v1/helpers/legacy.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http.rb b/lib/travis/api/serialize/v1/http.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http.rb rename to lib/travis/api/serialize/v1/http.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb b/lib/travis/api/serialize/v1/http/branches.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/branches.rb rename to lib/travis/api/serialize/v1/http/branches.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb b/lib/travis/api/serialize/v1/http/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/build.rb rename to lib/travis/api/serialize/v1/http/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb b/lib/travis/api/serialize/v1/http/build/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/build/job.rb rename to lib/travis/api/serialize/v1/http/build/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb b/lib/travis/api/serialize/v1/http/builds.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/builds.rb rename to lib/travis/api/serialize/v1/http/builds.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb b/lib/travis/api/serialize/v1/http/hooks.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/hooks.rb rename to lib/travis/api/serialize/v1/http/hooks.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb b/lib/travis/api/serialize/v1/http/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/job.rb rename to lib/travis/api/serialize/v1/http/job.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb b/lib/travis/api/serialize/v1/http/jobs.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/jobs.rb rename to lib/travis/api/serialize/v1/http/jobs.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/repositories.rb b/lib/travis/api/serialize/v1/http/repositories.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/repositories.rb rename to lib/travis/api/serialize/v1/http/repositories.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/repository.rb b/lib/travis/api/serialize/v1/http/repository.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/repository.rb rename to lib/travis/api/serialize/v1/http/repository.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb b/lib/travis/api/serialize/v1/http/user.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/http/user.rb rename to lib/travis/api/serialize/v1/http/user.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb b/lib/travis/api/serialize/v1/webhook.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/webhook.rb rename to lib/travis/api/serialize/v1/webhook.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb b/lib/travis/api/serialize/v1/webhook/build.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/webhook/build.rb rename to lib/travis/api/serialize/v1/webhook/build.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb b/lib/travis/api/serialize/v1/webhook/build/finished.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished.rb rename to lib/travis/api/serialize/v1/webhook/build/finished.rb diff --git a/vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb b/lib/travis/api/serialize/v1/webhook/build/finished/job.rb similarity index 100% rename from vendor/travis-core/lib/travis/api/serialize/v1/webhook/build/finished/job.rb rename to lib/travis/api/serialize/v1/webhook/build/finished/job.rb From a6658fa4d3bda741e9f6efa67716f70465c047eb Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 00:02:11 +0200 Subject: [PATCH 04/17] get rid of spec_helper_core --- .rspec | 1 + Rakefile | 43 +- lib/travis/api/app.rb | 15 +- lib/travis/api/app/endpoint/requests.rb | 5 + spec/active_record_postgres_variables_spec.rb | 2 - spec/integration/error_handling_spec.rb | 4 +- spec/integration/formats_handling_spec.rb | 4 +- spec/integration/responders_spec.rb | 2 - spec/integration/routes.backup.rb | 23 - spec/integration/scopes_spec.rb | 2 - spec/integration/settings_endpoint_spec.rb | 2 - .../singleton_settings_endpoint_spec.rb | 2 - spec/integration/uptime_spec.rb | 4 +- spec/integration/v2/branches_spec.rb | 4 +- spec/integration/v2/builds_spec.rb | 4 +- spec/integration/v2/hooks_spec.rb | 3 +- spec/integration/v2/jobs_spec.rb | 4 +- spec/integration/v2/repositories_spec.rb | 7 +- spec/integration/v2/requests_spec.rb | 3 +- spec/integration/v2/settings/env_vars_spec.rb | 4 +- spec/integration/v2/settings/ssh_key_spec.rb | 4 +- spec/integration/v2/users_spec.rb | 4 +- spec/integration/v2_spec.backup.rb | 2 - spec/integration/version_spec.rb | 2 - spec/spec_helper.rb | 92 +- spec/spec_helper_core.rb | 59 -- spec/support/private_key.rb | 28 + spec/support/test_helpers.rb | 29 + spec/unit/access_token_spec.rb | 2 - spec/unit/app_spec.rb | 2 - spec/unit/cors_spec.rb | 2 - spec/unit/default_spec.rb | 4 +- spec/unit/endpoint/accounts_spec.rb | 4 +- .../authorization/user_manager_spec.rb | 2 - spec/unit/endpoint/authorization_spec.rb | 2 - spec/unit/endpoint/branches_spec.rb | 2 - spec/unit/endpoint/builds_spec.rb | 6 +- spec/unit/endpoint/endpoints_spec.rb | 2 - spec/unit/endpoint/hooks_spec.rb | 2 - spec/unit/endpoint/jobs_spec.rb | 4 +- spec/unit/endpoint/lint_spec.rb | 4 +- spec/unit/endpoint/logs_spec.rb | 4 +- spec/unit/endpoint/repos_spec.rb | 4 +- spec/unit/endpoint/requests/throttle_spec.rb | 2 - spec/unit/endpoint/users_spec.rb | 4 +- spec/unit/endpoint_spec.rb | 4 +- spec/unit/extensions/expose_pattern_spec.rb | 4 +- spec/unit/extensions/scoping_spec.rb | 2 - spec/unit/extensions/smart_constants_spec.rb | 2 - spec/unit/extensions/subclass_tracker_spec.rb | 2 - spec/unit/helpers/accept_spec.rb | 2 - spec/unit/helpers/json_renderer_spec.rb | 1 - spec/unit/middleware/logging_spec.rb | 2 - spec/unit/middleware/scope_check_spec.rb | 4 +- .../middleware/user_agent_tracker_spec.rb | 2 - spec/unit/responders/json_spec.rb | 2 - spec/unit/responders/service_spec.rb | 2 - spec/unit/serialize/v2/http/accounts_spec.rb | 2 - .../serialize/v2/http/annotations_spec.rb | 2 - spec/unit/serialize/v2/http/branch_spec.rb | 2 - spec/unit/serialize/v2/http/branches_spec.rb | 2 - .../unit/serialize/v2/http/broadcasts_spec.rb | 2 - spec/unit/serialize/v2/http/build_spec.rb | 2 - spec/unit/serialize/v2/http/builds_spec.rb | 2 - spec/unit/serialize/v2/http/caches_spec.rb | 2 - spec/unit/serialize/v2/http/env_var_spec.rb | 2 - spec/unit/serialize/v2/http/hooks_spec.rb | 2 - spec/unit/serialize/v2/http/job_spec.rb | 2 - spec/unit/serialize/v2/http/jobs_spec.rb | 2 - spec/unit/serialize/v2/http/log_spec.rb | 2 - .../serialize/v2/http/permissions_spec.rb | 2 - .../serialize/v2/http/repositories_spec.rb | 2 - .../unit/serialize/v2/http/repository_spec.rb | 2 - spec/unit/serialize/v2/http/request_spec.rb | 2 - spec/unit/serialize/v2/http/requests_spec.rb | 2 - spec/unit/serialize/v2/http/ssl_key_spec.rb | 2 - spec/unit/serialize/v2/http/user_spec.rb | 2 - spec/v3/error_handling_spec.rb | 4 +- spec/v3/extensions/belongs_to_spec.rb | 2 - spec/v3/metrics_spec.rb | 2 - spec/v3/models/cron_spec.rb | 1 - spec/v3/queries/cron_spec.rb | 2 - spec/v3/renderer/avatar_url_spec.rb | 2 - spec/v3/result_spec.rb | 2 - spec/v3/service_index_spec.rb | 4 +- .../accounts/for_current_user_spec.rb | 4 +- spec/v3/services/branch/find_spec.rb | 4 +- spec/v3/services/branches/find_spec.rb | 4 +- .../broadcasts/for_current_user_spec.rb | 4 +- spec/v3/services/build/cancel_spec.rb | 4 +- spec/v3/services/build/find_spec.rb | 4 +- spec/v3/services/build/restart_spec.rb | 4 +- spec/v3/services/builds/find_spec.rb | 4 +- spec/v3/services/cron/create_spec.rb | 4 +- spec/v3/services/cron/delete_spec.rb | 4 +- spec/v3/services/cron/find_spec.rb | 4 +- spec/v3/services/cron/for_branch_spec.rb | 4 +- spec/v3/services/crons/for_repository_spec.rb | 4 +- spec/v3/services/job/cancel_spec.rb | 4 +- spec/v3/services/job/debug_sepc.rb | 6 +- spec/v3/services/job/find_spec.rb | 4 +- spec/v3/services/job/restart_spec.rb | 4 +- spec/v3/services/jobs/find_spec.rb | 4 +- spec/v3/services/lint/lint_spec.rb | 4 +- spec/v3/services/organization/find_spec.rb | 4 +- .../organizations/for_current_user_spec.rb | 4 +- spec/v3/services/owner/find_spec.rb | 4 +- .../repositories/for_current_user_spec.rb | 4 +- .../services/repositories/for_owner_spec.rb | 4 +- spec/v3/services/repository/disable_spec.rb | 4 +- spec/v3/services/repository/enable_spec.rb | 4 +- spec/v3/services/repository/find_spec.rb | 4 +- spec/v3/services/repository/star_spec.rb | 6 +- spec/v3/services/repository/unstar_spec.rb | 6 +- spec/v3/services/requests/create_spec.rb | 4 +- spec/v3/services/requests/find_spec.rb | 4 +- spec/v3/services/settings_spec.rb | 10 +- spec/v3/services/user/current_spec.rb | 4 +- spec/v3/services/user/find_spec.rb | 4 +- spec/v3/services/user/sync_spec.rb | 4 +- spec_core/core/model/build/compat_spec.rb | 7 - spec_core/core/model/organization_spec.rb | 22 - .../services/find_daily_repos_stats_spec.rb | 22 - .../services/find_daily_tests_stats_spec.rb | 17 - .../model/annotation_provider_spec.rb | 7 +- spec_core/{core => }/model/annotation_spec.rb | 4 - spec_core/{core => }/model/broadcast_spec.rb | 4 - .../model/build/config/dist_spec.rb | 0 .../model/build/config/group_spec.rb | 0 .../model/build/config/matrix_spec.rb | 3 - .../model/build/config/obfuscate_spec.rb | 6 +- .../{core => }/model/build/config_spec.rb | 4 - .../model/build/denormalize_spec.rb | 4 - .../{core => }/model/build/matrix_spec.rb | 10 +- .../{core => }/model/build/metrics_spec.rb | 4 +- .../model/build/result_message_spec.rb | 2 - .../{core => }/model/build/states_spec.rb | 4 - .../model/build/update_branch_spec.rb | 6 +- spec_core/{core => }/model/build_spec.rb | 6 +- spec_core/{core => }/model/commit_spec.rb | 4 - .../{core => }/model/encrypted_column_spec.rb | 2 - .../{core => }/model/job/cleanup_spec.rb | 4 - spec_core/{core => }/model/job/queue_spec.rb | 2 - spec_core/{core => }/model/job/test_spec.rb | 4 - spec_core/{core => }/model/job_spec.rb | 45 +- spec_core/model/organization_spec.rb | 18 + spec_core/{core => }/model/permission_spec.rb | 4 - .../model/repository/settings/ssh_key_spec.rb | 2 - .../model/repository/settings_spec.rb | 2 - .../model/repository/status_image_spec.rb | 4 - spec_core/{core => }/model/repository_spec.rb | 16 +- .../{core => }/model/request/approval_spec.rb | 2 - .../{core => }/model/request/branches_spec.rb | 2 - .../{core => }/model/request/states_spec.rb | 4 - spec_core/{core => }/model/request_spec.rb | 4 - spec_core/{core => }/model/ssl_key_spec.rb | 4 - spec_core/{core => }/model/token_spec.rb | 4 - spec_core/{core => }/model/url_spec.rb | 4 - spec_core/{core => }/model/user/oauth_spec.rb | 4 - spec_core/{core => }/model/user_spec.rb | 17 +- .../{core => }/services/cancel_build_spec.rb | 4 - .../{core => }/services/cancel_job_spec.rb | 4 - .../{core => }/services/find_admin_spec.rb | 2 - .../services/find_annotation_spec.rb | 4 - .../{core => }/services/find_branch_spec.rb | 4 - .../{core => }/services/find_branches_spec.rb | 4 - .../{core => }/services/find_build_spec.rb | 4 - .../{core => }/services/find_builds_spec.rb | 4 +- .../{core => }/services/find_caches_spec.rb | 6 +- .../{core => }/services/find_hooks_spec.rb | 4 - .../{core => }/services/find_job_spec.rb | 4 - .../{core => }/services/find_jobs_spec.rb | 4 - .../{core => }/services/find_log_spec.rb | 4 - .../{core => }/services/find_repo_key_spec.rb | 6 +- .../services/find_repo_settings_spec.rb | 4 - .../{core => }/services/find_repo_spec.rb | 4 - .../{core => }/services/find_repos_spec.rb | 4 +- .../{core => }/services/find_request_spec.rb | 4 - .../{core => }/services/find_requests_spec.rb | 4 - .../services/find_user_accounts_spec.rb | 4 - .../services/next_build_number_spec.rb | 3 - .../services/regenerate_repo_key_spec.rb | 4 - .../{core => }/services/remove_log_spec.rb | 6 - .../{core => }/services/reset_model_spec.rb | 4 - .../{core => }/services/sync_user_spec.rb | 2 - .../services/update_annotation_spec.rb | 4 - .../{core => }/services/update_hook_spec.rb | 2 - .../{core => }/services/update_job_spec.rb | 4 +- .../{core => }/services/update_log_spec.rb | 2 - .../{core => }/services/update_user_spec.rb | 2 - spec_core/{core => }/services_spec.rb | 2 - travis-api.gemspec | 811 +----------------- .../lib/travis/event/handler/metrics.rb | 2 +- .../lib/travis/model/repository.rb | 6 +- vendor/travis-core/lib/travis/model/user.rb | 7 +- vendor/travis-core/lib/travis/services.rb | 2 - .../travis/services/find_daily_repos_stats.rb | 23 - .../travis/services/find_daily_tests_stats.rb | 23 - .../lib/{travis_core => travis}/version.rb | 2 +- vendor/travis-core/travis-core.gemspec | 4 +- 200 files changed, 280 insertions(+), 1651 deletions(-) delete mode 100644 spec/integration/routes.backup.rb delete mode 100644 spec/spec_helper_core.rb create mode 100644 spec/support/private_key.rb create mode 100644 spec/support/test_helpers.rb delete mode 100644 spec_core/core/model/build/compat_spec.rb delete mode 100644 spec_core/core/model/organization_spec.rb delete mode 100644 spec_core/core/services/find_daily_repos_stats_spec.rb delete mode 100644 spec_core/core/services/find_daily_tests_stats_spec.rb rename spec_core/{core => }/model/annotation_provider_spec.rb (93%) rename spec_core/{core => }/model/annotation_spec.rb (89%) rename spec_core/{core => }/model/broadcast_spec.rb (98%) rename spec_core/{core => }/model/build/config/dist_spec.rb (100%) rename spec_core/{core => }/model/build/config/group_spec.rb (100%) rename spec_core/{core => }/model/build/config/matrix_spec.rb (86%) rename spec_core/{core => }/model/build/config/obfuscate_spec.rb (97%) rename spec_core/{core => }/model/build/config_spec.rb (98%) rename spec_core/{core => }/model/build/denormalize_spec.rb (96%) rename spec_core/{core => }/model/build/matrix_spec.rb (99%) rename spec_core/{core => }/model/build/metrics_spec.rb (87%) rename spec_core/{core => }/model/build/result_message_spec.rb (99%) rename spec_core/{core => }/model/build/states_spec.rb (99%) rename spec_core/{core => }/model/build/update_branch_spec.rb (93%) rename spec_core/{core => }/model/build_spec.rb (99%) rename spec_core/{core => }/model/commit_spec.rb (97%) rename spec_core/{core => }/model/encrypted_column_spec.rb (99%) rename spec_core/{core => }/model/job/cleanup_spec.rb (94%) rename spec_core/{core => }/model/job/queue_spec.rb (99%) rename spec_core/{core => }/model/job/test_spec.rb (98%) rename spec_core/{core => }/model/job_spec.rb (92%) create mode 100644 spec_core/model/organization_spec.rb rename spec_core/{core => }/model/permission_spec.rb (89%) rename spec_core/{core => }/model/repository/settings/ssh_key_spec.rb (99%) rename spec_core/{core => }/model/repository/settings_spec.rb (99%) rename spec_core/{core => }/model/repository/status_image_spec.rb (98%) rename spec_core/{core => }/model/repository_spec.rb (97%) rename spec_core/{core => }/model/request/approval_spec.rb (99%) rename spec_core/{core => }/model/request/branches_spec.rb (99%) rename spec_core/{core => }/model/request/states_spec.rb (99%) rename spec_core/{core => }/model/request_spec.rb (98%) rename spec_core/{core => }/model/ssl_key_spec.rb (98%) rename spec_core/{core => }/model/token_spec.rb (82%) rename spec_core/{core => }/model/url_spec.rb (92%) rename spec_core/{core => }/model/user/oauth_spec.rb (92%) rename spec_core/{core => }/model/user_spec.rb (94%) rename spec_core/{core => }/services/cancel_build_spec.rb (96%) rename spec_core/{core => }/services/cancel_job_spec.rb (95%) rename spec_core/{core => }/services/find_admin_spec.rb (99%) rename spec_core/{core => }/services/find_annotation_spec.rb (90%) rename spec_core/{core => }/services/find_branch_spec.rb (94%) rename spec_core/{core => }/services/find_branches_spec.rb (94%) rename spec_core/{core => }/services/find_build_spec.rb (97%) rename spec_core/{core => }/services/find_builds_spec.rb (98%) rename spec_core/{core => }/services/find_caches_spec.rb (96%) rename spec_core/{core => }/services/find_hooks_spec.rb (96%) rename spec_core/{core => }/services/find_job_spec.rb (96%) rename spec_core/{core => }/services/find_jobs_spec.rb (97%) rename spec_core/{core => }/services/find_log_spec.rb (94%) rename spec_core/{core => }/services/find_repo_key_spec.rb (93%) rename spec_core/{core => }/services/find_repo_settings_spec.rb (94%) rename spec_core/{core => }/services/find_repo_spec.rb (94%) rename spec_core/{core => }/services/find_repos_spec.rb (98%) rename spec_core/{core => }/services/find_request_spec.rb (92%) rename spec_core/{core => }/services/find_requests_spec.rb (97%) rename spec_core/{core => }/services/find_user_accounts_spec.rb (96%) rename spec_core/{core => }/services/next_build_number_spec.rb (95%) rename spec_core/{core => }/services/regenerate_repo_key_spec.rb (93%) rename spec_core/{core => }/services/remove_log_spec.rb (97%) rename spec_core/{core => }/services/reset_model_spec.rb (98%) rename spec_core/{core => }/services/sync_user_spec.rb (97%) rename spec_core/{core => }/services/update_annotation_spec.rb (97%) rename spec_core/{core => }/services/update_hook_spec.rb (98%) rename spec_core/{core => }/services/update_job_spec.rb (99%) rename spec_core/{core => }/services/update_log_spec.rb (97%) rename spec_core/{core => }/services/update_user_spec.rb (95%) rename spec_core/{core => }/services_spec.rb (98%) delete mode 100644 vendor/travis-core/lib/travis/services/find_daily_repos_stats.rb delete mode 100644 vendor/travis-core/lib/travis/services/find_daily_tests_stats.rb rename vendor/travis-core/lib/{travis_core => travis}/version.rb (57%) diff --git a/.rspec b/.rspec index 8db79e75..586e4f62 100644 --- a/.rspec +++ b/.rspec @@ -1,2 +1,3 @@ +--require spec_helper --colour --tty diff --git a/Rakefile b/Rakefile index da93db47..a48da4b0 100644 --- a/Rakefile +++ b/Rakefile @@ -9,30 +9,39 @@ namespace :db do end end -begin - require 'rspec' - require 'rspec/core/rake_task' - RSpec::Core::RakeTask.new(:spec) +# begin +# require 'rspec' +# require 'rspec/core/rake_task' +# RSpec::Core::RakeTask.new(:spec) +# +# RSpec::Core::RakeTask.new(:spec_core) do |t| +# t.pattern = 'spec_core/**{,/*/**}/*_spec.rb' +# end +# +# task :default => [:spec, :spec_core] +# rescue LoadError => e +# puts e.inspect +# end - RSpec::Core::RakeTask.new(:spec_core) do |t| - t.pattern = 'spec_core/**{,/*/**}/*_spec.rb' +# not sure how else to include the spec_helper +namespace :spec do + desc 'Run api specs' + task :api do + sh 'bundle exec rspec -r spec_helper spec' end - task :default => [:spec, :spec_core] -rescue LoadError => e - puts e.inspect + desc 'Run core specs' + task :core do + sh 'bundle exec rspec -r spec_helper spec_core' + end end +task :default => %w(spec:api spec:core) + desc "generate gemspec" task 'travis-api.gemspec' do 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.each do |field, values| updated = " s.#{field} = [" updated << values.map { |v| "\n %p" % v }.join(',') @@ -43,7 +52,3 @@ task 'travis-api.gemspec' do File.open('travis-api.gemspec', 'w') { |f| f << content } end task default: 'travis-api.gemspec' - -## 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/lib/travis/api/app.rb b/lib/travis/api/app.rb index a0ca55b4..1e1ec814 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -92,14 +92,13 @@ module Travis::Api def initialize @app = Rack::Builder.app do - - if stackprof = ENV['STACKPROF'] - require 'stackprof' - modes = ['wall', 'cpu', 'object', 'custom'] - mode = modes.include?(stackprof) ? stackprof.to_sym : :cpu - Travis.logger.info "Setting up profiler: #{mode}" - use StackProf::Middleware, enabled: true, save_every: 1, mode: mode - end + # if stackprof = ENV['STACKPROF'] + # require 'stackprof' + # modes = ['wall', 'cpu', 'object', 'custom'] + # mode = modes.include?(stackprof) ? stackprof.to_sym : :cpu + # Travis.logger.info "Setting up profiler: #{mode}" + # use StackProf::Middleware, enabled: true, save_every: 1, mode: mode + # end extend StackInstrumentation use Travis::Api::App::Middleware::Skylight diff --git a/lib/travis/api/app/endpoint/requests.rb b/lib/travis/api/app/endpoint/requests.rb index a72506b9..cf67b9a7 100644 --- a/lib/travis/api/app/endpoint/requests.rb +++ b/lib/travis/api/app/endpoint/requests.rb @@ -22,6 +22,11 @@ class Travis::Api::App status 404 else # DEPRECATED: this will be removed by 1st of December + # + # TODO It seems this endpoint is still in use, quite a bit: + # https://metrics.librato.com/s/metrics/api.request.restart?duration=2419200&q=api.request.restart + # + # I think we need to properly deprecate this by publishing a blog post. Metriks.meter("api.request.restart").mark respond_with service(:reset_model, params) end diff --git a/spec/active_record_postgres_variables_spec.rb b/spec/active_record_postgres_variables_spec.rb index 2acab155..0fd5a702 100644 --- a/spec/active_record_postgres_variables_spec.rb +++ b/spec/active_record_postgres_variables_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe "ActiveRecordPostgresVariables" do let(:variables) {{ foo: 'bar' }} let(:database_options) { Travis.config.database.merge(variables: variables) } diff --git a/spec/integration/error_handling_spec.rb b/spec/integration/error_handling_spec.rb index 246a0eb7..4faedbc2 100644 --- a/spec/integration/error_handling_spec.rb +++ b/spec/integration/error_handling_spec.rb @@ -1,8 +1,6 @@ -require 'spec_helper' require 'sentry-raven' -describe 'Exception' do - +describe 'Exception', set_app: true do class FixRaven < Struct.new(:app) def call(env) requested_at = env['requested_at'] diff --git a/spec/integration/formats_handling_spec.rb b/spec/integration/formats_handling_spec.rb index efda70b5..f37b5bf9 100644 --- a/spec/integration/formats_handling_spec.rb +++ b/spec/integration/formats_handling_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'App' do +describe 'App', set_app: true do before do FactoryGirl.create(:test, :number => '3.1', :queue => 'builds.common') diff --git a/spec/integration/responders_spec.rb b/spec/integration/responders_spec.rb index 2dc2cb78..a73b8c48 100644 --- a/spec/integration/responders_spec.rb +++ b/spec/integration/responders_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe 'App' do before do FactoryGirl.create(:test, :number => '3.1', :queue => 'builds.common') diff --git a/spec/integration/routes.backup.rb b/spec/integration/routes.backup.rb deleted file mode 100644 index 6ca53cb2..00000000 --- a/spec/integration/routes.backup.rb +++ /dev/null @@ -1,23 +0,0 @@ - # api = lambda do - # constraints :format => 'json' do - # resources :repositories, :only => [:index, :show] do - # resources :builds, :only => [:index, :show] - # end - # resources :builds, :only => [:index, :show] - # resources :branches, :only => :index - # resources :jobs, :only => [:index, :show] - # resources :workers, :only => :index - - # get 'service_hooks', :to => 'service_hooks#index' - # put 'service_hooks/:id', :to => 'service_hooks#update', :id => /[\w-]*:[\w.-]*/ - # end - - # constraints :owner_name => /[^\/]+/, :name => /[^\/]+/ do - # get ':owner_name/:name.json', :to => 'repositories#show', :format => :json - # get ':owner_name/:name/builds.json', :to => 'builds#index', :format => :json - # get ':owner_name/:name/builds/:id.json', :to => 'builds#show', :format => :json - # get ':owner_name/:name.png', :to => 'repositories#show', :format => :png - # get ':owner_name/:name/cc.xml', :to => 'repositories#show', :format => :xml, :schema => 'cctray' - # end - # end - diff --git a/spec/integration/scopes_spec.rb b/spec/integration/scopes_spec.rb index 8ab3d9de..b827d324 100644 --- a/spec/integration/scopes_spec.rb +++ b/spec/integration/scopes_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe 'App' do before do FactoryGirl.create(:test, :number => '3.1', :queue => 'builds.common') diff --git a/spec/integration/settings_endpoint_spec.rb b/spec/integration/settings_endpoint_spec.rb index cc895029..e3a3efa1 100644 --- a/spec/integration/settings_endpoint_spec.rb +++ b/spec/integration/settings_endpoint_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::SettingsEndpoint do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/singleton_settings_endpoint_spec.rb b/spec/integration/singleton_settings_endpoint_spec.rb index dd62100a..310e0e00 100644 --- a/spec/integration/singleton_settings_endpoint_spec.rb +++ b/spec/integration/singleton_settings_endpoint_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::SettingsEndpoint do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/uptime_spec.rb b/spec/integration/uptime_spec.rb index 055e2166..9da3eadd 100644 --- a/spec/integration/uptime_spec.rb +++ b/spec/integration/uptime_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'Uptime' do +describe 'Uptime', set_app: true do after do ActiveRecord::Base.connection.unstub(:execute) end diff --git a/spec/integration/v2/branches_spec.rb b/spec/integration/v2/branches_spec.rb index 3e54ecc8..a10ce387 100644 --- a/spec/integration/v2/branches_spec.rb +++ b/spec/integration/v2/branches_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'Branches' do +describe 'Branches', set_app: true do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/v2/builds_spec.rb b/spec/integration/v2/builds_spec.rb index e3f77141..5670c46a 100644 --- a/spec/integration/v2/builds_spec.rb +++ b/spec/integration/v2/builds_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'Builds' do +describe 'Builds', set_app: true do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:build) { repo.builds.first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/v2/hooks_spec.rb b/spec/integration/v2/hooks_spec.rb index 29bfa977..403247c6 100644 --- a/spec/integration/v2/hooks_spec.rb +++ b/spec/integration/v2/hooks_spec.rb @@ -1,7 +1,6 @@ -require 'spec_helper' require 'travis/testing/payloads' -describe 'Hooks' do +describe 'Hooks', set_app: true do before(:each) do user.permissions.create repository: repo, admin: true end diff --git a/spec/integration/v2/jobs_spec.rb b/spec/integration/v2/jobs_spec.rb index 6b82a1a7..f618088e 100644 --- a/spec/integration/v2/jobs_spec.rb +++ b/spec/integration/v2/jobs_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'Jobs' do +describe 'Jobs', set_app: true do let!(:jobs) {[ FactoryGirl.create(:test, :number => '3.1', :queue => 'builds.common'), FactoryGirl.create(:test, :number => '3.2', :queue => 'builds.common') diff --git a/spec/integration/v2/repositories_spec.rb b/spec/integration/v2/repositories_spec.rb index c3bbe09f..c4be1d74 100644 --- a/spec/integration/v2/repositories_spec.rb +++ b/spec/integration/v2/repositories_spec.rb @@ -1,7 +1,6 @@ # encoding: utf-8 -require 'spec_helper' -describe 'Repos' do +describe 'Repos', set_app: true do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } @@ -31,12 +30,14 @@ describe 'Repos' do before { user.permissions.create!(:repository_id => repo.id, :admin => true, :push => true) } it 'POST /repos/:id/key' do + repo.regenerate_key! expect { response = post "/repos/#{repo.id}/key", {}, headers }.to change { repo.reload.key.private_key } end it 'POST /repos/:owner/:name/key' do + repo.regenerate_key! expect { response = post "/repos/#{repo.slug}/key", {}, headers }.to change { repo.reload.key.private_key } @@ -86,11 +87,13 @@ describe 'Repos' do end it 'GET /repos/:id/key' do + repo.regenerate_key! response = get "/repos/#{repo.id}/key", {}, headers response.should deliver_json_for(repo.key, version: 'v2') end it 'GET /repos/:slug/key' do + repo.regenerate_key! response = get "/repos/#{repo.slug}/key", {}, headers response.should deliver_json_for(repo.key, version: 'v2') end diff --git a/spec/integration/v2/requests_spec.rb b/spec/integration/v2/requests_spec.rb index d786e396..0ed0b43f 100644 --- a/spec/integration/v2/requests_spec.rb +++ b/spec/integration/v2/requests_spec.rb @@ -1,7 +1,6 @@ -require 'spec_helper' require 'json' -describe 'Requests' do +describe 'Requests', set_app: true do let(:repo) { Factory.create(:repository) } let(:request) { Factory.create(:request, repository: repo) } let(:user) { Factory.create(:user) } diff --git a/spec/integration/v2/settings/env_vars_spec.rb b/spec/integration/v2/settings/env_vars_spec.rb index c7427211..36befea4 100644 --- a/spec/integration/v2/settings/env_vars_spec.rb +++ b/spec/integration/v2/settings/env_vars_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::SettingsEndpoint do +describe Travis::Api::App::SettingsEndpoint, set_app: true do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/v2/settings/ssh_key_spec.rb b/spec/integration/v2/settings/ssh_key_spec.rb index 9f7ae8d1..a2b628bb 100644 --- a/spec/integration/v2/settings/ssh_key_spec.rb +++ b/spec/integration/v2/settings/ssh_key_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'ssh keys endpoint' do +describe 'ssh keys endpoint', set_app: true do let(:repo) { Factory(:repository) } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } diff --git a/spec/integration/v2/users_spec.rb b/spec/integration/v2/users_spec.rb index 1653227e..ee80e1dd 100644 --- a/spec/integration/v2/users_spec.rb +++ b/spec/integration/v2/users_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe 'Users' do +describe 'Users', set_app: true do let(:user) { User.first } let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json', 'HTTP_AUTHORIZATION' => "token #{token}" } } diff --git a/spec/integration/v2_spec.backup.rb b/spec/integration/v2_spec.backup.rb index 78945d87..eb66981f 100644 --- a/spec/integration/v2_spec.backup.rb +++ b/spec/integration/v2_spec.backup.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe 'v2' do let(:format) { :json } let(:params) { { :controller => controller, :action => action, :format => format } } diff --git a/spec/integration/version_spec.rb b/spec/integration/version_spec.rb index fcab65e9..717f2976 100644 --- a/spec/integration/version_spec.rb +++ b/spec/integration/version_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe 'App' do before do add_endpoint '/foo' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 66d6ae0d..b414cfea 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,57 +1,28 @@ ENV['RACK_ENV'] = ENV['RAILS_ENV'] = ENV['ENV'] = 'test' -require 'support/coverage' +require 'support/coverage' unless ENV['SKIP_COVERAGE'] require 'rspec' require 'rspec/its' require 'database_cleaner' -require 'sinatra/test_helpers' require 'logger' require 'gh' require 'multi_json' +require 'pry' +require 'stackprof' require 'travis/api/app' require 'travis/testing' require 'travis/testing/scenario' require 'travis/testing/factories' require 'travis/testing/matchers' -require 'support/matchers' require 'support/formats' - -require 'pry' - -Travis.logger = Logger.new(StringIO.new) -Travis::Api::App.setup -Travis.config.client_domain = "www.example.com" -Travis.config.endpoints.ssh_key = true - -module TestHelpers - include Sinatra::TestHelpers - - def custom_endpoints - @custom_endpoints ||= [] - end - - def add_settings_endpoint(name, options = {}) - if options[:singleton] - Travis::Api::App::SingletonSettingsEndpoint.subclass(name) - else - Travis::Api::App::SettingsEndpoint.subclass(name) - end - set_app Travis::Api::App.new - end - - def add_endpoint(prefix, &block) - endpoint = Sinatra.new(Travis::Api::App::Endpoint, &block) - endpoint.set(prefix: prefix) - set_app Travis::Api::App.new - custom_endpoints << endpoint - end - - def parsed_body - MultiJson.decode(body) - end -end +require 'support/gcs' +require 'support/matchers' +require 'support/payloads' +require 'support/private_key' +require 'support/s3' +require 'support/test_helpers' RSpec.configure do |c| c.mock_framework = :mocha @@ -59,52 +30,33 @@ RSpec.configure do |c| c.include TestHelpers c.before :suite do - DatabaseCleaner.strategy = :transaction + Travis.logger = Logger.new(StringIO.new) + Travis::Api::App.setup + Travis.config.client_domain = "www.example.com" + Travis.config.endpoints.ssh_key = true + DatabaseCleaner.clean_with :truncation + DatabaseCleaner.strategy = :transaction + Scenario.default end c.before :each do DatabaseCleaner.start - ::Redis.connect(url: Travis.config.redis.url).flushdb - Travis.config.oauth2 ||= {} + Redis.new.flushall Travis.config.oauth2.scope = "user:email,public_repo" + # set_app Travis::Api::App.new + end + + c.before :each, set_app: true do set_app Travis::Api::App.new end c.after :each do + # puts DatabaseCleaner.connections.map(&:strategy).map(&:class).map(&:name).join(', ') DatabaseCleaner.clean custom_endpoints.each do |endpoint| endpoint.superclass.direct_subclasses.delete(endpoint) end end end - -TEST_PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEA6Dm1n+fc0ILeLWeiwqsWs1MZaGAfccrmpvuxfcE9UaJp2POy -079g+mdiBgtWfnQlU84YX31rU2x9GJwnb8G6UcvkEjqczOgHHmELtaNmrRH1g8qO -fJpzXB8XiNib1L3TDs7qYMKLDCbl2bWrcO7Dol9bSqIeb7f9rzkCd4tuXObL3pMD -/VIW5uzeVqLBAc0Er+qw6U7clnMnHHMekXt4JSRfauSCxktR2FzigoQbJc8t4iWO -rmNi5Q84VkXB3X7PO/eajUw+RJOl6FnPN1Zh08ceqcqmSMM4RzeVQaczXg7P92P4 -mRF41R97jIJyzUGwheb2Z4Q2rltck4V7R5BvMwIDAQABAoIBAE4O3+MRH+MiqiXe -+RGwSqAaZab08Hzic+dbIQ0hQEhJbITVXZ3ZbXKd/5ACjZ9R0R47X2vxj3rqM55r -FsJ0/vjxrQcHlp81uvbWLgZvF1tDdyBGnOB7Vh14AgQoszCuYdxPZu8BVZXPGWG1 -tBvw1eelX91VYx+wW+BjLFYckws8kPCPY6WEnng0wQGShGqyTOJa1T4M1ethHYF+ -ddNx+fVLkEf2vL59popuJMOAyVa1jvU7D3VZ67qhlxWAvQxZeEP0vFZHeWPjvRF1 -orxiGuwLCG+Rgq1XSVJjMNf1qE3gZTlDg+u3ORKbRx2xlhiqpkHxLx7QtCmELwtD -Dqvf8ukCgYEA/SoQwyfMp4t19FLI4tV0rp3Yn7ZSAqRtMVrLVAIQoJzDXv9BaJFS -xb6enxRAjy+Rg10H8ijh8Z9Z3a4g3JViHQsWMrf9rL2/7M07vraIUIQoVo7yTeGa -MXnTuKmBZFGEAM9CzqAVao1Om10TRFNLgiLAU3ZEFi8J1DYWkhzrJp0CgYEA6tOa -V15MP3sJSlOTszshXKbwf6iXfjHbdpGUXmd9X3AMzOvl/CEGS2q46lwJISubHWKF -BOKk1thumM4Zu6dx89hLEoXhFycgUV/KJYl54ZfhY079Ri7SZUYIqDR04BRJC2d6 -mO16Y//UwqgTaZ/lS/S791iWPTjVNEgSlRbQHA8CgYALiOEeoy+V6qrDKQpyG1un -oRV/oWT3LdqzxvlAqJ9tUfcs2uB2DTkCPX8orFmMrJQqshBsniQ9SA9mJErnAf9o -Z1rpkKyENFkMRwWT2Ok5EexslTLBDahi3LQi08ZLddNX3hmjJHQVWL7eIU2BbXIh -ScgNhXPwts/x1U0N9zdXmQKBgQC4O6W2cAQQNd5XEvUpQ/XrtAmxjjq0xjbxckve -OQFy0/0m9NiuE9bVaniDXgvHm2eKCVZlO8+pw4oZlnE3+an8brCParvrJ0ZCsY1u -H8qgxEEPYdRxsKBe1jBKj0U23JNmQBw+SOqh9AAfbDA2yTzjd7HU4AqXI7SZ3QW/ -NHO33wKBgQCqxUmocyqKy5NEBPMmeHWapuSY47bdDaE139vRWV6M47oxzxF8QnQV -1TGWsshK04QO8wsfzIa9/SjZkU17QVkz7LXbq4hPmiZjhP/H+roCeoDEyHFdkq6B -bm/edpYemlJlQhEYtecwvD57NZbVuaqX4Culz9WdSsw4I56hD+QjHQ== ------END RSA PRIVATE KEY----- -" diff --git a/spec/spec_helper_core.rb b/spec/spec_helper_core.rb deleted file mode 100644 index 47aea2e9..00000000 --- a/spec/spec_helper_core.rb +++ /dev/null @@ -1,59 +0,0 @@ -ENV['RAILS_ENV'] = ENV['ENV'] = 'test' - -require 'simplecov' unless RUBY_ENGINE == 'jruby' - -RSpec.configure do |c| - c.before(:each) { Time.now.utc.tap { | now| Time.stubs(:now).returns(now) } } -end - -require 'support' - -require 'travis' - -require 'travis/model' -require 'travis/states_cache' -require 'travis/testing' - -require 'travis/support' -require 'travis/testing/matchers' - -require 'gh' -require 'mocha/api' -require 'stringio' -require 'logger' -require 'patches/rspec_hash_diff' - -Travis.logger = Logger.new(StringIO.new) -Travis.services = Travis::Services -ActionMailer::Base.delivery_method = :test - -include Mocha::API - -RSpec.configure do |c| - c.mock_with :mocha - c.alias_example_to :fit, :focused => true - c.filter_run :focus => true - c.run_all_when_everything_filtered = true - # c.backtrace_clean_patterns.clear - - c.before :each do - Travis.logger.level = Logger::INFO - Travis::Event.instance_variable_set(:@queues, nil) - Travis::Event.instance_variable_set(:@subscriptions, nil) - Travis::Event.stubs(:subscribers).returns [] - Travis.config.oauth2 ||= {} - Travis.config.oauth2.scope = 'public_repo,user' - Travis.config.repository.ssl_key.size = 1024 - Travis::Github.stubs(:scopes_for).returns(['public_repo', 'user']) - GH.reset - end -end - -# this keeps Model.inspect from exploding which happens for -# expected method calls in tests that do not use a db connection -require 'active_record' -ActiveRecord::Base.class_eval do - def self.inspect - super - end -end diff --git a/spec/support/private_key.rb b/spec/support/private_key.rb new file mode 100644 index 00000000..c0216264 --- /dev/null +++ b/spec/support/private_key.rb @@ -0,0 +1,28 @@ +TEST_PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA6Dm1n+fc0ILeLWeiwqsWs1MZaGAfccrmpvuxfcE9UaJp2POy +079g+mdiBgtWfnQlU84YX31rU2x9GJwnb8G6UcvkEjqczOgHHmELtaNmrRH1g8qO +fJpzXB8XiNib1L3TDs7qYMKLDCbl2bWrcO7Dol9bSqIeb7f9rzkCd4tuXObL3pMD +/VIW5uzeVqLBAc0Er+qw6U7clnMnHHMekXt4JSRfauSCxktR2FzigoQbJc8t4iWO +rmNi5Q84VkXB3X7PO/eajUw+RJOl6FnPN1Zh08ceqcqmSMM4RzeVQaczXg7P92P4 +mRF41R97jIJyzUGwheb2Z4Q2rltck4V7R5BvMwIDAQABAoIBAE4O3+MRH+MiqiXe ++RGwSqAaZab08Hzic+dbIQ0hQEhJbITVXZ3ZbXKd/5ACjZ9R0R47X2vxj3rqM55r +FsJ0/vjxrQcHlp81uvbWLgZvF1tDdyBGnOB7Vh14AgQoszCuYdxPZu8BVZXPGWG1 +tBvw1eelX91VYx+wW+BjLFYckws8kPCPY6WEnng0wQGShGqyTOJa1T4M1ethHYF+ +ddNx+fVLkEf2vL59popuJMOAyVa1jvU7D3VZ67qhlxWAvQxZeEP0vFZHeWPjvRF1 +orxiGuwLCG+Rgq1XSVJjMNf1qE3gZTlDg+u3ORKbRx2xlhiqpkHxLx7QtCmELwtD +Dqvf8ukCgYEA/SoQwyfMp4t19FLI4tV0rp3Yn7ZSAqRtMVrLVAIQoJzDXv9BaJFS +xb6enxRAjy+Rg10H8ijh8Z9Z3a4g3JViHQsWMrf9rL2/7M07vraIUIQoVo7yTeGa +MXnTuKmBZFGEAM9CzqAVao1Om10TRFNLgiLAU3ZEFi8J1DYWkhzrJp0CgYEA6tOa +V15MP3sJSlOTszshXKbwf6iXfjHbdpGUXmd9X3AMzOvl/CEGS2q46lwJISubHWKF +BOKk1thumM4Zu6dx89hLEoXhFycgUV/KJYl54ZfhY079Ri7SZUYIqDR04BRJC2d6 +mO16Y//UwqgTaZ/lS/S791iWPTjVNEgSlRbQHA8CgYALiOEeoy+V6qrDKQpyG1un +oRV/oWT3LdqzxvlAqJ9tUfcs2uB2DTkCPX8orFmMrJQqshBsniQ9SA9mJErnAf9o +Z1rpkKyENFkMRwWT2Ok5EexslTLBDahi3LQi08ZLddNX3hmjJHQVWL7eIU2BbXIh +ScgNhXPwts/x1U0N9zdXmQKBgQC4O6W2cAQQNd5XEvUpQ/XrtAmxjjq0xjbxckve +OQFy0/0m9NiuE9bVaniDXgvHm2eKCVZlO8+pw4oZlnE3+an8brCParvrJ0ZCsY1u +H8qgxEEPYdRxsKBe1jBKj0U23JNmQBw+SOqh9AAfbDA2yTzjd7HU4AqXI7SZ3QW/ +NHO33wKBgQCqxUmocyqKy5NEBPMmeHWapuSY47bdDaE139vRWV6M47oxzxF8QnQV +1TGWsshK04QO8wsfzIa9/SjZkU17QVkz7LXbq4hPmiZjhP/H+roCeoDEyHFdkq6B +bm/edpYemlJlQhEYtecwvD57NZbVuaqX4Culz9WdSsw4I56hD+QjHQ== +-----END RSA PRIVATE KEY----- +" diff --git a/spec/support/test_helpers.rb b/spec/support/test_helpers.rb new file mode 100644 index 00000000..7a0989f3 --- /dev/null +++ b/spec/support/test_helpers.rb @@ -0,0 +1,29 @@ +require 'sinatra/test_helpers' + +module TestHelpers + include Sinatra::TestHelpers + + def custom_endpoints + @custom_endpoints ||= [] + end + + def add_settings_endpoint(name, options = {}) + if options[:singleton] + Travis::Api::App::SingletonSettingsEndpoint.subclass(name) + else + Travis::Api::App::SettingsEndpoint.subclass(name) + end + set_app Travis::Api::App.new + end + + def add_endpoint(prefix, &block) + endpoint = Sinatra.new(Travis::Api::App::Endpoint, &block) + endpoint.set(prefix: prefix) + set_app Travis::Api::App.new + custom_endpoints << endpoint + end + + def parsed_body + MultiJson.decode(body) + end +end diff --git a/spec/unit/access_token_spec.rb b/spec/unit/access_token_spec.rb index 41017245..05a2fc9b 100644 --- a/spec/unit/access_token_spec.rb +++ b/spec/unit/access_token_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::AccessToken do it 'errors out on wrong type of :expires_in argument' do expect { diff --git a/spec/unit/app_spec.rb b/spec/unit/app_spec.rb index 1c3394c2..f59cad7b 100644 --- a/spec/unit/app_spec.rb +++ b/spec/unit/app_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App do describe :setup? do it 'indicates if #setup has been called' do diff --git a/spec/unit/cors_spec.rb b/spec/unit/cors_spec.rb index a1e5e994..eb90a7a0 100644 --- a/spec/unit/cors_spec.rb +++ b/spec/unit/cors_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Cors do before do mock_app do diff --git a/spec/unit/default_spec.rb b/spec/unit/default_spec.rb index 98e0df3b..7fc33238 100644 --- a/spec/unit/default_spec.rb +++ b/spec/unit/default_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Home do +describe Travis::Api::App::Endpoint::Home, set_app: true do describe 'GET /' do it 'replies with a json response by default' do get('/')["Content-Type"].should include("json") diff --git a/spec/unit/endpoint/accounts_spec.rb b/spec/unit/endpoint/accounts_spec.rb index dd74059e..034b7dbc 100644 --- a/spec/unit/endpoint/accounts_spec.rb +++ b/spec/unit/endpoint/accounts_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Accounts do +describe Travis::Api::App::Endpoint::Accounts, set_app: true do include Travis::Testing::Stubs let(:access_token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) } diff --git a/spec/unit/endpoint/authorization/user_manager_spec.rb b/spec/unit/endpoint/authorization/user_manager_spec.rb index 4b5b5c04..0dd28728 100644 --- a/spec/unit/endpoint/authorization/user_manager_spec.rb +++ b/spec/unit/endpoint/authorization/user_manager_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Endpoint::Authorization::UserManager do let(:manager) { described_class.new(data, 'abc123') } diff --git a/spec/unit/endpoint/authorization_spec.rb b/spec/unit/endpoint/authorization_spec.rb index 2634968c..5ca8b830 100644 --- a/spec/unit/endpoint/authorization_spec.rb +++ b/spec/unit/endpoint/authorization_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Endpoint::Authorization do include Travis::Testing::Stubs diff --git a/spec/unit/endpoint/branches_spec.rb b/spec/unit/endpoint/branches_spec.rb index 03923cfd..30b78137 100644 --- a/spec/unit/endpoint/branches_spec.rb +++ b/spec/unit/endpoint/branches_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Endpoint::Branches do it 'has to be tested' end diff --git a/spec/unit/endpoint/builds_spec.rb b/spec/unit/endpoint/builds_spec.rb index 1c7654e8..387a1fac 100644 --- a/spec/unit/endpoint/builds_spec.rb +++ b/spec/unit/endpoint/builds_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Builds do +describe Travis::Api::App::Endpoint::Builds, set_app: true do include Travis::Testing::Stubs it 'works with default options' do @@ -38,5 +36,5 @@ describe Travis::Api::App::Endpoint::Builds do end end end - + end diff --git a/spec/unit/endpoint/endpoints_spec.rb b/spec/unit/endpoint/endpoints_spec.rb index 6676ef3b..2b3b17e7 100644 --- a/spec/unit/endpoint/endpoints_spec.rb +++ b/spec/unit/endpoint/endpoints_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Endpoint::Endpoints do it 'has to be tested' end diff --git a/spec/unit/endpoint/hooks_spec.rb b/spec/unit/endpoint/hooks_spec.rb index e9c9af1e..60d6d8ef 100644 --- a/spec/unit/endpoint/hooks_spec.rb +++ b/spec/unit/endpoint/hooks_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Endpoint::Hooks do it 'has to be tested' end diff --git a/spec/unit/endpoint/jobs_spec.rb b/spec/unit/endpoint/jobs_spec.rb index ca9e143c..fd8de64e 100644 --- a/spec/unit/endpoint/jobs_spec.rb +++ b/spec/unit/endpoint/jobs_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Jobs do +describe Travis::Api::App::Endpoint::Jobs, set_app: true do let(:job) { Factory(:test) } let(:provider) { Factory(:annotation_provider) } diff --git a/spec/unit/endpoint/lint_spec.rb b/spec/unit/endpoint/lint_spec.rb index 025130de..e96861d6 100644 --- a/spec/unit/endpoint/lint_spec.rb +++ b/spec/unit/endpoint/lint_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Lint do +describe Travis::Api::App::Endpoint::Lint, set_app: true do let(:content) { "foo: bar" } let(:body) { "{\"lint\":{\"warnings\":[{\"key\":[],\"message\":\"unexpected key \\\"foo\\\", dropping\"},{\"key\":[],\"message\":\"missing key \\\"language\\\", defaulting to \\\"ruby\\\"\"}]}}" } diff --git a/spec/unit/endpoint/logs_spec.rb b/spec/unit/endpoint/logs_spec.rb index 7f13049f..216dd3b4 100644 --- a/spec/unit/endpoint/logs_spec.rb +++ b/spec/unit/endpoint/logs_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Logs do +describe Travis::Api::App::Endpoint::Logs, set_app: true do let(:job) { Factory(:test) } describe "GET /logs/:id/" do diff --git a/spec/unit/endpoint/repos_spec.rb b/spec/unit/endpoint/repos_spec.rb index 67dc5d89..61f5f9aa 100644 --- a/spec/unit/endpoint/repos_spec.rb +++ b/spec/unit/endpoint/repos_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Repos do +describe Travis::Api::App::Endpoint::Repos, set_app: true do before do described_class.get('/spec/match/:id') { "id" } described_class.get('/spec/match/:name') { "name" } diff --git a/spec/unit/endpoint/requests/throttle_spec.rb b/spec/unit/endpoint/requests/throttle_spec.rb index b0d0470a..bdd2e0d7 100644 --- a/spec/unit/endpoint/requests/throttle_spec.rb +++ b/spec/unit/endpoint/requests/throttle_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Services::ScheduleRequest::Throttle do let(:repo) { Factory(:repository) } subject { described_class.new(repo.slug) } diff --git a/spec/unit/endpoint/users_spec.rb b/spec/unit/endpoint/users_spec.rb index 7af2ac06..140c0119 100644 --- a/spec/unit/endpoint/users_spec.rb +++ b/spec/unit/endpoint/users_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint::Users do +describe Travis::Api::App::Endpoint::Users, set_app: true do include Travis::Testing::Stubs let(:access_token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) } diff --git a/spec/unit/endpoint_spec.rb b/spec/unit/endpoint_spec.rb index d5a01f6b..3878e8a6 100644 --- a/spec/unit/endpoint_spec.rb +++ b/spec/unit/endpoint_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::Api::App::Endpoint do +describe Travis::Api::App::Endpoint, set_app: true do class MyEndpoint < Travis::Api::App::Endpoint set :prefix, '/my_endpoint' get('/') { 'ok' } diff --git a/spec/unit/extensions/expose_pattern_spec.rb b/spec/unit/extensions/expose_pattern_spec.rb index 1952665d..21743abf 100644 --- a/spec/unit/extensions/expose_pattern_spec.rb +++ b/spec/unit/extensions/expose_pattern_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - class Foo < Sinatra::Base register Travis::Api::App::Extensions::ExposePattern @@ -20,4 +18,4 @@ describe Travis::Api::App::Extensions::ExposePattern do get('/foo').should be_ok headers['X-Endpoint'].should be == 'Foo' end -end \ No newline at end of file +end diff --git a/spec/unit/extensions/scoping_spec.rb b/spec/unit/extensions/scoping_spec.rb index 80e1152a..84296c1b 100644 --- a/spec/unit/extensions/scoping_spec.rb +++ b/spec/unit/extensions/scoping_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Extensions::Scoping do include Travis::Testing::Stubs diff --git a/spec/unit/extensions/smart_constants_spec.rb b/spec/unit/extensions/smart_constants_spec.rb index 5b8ada59..fade61ce 100644 --- a/spec/unit/extensions/smart_constants_spec.rb +++ b/spec/unit/extensions/smart_constants_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Extensions::SmartConstants do let(:some_app) do Sinatra.new { register Travis::Api::App::Extensions::SmartConstants } diff --git a/spec/unit/extensions/subclass_tracker_spec.rb b/spec/unit/extensions/subclass_tracker_spec.rb index 181d2d15..f4afaae4 100644 --- a/spec/unit/extensions/subclass_tracker_spec.rb +++ b/spec/unit/extensions/subclass_tracker_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Extensions::SubclassTracker do let!(:root) { Sinatra.new { register Travis::Api::App::Extensions::SubclassTracker } } let!(:left) { Class.new(root) } diff --git a/spec/unit/helpers/accept_spec.rb b/spec/unit/helpers/accept_spec.rb index 6c32ef87..6f15d6dc 100644 --- a/spec/unit/helpers/accept_spec.rb +++ b/spec/unit/helpers/accept_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - module Travis::Api::App::Helpers describe Accept do class FakeApp < Struct.new(:env) diff --git a/spec/unit/helpers/json_renderer_spec.rb b/spec/unit/helpers/json_renderer_spec.rb index bbb7b606..43d22f47 100644 --- a/spec/unit/helpers/json_renderer_spec.rb +++ b/spec/unit/helpers/json_renderer_spec.rb @@ -1,4 +1,3 @@ -require 'spec_helper' require 'json' # describe Travis::Api::App::Helpers::JsonRenderer do diff --git a/spec/unit/middleware/logging_spec.rb b/spec/unit/middleware/logging_spec.rb index a530d77b..48fdbf7a 100644 --- a/spec/unit/middleware/logging_spec.rb +++ b/spec/unit/middleware/logging_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Middleware::Logging do it 'configures ActiveRecord' do ActiveRecord::Base.logger.should == Travis.logger diff --git a/spec/unit/middleware/scope_check_spec.rb b/spec/unit/middleware/scope_check_spec.rb index f8307ee3..2677faeb 100644 --- a/spec/unit/middleware/scope_check_spec.rb +++ b/spec/unit/middleware/scope_check_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Middleware::ScopeCheck do include Travis::Testing::Stubs @@ -83,4 +81,4 @@ describe Travis::Api::App::Middleware::ScopeCheck do authorize access_token.to_s, 'x' get('/token').body.should == access_token.to_s end -end \ No newline at end of file +end diff --git a/spec/unit/middleware/user_agent_tracker_spec.rb b/spec/unit/middleware/user_agent_tracker_spec.rb index 1e5ebe00..4c9d74df 100644 --- a/spec/unit/middleware/user_agent_tracker_spec.rb +++ b/spec/unit/middleware/user_agent_tracker_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Middleware::UserAgentTracker do before do mock_app do diff --git a/spec/unit/responders/json_spec.rb b/spec/unit/responders/json_spec.rb index c6b934d1..4e421694 100644 --- a/spec/unit/responders/json_spec.rb +++ b/spec/unit/responders/json_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - module Travis::Api::App::Responders describe Json do class MyJson < Json diff --git a/spec/unit/responders/service_spec.rb b/spec/unit/responders/service_spec.rb index 5ee9412f..9de700f3 100644 --- a/spec/unit/responders/service_spec.rb +++ b/spec/unit/responders/service_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::App::Responders::Service do class MyService < Travis::Api::App::Responders::Service end diff --git a/spec/unit/serialize/v2/http/accounts_spec.rb b/spec/unit/serialize/v2/http/accounts_spec.rb index acd17699..2591ff12 100644 --- a/spec/unit/serialize/v2/http/accounts_spec.rb +++ b/spec/unit/serialize/v2/http/accounts_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Accounts do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/annotations_spec.rb b/spec/unit/serialize/v2/http/annotations_spec.rb index 995a2b94..1e3d815e 100644 --- a/spec/unit/serialize/v2/http/annotations_spec.rb +++ b/spec/unit/serialize/v2/http/annotations_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Annotations do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/branch_spec.rb b/spec/unit/serialize/v2/http/branch_spec.rb index 68c37b98..c3e2cc68 100644 --- a/spec/unit/serialize/v2/http/branch_spec.rb +++ b/spec/unit/serialize/v2/http/branch_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Branch do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/branches_spec.rb b/spec/unit/serialize/v2/http/branches_spec.rb index 0e560f64..baf66501 100644 --- a/spec/unit/serialize/v2/http/branches_spec.rb +++ b/spec/unit/serialize/v2/http/branches_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Branches do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/broadcasts_spec.rb b/spec/unit/serialize/v2/http/broadcasts_spec.rb index 85ed3fe9..9d7e93ae 100644 --- a/spec/unit/serialize/v2/http/broadcasts_spec.rb +++ b/spec/unit/serialize/v2/http/broadcasts_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Broadcasts do include Support::Formats diff --git a/spec/unit/serialize/v2/http/build_spec.rb b/spec/unit/serialize/v2/http/build_spec.rb index d9558f8b..c21be563 100644 --- a/spec/unit/serialize/v2/http/build_spec.rb +++ b/spec/unit/serialize/v2/http/build_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Build do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/builds_spec.rb b/spec/unit/serialize/v2/http/builds_spec.rb index 3a587257..9946e099 100644 --- a/spec/unit/serialize/v2/http/builds_spec.rb +++ b/spec/unit/serialize/v2/http/builds_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Builds do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/caches_spec.rb b/spec/unit/serialize/v2/http/caches_spec.rb index 0fd41c89..97d80c24 100644 --- a/spec/unit/serialize/v2/http/caches_spec.rb +++ b/spec/unit/serialize/v2/http/caches_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Caches do include Travis::Testing::Stubs, Support::Formats let(:data) { described_class.new([cache]).data } diff --git a/spec/unit/serialize/v2/http/env_var_spec.rb b/spec/unit/serialize/v2/http/env_var_spec.rb index f5510f36..8d997aba 100644 --- a/spec/unit/serialize/v2/http/env_var_spec.rb +++ b/spec/unit/serialize/v2/http/env_var_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::EnvVar do let(:env_var) { Repository::Settings::EnvVar.new(name: 'FOO', value: 'bar', public: true) } let(:data) { described_class.new(env_var) } diff --git a/spec/unit/serialize/v2/http/hooks_spec.rb b/spec/unit/serialize/v2/http/hooks_spec.rb index f084e849..bdcaac69 100644 --- a/spec/unit/serialize/v2/http/hooks_spec.rb +++ b/spec/unit/serialize/v2/http/hooks_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Hooks do include Travis::Testing::Stubs diff --git a/spec/unit/serialize/v2/http/job_spec.rb b/spec/unit/serialize/v2/http/job_spec.rb index d8c0fcf9..416cb7a4 100644 --- a/spec/unit/serialize/v2/http/job_spec.rb +++ b/spec/unit/serialize/v2/http/job_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Job do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/jobs_spec.rb b/spec/unit/serialize/v2/http/jobs_spec.rb index ef9a11d8..7b78c9f8 100644 --- a/spec/unit/serialize/v2/http/jobs_spec.rb +++ b/spec/unit/serialize/v2/http/jobs_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Jobs do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/log_spec.rb b/spec/unit/serialize/v2/http/log_spec.rb index 5ea45cf1..7c3d28f3 100644 --- a/spec/unit/serialize/v2/http/log_spec.rb +++ b/spec/unit/serialize/v2/http/log_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Log do include Travis::Testing::Stubs diff --git a/spec/unit/serialize/v2/http/permissions_spec.rb b/spec/unit/serialize/v2/http/permissions_spec.rb index 0eb7ba7f..38574e3d 100644 --- a/spec/unit/serialize/v2/http/permissions_spec.rb +++ b/spec/unit/serialize/v2/http/permissions_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Permissions do include Travis::Testing::Stubs diff --git a/spec/unit/serialize/v2/http/repositories_spec.rb b/spec/unit/serialize/v2/http/repositories_spec.rb index 35f212fb..42905dc3 100644 --- a/spec/unit/serialize/v2/http/repositories_spec.rb +++ b/spec/unit/serialize/v2/http/repositories_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Repositories do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/repository_spec.rb b/spec/unit/serialize/v2/http/repository_spec.rb index 7597daca..eaed102b 100644 --- a/spec/unit/serialize/v2/http/repository_spec.rb +++ b/spec/unit/serialize/v2/http/repository_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Repository do include Travis::Testing::Stubs include Support::Formats diff --git a/spec/unit/serialize/v2/http/request_spec.rb b/spec/unit/serialize/v2/http/request_spec.rb index 5d604dc7..5ac5987f 100644 --- a/spec/unit/serialize/v2/http/request_spec.rb +++ b/spec/unit/serialize/v2/http/request_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Request do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/requests_spec.rb b/spec/unit/serialize/v2/http/requests_spec.rb index 130eedf9..1f57d5a4 100644 --- a/spec/unit/serialize/v2/http/requests_spec.rb +++ b/spec/unit/serialize/v2/http/requests_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::Requests do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/unit/serialize/v2/http/ssl_key_spec.rb b/spec/unit/serialize/v2/http/ssl_key_spec.rb index c2c3918e..0bd6da21 100644 --- a/spec/unit/serialize/v2/http/ssl_key_spec.rb +++ b/spec/unit/serialize/v2/http/ssl_key_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::SslKey do include Travis::Testing::Stubs include Support::Formats diff --git a/spec/unit/serialize/v2/http/user_spec.rb b/spec/unit/serialize/v2/http/user_spec.rb index 8bb5d4ae..45b58fca 100644 --- a/spec/unit/serialize/v2/http/user_spec.rb +++ b/spec/unit/serialize/v2/http/user_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Api::Serialize::V2::Http::User do include Travis::Testing::Stubs, Support::Formats diff --git a/spec/v3/error_handling_spec.rb b/spec/v3/error_handling_spec.rb index b86bf917..bbca73f4 100644 --- a/spec/v3/error_handling_spec.rb +++ b/spec/v3/error_handling_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::ServiceIndex do +describe Travis::API::V3::ServiceIndex, set_app: true do let(:headers) {{ }} let(:path) { "/v3/repo/1/enable" } let(:json) { JSON.load(response.body) } diff --git a/spec/v3/extensions/belongs_to_spec.rb b/spec/v3/extensions/belongs_to_spec.rb index 8ed9d92a..047a726c 100644 --- a/spec/v3/extensions/belongs_to_spec.rb +++ b/spec/v3/extensions/belongs_to_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::API::V3::Extensions::BelongsTo do describe 'reading polymorphic relation' do subject(:repo) { Travis::API::V3::Models::Repository.first } diff --git a/spec/v3/metrics_spec.rb b/spec/v3/metrics_spec.rb index a5afe054..4acf0dd9 100644 --- a/spec/v3/metrics_spec.rb +++ b/spec/v3/metrics_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::API::V3::Metrics do class TestProcessor attr_reader :times, :marks, :queue diff --git a/spec/v3/models/cron_spec.rb b/spec/v3/models/cron_spec.rb index 0ce18c94..cbbac817 100644 --- a/spec/v3/models/cron_spec.rb +++ b/spec/v3/models/cron_spec.rb @@ -1,4 +1,3 @@ -require 'spec_helper' require 'timecop' describe Travis::API::V3::Models::Cron do diff --git a/spec/v3/queries/cron_spec.rb b/spec/v3/queries/cron_spec.rb index bb4c559a..9a995d46 100644 --- a/spec/v3/queries/cron_spec.rb +++ b/spec/v3/queries/cron_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::API::V3::Queries::Crons do let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') } let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } diff --git a/spec/v3/renderer/avatar_url_spec.rb b/spec/v3/renderer/avatar_url_spec.rb index e8c84b69..1fb1ffa9 100644 --- a/spec/v3/renderer/avatar_url_spec.rb +++ b/spec/v3/renderer/avatar_url_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::API::V3::Renderer::AvatarURL do let(:object) { Object.new } subject { Travis::API::V3::Renderer::AvatarURL.avatar_url(object) } diff --git a/spec/v3/result_spec.rb b/spec/v3/result_spec.rb index 360d686c..a5083b7d 100644 --- a/spec/v3/result_spec.rb +++ b/spec/v3/result_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::API::V3::Result do let(:access_control) { Object.new } subject(:result) { described_class.new(access_control, :example, []) } diff --git a/spec/v3/service_index_spec.rb b/spec/v3/service_index_spec.rb index 74c4ce69..68f2bab9 100644 --- a/spec/v3/service_index_spec.rb +++ b/spec/v3/service_index_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::ServiceIndex do +describe Travis::API::V3::ServiceIndex, set_app: true do let(:headers) {{ }} let(:path) { '/' } let(:json) { JSON.load(response.body) } diff --git a/spec/v3/services/accounts/for_current_user_spec.rb b/spec/v3/services/accounts/for_current_user_spec.rb index e81a4f59..d36dcd92 100644 --- a/spec/v3/services/accounts/for_current_user_spec.rb +++ b/spec/v3/services/accounts/for_current_user_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Accounts::ForCurrentUser do +describe Travis::API::V3::Services::Accounts::ForCurrentUser, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } diff --git a/spec/v3/services/branch/find_spec.rb b/spec/v3/services/branch/find_spec.rb index 702fb324..199716b9 100644 --- a/spec/v3/services/branch/find_spec.rb +++ b/spec/v3/services/branch/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Find do +describe Travis::API::V3::Services::Repository::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/branches/find_spec.rb b/spec/v3/services/branches/find_spec.rb index 3a930db5..02f0cbc7 100644 --- a/spec/v3/services/branches/find_spec.rb +++ b/spec/v3/services/branches/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Branches::Find do +describe Travis::API::V3::Services::Branches::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo.id).first } let(:build) { branch.last_build } diff --git a/spec/v3/services/broadcasts/for_current_user_spec.rb b/spec/v3/services/broadcasts/for_current_user_spec.rb index e3d6a77b..7baf85c7 100644 --- a/spec/v3/services/broadcasts/for_current_user_spec.rb +++ b/spec/v3/services/broadcasts/for_current_user_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Broadcasts::ForCurrentUser do +describe Travis::API::V3::Services::Broadcasts::ForCurrentUser, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }} diff --git a/spec/v3/services/build/cancel_spec.rb b/spec/v3/services/build/cancel_spec.rb index 00c63c54..b6304547 100644 --- a/spec/v3/services/build/cancel_spec.rb +++ b/spec/v3/services/build/cancel_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Build::Cancel do +describe Travis::API::V3::Services::Build::Cancel, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } diff --git a/spec/v3/services/build/find_spec.rb b/spec/v3/services/build/find_spec.rb index e77b4a25..7fa784a7 100644 --- a/spec/v3/services/build/find_spec.rb +++ b/spec/v3/services/build/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Build::Find do +describe Travis::API::V3::Services::Build::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/build/restart_spec.rb b/spec/v3/services/build/restart_spec.rb index 048f2307..78d6d5b6 100644 --- a/spec/v3/services/build/restart_spec.rb +++ b/spec/v3/services/build/restart_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Build::Restart do +describe Travis::API::V3::Services::Build::Restart, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } diff --git a/spec/v3/services/builds/find_spec.rb b/spec/v3/services/builds/find_spec.rb index 5042c2a7..12948ded 100644 --- a/spec/v3/services/builds/find_spec.rb +++ b/spec/v3/services/builds/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Builds::Find do +describe Travis::API::V3::Services::Builds::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/cron/create_spec.rb b/spec/v3/services/cron/create_spec.rb index 859e6a27..9cecfae2 100644 --- a/spec/v3/services/cron/create_spec.rb +++ b/spec/v3/services/cron/create_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Cron::Create do +describe Travis::API::V3::Services::Cron::Create, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo).first } let(:non_existing_branch) { Travis::API::V3::Models::Branch.create(repository: repo, name: 'cron-test', exists_on_github: false) } diff --git a/spec/v3/services/cron/delete_spec.rb b/spec/v3/services/cron/delete_spec.rb index 54a3b056..34c69cdd 100644 --- a/spec/v3/services/cron/delete_spec.rb +++ b/spec/v3/services/cron/delete_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Cron::Delete do +describe Travis::API::V3::Services::Cron::Delete, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo).first } let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') } diff --git a/spec/v3/services/cron/find_spec.rb b/spec/v3/services/cron/find_spec.rb index e75e15c0..4c6d33a0 100644 --- a/spec/v3/services/cron/find_spec.rb +++ b/spec/v3/services/cron/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Cron::Find do +describe Travis::API::V3::Services::Cron::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo).first } let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') } diff --git a/spec/v3/services/cron/for_branch_spec.rb b/spec/v3/services/cron/for_branch_spec.rb index c5509074..5ce98d1a 100644 --- a/spec/v3/services/cron/for_branch_spec.rb +++ b/spec/v3/services/cron/for_branch_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Cron::ForBranch do +describe Travis::API::V3::Services::Cron::ForBranch, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo).first } let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') } diff --git a/spec/v3/services/crons/for_repository_spec.rb b/spec/v3/services/crons/for_repository_spec.rb index f81b8e7b..ca59886d 100644 --- a/spec/v3/services/crons/for_repository_spec.rb +++ b/spec/v3/services/crons/for_repository_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Crons::ForRepository do +describe Travis::API::V3::Services::Crons::ForRepository, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:branch) { Travis::API::V3::Models::Branch.where(repository_id: repo).first } let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') } diff --git a/spec/v3/services/job/cancel_spec.rb b/spec/v3/services/job/cancel_spec.rb index b429cfa6..f55a9a7d 100644 --- a/spec/v3/services/job/cancel_spec.rb +++ b/spec/v3/services/job/cancel_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Job::Cancel do +describe Travis::API::V3::Services::Job::Cancel, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:job) { build.jobs.first} diff --git a/spec/v3/services/job/debug_sepc.rb b/spec/v3/services/job/debug_sepc.rb index 03fe80fb..dcf9eb07 100644 --- a/spec/v3/services/job/debug_sepc.rb +++ b/spec/v3/services/job/debug_sepc.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Job::Debug do +describe Travis::API::V3::Services::Job::Debug, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:owner_type) { repo.owner_type.constantize } let(:owner) { owner_type.find(repo.owner_id)} @@ -67,4 +65,4 @@ describe Travis::API::V3::Services::Job::Debug do end end end -end \ No newline at end of file +end diff --git a/spec/v3/services/job/find_spec.rb b/spec/v3/services/job/find_spec.rb index cc2e6967..7c69500d 100644 --- a/spec/v3/services/job/find_spec.rb +++ b/spec/v3/services/job/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Job::Find do +describe Travis::API::V3::Services::Job::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:owner_href) { repo.owner_type.downcase } let(:owner_type) { repo.owner_type.constantize } diff --git a/spec/v3/services/job/restart_spec.rb b/spec/v3/services/job/restart_spec.rb index fde730f6..3ea85898 100644 --- a/spec/v3/services/job/restart_spec.rb +++ b/spec/v3/services/job/restart_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Job::Restart do +describe Travis::API::V3::Services::Job::Restart, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:job) { build.jobs.first } diff --git a/spec/v3/services/jobs/find_spec.rb b/spec/v3/services/jobs/find_spec.rb index 12ffa4fa..1ee4d39b 100644 --- a/spec/v3/services/jobs/find_spec.rb +++ b/spec/v3/services/jobs/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Jobs::Find do +describe Travis::API::V3::Services::Jobs::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/lint/lint_spec.rb b/spec/v3/services/lint/lint_spec.rb index affa8f14..8de652b8 100644 --- a/spec/v3/services/lint/lint_spec.rb +++ b/spec/v3/services/lint/lint_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Lint::Lint do +describe Travis::API::V3::Services::Lint::Lint, set_app: true do let(:content) { "foo: bar" } let(:parsed_body) { JSON.load(last_response.body) } let(:headers) {{ 'CONTENT_TYPE' => 'text/yaml'}} diff --git a/spec/v3/services/organization/find_spec.rb b/spec/v3/services/organization/find_spec.rb index 216265f6..fabd2bcc 100644 --- a/spec/v3/services/organization/find_spec.rb +++ b/spec/v3/services/organization/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Organization::Find do +describe Travis::API::V3::Services::Organization::Find, set_app: true do let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org') } before { org.save! } after { org.delete } diff --git a/spec/v3/services/organizations/for_current_user_spec.rb b/spec/v3/services/organizations/for_current_user_spec.rb index 92fe0cfa..42ebff9b 100644 --- a/spec/v3/services/organizations/for_current_user_spec.rb +++ b/spec/v3/services/organizations/for_current_user_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Organizations::ForCurrentUser do +describe Travis::API::V3::Services::Organizations::ForCurrentUser, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } diff --git a/spec/v3/services/owner/find_spec.rb b/spec/v3/services/owner/find_spec.rb index 6ad095da..ddab6ccf 100644 --- a/spec/v3/services/owner/find_spec.rb +++ b/spec/v3/services/owner/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Owner::Find do +describe Travis::API::V3::Services::Owner::Find, set_app: true do describe "organization" do let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org', github_id: 1234) } before { org.save! } diff --git a/spec/v3/services/repositories/for_current_user_spec.rb b/spec/v3/services/repositories/for_current_user_spec.rb index 83ffc360..f724bbb7 100644 --- a/spec/v3/services/repositories/for_current_user_spec.rb +++ b/spec/v3/services/repositories/for_current_user_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repositories::ForCurrentUser do +describe Travis::API::V3::Services::Repositories::ForCurrentUser, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/repositories/for_owner_spec.rb b/spec/v3/services/repositories/for_owner_spec.rb index b3bb8adc..feca85ac 100644 --- a/spec/v3/services/repositories/for_owner_spec.rb +++ b/spec/v3/services/repositories/for_owner_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repositories::ForOwner do +describe Travis::API::V3::Services::Repositories::ForOwner, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/repository/disable_spec.rb b/spec/v3/services/repository/disable_spec.rb index 991c2dd8..fa63fc08 100644 --- a/spec/v3/services/repository/disable_spec.rb +++ b/spec/v3/services/repository/disable_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Disable do +describe Travis::API::V3::Services::Repository::Disable, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } before do diff --git a/spec/v3/services/repository/enable_spec.rb b/spec/v3/services/repository/enable_spec.rb index fca71c2e..e6f2dfa4 100644 --- a/spec/v3/services/repository/enable_spec.rb +++ b/spec/v3/services/repository/enable_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Enable do +describe Travis::API::V3::Services::Repository::Enable, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } before do diff --git a/spec/v3/services/repository/find_spec.rb b/spec/v3/services/repository/find_spec.rb index 1e602988..0527d5e9 100644 --- a/spec/v3/services/repository/find_spec.rb +++ b/spec/v3/services/repository/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Find do +describe Travis::API::V3::Services::Repository::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } diff --git a/spec/v3/services/repository/star_spec.rb b/spec/v3/services/repository/star_spec.rb index f682768a..17502921 100644 --- a/spec/v3/services/repository/star_spec.rb +++ b/spec/v3/services/repository/star_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Star do +describe Travis::API::V3::Services::Repository::Star, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } describe "not authenticated" do @@ -62,7 +60,7 @@ describe Travis::API::V3::Services::Repository::Star do }} end - describe "existing repository, push access" + describe "existing repository, push access" # this requires stubing a github request, which is difficult, so has been omitted for now end diff --git a/spec/v3/services/repository/unstar_spec.rb b/spec/v3/services/repository/unstar_spec.rb index 0778f4af..813c9bb8 100644 --- a/spec/v3/services/repository/unstar_spec.rb +++ b/spec/v3/services/repository/unstar_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Repository::Unstar do +describe Travis::API::V3::Services::Repository::Unstar, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } describe "not authenticated" do @@ -64,5 +62,5 @@ describe Travis::API::V3::Services::Repository::Unstar do describe "existing repository, push access" # this requires stubing a github request, which is difficult, so has been omitted for now - + end diff --git a/spec/v3/services/requests/create_spec.rb b/spec/v3/services/requests/create_spec.rb index c0dfb035..d0c2f98f 100644 --- a/spec/v3/services/requests/create_spec.rb +++ b/spec/v3/services/requests/create_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Requests::Create do +describe Travis::API::V3::Services::Requests::Create, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last[:payload]).deep_symbolize_keys } let(:sidekiq_params) { Sidekiq::Client.last['args'].last.deep_symbolize_keys } diff --git a/spec/v3/services/requests/find_spec.rb b/spec/v3/services/requests/find_spec.rb index f6a8bd7c..276324d0 100644 --- a/spec/v3/services/requests/find_spec.rb +++ b/spec/v3/services/requests/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Requests::Find do +describe Travis::API::V3::Services::Requests::Find, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:request) { repo.requests.first } diff --git a/spec/v3/services/settings_spec.rb b/spec/v3/services/settings_spec.rb index f1c93ff9..b8189275 100644 --- a/spec/v3/services/settings_spec.rb +++ b/spec/v3/services/settings_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::Settings do +describe Travis::API::V3::Services::Settings, set_app: true do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first_or_create } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:auth_headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } } @@ -45,7 +43,7 @@ describe Travis::API::V3::Services::Settings do 'build_pull_requests' => true, 'maximum_number_of_builds' => 0 ) - end + end end describe 'authenticated, existing repo, repo has some settings' do @@ -63,7 +61,7 @@ describe Travis::API::V3::Services::Settings do 'build_pull_requests' => true, 'maximum_number_of_builds' => 0 ) - end + end end end @@ -116,7 +114,7 @@ describe Travis::API::V3::Services::Settings do 'build_pull_requests' => true, 'maximum_number_of_builds' => 20 ) - end + end end end end diff --git a/spec/v3/services/user/current_spec.rb b/spec/v3/services/user/current_spec.rb index 4557ee2b..d960757a 100644 --- a/spec/v3/services/user/current_spec.rb +++ b/spec/v3/services/user/current_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::User::Current do +describe Travis::API::V3::Services::User::Current, set_app: true do let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') } let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: 1) } diff --git a/spec/v3/services/user/find_spec.rb b/spec/v3/services/user/find_spec.rb index 9155cb63..3652686f 100644 --- a/spec/v3/services/user/find_spec.rb +++ b/spec/v3/services/user/find_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::User::Find do +describe Travis::API::V3::Services::User::Find, set_app: true do let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') } let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: 1) } diff --git a/spec/v3/services/user/sync_spec.rb b/spec/v3/services/user/sync_spec.rb index 316d41f9..de29168a 100644 --- a/spec/v3/services/user/sync_spec.rb +++ b/spec/v3/services/user/sync_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe Travis::API::V3::Services::User::Sync do +describe Travis::API::V3::Services::User::Sync, set_app: true do let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') } let(:user2) { Travis::API::V3::Models::User.create(login: 'carlad', is_syncing: true) } let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } diff --git a/spec_core/core/model/build/compat_spec.rb b/spec_core/core/model/build/compat_spec.rb deleted file mode 100644 index 3e5495e2..00000000 --- a/spec_core/core/model/build/compat_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -# require 'spec_helper_core' -# -# describe Build::Compat do -# include Support::ActiveRecord -# -# let(:build) { Factory(:build, :result => nil) } -# end diff --git a/spec_core/core/model/organization_spec.rb b/spec_core/core/model/organization_spec.rb deleted file mode 100644 index 27a0f2e4..00000000 --- a/spec_core/core/model/organization_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'spec_helper_core' - -describe User do - include Support::ActiveRecord - - let(:org) { Factory.create(:org, :login => 'travis-organization') } - - describe 'educational_org' do - after do - Travis::Features.deactivate_owner(:educational_org, org) - end - - it 'returns true if organization is flagged as educational_org' do - Travis::Features.activate_owner(:educational_org, org) - org.education?.should be true - end - - it 'returns false if the organization has not been flagged as educational_org' do - org.education?.should be false - end - end -end diff --git a/spec_core/core/services/find_daily_repos_stats_spec.rb b/spec_core/core/services/find_daily_repos_stats_spec.rb deleted file mode 100644 index 63f1cbdb..00000000 --- a/spec_core/core/services/find_daily_repos_stats_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'spec_helper' -require 'travis/testing/scenario' - -describe Travis::Services::FindDailyReposStats do - include Support::ActiveRecord - - let(:service) { described_class.new(stub('user'), {}) } - - before { Scenario.default } - - it 'should include the date' do - stats = service.run - expect(stats.size).to eq(1) - stats.first['date'].should == Repository.first.created_at.to_date.to_s(:date) - end - - it 'should include the number per day' do - stats = service.run - expect(stats.size).to eq(1) - stats.first['count'].to_i.should == 2 - end -end diff --git a/spec_core/core/services/find_daily_tests_stats_spec.rb b/spec_core/core/services/find_daily_tests_stats_spec.rb deleted file mode 100644 index a9aa43c7..00000000 --- a/spec_core/core/services/find_daily_tests_stats_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'spec_helper' -require 'travis/testing/scenario' - -describe Travis::Services::FindDailyTestsStats do - include Support::ActiveRecord - - let(:service) { described_class.new(stub('user'), {}) } - - before { Scenario.default } - - it 'should return the jobs per day' do - stats = service.run - expect(stats.size).to eq(1) - stats.first['date'].should == Job.first.created_at.to_date.to_s(:date) - stats.first['count'].to_i.should == 13 - end -end diff --git a/spec_core/core/model/annotation_provider_spec.rb b/spec_core/model/annotation_provider_spec.rb similarity index 93% rename from spec_core/core/model/annotation_provider_spec.rb rename to spec_core/model/annotation_provider_spec.rb index a0244269..026c805b 100644 --- a/spec_core/core/model/annotation_provider_spec.rb +++ b/spec_core/model/annotation_provider_spec.rb @@ -1,12 +1,7 @@ -require 'spec_helper_core' - describe AnnotationProvider do - include Support::ActiveRecord - let(:provider) { Factory(:annotation_provider) } - - describe '.authenticate_provider', truncation: true do + describe '.authenticate_provider' do context 'given a valid username and key' do it 'authenticates the provider' do described_class.authenticate_provider(provider.api_username, provider.api_key).should eq(provider) diff --git a/spec_core/core/model/annotation_spec.rb b/spec_core/model/annotation_spec.rb similarity index 89% rename from spec_core/core/model/annotation_spec.rb rename to spec_core/model/annotation_spec.rb index 0ace11c9..95f0e6a9 100644 --- a/spec_core/core/model/annotation_spec.rb +++ b/spec_core/model/annotation_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Annotation do - include Support::ActiveRecord - let(:annotation) { Factory.build(:annotation) } describe 'validations' do diff --git a/spec_core/core/model/broadcast_spec.rb b/spec_core/model/broadcast_spec.rb similarity index 98% rename from spec_core/core/model/broadcast_spec.rb rename to spec_core/model/broadcast_spec.rb index a3480e05..dd0b8db0 100644 --- a/spec_core/core/model/broadcast_spec.rb +++ b/spec_core/model/broadcast_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Broadcast do - include Support::ActiveRecord - let(:org) { Factory(:org) } let(:repo) { Factory(:repository) } let(:user) { Factory(:user) } diff --git a/spec_core/core/model/build/config/dist_spec.rb b/spec_core/model/build/config/dist_spec.rb similarity index 100% rename from spec_core/core/model/build/config/dist_spec.rb rename to spec_core/model/build/config/dist_spec.rb diff --git a/spec_core/core/model/build/config/group_spec.rb b/spec_core/model/build/config/group_spec.rb similarity index 100% rename from spec_core/core/model/build/config/group_spec.rb rename to spec_core/model/build/config/group_spec.rb diff --git a/spec_core/core/model/build/config/matrix_spec.rb b/spec_core/model/build/config/matrix_spec.rb similarity index 86% rename from spec_core/core/model/build/config/matrix_spec.rb rename to spec_core/model/build/config/matrix_spec.rb index f2ced0e5..fb4bdafd 100644 --- a/spec_core/core/model/build/config/matrix_spec.rb +++ b/spec_core/model/build/config/matrix_spec.rb @@ -1,9 +1,6 @@ -require 'spec_helper_core' require 'core_ext/hash/deep_symbolize_keys' describe Build::Config::Matrix do - include Support::ActiveRecord - it 'can handle nil values in exclude matrix' do -> { Build::Config::Matrix.new(matrix: { exclude: [nil] }).expand }.should_not raise_error end diff --git a/spec_core/core/model/build/config/obfuscate_spec.rb b/spec_core/model/build/config/obfuscate_spec.rb similarity index 97% rename from spec_core/core/model/build/config/obfuscate_spec.rb rename to spec_core/model/build/config/obfuscate_spec.rb index 838de065..61fa07df 100644 --- a/spec_core/core/model/build/config/obfuscate_spec.rb +++ b/spec_core/model/build/config/obfuscate_spec.rb @@ -1,11 +1,9 @@ -require 'spec_helper_core' - describe Build::Config::Obfuscate do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let(:build) { Build.new(repository: repo) } + before { repo.regenerate_key! } + it 'normalizes env vars which are hashes to strings' do encrypted = repo.key.secure.encrypt('BAR=barbaz') build.config = { diff --git a/spec_core/core/model/build/config_spec.rb b/spec_core/model/build/config_spec.rb similarity index 98% rename from spec_core/core/model/build/config_spec.rb rename to spec_core/model/build/config_spec.rb index 708786a8..5f91ac05 100644 --- a/spec_core/core/model/build/config_spec.rb +++ b/spec_core/model/build/config_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Build::Config do - include Support::ActiveRecord - it 'keeps the given env if it is an array' do config = YAML.load %( env: diff --git a/spec_core/core/model/build/denormalize_spec.rb b/spec_core/model/build/denormalize_spec.rb similarity index 96% rename from spec_core/core/model/build/denormalize_spec.rb rename to spec_core/model/build/denormalize_spec.rb index 0077bb40..d3bb80f9 100644 --- a/spec_core/core/model/build/denormalize_spec.rb +++ b/spec_core/model/build/denormalize_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Build, 'denormalization' do - include Support::ActiveRecord - let(:build) { Factory(:build, state: :started, duration: 30) } describe 'on build:started' do diff --git a/spec_core/core/model/build/matrix_spec.rb b/spec_core/model/build/matrix_spec.rb similarity index 99% rename from spec_core/core/model/build/matrix_spec.rb rename to spec_core/model/build/matrix_spec.rb index d3a76bd2..83165cba 100644 --- a/spec_core/core/model/build/matrix_spec.rb +++ b/spec_core/model/build/matrix_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Build, 'matrix' do - include Support::ActiveRecord - describe :matrix_finished? do context 'if config[:matrix][:finish_fast] is not set' do context 'if at least one job has not finished and is not allowed to fail' do @@ -393,7 +389,7 @@ describe Build, 'matrix' do yml } - describe :expand_matrix, truncation: true do + describe :expand_matrix do it 'does not expand on :os' do build = Factory.create(:build, config: { rvm: ['1.9.3', '2.0.0'], os: ['osx', 'linux']}) build.matrix.map(&:config).should == [ @@ -529,7 +525,8 @@ describe Build, 'matrix' do it 'adds a sub-build number to the job number' do build = Factory(:build, config: multiple_tests_config) - build.matrix.map(&:number)[0..3].should == ['1.1', '1.2', '1.3', '1.4'] + numbers = build.matrix.map(&:number)[0..3].map { |num| num.split('.').last } + numbers.should == ['1', '2', '3', '4'] end describe :exclude_matrix_config do @@ -637,6 +634,7 @@ describe Build, 'matrix' do end it 'does not decrypt secure env vars' do + repository.regenerate_key! env = repository.key.secure.encrypt('FOO=bar').symbolize_keys config = { rvm: '1.8.7', gemfile: 'gemfiles/rails-2.3.x', env: env } build = Factory(:build, repository: repository, config: config) diff --git a/spec_core/core/model/build/metrics_spec.rb b/spec_core/model/build/metrics_spec.rb similarity index 87% rename from spec_core/core/model/build/metrics_spec.rb rename to spec_core/model/build/metrics_spec.rb index cc9b8769..a001a6e2 100644 --- a/spec_core/core/model/build/metrics_spec.rb +++ b/spec_core/model/build/metrics_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - class BuildMetricsMock include do attr_accessor :state, :request @@ -35,7 +33,7 @@ describe Build::Metrics do build.start(started_at: Time.now) end - it 'measures the time it takes from creating the request until starting the build' do + xit 'measures the time it takes from creating the request until starting the build' do timer.expects(:update).with(60) build.start(started_at: Time.now) end diff --git a/spec_core/core/model/build/result_message_spec.rb b/spec_core/model/build/result_message_spec.rb similarity index 99% rename from spec_core/core/model/build/result_message_spec.rb rename to spec_core/model/build/result_message_spec.rb index 68371312..4ebe5297 100644 --- a/spec_core/core/model/build/result_message_spec.rb +++ b/spec_core/model/build/result_message_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - describe Build::ResultMessage do def message(data) described_class.new(data) diff --git a/spec_core/core/model/build/states_spec.rb b/spec_core/model/build/states_spec.rb similarity index 99% rename from spec_core/core/model/build/states_spec.rb rename to spec_core/model/build/states_spec.rb index 86d0a249..e394d913 100644 --- a/spec_core/core/model/build/states_spec.rb +++ b/spec_core/model/build/states_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - class BuildMock include Build::States class << self; def name; 'Build'; end; end @@ -8,8 +6,6 @@ class BuildMock end describe Build::States do - include Support::ActiveRecord - let(:build) { BuildMock.new } describe 'events' do diff --git a/spec_core/core/model/build/update_branch_spec.rb b/spec_core/model/build/update_branch_spec.rb similarity index 93% rename from spec_core/core/model/build/update_branch_spec.rb rename to spec_core/model/build/update_branch_spec.rb index 4a5c0a8e..a34f89da 100644 --- a/spec_core/core/model/build/update_branch_spec.rb +++ b/spec_core/model/build/update_branch_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper_core' - -describe Build::UpdateBranch, truncation: true do - include Support::ActiveRecord +describe Build::UpdateBranch do + before { DatabaseCleaner.clean_with :truncation } let(:request) { Factory.create(:request, event_type: event_type) } let(:build) { Factory.build(:build, request: request, state: :started, duration: 30, branch: 'master') } diff --git a/spec_core/core/model/build_spec.rb b/spec_core/model/build_spec.rb similarity index 99% rename from spec_core/core/model/build_spec.rb rename to spec_core/model/build_spec.rb index 5e43b209..c9002034 100644 --- a/spec_core/core/model/build_spec.rb +++ b/spec_core/model/build_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper_core' - -describe Build, truncation: true do - include Support::ActiveRecord +describe Build do + before { DatabaseCleaner.clean_with :truncation } let(:repository) { Factory(:repository) } diff --git a/spec_core/core/model/commit_spec.rb b/spec_core/model/commit_spec.rb similarity index 97% rename from spec_core/core/model/commit_spec.rb rename to spec_core/model/commit_spec.rb index 0e7db7bf..54d84977 100644 --- a/spec_core/core/model/commit_spec.rb +++ b/spec_core/model/commit_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Commit do - include Support::ActiveRecord - let(:commit) { Commit.new(:commit => '12345678') } describe 'pull_request_number' do diff --git a/spec_core/core/model/encrypted_column_spec.rb b/spec_core/model/encrypted_column_spec.rb similarity index 99% rename from spec_core/core/model/encrypted_column_spec.rb rename to spec_core/model/encrypted_column_spec.rb index b8cf0006..51211727 100644 --- a/spec_core/core/model/encrypted_column_spec.rb +++ b/spec_core/model/encrypted_column_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - class Travis::Model < ActiveRecord::Base describe EncryptedColumn do def encode str diff --git a/spec_core/core/model/job/cleanup_spec.rb b/spec_core/model/job/cleanup_spec.rb similarity index 94% rename from spec_core/core/model/job/cleanup_spec.rb rename to spec_core/model/job/cleanup_spec.rb index 4115da19..70648bb5 100644 --- a/spec_core/core/model/job/cleanup_spec.rb +++ b/spec_core/model/job/cleanup_spec.rb @@ -1,8 +1,4 @@ -# require 'spec_helper_core' -# # describe Job::Cleanup do -# include Support::ActiveRecord -# # let(:job) { Factory(:test) } # # describe 'scopes' do diff --git a/spec_core/core/model/job/queue_spec.rb b/spec_core/model/job/queue_spec.rb similarity index 99% rename from spec_core/core/model/job/queue_spec.rb rename to spec_core/model/job/queue_spec.rb index 10970b36..9e3182ba 100644 --- a/spec_core/core/model/job/queue_spec.rb +++ b/spec_core/model/job/queue_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - describe 'Job::Queue' do def queue(*args) Job::Queue.new(*args) diff --git a/spec_core/core/model/job/test_spec.rb b/spec_core/model/job/test_spec.rb similarity index 98% rename from spec_core/core/model/job/test_spec.rb rename to spec_core/model/job/test_spec.rb index c2ebdadf..bd3135f4 100644 --- a/spec_core/core/model/job/test_spec.rb +++ b/spec_core/model/job/test_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Job::Test do - include Support::ActiveRecord - let(:job) { Factory(:test) } before :each do diff --git a/spec_core/core/model/job_spec.rb b/spec_core/model/job_spec.rb similarity index 92% rename from spec_core/core/model/job_spec.rb rename to spec_core/model/job_spec.rb index 2a580a22..14c02f46 100644 --- a/spec_core/core/model/job_spec.rb +++ b/spec_core/model/job_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Job do - include Support::ActiveRecord - describe '.result' do it 'returns 1 for failed builds' do job = Factory.build(:test, state: :failed) @@ -62,13 +58,16 @@ describe Job do it 'returns the duration if both started_at and finished_at are populated' do job = Job.new(started_at: 20.seconds.ago, finished_at: 10.seconds.ago) - job.duration.should == 10 + job.duration.should be_within(0.1).of(10) end end describe 'obfuscated config' do + let(:repo) { Factory(:repository) } + before { repo.regenerate_key! } + it 'handles nil env' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.config = { rvm: '1.8.7', env: nil } job.obfuscated_config.should == { @@ -78,7 +77,7 @@ describe Job do end it 'leaves regular vars untouched' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).at_least_once.returns(true) job.config = { rvm: '1.8.7', env: 'FOO=foo' } @@ -89,7 +88,7 @@ describe Job do end it 'obfuscates env vars' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).at_least_once.returns(true) config = { rvm: '1.8.7', env: [job.repository.key.secure.encrypt('BAR=barbaz'), 'FOO=foo'] @@ -103,7 +102,7 @@ describe Job do end it 'normalizes env vars which are hashes to strings' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).at_least_once.returns(true) config = { rvm: '1.8.7', @@ -119,7 +118,7 @@ describe Job do end it 'removes addons config if it is not a hash' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) config = { rvm: '1.8.7', addons: "foo", } @@ -131,7 +130,7 @@ describe Job do end it 'removes addons items which are not whitelisted' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) config = { rvm: '1.8.7', addons: { sauce_connect: true, firefox: '22.0' }, } @@ -146,7 +145,7 @@ describe Job do end it 'removes source key' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) config = { rvm: '1.8.7', source_key: '1234' } @@ -159,7 +158,7 @@ describe Job do context 'when job has secure env disabled' do let :job do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).returns(false).at_least_once job end @@ -215,8 +214,11 @@ describe Job do end describe 'decrypted config' do + let(:repo) { Factory(:repository) } + before { repo.regenerate_key! } + it 'handles nil env' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.config = { rvm: '1.8.7', env: nil, global_env: nil } job.decrypted_config.should == { @@ -227,7 +229,7 @@ describe Job do end it 'normalizes env vars which are hashes to strings' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).at_least_once.returns(true) config = { rvm: '1.8.7', @@ -246,7 +248,7 @@ describe Job do end it 'does not change original config' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).at_least_once.returns(true) config = { @@ -263,7 +265,7 @@ describe Job do end it 'leaves regular vars untouched' do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).returns(true).at_least_once job.config = { rvm: '1.8.7', env: 'FOO=foo', global_env: 'BAR=bar' } @@ -276,7 +278,7 @@ describe Job do context 'when secure env is not enabled' do let :job do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).returns(false).at_least_once job end @@ -310,7 +312,7 @@ describe Job do context 'when addons are disabled' do let :job do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:addons_enabled?).returns(false).at_least_once job end @@ -359,7 +361,7 @@ describe Job do context 'when job has secure env enabled' do let :job do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:secure_env_enabled?).returns(true).at_least_once job end @@ -395,7 +397,7 @@ describe Job do context 'when job has addons enabled' do let :job do - job = Job.new(repository: Factory(:repository)) + job = Job.new(repository: repo) job.expects(:addons_enabled?).returns(true).at_least_once job end @@ -450,7 +452,6 @@ describe Job do } } end - end end diff --git a/spec_core/model/organization_spec.rb b/spec_core/model/organization_spec.rb new file mode 100644 index 00000000..eb8c3e32 --- /dev/null +++ b/spec_core/model/organization_spec.rb @@ -0,0 +1,18 @@ +describe User do + let(:org) { Factory.create(:org, :login => 'travis-organization') } + + describe 'educational_org' do + after do + Travis::Features.deactivate_owner(:educational_org, org) + end + + it 'returns true if organization is flagged as educational_org' do + Travis::Features.activate_owner(:educational_org, org) + org.education?.should be true + end + + it 'returns false if the organization has not been flagged as educational_org' do + org.education?.should be false + end + end +end diff --git a/spec_core/core/model/permission_spec.rb b/spec_core/model/permission_spec.rb similarity index 89% rename from spec_core/core/model/permission_spec.rb rename to spec_core/model/permission_spec.rb index 2b475840..9ce72bb4 100644 --- a/spec_core/core/model/permission_spec.rb +++ b/spec_core/model/permission_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Permission do - include Support::ActiveRecord - describe 'by_roles' do before :each do Permission::ROLES.each { |role| Permission.create!(role => true) } diff --git a/spec_core/core/model/repository/settings/ssh_key_spec.rb b/spec_core/model/repository/settings/ssh_key_spec.rb similarity index 99% rename from spec_core/core/model/repository/settings/ssh_key_spec.rb rename to spec_core/model/repository/settings/ssh_key_spec.rb index d2739643..141282e3 100644 --- a/spec_core/core/model/repository/settings/ssh_key_spec.rb +++ b/spec_core/model/repository/settings/ssh_key_spec.rb @@ -1,6 +1,4 @@ # encoding: utf-8 -require 'spec_helper_core' - describe Repository::Settings::SshKey do let(:private_key) { "-----BEGIN RSA PRIVATE KEY----- diff --git a/spec_core/core/model/repository/settings_spec.rb b/spec_core/model/repository/settings_spec.rb similarity index 99% rename from spec_core/core/model/repository/settings_spec.rb rename to spec_core/model/repository/settings_spec.rb index e2b48caf..1729ab39 100644 --- a/spec_core/core/model/repository/settings_spec.rb +++ b/spec_core/model/repository/settings_spec.rb @@ -1,6 +1,4 @@ # encoding: utf-8 -require 'spec_helper_core' - describe Repository::Settings do describe 'env_vars' do it 'can be filtered to get only public vars' do diff --git a/spec_core/core/model/repository/status_image_spec.rb b/spec_core/model/repository/status_image_spec.rb similarity index 98% rename from spec_core/core/model/repository/status_image_spec.rb rename to spec_core/model/repository/status_image_spec.rb index 1c166cae..9c59fd0d 100644 --- a/spec_core/core/model/repository/status_image_spec.rb +++ b/spec_core/model/repository/status_image_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Repository::StatusImage do - include Support::ActiveRecord - let(:cache) { stub('states cache', fetch: nil, write: nil, fetch_state: nil) } let!(:request) { Factory(:request, event_type: 'push', repository: repo) } let!(:build) { Factory(:build, repository: repo, request: request, state: :passed) } diff --git a/spec_core/core/model/repository_spec.rb b/spec_core/model/repository_spec.rb similarity index 97% rename from spec_core/core/model/repository_spec.rb rename to spec_core/model/repository_spec.rb index 90d9b304..56ec3979 100644 --- a/spec_core/core/model/repository_spec.rb +++ b/spec_core/model/repository_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper_core' - -describe Repository, truncation: true do - include Support::ActiveRecord +describe Repository do + before { DatabaseCleaner.clean_with :truncation } describe '#last_completed_build' do let(:repo) { Factory(:repository, name: 'foobarbaz', builds: [build1, build2]) } @@ -23,9 +21,9 @@ describe Repository, truncation: true do end describe '#regenerate_key!' do + let(:repo) { Factory(:repository) } + before { repo.regenerate_key! } it 'regenerates key' do - repo = Factory(:repository) - expect { repo.regenerate_key! }.to change { repo.key.private_key } end end @@ -303,15 +301,11 @@ describe Repository, truncation: true do describe "keys" do let(:repo) { Factory(:repository) } + before { repo.regenerate_key! } it "should return the public key" do repo.public_key.should == repo.key.public_key end - - it "should create a new key when the repository is created" do - repo = Repository.create!(owner_name: 'travis-ci', name: 'travis-ci') - repo.key.should_not be_nil - end end describe 'branches' do diff --git a/spec_core/core/model/request/approval_spec.rb b/spec_core/model/request/approval_spec.rb similarity index 99% rename from spec_core/core/model/request/approval_spec.rb rename to spec_core/model/request/approval_spec.rb index 50d0727b..58cc2f2f 100644 --- a/spec_core/core/model/request/approval_spec.rb +++ b/spec_core/model/request/approval_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - describe Request::Approval do include Travis::Testing::Stubs diff --git a/spec_core/core/model/request/branches_spec.rb b/spec_core/model/request/branches_spec.rb similarity index 99% rename from spec_core/core/model/request/branches_spec.rb rename to spec_core/model/request/branches_spec.rb index 2d8174d4..dcb330f3 100644 --- a/spec_core/core/model/request/branches_spec.rb +++ b/spec_core/model/request/branches_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper_core' - describe Request::Branches do include Travis::Testing::Stubs diff --git a/spec_core/core/model/request/states_spec.rb b/spec_core/model/request/states_spec.rb similarity index 99% rename from spec_core/core/model/request/states_spec.rb rename to spec_core/model/request/states_spec.rb index 2b08e7b2..eb9c0177 100644 --- a/spec_core/core/model/request/states_spec.rb +++ b/spec_core/model/request/states_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Request::States do - include Support::ActiveRecord - let(:owner) { User.new(:login => 'joshk') } let(:repository) { Repository.new(:name => 'travis-ci', :owner => owner, :owner_name => 'travis-ci') } let(:commit) { Commit.new(:repository => repository, :commit => '12345', :branch => 'master', :message => 'message', :committed_at => Time.now, :compare_url => 'https://github.com/svenfuchs/minimal/compare/master...develop') } diff --git a/spec_core/core/model/request_spec.rb b/spec_core/model/request_spec.rb similarity index 98% rename from spec_core/core/model/request_spec.rb rename to spec_core/model/request_spec.rb index 434d617c..d2ee02ae 100644 --- a/spec_core/core/model/request_spec.rb +++ b/spec_core/model/request_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Request do - include Support::ActiveRecord - let(:repo) { Repository.new(owner_name: 'travis-ci', name: 'travis-ci') } let(:commit) { Commit.new(commit: '12345678') } let(:request) { Request.new(repository: repo, commit: commit) } diff --git a/spec_core/core/model/ssl_key_spec.rb b/spec_core/model/ssl_key_spec.rb similarity index 98% rename from spec_core/core/model/ssl_key_spec.rb rename to spec_core/model/ssl_key_spec.rb index a621e301..621d9206 100644 --- a/spec_core/core/model/ssl_key_spec.rb +++ b/spec_core/model/ssl_key_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe SslKey do - include Support::ActiveRecord - let(:key) { SslKey.new } before(:each) do diff --git a/spec_core/core/model/token_spec.rb b/spec_core/model/token_spec.rb similarity index 82% rename from spec_core/core/model/token_spec.rb rename to spec_core/model/token_spec.rb index 3bdd17ac..c65b23c1 100644 --- a/spec_core/core/model/token_spec.rb +++ b/spec_core/model/token_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Token do - include Support::ActiveRecord - it 'generate_token sets the token to a 20 character value' do Token.new.send(:generate_token).length.should == 20 end diff --git a/spec_core/core/model/url_spec.rb b/spec_core/model/url_spec.rb similarity index 92% rename from spec_core/core/model/url_spec.rb rename to spec_core/model/url_spec.rb index 9001ab4f..cad7ef34 100644 --- a/spec_core/core/model/url_spec.rb +++ b/spec_core/model/url_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe Url do - include Support::ActiveRecord - subject { Url.create(:url => "http://example.com") } describe ".shorten" do diff --git a/spec_core/core/model/user/oauth_spec.rb b/spec_core/model/user/oauth_spec.rb similarity index 92% rename from spec_core/core/model/user/oauth_spec.rb rename to spec_core/model/user/oauth_spec.rb index 39920520..1f22c805 100644 --- a/spec_core/core/model/user/oauth_spec.rb +++ b/spec_core/model/user/oauth_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper_core' - describe User::Oauth do - include Support::ActiveRecord - let(:user) { Factory(:user, :github_oauth_token => 'token') } let(:payload) { GITHUB_PAYLOADS[:oauth] } diff --git a/spec_core/core/model/user_spec.rb b/spec_core/model/user_spec.rb similarity index 94% rename from spec_core/core/model/user_spec.rb rename to spec_core/model/user_spec.rb index 907e39e2..22bed4c7 100644 --- a/spec_core/core/model/user_spec.rb +++ b/spec_core/model/user_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper_core' - -describe User, truncation: true do - include Support::ActiveRecord +describe User do + before { User.delete_all } let(:user) { Factory(:user, :github_oauth_token => 'token') } let(:payload) { GITHUB_PAYLOADS[:oauth] } @@ -171,22 +169,28 @@ describe User, truncation: true do before { user.save! } it "does not resolve github scopes if the token didn't change" do + user.github_scopes = ['public_repo', 'user:email'] + user.save! Travis::Github.expects(:scopes_for).never user.save! end it "it resolves github scopes if the token did change" do + ENV['ENV'] = 'production' # TODO see user.rb ... move this out of the model. Travis::Github.expects(:scopes_for).with(user).returns(['foo', 'bar']) user.github_oauth_token = 'new_token' user.save! user.github_scopes.should be == ['foo', 'bar'] + ENV['ENV'] = 'test' end it "it resolves github scopes if they haven't been resolved already" do + ENV['ENV'] = 'production' # TODO see user.rb ... move this out of the model. Travis::Github.expects(:scopes_for).with(user).returns(['foo', 'bar']) user.github_scopes = nil user.save! user.github_scopes.should be == ['foo', 'bar'] + ENV['ENV'] = 'test' end it 'returns an empty list if the token is missing' do @@ -197,6 +201,11 @@ describe User, truncation: true do end describe 'correct_scopes?' do + before do + user.github_scopes = ['public_repo', 'user:email'] + user.save! + end + it "accepts correct scopes" do user.should be_correct_scopes end diff --git a/spec_core/core/services/cancel_build_spec.rb b/spec_core/services/cancel_build_spec.rb similarity index 96% rename from spec_core/core/services/cancel_build_spec.rb rename to spec_core/services/cancel_build_spec.rb index 9a708b29..78cb940b 100644 --- a/spec_core/core/services/cancel_build_spec.rb +++ b/spec_core/services/cancel_build_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::CancelBuild do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let!(:job) { Factory(:test, repository: repo, state: :created) } let!(:passed_job) { Factory(:test, repository: repo, state: :passed) } diff --git a/spec_core/core/services/cancel_job_spec.rb b/spec_core/services/cancel_job_spec.rb similarity index 95% rename from spec_core/core/services/cancel_job_spec.rb rename to spec_core/services/cancel_job_spec.rb index abf5bb2b..75a7eb31 100644 --- a/spec_core/core/services/cancel_job_spec.rb +++ b/spec_core/services/cancel_job_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::CancelJob do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let!(:job) { Factory(:test, repository: repo, state: :created) } let(:params) { { id: job.id, source: 'tests' } } diff --git a/spec_core/core/services/find_admin_spec.rb b/spec_core/services/find_admin_spec.rb similarity index 99% rename from spec_core/core/services/find_admin_spec.rb rename to spec_core/services/find_admin_spec.rb index e4e20aa2..0d6fdd9e 100644 --- a/spec_core/core/services/find_admin_spec.rb +++ b/spec_core/services/find_admin_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Services::FindAdmin do include Travis::Testing::Stubs diff --git a/spec_core/core/services/find_annotation_spec.rb b/spec_core/services/find_annotation_spec.rb similarity index 90% rename from spec_core/core/services/find_annotation_spec.rb rename to spec_core/services/find_annotation_spec.rb index 9b9fa77c..5e0463c7 100644 --- a/spec_core/core/services/find_annotation_spec.rb +++ b/spec_core/services/find_annotation_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindAnnotations do - include Support::ActiveRecord - let(:job) { Factory(:test) } let!(:annotation) { Factory(:annotation, job: job) } let(:service) { described_class.new(params) } diff --git a/spec_core/core/services/find_branch_spec.rb b/spec_core/services/find_branch_spec.rb similarity index 94% rename from spec_core/core/services/find_branch_spec.rb rename to spec_core/services/find_branch_spec.rb index 0394e074..6714ff76 100644 --- a/spec_core/core/services/find_branch_spec.rb +++ b/spec_core/services/find_branch_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindBranch do - include Support::ActiveRecord - let(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let!(:build) { Factory(:build, :repository => repo, :state => :finished) } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_branches_spec.rb b/spec_core/services/find_branches_spec.rb similarity index 94% rename from spec_core/core/services/find_branches_spec.rb rename to spec_core/services/find_branches_spec.rb index d9ca70f2..55f4b233 100644 --- a/spec_core/core/services/find_branches_spec.rb +++ b/spec_core/services/find_branches_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindBranches do - include Support::ActiveRecord - let(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let!(:build) { Factory(:build, :repository => repo, :state => :finished) } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_build_spec.rb b/spec_core/services/find_build_spec.rb similarity index 97% rename from spec_core/core/services/find_build_spec.rb rename to spec_core/services/find_build_spec.rb index ca229e80..7c354c3d 100644 --- a/spec_core/core/services/find_build_spec.rb +++ b/spec_core/services/find_build_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindBuild do - include Support::ActiveRecord - let(:repo) { Factory(:repository, owner_name: 'travis-ci', name: 'travis-core') } let!(:build) { Factory(:build, repository: repo, state: :finished, number: 1, config: {'sudo' => false}) } let(:params) { { id: build.id } } diff --git a/spec_core/core/services/find_builds_spec.rb b/spec_core/services/find_builds_spec.rb similarity index 98% rename from spec_core/core/services/find_builds_spec.rb rename to spec_core/services/find_builds_spec.rb index 4f7e74c5..528cc5fb 100644 --- a/spec_core/core/services/find_builds_spec.rb +++ b/spec_core/services/find_builds_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper' - describe Travis::Services::FindBuilds do - include Support::ActiveRecord + before { DatabaseCleaner.clean_with :truncation } let(:repo) { Factory(:repository, owner_name: 'travis-ci', name: 'travis-core') } let!(:push) { Factory(:build, repository: repo, event_type: 'push', state: :failed, number: 1) } diff --git a/spec_core/core/services/find_caches_spec.rb b/spec_core/services/find_caches_spec.rb similarity index 96% rename from spec_core/core/services/find_caches_spec.rb rename to spec_core/services/find_caches_spec.rb index a6bc5dc0..a7c545fa 100644 --- a/spec_core/core/services/find_caches_spec.rb +++ b/spec_core/services/find_caches_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper' - describe Travis::Services::FindCaches do - include Support::ActiveRecord, Support::S3, Support::GCS + include Support::S3, Support::GCS let(:user) { User.first || Factory(:user) } let(:service) { described_class.new(user, params) } @@ -73,4 +71,4 @@ describe Travis::Services::FindCaches do its(:size) { should be == 0 } end end -end \ No newline at end of file +end diff --git a/spec_core/core/services/find_hooks_spec.rb b/spec_core/services/find_hooks_spec.rb similarity index 96% rename from spec_core/core/services/find_hooks_spec.rb rename to spec_core/services/find_hooks_spec.rb index 6415f211..d2ec0d90 100644 --- a/spec_core/core/services/find_hooks_spec.rb +++ b/spec_core/services/find_hooks_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindHooks do - include Support::ActiveRecord - let(:user) { User.first || Factory(:user) } let(:repo) { Factory(:repository) } let(:push_repo) { Factory(:repository, name: 'push-repo') } diff --git a/spec_core/core/services/find_job_spec.rb b/spec_core/services/find_job_spec.rb similarity index 96% rename from spec_core/core/services/find_job_spec.rb rename to spec_core/services/find_job_spec.rb index 85d954b5..ce2eea1b 100644 --- a/spec_core/core/services/find_job_spec.rb +++ b/spec_core/services/find_job_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindJob do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let!(:job) { Factory(:test, repository: repo, state: :created, queue: 'builds.linux', config: {'sudo' => false}) } let(:params) { { id: job.id } } diff --git a/spec_core/core/services/find_jobs_spec.rb b/spec_core/services/find_jobs_spec.rb similarity index 97% rename from spec_core/core/services/find_jobs_spec.rb rename to spec_core/services/find_jobs_spec.rb index 3b71e271..038ff166 100644 --- a/spec_core/core/services/find_jobs_spec.rb +++ b/spec_core/services/find_jobs_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindJobs do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let!(:job) { Factory(:test, :repository => repo, :state => :created, :queue => 'builds.linux') } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_log_spec.rb b/spec_core/services/find_log_spec.rb similarity index 94% rename from spec_core/core/services/find_log_spec.rb rename to spec_core/services/find_log_spec.rb index 190ff21f..d0cb13b8 100644 --- a/spec_core/core/services/find_log_spec.rb +++ b/spec_core/services/find_log_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindLog do - include Support::ActiveRecord - let!(:job) { Factory(:test) } let(:log) { job.log } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_repo_key_spec.rb b/spec_core/services/find_repo_key_spec.rb similarity index 93% rename from spec_core/core/services/find_repo_key_spec.rb rename to spec_core/services/find_repo_key_spec.rb index 70c60fa1..45ff22c7 100644 --- a/spec_core/core/services/find_repo_key_spec.rb +++ b/spec_core/services/find_repo_key_spec.rb @@ -1,11 +1,9 @@ -require 'spec_helper' - describe Travis::Services::FindRepoKey do - include Support::ActiveRecord - let!(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let(:service) { described_class.new(stub('user'), params) } + before { repo.regenerate_key! } + attr_reader :params describe 'run' do diff --git a/spec_core/core/services/find_repo_settings_spec.rb b/spec_core/services/find_repo_settings_spec.rb similarity index 94% rename from spec_core/core/services/find_repo_settings_spec.rb rename to spec_core/services/find_repo_settings_spec.rb index 17842406..d469f302 100644 --- a/spec_core/core/services/find_repo_settings_spec.rb +++ b/spec_core/services/find_repo_settings_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindRepoSettings do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let(:params) { { id: repo.id } } let(:user) { Factory(:user) } diff --git a/spec_core/core/services/find_repo_spec.rb b/spec_core/services/find_repo_spec.rb similarity index 94% rename from spec_core/core/services/find_repo_spec.rb rename to spec_core/services/find_repo_spec.rb index d13c8372..688c5981 100644 --- a/spec_core/core/services/find_repo_spec.rb +++ b/spec_core/services/find_repo_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindRepo do - include Support::ActiveRecord - let!(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_repos_spec.rb b/spec_core/services/find_repos_spec.rb similarity index 98% rename from spec_core/core/services/find_repos_spec.rb rename to spec_core/services/find_repos_spec.rb index 6033f71e..e21d87a7 100644 --- a/spec_core/core/services/find_repos_spec.rb +++ b/spec_core/services/find_repos_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper' - describe Travis::Services::FindRepos do - include Support::ActiveRecord + before { DatabaseCleaner.clean_with :truncation } let!(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core', :active => true) } let(:service) { described_class.new(stub('user'), params) } diff --git a/spec_core/core/services/find_request_spec.rb b/spec_core/services/find_request_spec.rb similarity index 92% rename from spec_core/core/services/find_request_spec.rb rename to spec_core/services/find_request_spec.rb index 559c7989..6a7f6e58 100644 --- a/spec_core/core/services/find_request_spec.rb +++ b/spec_core/services/find_request_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindRequest do - include Support::ActiveRecord - let(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let!(:request) { Factory(:request, :repository => repo) } let(:params) { { :id => request.id } } diff --git a/spec_core/core/services/find_requests_spec.rb b/spec_core/services/find_requests_spec.rb similarity index 97% rename from spec_core/core/services/find_requests_spec.rb rename to spec_core/services/find_requests_spec.rb index d680c9f1..cb05bce3 100644 --- a/spec_core/core/services/find_requests_spec.rb +++ b/spec_core/services/find_requests_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindRequests do - include Support::ActiveRecord - let(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let!(:request) { Factory(:request, :repository => repo) } let!(:newer_request) { Factory(:request, :repository => repo) } diff --git a/spec_core/core/services/find_user_accounts_spec.rb b/spec_core/services/find_user_accounts_spec.rb similarity index 96% rename from spec_core/core/services/find_user_accounts_spec.rb rename to spec_core/services/find_user_accounts_spec.rb index 44cb3fcf..23bf75d8 100644 --- a/spec_core/core/services/find_user_accounts_spec.rb +++ b/spec_core/services/find_user_accounts_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::FindUserAccounts do - include Support::ActiveRecord - let!(:sven) { Factory(:user, :login => 'sven') } let!(:travis) { Factory(:org, :login => 'travis-ci') } let!(:sinatra) { Factory(:org, :login => 'sinatra') } diff --git a/spec_core/core/services/next_build_number_spec.rb b/spec_core/services/next_build_number_spec.rb similarity index 95% rename from spec_core/core/services/next_build_number_spec.rb rename to spec_core/services/next_build_number_spec.rb index 887a958b..614b16b7 100644 --- a/spec_core/core/services/next_build_number_spec.rb +++ b/spec_core/services/next_build_number_spec.rb @@ -1,9 +1,6 @@ -require 'spec_helper' require 'travis/services/next_build_number' describe Travis::Services::NextBuildNumber do - include Support::ActiveRecord - let(:service) { described_class.new(user, params) } let!(:user) { Factory(:user) } let(:result) { service.run } diff --git a/spec_core/core/services/regenerate_repo_key_spec.rb b/spec_core/services/regenerate_repo_key_spec.rb similarity index 93% rename from spec_core/core/services/regenerate_repo_key_spec.rb rename to spec_core/services/regenerate_repo_key_spec.rb index 487839f0..0699e059 100644 --- a/spec_core/core/services/regenerate_repo_key_spec.rb +++ b/spec_core/services/regenerate_repo_key_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::RegenerateRepoKey do - include Support::ActiveRecord - let(:user) { User.first || Factory(:user) } let!(:repo) { Factory(:repository, :owner_name => 'travis-ci', :name => 'travis-core') } let(:service) { described_class.new(user, :id => repo.id) } diff --git a/spec_core/core/services/remove_log_spec.rb b/spec_core/services/remove_log_spec.rb similarity index 97% rename from spec_core/core/services/remove_log_spec.rb rename to spec_core/services/remove_log_spec.rb index 5475d0d5..121a52c0 100644 --- a/spec_core/core/services/remove_log_spec.rb +++ b/spec_core/services/remove_log_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::RemoveLog do - include Support::ActiveRecord - let(:repo) { Factory(:repository) } let(:job) { Factory(:test, repository: repo, state: :created) } let(:user) { Factory(:user) } @@ -87,8 +83,6 @@ describe Travis::Services::RemoveLog do end describe Travis::Services::RemoveLog::Instrument do - include Support::ActiveRecord - let(:service) { Travis::Services::RemoveLog.new(user, params) } let(:repo) { Factory(:repository) } let(:user) { Factory(:user) } diff --git a/spec_core/core/services/reset_model_spec.rb b/spec_core/services/reset_model_spec.rb similarity index 98% rename from spec_core/core/services/reset_model_spec.rb rename to spec_core/services/reset_model_spec.rb index c738ec49..02cb33ce 100644 --- a/spec_core/core/services/reset_model_spec.rb +++ b/spec_core/services/reset_model_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::ResetModel do - include Support::ActiveRecord - let(:user) { User.first || Factory(:user) } before :each do diff --git a/spec_core/core/services/sync_user_spec.rb b/spec_core/services/sync_user_spec.rb similarity index 97% rename from spec_core/core/services/sync_user_spec.rb rename to spec_core/services/sync_user_spec.rb index 2c8a284f..b4c5d583 100644 --- a/spec_core/core/services/sync_user_spec.rb +++ b/spec_core/services/sync_user_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Services::SyncUser do include Travis::Testing::Stubs diff --git a/spec_core/core/services/update_annotation_spec.rb b/spec_core/services/update_annotation_spec.rb similarity index 97% rename from spec_core/core/services/update_annotation_spec.rb rename to spec_core/services/update_annotation_spec.rb index fe94a23b..c535ee80 100644 --- a/spec_core/core/services/update_annotation_spec.rb +++ b/spec_core/services/update_annotation_spec.rb @@ -1,8 +1,4 @@ -require 'spec_helper' - describe Travis::Services::UpdateAnnotation do - include Support::ActiveRecord - let(:annotation_provider) { Factory(:annotation_provider) } let(:job) { Factory(:test) } let(:service) { described_class.new(params) } diff --git a/spec_core/core/services/update_hook_spec.rb b/spec_core/services/update_hook_spec.rb similarity index 98% rename from spec_core/core/services/update_hook_spec.rb rename to spec_core/services/update_hook_spec.rb index a5dac014..dd4d2fa3 100644 --- a/spec_core/core/services/update_hook_spec.rb +++ b/spec_core/services/update_hook_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Services::UpdateHook do include Travis::Testing::Stubs diff --git a/spec_core/core/services/update_job_spec.rb b/spec_core/services/update_job_spec.rb similarity index 99% rename from spec_core/core/services/update_job_spec.rb rename to spec_core/services/update_job_spec.rb index 5a49db5b..e461a683 100644 --- a/spec_core/core/services/update_job_spec.rb +++ b/spec_core/services/update_job_spec.rb @@ -1,7 +1,5 @@ -require 'spec_helper' - describe Travis::Services::UpdateJob do - include Support::ActiveRecord + before { DatabaseCleaner.clean_with :truncation } let(:service) { described_class.new(event: event, data: payload) } let(:payload) { WORKER_PAYLOADS["job:test:#{event}"].merge('id' => job.id) } diff --git a/spec_core/core/services/update_log_spec.rb b/spec_core/services/update_log_spec.rb similarity index 97% rename from spec_core/core/services/update_log_spec.rb rename to spec_core/services/update_log_spec.rb index ebc0a5cd..400be030 100644 --- a/spec_core/core/services/update_log_spec.rb +++ b/spec_core/services/update_log_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Services::UpdateLog do include Travis::Testing::Stubs diff --git a/spec_core/core/services/update_user_spec.rb b/spec_core/services/update_user_spec.rb similarity index 95% rename from spec_core/core/services/update_user_spec.rb rename to spec_core/services/update_user_spec.rb index 9b31107b..38cdfec6 100644 --- a/spec_core/core/services/update_user_spec.rb +++ b/spec_core/services/update_user_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Travis::Services::UpdateUser do include Travis::Testing::Stubs diff --git a/spec_core/core/services_spec.rb b/spec_core/services_spec.rb similarity index 98% rename from spec_core/core/services_spec.rb rename to spec_core/services_spec.rb index 55cb5124..dd159cae 100644 --- a/spec_core/core/services_spec.rb +++ b/spec_core/services_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - module Test module Services extend Travis::Services::Registry diff --git a/travis-api.gemspec b/travis-api.gemspec index 71de225b..6fce569d 100644 --- a/travis-api.gemspec +++ b/travis-api.gemspec @@ -7,817 +7,10 @@ Gem::Specification.new do |s| s.homepage = 'http://api.travis-ci.org' s.version = '0.0.1' s.require_path = 'lib' - - s.authors = [ - "Konstantin Haase", - "Piotr Sarnacki", - "carlad", - "Sven Fuchs", - "Hiro Asari", - "Mathias Meyer", - "Josh Kalderimis", - "Henrik Hodne", - "Steffen Kötte", - "Ana Rosas", - "Renée Hendricksen", - "Tyranja", - "Lennard Wolf", - "Steffen", - "Christopher Weyand", - "Jonas Chromik", - "Dan Buch", - "Joe Corcoran", - "Andre Arko", - "Erik Michaels-Ober", - "C. Scott Ananian", - "Igor Wiedler", - "Igor", - "Lisa P", - "Steve Richert", - "Brian Ford", - "Patrick Williams", - "Puneeth Chaganti", - "Lucas CHERIFI", - "Dan Rice", - "Buck Doyle", - "James Dennes", - "Bryan Goldstein", - "Thais Camilo and Konstantin Haase", - "Tim Carey-Smith", - "rainsun", - "Zachary Scott", - "Nick Schonning", - "María de Antón" - ] - - s.email = [ - "konstantin.mailinglists@googlemail.com", - "drogus@gmail.com", - "carla@travis-ci.com", - "me@svenfuchs.com", - "asari.ruby@gmail.com", - "meyer@paperplanes.de", - "josh.kalderimis@gmail.com", - "steffen.koette@gmail.com", - "carlad@users.noreply.github.com", - "me@henrikhodne.com", - "a.rosas10@gmail.com", - "renee@travis-ci.org", - "tyranja@cassiopeia.uberspace.de", - "henrik@hodne.io", - "carla@travis-ci.org", - "konstantin.haase@gmail.com", - "lennardwolf@live.de", - "steffen.koette@gmail.com", - "Jonas.Chromik@student.hpi.uni-potsdam.de", - "christopher.weyand@student.hpi.de", - "dan@travis-ci.org", - "joe@corcoran.io", - "andre@arko.net", - "svenfuchs@artweb-design.de", - "sferik@gmail.com", - "cscott@cscott.net", - "steve.richert@gmail.com", - "henrik@travis-ci.com", - "mail@lislis.de", - "igor@travis-ci.org", - "bford@engineyard.com", - "igorwwwwwwwwwwwwwwwwwwww@users.noreply.github.com", - "dan@zoombody.com", - "dev+narwen+rkh@rkh.im", - "tim@spork.in", - "dan@meatballhat.com", - "e@zzak.io", - "b@chromatin.ca", - "brysgo@gmail.com", - "MariadeAnton@users.noreply.github.com", - "rainsuner@gmail.com", - "lucas@cherifi.info", - "nschonni@gmail.com", - "patrick@bittorrent.com", - "punchagan@muse-amuse.in", - "jdennes@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", - "lib/tasks/encrypt_all_data.rake", - "lib/travis/api/app.rb", - "lib/travis/api/app/access_token.rb", - "lib/travis/api/app/base.rb", - "lib/travis/api/app/cors.rb", - "lib/travis/api/app/endpoint.rb", - "lib/travis/api/app/endpoint/accounts.rb", - "lib/travis/api/app/endpoint/authorization.rb", - "lib/travis/api/app/endpoint/branches.rb", - "lib/travis/api/app/endpoint/broadcasts.rb", - "lib/travis/api/app/endpoint/builds.rb", - "lib/travis/api/app/endpoint/documentation.rb", - "lib/travis/api/app/endpoint/endpoints.rb", - "lib/travis/api/app/endpoint/env_vars.rb", - "lib/travis/api/app/endpoint/home.rb", - "lib/travis/api/app/endpoint/hooks.rb", - "lib/travis/api/app/endpoint/jobs.rb", - "lib/travis/api/app/endpoint/lint.rb", - "lib/travis/api/app/endpoint/logs.rb", - "lib/travis/api/app/endpoint/repos.rb", - "lib/travis/api/app/endpoint/requests.rb", - "lib/travis/api/app/endpoint/setting_endpoint.rb", - "lib/travis/api/app/endpoint/singleton_settings_endpoint.rb", - "lib/travis/api/app/endpoint/uptime.rb", - "lib/travis/api/app/endpoint/users.rb", - "lib/travis/api/app/error_handling.rb", - "lib/travis/api/app/extensions.rb", - "lib/travis/api/app/extensions/expose_pattern.rb", - "lib/travis/api/app/extensions/scoping.rb", - "lib/travis/api/app/extensions/smart_constants.rb", - "lib/travis/api/app/extensions/subclass_tracker.rb", - "lib/travis/api/app/helpers.rb", - "lib/travis/api/app/helpers/accept.rb", - "lib/travis/api/app/helpers/current_user.rb", - "lib/travis/api/app/helpers/db_follower.rb", - "lib/travis/api/app/helpers/flash.rb", - "lib/travis/api/app/helpers/mime_types.rb", - "lib/travis/api/app/helpers/respond_with.rb", - "lib/travis/api/app/middleware.rb", - "lib/travis/api/app/middleware/logging.rb", - "lib/travis/api/app/middleware/metriks.rb", - "lib/travis/api/app/middleware/rewrite.rb", - "lib/travis/api/app/middleware/scope_check.rb", - "lib/travis/api/app/middleware/skylight.rb", - "lib/travis/api/app/middleware/skylight/actual.rb", - "lib/travis/api/app/middleware/skylight/dummy.rb", - "lib/travis/api/app/middleware/user_agent_tracker.rb", - "lib/travis/api/app/responders.rb", - "lib/travis/api/app/responders/atom.rb", - "lib/travis/api/app/responders/badge.rb", - "lib/travis/api/app/responders/base.rb", - "lib/travis/api/app/responders/image.rb", - "lib/travis/api/app/responders/json.rb", - "lib/travis/api/app/responders/plain.rb", - "lib/travis/api/app/responders/service.rb", - "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/enqueue/services/restart_model.rb", - "lib/travis/api/instruments.rb", - "lib/travis/api/serializer.rb", - "lib/travis/api/v2.rb", - "lib/travis/api/v2/http.rb", - "lib/travis/api/v2/http/accounts.rb", - "lib/travis/api/v2/http/annotations.rb", - "lib/travis/api/v2/http/branch.rb", - "lib/travis/api/v2/http/branches.rb", - "lib/travis/api/v2/http/broadcasts.rb", - "lib/travis/api/v2/http/build.rb", - "lib/travis/api/v2/http/builds.rb", - "lib/travis/api/v2/http/caches.rb", - "lib/travis/api/v2/http/env_var.rb", - "lib/travis/api/v2/http/env_vars.rb", - "lib/travis/api/v2/http/error.rb", - "lib/travis/api/v2/http/hooks.rb", - "lib/travis/api/v2/http/job.rb", - "lib/travis/api/v2/http/jobs.rb", - "lib/travis/api/v2/http/log.rb", - "lib/travis/api/v2/http/permissions.rb", - "lib/travis/api/v2/http/repositories.rb", - "lib/travis/api/v2/http/repository.rb", - "lib/travis/api/v2/http/request.rb", - "lib/travis/api/v2/http/requests.rb", - "lib/travis/api/v2/http/ssh_key.rb", - "lib/travis/api/v2/http/ssl_key.rb", - "lib/travis/api/v2/http/user.rb", - "lib/travis/api/v2/http/validation_error.rb", - "lib/travis/api/v3.rb", - "lib/travis/api/v3/access_control.rb", - "lib/travis/api/v3/access_control/anonymous.rb", - "lib/travis/api/v3/access_control/application.rb", - "lib/travis/api/v3/access_control/generic.rb", - "lib/travis/api/v3/access_control/legacy_token.rb", - "lib/travis/api/v3/access_control/scoped.rb", - "lib/travis/api/v3/access_control/signature.rb", - "lib/travis/api/v3/access_control/user.rb", - "lib/travis/api/v3/constant_resolver.rb", - "lib/travis/api/v3/error.rb", - "lib/travis/api/v3/extensions/belongs_to.rb", - "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", - "lib/travis/api/v3/models/branch.rb", - "lib/travis/api/v3/models/broadcast.rb", - "lib/travis/api/v3/models/build.rb", - "lib/travis/api/v3/models/commit.rb", - "lib/travis/api/v3/models/cron.rb", - "lib/travis/api/v3/models/email.rb", - "lib/travis/api/v3/models/job.rb", - "lib/travis/api/v3/models/log.rb", - "lib/travis/api/v3/models/log_part.rb", - "lib/travis/api/v3/models/membership.rb", - "lib/travis/api/v3/models/organization.rb", - "lib/travis/api/v3/models/permission.rb", - "lib/travis/api/v3/models/repository.rb", - "lib/travis/api/v3/models/request.rb", - "lib/travis/api/v3/models/settings.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/cron.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/cron.rb", - "lib/travis/api/v3/queries/crons.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", - "lib/travis/api/v3/queries/repositories.rb", - "lib/travis/api/v3/queries/repository.rb", - "lib/travis/api/v3/queries/request.rb", - "lib/travis/api/v3/queries/requests.rb", - "lib/travis/api/v3/queries/settings.rb", - "lib/travis/api/v3/queries/user.rb", - "lib/travis/api/v3/query.rb", - "lib/travis/api/v3/renderer.rb", - "lib/travis/api/v3/renderer/accepted.rb", - "lib/travis/api/v3/renderer/account.rb", - "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/cron.rb", - "lib/travis/api/v3/renderer/crons.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/settings.rb", - "lib/travis/api/v3/renderer/user.rb", - "lib/travis/api/v3/result.rb", - "lib/travis/api/v3/router.rb", - "lib/travis/api/v3/routes.rb", - "lib/travis/api/v3/routes/dsl.rb", - "lib/travis/api/v3/routes/resource.rb", - "lib/travis/api/v3/service.rb", - "lib/travis/api/v3/service_index.rb", - "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/cron/create.rb", - "lib/travis/api/v3/services/cron/delete.rb", - "lib/travis/api/v3/services/cron/find.rb", - "lib/travis/api/v3/services/cron/for_branch.rb", - "lib/travis/api/v3/services/crons/for_repository.rb", - "lib/travis/api/v3/services/crons/start.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/settings.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/settings/find.rb", - "lib/travis/api/v3/services/settings/update.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", - "lib/travis/api/workers/job_restart.rb", - "lib/travis/private_key.rb", - "lib/travis/sidekiq.rb", - "public/favicon.ico", - "public/images/result/canceled.png", - "public/images/result/canceled.svg", - "public/images/result/error.png", - "public/images/result/error.svg", - "public/images/result/failing.png", - "public/images/result/failing.svg", - "public/images/result/passing.png", - "public/images/result/passing.svg", - "public/images/result/pending.png", - "public/images/result/pending.svg", - "public/images/result/unknown.png", - "public/images/result/unknown.svg", - "script/console", - "script/repos_stats.rb", - "script/server", - "script/start_crons", - "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", - "spec/integration/routes.backup.rb", - "spec/integration/scopes_spec.rb", - "spec/integration/settings_endpoint_spec.rb", - "spec/integration/singleton_settings_endpoint_spec.rb", - "spec/integration/uptime_spec.rb", - "spec/integration/v2/branches_spec.rb", - "spec/integration/v2/builds_spec.rb", - "spec/integration/v2/hooks_spec.rb", - "spec/integration/v2/jobs_spec.rb", - "spec/integration/v2/repositories_spec.rb", - "spec/integration/v2/requests_spec.rb", - "spec/integration/v2/settings/env_vars_spec.rb", - "spec/integration/v2/settings/ssh_key_spec.rb", - "spec/integration/v2/users_spec.rb", - "spec/integration/v2_spec.backup.rb", - "spec/integration/version_spec.rb", - "spec/spec_helper.rb", - "spec/spec_helper_core.rb", - "spec/support.rb", - "spec/support/active_record.rb", - "spec/support/coverage.rb", - "spec/support/formats.rb", - "spec/support/gcs.rb", - "spec/support/matchers.rb", - "spec/support/payloads.rb", - "spec/support/s3.rb", - "spec/unit/access_token_spec.rb", - "spec/unit/api/v2/http/accounts_spec.rb", - "spec/unit/api/v2/http/annotations_spec.rb", - "spec/unit/api/v2/http/branch_spec.rb", - "spec/unit/api/v2/http/branches_spec.rb", - "spec/unit/api/v2/http/broadcasts_spec.rb", - "spec/unit/api/v2/http/build_spec.rb", - "spec/unit/api/v2/http/builds_spec.rb", - "spec/unit/api/v2/http/caches_spec.rb", - "spec/unit/api/v2/http/env_var_spec.rb", - "spec/unit/api/v2/http/hooks_spec.rb", - "spec/unit/api/v2/http/job_spec.rb", - "spec/unit/api/v2/http/jobs_spec.rb", - "spec/unit/api/v2/http/log_spec.rb", - "spec/unit/api/v2/http/permissions_spec.rb", - "spec/unit/api/v2/http/repositories_spec.rb", - "spec/unit/api/v2/http/repository_spec.rb", - "spec/unit/api/v2/http/request_spec.rb", - "spec/unit/api/v2/http/requests_spec.rb", - "spec/unit/api/v2/http/ssl_key_spec.rb", - "spec/unit/api/v2/http/user_spec.rb", - "spec/unit/app_spec.rb", - "spec/unit/cors_spec.rb", - "spec/unit/default_spec.rb", - "spec/unit/endpoint/accounts_spec.rb", - "spec/unit/endpoint/authorization/user_manager_spec.rb", - "spec/unit/endpoint/authorization_spec.rb", - "spec/unit/endpoint/branches_spec.rb", - "spec/unit/endpoint/builds_spec.rb", - "spec/unit/endpoint/endpoints_spec.rb", - "spec/unit/endpoint/hooks_spec.rb", - "spec/unit/endpoint/jobs_spec.rb", - "spec/unit/endpoint/lint_spec.rb", - "spec/unit/endpoint/logs_spec.rb", - "spec/unit/endpoint/repos_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", - "spec/unit/extensions/scoping_spec.rb", - "spec/unit/extensions/smart_constants_spec.rb", - "spec/unit/extensions/subclass_tracker_spec.rb", - "spec/unit/helpers/accept_spec.rb", - "spec/unit/helpers/json_renderer_spec.rb", - "spec/unit/middleware/logging_spec.rb", - "spec/unit/middleware/scope_check_spec.rb", - "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/models/cron_spec.rb", - "spec/v3/queries/cron_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/cron/create_spec.rb", - "spec/v3/services/cron/delete_spec.rb", - "spec/v3/services/cron/find_spec.rb", - "spec/v3/services/cron/for_branch_spec.rb", - "spec/v3/services/crons/for_repository_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/requests/find_spec.rb", - "spec/v3/services/settings_spec.rb", - "spec/v3/services/user/current_spec.rb", - "spec/v3/services/user/find_spec.rb", - "spec/v3/services/user/sync_spec.rb", - "spec_core/core/model/annotation_provider_spec.rb", - "spec_core/core/model/annotation_spec.rb", - "spec_core/core/model/broadcast_spec.rb", - "spec_core/core/model/build/compat_spec.rb", - "spec_core/core/model/build/config/dist_spec.rb", - "spec_core/core/model/build/config/group_spec.rb", - "spec_core/core/model/build/config/matrix_spec.rb", - "spec_core/core/model/build/config/obfuscate_spec.rb", - "spec_core/core/model/build/config_spec.rb", - "spec_core/core/model/build/denormalize_spec.rb", - "spec_core/core/model/build/matrix_spec.rb", - "spec_core/core/model/build/metrics_spec.rb", - "spec_core/core/model/build/result_message_spec.rb", - "spec_core/core/model/build/states_spec.rb", - "spec_core/core/model/build/update_branch_spec.rb", - "spec_core/core/model/build_spec.rb", - "spec_core/core/model/commit_spec.rb", - "spec_core/core/model/encrypted_column_spec.rb", - "spec_core/core/model/job/cleanup_spec.rb", - "spec_core/core/model/job/queue_spec.rb", - "spec_core/core/model/job/test_spec.rb", - "spec_core/core/model/job_spec.rb", - "spec_core/core/model/organization_spec.rb", - "spec_core/core/model/permission_spec.rb", - "spec_core/core/model/repository/settings/ssh_key_spec.rb", - "spec_core/core/model/repository/settings_spec.rb", - "spec_core/core/model/repository/status_image_spec.rb", - "spec_core/core/model/repository_spec.rb", - "spec_core/core/model/request/approval_spec.rb", - "spec_core/core/model/request/branches_spec.rb", - "spec_core/core/model/request/states_spec.rb", - "spec_core/core/model/request_spec.rb", - "spec_core/core/model/ssl_key_spec.rb", - "spec_core/core/model/token_spec.rb", - "spec_core/core/model/url_spec.rb", - "spec_core/core/model/user/oauth_spec.rb", - "spec_core/core/model/user_spec.rb", - "spec_core/core/services/cancel_build_spec.rb", - "spec_core/core/services/cancel_job_spec.rb", - "spec_core/core/services/find_admin_spec.rb", - "spec_core/core/services/find_annotation_spec.rb", - "spec_core/core/services/find_branch_spec.rb", - "spec_core/core/services/find_branches_spec.rb", - "spec_core/core/services/find_build_spec.rb", - "spec_core/core/services/find_builds_spec.rb", - "spec_core/core/services/find_caches_spec.rb", - "spec_core/core/services/find_daily_repos_stats_spec.rb", - "spec_core/core/services/find_daily_tests_stats_spec.rb", - "spec_core/core/services/find_hooks_spec.rb", - "spec_core/core/services/find_job_spec.rb", - "spec_core/core/services/find_jobs_spec.rb", - "spec_core/core/services/find_log_spec.rb", - "spec_core/core/services/find_repo_key_spec.rb", - "spec_core/core/services/find_repo_settings_spec.rb", - "spec_core/core/services/find_repo_spec.rb", - "spec_core/core/services/find_repos_spec.rb", - "spec_core/core/services/find_request_spec.rb", - "spec_core/core/services/find_requests_spec.rb", - "spec_core/core/services/find_user_accounts_spec.rb", - "spec_core/core/services/next_build_number_spec.rb", - "spec_core/core/services/regenerate_repo_key_spec.rb", - "spec_core/core/services/remove_log_spec.rb", - "spec_core/core/services/reset_model_spec.rb", - "spec_core/core/services/sync_user_spec.rb", - "spec_core/core/services/update_annotation_spec.rb", - "spec_core/core/services/update_hook_spec.rb", - "spec_core/core/services/update_job_spec.rb", - "spec_core/core/services/update_log_spec.rb", - "spec_core/core/services/update_user_spec.rb", - "spec_core/core/services_spec.rb", - "tmp/.gitkeep", - "travis-api.gemspec", - "vendor/travis-core/lib/travis.rb", - "vendor/travis-core/lib/travis/addons.rb", - "vendor/travis-core/lib/travis/addons/README.markdown", - "vendor/travis-core/lib/travis/addons/archive.rb", - "vendor/travis-core/lib/travis/addons/archive/event_handler.rb", - "vendor/travis-core/lib/travis/addons/archive/task.rb", - "vendor/travis-core/lib/travis/addons/campfire.rb", - "vendor/travis-core/lib/travis/addons/campfire/event_handler.rb", - "vendor/travis-core/lib/travis/addons/campfire/instruments.rb", - "vendor/travis-core/lib/travis/addons/email.rb", - "vendor/travis-core/lib/travis/addons/email/event_handler.rb", - "vendor/travis-core/lib/travis/addons/email/instruments.rb", - "vendor/travis-core/lib/travis/addons/flowdock.rb", - "vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb", - "vendor/travis-core/lib/travis/addons/flowdock/instruments.rb", - "vendor/travis-core/lib/travis/addons/github_status.rb", - "vendor/travis-core/lib/travis/addons/github_status/event_handler.rb", - "vendor/travis-core/lib/travis/addons/github_status/instruments.rb", - "vendor/travis-core/lib/travis/addons/hipchat.rb", - "vendor/travis-core/lib/travis/addons/hipchat/event_handler.rb", - "vendor/travis-core/lib/travis/addons/hipchat/instruments.rb", - "vendor/travis-core/lib/travis/addons/irc.rb", - "vendor/travis-core/lib/travis/addons/irc/event_handler.rb", - "vendor/travis-core/lib/travis/addons/irc/instruments.rb", - "vendor/travis-core/lib/travis/addons/pusher.rb", - "vendor/travis-core/lib/travis/addons/pusher/event_handler.rb", - "vendor/travis-core/lib/travis/addons/pusher/instruments.rb", - "vendor/travis-core/lib/travis/addons/pushover.rb", - "vendor/travis-core/lib/travis/addons/pushover/event_handler.rb", - "vendor/travis-core/lib/travis/addons/pushover/instruments.rb", - "vendor/travis-core/lib/travis/addons/slack.rb", - "vendor/travis-core/lib/travis/addons/slack/event_handler.rb", - "vendor/travis-core/lib/travis/addons/slack/instruments.rb", - "vendor/travis-core/lib/travis/addons/sqwiggle.rb", - "vendor/travis-core/lib/travis/addons/sqwiggle/event_handler.rb", - "vendor/travis-core/lib/travis/addons/sqwiggle/instruments.rb", - "vendor/travis-core/lib/travis/addons/states_cache.rb", - "vendor/travis-core/lib/travis/addons/states_cache/event_handler.rb", - "vendor/travis-core/lib/travis/addons/util.rb", - "vendor/travis-core/lib/travis/addons/webhook.rb", - "vendor/travis-core/lib/travis/addons/webhook/event_handler.rb", - "vendor/travis-core/lib/travis/addons/webhook/instruments.rb", - "vendor/travis-core/lib/travis/api.rb", - "vendor/travis-core/lib/travis/api/README.markdown", - "vendor/travis-core/lib/travis/api/formats.rb", - "vendor/travis-core/lib/travis/api/v0.rb", - "vendor/travis-core/lib/travis/api/v0/event.rb", - "vendor/travis-core/lib/travis/api/v0/event/build.rb", - "vendor/travis-core/lib/travis/api/v0/event/job.rb", - "vendor/travis-core/lib/travis/api/v0/notification.rb", - "vendor/travis-core/lib/travis/api/v0/notification/build.rb", - "vendor/travis-core/lib/travis/api/v0/notification/repository.rb", - "vendor/travis-core/lib/travis/api/v0/notification/user.rb", - "vendor/travis-core/lib/travis/api/v0/pusher.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/annotation.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/annotation/created.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/annotation/updated.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/canceled.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/created.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/finished.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/received.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/received/job.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/started.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/build/started/job.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/canceled.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/created.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/finished.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/log.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/received.rb", - "vendor/travis-core/lib/travis/api/v0/pusher/job/started.rb", - "vendor/travis-core/lib/travis/api/v0/worker.rb", - "vendor/travis-core/lib/travis/api/v0/worker/job.rb", - "vendor/travis-core/lib/travis/api/v0/worker/job/test.rb", - "vendor/travis-core/lib/travis/api/v1.rb", - "vendor/travis-core/lib/travis/api/v1/archive.rb", - "vendor/travis-core/lib/travis/api/v1/archive/build.rb", - "vendor/travis-core/lib/travis/api/v1/archive/build/job.rb", - "vendor/travis-core/lib/travis/api/v1/helpers.rb", - "vendor/travis-core/lib/travis/api/v1/helpers/legacy.rb", - "vendor/travis-core/lib/travis/api/v1/http.rb", - "vendor/travis-core/lib/travis/api/v1/http/branches.rb", - "vendor/travis-core/lib/travis/api/v1/http/build.rb", - "vendor/travis-core/lib/travis/api/v1/http/build/job.rb", - "vendor/travis-core/lib/travis/api/v1/http/builds.rb", - "vendor/travis-core/lib/travis/api/v1/http/hooks.rb", - "vendor/travis-core/lib/travis/api/v1/http/job.rb", - "vendor/travis-core/lib/travis/api/v1/http/jobs.rb", - "vendor/travis-core/lib/travis/api/v1/http/repositories.rb", - "vendor/travis-core/lib/travis/api/v1/http/repository.rb", - "vendor/travis-core/lib/travis/api/v1/http/user.rb", - "vendor/travis-core/lib/travis/api/v1/webhook.rb", - "vendor/travis-core/lib/travis/api/v1/webhook/build.rb", - "vendor/travis-core/lib/travis/api/v1/webhook/build/finished.rb", - "vendor/travis-core/lib/travis/api/v1/webhook/build/finished/job.rb", - "vendor/travis-core/lib/travis/api/v2.rb", - "vendor/travis-core/lib/travis/commit_command.rb", - "vendor/travis-core/lib/travis/config/database.rb", - "vendor/travis-core/lib/travis/config/defaults.rb", - "vendor/travis-core/lib/travis/config/url.rb", - "vendor/travis-core/lib/travis/errors.rb", - "vendor/travis-core/lib/travis/event.rb", - "vendor/travis-core/lib/travis/event/config.rb", - "vendor/travis-core/lib/travis/event/handler.rb", - "vendor/travis-core/lib/travis/event/handler/metrics.rb", - "vendor/travis-core/lib/travis/event/handler/trail.rb", - "vendor/travis-core/lib/travis/event/subscription.rb", - "vendor/travis-core/lib/travis/features.rb", - "vendor/travis-core/lib/travis/github.rb", - "vendor/travis-core/lib/travis/github/education.rb", - "vendor/travis-core/lib/travis/github/services.rb", - "vendor/travis-core/lib/travis/github/services/find_or_create_org.rb", - "vendor/travis-core/lib/travis/github/services/find_or_create_repo.rb", - "vendor/travis-core/lib/travis/github/services/find_or_create_user.rb", - "vendor/travis-core/lib/travis/github/services/set_hook.rb", - "vendor/travis-core/lib/travis/github/services/sync_user.rb", - "vendor/travis-core/lib/travis/github/services/sync_user/organizations.rb", - "vendor/travis-core/lib/travis/github/services/sync_user/repositories.rb", - "vendor/travis-core/lib/travis/github/services/sync_user/repository.rb", - "vendor/travis-core/lib/travis/github/services/sync_user/reset_token.rb", - "vendor/travis-core/lib/travis/github/services/sync_user/user_info.rb", - "vendor/travis-core/lib/travis/mailer.rb", - "vendor/travis-core/lib/travis/mailer/user_mailer.rb", - "vendor/travis-core/lib/travis/mailer/views/layouts/contact_email.html.erb", - "vendor/travis-core/lib/travis/mailer/views/user_mailer/welcome_email.html.erb", - "vendor/travis-core/lib/travis/model.rb", - "vendor/travis-core/lib/travis/model/account.rb", - "vendor/travis-core/lib/travis/model/annotation.rb", - "vendor/travis-core/lib/travis/model/annotation_provider.rb", - "vendor/travis-core/lib/travis/model/branch.rb", - "vendor/travis-core/lib/travis/model/broadcast.rb", - "vendor/travis-core/lib/travis/model/build.rb", - "vendor/travis-core/lib/travis/model/build/config.rb", - "vendor/travis-core/lib/travis/model/build/config/dist.rb", - "vendor/travis-core/lib/travis/model/build/config/env.rb", - "vendor/travis-core/lib/travis/model/build/config/features.rb", - "vendor/travis-core/lib/travis/model/build/config/group.rb", - "vendor/travis-core/lib/travis/model/build/config/language.rb", - "vendor/travis-core/lib/travis/model/build/config/matrix.rb", - "vendor/travis-core/lib/travis/model/build/config/obfuscate.rb", - "vendor/travis-core/lib/travis/model/build/config/os.rb", - "vendor/travis-core/lib/travis/model/build/config/yaml.rb", - "vendor/travis-core/lib/travis/model/build/denormalize.rb", - "vendor/travis-core/lib/travis/model/build/matrix.rb", - "vendor/travis-core/lib/travis/model/build/metrics.rb", - "vendor/travis-core/lib/travis/model/build/result_message.rb", - "vendor/travis-core/lib/travis/model/build/states.rb", - "vendor/travis-core/lib/travis/model/build/update_branch.rb", - "vendor/travis-core/lib/travis/model/commit.rb", - "vendor/travis-core/lib/travis/model/email.rb", - "vendor/travis-core/lib/travis/model/encrypted_column.rb", - "vendor/travis-core/lib/travis/model/env_helpers.rb", - "vendor/travis-core/lib/travis/model/job.rb", - "vendor/travis-core/lib/travis/model/job/cleanup.rb", - "vendor/travis-core/lib/travis/model/job/queue.rb", - "vendor/travis-core/lib/travis/model/job/test.rb", - "vendor/travis-core/lib/travis/model/log.rb", - "vendor/travis-core/lib/travis/model/log/part.rb", - "vendor/travis-core/lib/travis/model/logs_model.rb", - "vendor/travis-core/lib/travis/model/membership.rb", - "vendor/travis-core/lib/travis/model/organization.rb", - "vendor/travis-core/lib/travis/model/permission.rb", - "vendor/travis-core/lib/travis/model/repository.rb", - "vendor/travis-core/lib/travis/model/repository/settings.rb", - "vendor/travis-core/lib/travis/model/repository/status_image.rb", - "vendor/travis-core/lib/travis/model/request.rb", - "vendor/travis-core/lib/travis/model/request/approval.rb", - "vendor/travis-core/lib/travis/model/request/branches.rb", - "vendor/travis-core/lib/travis/model/request/pull_request.rb", - "vendor/travis-core/lib/travis/model/request/states.rb", - "vendor/travis-core/lib/travis/model/ssl_key.rb", - "vendor/travis-core/lib/travis/model/token.rb", - "vendor/travis-core/lib/travis/model/url.rb", - "vendor/travis-core/lib/travis/model/user.rb", - "vendor/travis-core/lib/travis/model/user/oauth.rb", - "vendor/travis-core/lib/travis/model/user/renaming.rb", - "vendor/travis-core/lib/travis/notification.rb", - "vendor/travis-core/lib/travis/notification/instrument.rb", - "vendor/travis-core/lib/travis/notification/instrument/event_handler.rb", - "vendor/travis-core/lib/travis/notification/instrument/task.rb", - "vendor/travis-core/lib/travis/notification/publisher.rb", - "vendor/travis-core/lib/travis/notification/publisher/log.rb", - "vendor/travis-core/lib/travis/notification/publisher/memory.rb", - "vendor/travis-core/lib/travis/notification/publisher/redis.rb", - "vendor/travis-core/lib/travis/overwritable_method_definitions.rb", - "vendor/travis-core/lib/travis/redis_pool.rb", - "vendor/travis-core/lib/travis/secure_config.rb", - "vendor/travis-core/lib/travis/services.rb", - "vendor/travis-core/lib/travis/services/base.rb", - "vendor/travis-core/lib/travis/services/cancel_build.rb", - "vendor/travis-core/lib/travis/services/cancel_job.rb", - "vendor/travis-core/lib/travis/services/delete_caches.rb", - "vendor/travis-core/lib/travis/services/find_admin.rb", - "vendor/travis-core/lib/travis/services/find_annotations.rb", - "vendor/travis-core/lib/travis/services/find_branch.rb", - "vendor/travis-core/lib/travis/services/find_branches.rb", - "vendor/travis-core/lib/travis/services/find_build.rb", - "vendor/travis-core/lib/travis/services/find_builds.rb", - "vendor/travis-core/lib/travis/services/find_caches.rb", - "vendor/travis-core/lib/travis/services/find_daily_repos_stats.rb", - "vendor/travis-core/lib/travis/services/find_daily_tests_stats.rb", - "vendor/travis-core/lib/travis/services/find_hooks.rb", - "vendor/travis-core/lib/travis/services/find_job.rb", - "vendor/travis-core/lib/travis/services/find_jobs.rb", - "vendor/travis-core/lib/travis/services/find_log.rb", - "vendor/travis-core/lib/travis/services/find_repo.rb", - "vendor/travis-core/lib/travis/services/find_repo_key.rb", - "vendor/travis-core/lib/travis/services/find_repo_settings.rb", - "vendor/travis-core/lib/travis/services/find_repos.rb", - "vendor/travis-core/lib/travis/services/find_request.rb", - "vendor/travis-core/lib/travis/services/find_requests.rb", - "vendor/travis-core/lib/travis/services/find_user_accounts.rb", - "vendor/travis-core/lib/travis/services/find_user_broadcasts.rb", - "vendor/travis-core/lib/travis/services/find_user_permissions.rb", - "vendor/travis-core/lib/travis/services/helpers.rb", - "vendor/travis-core/lib/travis/services/next_build_number.rb", - "vendor/travis-core/lib/travis/services/regenerate_repo_key.rb", - "vendor/travis-core/lib/travis/services/registry.rb", - "vendor/travis-core/lib/travis/services/remove_log.rb", - "vendor/travis-core/lib/travis/services/reset_model.rb", - "vendor/travis-core/lib/travis/services/sync_user.rb", - "vendor/travis-core/lib/travis/services/update_annotation.rb", - "vendor/travis-core/lib/travis/services/update_hook.rb", - "vendor/travis-core/lib/travis/services/update_job.rb", - "vendor/travis-core/lib/travis/services/update_log.rb", - "vendor/travis-core/lib/travis/services/update_user.rb", - "vendor/travis-core/lib/travis/settings.rb", - "vendor/travis-core/lib/travis/settings/collection.rb", - "vendor/travis-core/lib/travis/settings/encrypted_value.rb", - "vendor/travis-core/lib/travis/settings/model.rb", - "vendor/travis-core/lib/travis/settings/model_extensions.rb", - "vendor/travis-core/lib/travis/states_cache.rb", - "vendor/travis-core/lib/travis/task.rb", - "vendor/travis-core/lib/travis/testing.rb", - "vendor/travis-core/lib/travis/testing/factories.rb", - "vendor/travis-core/lib/travis/testing/matchers.rb", - "vendor/travis-core/lib/travis/testing/payloads.rb", - "vendor/travis-core/lib/travis/testing/scenario.rb", - "vendor/travis-core/lib/travis/testing/stubs.rb", - "vendor/travis-core/lib/travis/testing/stubs/stub.rb", - "vendor/travis-core/lib/travis_core/version.rb", - "vendor/travis-core/travis-core.gemspec" - ] + s.authors = ['Travis CI and others'] + s.email = ['contact@travis-ci.org'] s.add_dependency 'travis-support' - s.add_dependency 'pg' s.add_dependency 'composite_primary_keys', '~> 5.0' s.add_dependency 'sinatra', '~> 1.3' diff --git a/vendor/travis-core/lib/travis/event/handler/metrics.rb b/vendor/travis-core/lib/travis/event/handler/metrics.rb index 0548c7e8..2cbce9f9 100644 --- a/vendor/travis-core/lib/travis/event/handler/metrics.rb +++ b/vendor/travis-core/lib/travis/event/handler/metrics.rb @@ -10,7 +10,7 @@ module Travis def initialize(*) super - @payload = Api.data(object, type: 'job', for: 'event', version: 'v0', params: data) + @payload = Api::Serialize.data(object, type: 'job', for: 'event', version: 'v0', params: data) end def handle? diff --git a/vendor/travis-core/lib/travis/model/repository.rb b/vendor/travis-core/lib/travis/model/repository.rb index cc70423d..b287dece 100644 --- a/vendor/travis-core/lib/travis/model/repository.rb +++ b/vendor/travis-core/lib/travis/model/repository.rb @@ -28,9 +28,9 @@ class Repository < Travis::Model validates :name, presence: true validates :owner_name, presence: true - before_create do - build_key - end + # before_create do + # build_key + # end delegate :public_key, to: :key diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index f356632b..692918d0 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -136,8 +136,13 @@ class User < Travis::Model protected + # TODO this accesses GitHub during tests. should move initializing the scopes out of the model. def track_github_scopes - self.github_scopes = Travis::Github.scopes_for(self) if github_oauth_token_changed? or github_scopes.blank? + self.github_scopes = Travis::Github.scopes_for(self) if invalid_github_scopes? + end + + def invalid_github_scopes? + Travis.env == 'production' and (github_oauth_token_changed? or github_scopes.blank?) end def set_as_recent diff --git a/vendor/travis-core/lib/travis/services.rb b/vendor/travis-core/lib/travis/services.rb index b555482e..6d37cdbf 100644 --- a/vendor/travis-core/lib/travis/services.rb +++ b/vendor/travis-core/lib/travis/services.rb @@ -46,8 +46,6 @@ require 'travis/services/find_branch' require 'travis/services/find_branches' require 'travis/services/find_build' require 'travis/services/find_builds' -require 'travis/services/find_daily_repos_stats' -require 'travis/services/find_daily_tests_stats' require 'travis/services/find_caches' require 'travis/services/find_hooks' require 'travis/services/find_job' diff --git a/vendor/travis-core/lib/travis/services/find_daily_repos_stats.rb b/vendor/travis-core/lib/travis/services/find_daily_repos_stats.rb deleted file mode 100644 index 4d9232a8..00000000 --- a/vendor/travis-core/lib/travis/services/find_daily_repos_stats.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'travis/services/base' - -module Travis - module Services - class FindDailyReposStats < Base - register :find_daily_repos_stats - - def run - select scope(:repository). - select(['date(created_at) AS date', 'count(created_at) AS count']). - where('last_build_id IS NOT NULL'). - group('date'). - order('date').to_sql - end - - private - - def select(sql) - ActiveRecord::Base.connection.select_all(sql) - end - end - end -end diff --git a/vendor/travis-core/lib/travis/services/find_daily_tests_stats.rb b/vendor/travis-core/lib/travis/services/find_daily_tests_stats.rb deleted file mode 100644 index d1f1adbf..00000000 --- a/vendor/travis-core/lib/travis/services/find_daily_tests_stats.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'travis/services/base' - -module Travis - module Services - class FindDailyTestsStats < Base - register :find_daily_tests_stats - - def run - select scope(:job). - select(['date(created_at) AS date', 'count(created_at) AS count']). - group('date'). - order('date'). - where(['created_at > ?', 28.days.ago]).to_sql - end - - private - - def select(sql) - ActiveRecord::Base.connection.select_all(sql) - end - end - end -end diff --git a/vendor/travis-core/lib/travis_core/version.rb b/vendor/travis-core/lib/travis/version.rb similarity index 57% rename from vendor/travis-core/lib/travis_core/version.rb rename to vendor/travis-core/lib/travis/version.rb index f8fc62f6..1214aa54 100644 --- a/vendor/travis-core/lib/travis_core/version.rb +++ b/vendor/travis-core/lib/travis/version.rb @@ -1,3 +1,3 @@ -module TravisCore +module Travis VERSION = "0.0.1" end diff --git a/vendor/travis-core/travis-core.gemspec b/vendor/travis-core/travis-core.gemspec index d34586ec..c189c19f 100644 --- a/vendor/travis-core/travis-core.gemspec +++ b/vendor/travis-core/travis-core.gemspec @@ -1,11 +1,11 @@ # encoding: utf-8 $:.unshift File.expand_path('../lib', __FILE__) -require 'travis_core/version' +require 'travis/version' Gem::Specification.new do |s| s.name = "travis-core" - s.version = TravisCore::VERSION + s.version = Travis::VERSION s.authors = ["Travis CI"] s.email = "contact@travis-ci.org" s.homepage = "https://github.com/travis-ci/travis-core" From 0f1e697abd2df93573b30aa95e3d7d811dc1545c Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 15:04:39 +0200 Subject: [PATCH 05/17] delete github/services/sync_user and user_mailer, remove action_mailer --- Gemfile.lock | 1 - lib/travis/api/app/endpoint/authorization.rb | 3 +- spec/spec_helper.rb | 6 +- travis-api.gemspec | 1 - vendor/travis-core/lib/travis.rb | 3 +- vendor/travis-core/lib/travis/github.rb | 6 +- .../travis-core/lib/travis/github/services.rb | 1 - .../lib/travis/github/services/sync_user.rb | 74 -------- .../services/sync_user/organizations.rb | 143 --------------- .../github/services/sync_user/repositories.rb | 140 --------------- .../github/services/sync_user/repository.rb | 140 --------------- .../github/services/sync_user/reset_token.rb | 36 ---- .../github/services/sync_user/user_info.rb | 90 ---------- vendor/travis-core/lib/travis/mailer.rb | 26 --- .../lib/travis/mailer/user_mailer.rb | 18 -- .../views/layouts/contact_email.html.erb | 170 ------------------ .../views/user_mailer/welcome_email.html.erb | 54 ------ 17 files changed, 10 insertions(+), 902 deletions(-) delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user/organizations.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user/repositories.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user/repository.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user/reset_token.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/sync_user/user_info.rb delete mode 100644 vendor/travis-core/lib/travis/mailer.rb delete mode 100644 vendor/travis-core/lib/travis/mailer/user_mailer.rb delete mode 100644 vendor/travis-core/lib/travis/mailer/views/layouts/contact_email.html.erb delete mode 100644 vendor/travis-core/lib/travis/mailer/views/user_mailer/welcome_email.html.erb diff --git a/Gemfile.lock b/Gemfile.lock index abcb6d27..ec0958a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -69,7 +69,6 @@ PATH remote: . specs: travis-api (0.0.1) - actionmailer (~> 3.2.19) activerecord (~> 3.2.19) coder (~> 0.4.0) composite_primary_keys (~> 5.0) diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index 441032c0..bfc4f1e5 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -1,8 +1,9 @@ -require 'travis/api/app' require 'addressable/uri' require 'faraday' require 'securerandom' require 'customerio' +require 'travis/api/app' +require 'travis/github/education' class Travis::Api::App class Endpoint diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b414cfea..748561f5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -38,6 +38,10 @@ RSpec.configure do |c| DatabaseCleaner.clean_with :truncation DatabaseCleaner.strategy = :transaction + # This sets up a scenario in the db as an initial state. The db will be + # rolled back to this state after each test. Several tests in ./spec depend + # on this scenario, so this gives a performance benefit, but also can be + # confusing. Scenario.default end @@ -45,7 +49,6 @@ RSpec.configure do |c| DatabaseCleaner.start Redis.new.flushall Travis.config.oauth2.scope = "user:email,public_repo" - # set_app Travis::Api::App.new end c.before :each, set_app: true do @@ -53,7 +56,6 @@ RSpec.configure do |c| end c.after :each do - # puts DatabaseCleaner.connections.map(&:strategy).map(&:class).map(&:name).join(', ') DatabaseCleaner.clean custom_endpoints.each do |endpoint| endpoint.superclass.direct_subclasses.delete(endpoint) diff --git a/travis-api.gemspec b/travis-api.gemspec index 6fce569d..e8c75eb2 100644 --- a/travis-api.gemspec +++ b/travis-api.gemspec @@ -25,7 +25,6 @@ Gem::Specification.new do |s| # from travis-core gemspec s.add_dependency 'activerecord', '~> 3.2.19' - s.add_dependency 'actionmailer', '~> 3.2.19' s.add_dependency 'railties', '~> 3.2.19' s.add_dependency 'rollout', '~> 1.1.0' s.add_dependency 'coder', '~> 0.4.0' diff --git a/vendor/travis-core/lib/travis.rb b/vendor/travis-core/lib/travis.rb index af73f92a..fbe09549 100644 --- a/vendor/travis-core/lib/travis.rb +++ b/vendor/travis-core/lib/travis.rb @@ -1,7 +1,7 @@ require 'pusher' require 'travis/support' require 'travis/support/database' -require 'travis_core/version' +require 'travis/version' require 'travis/redis_pool' require 'travis/errors' require 'travis/commit_command' @@ -46,7 +46,6 @@ module Travis require 'travis/config/defaults' require 'travis/features' require 'travis/github' - require 'travis/mailer' require 'travis/notification' require 'travis/services' diff --git a/vendor/travis-core/lib/travis/github.rb b/vendor/travis-core/lib/travis/github.rb index 95b5a0ad..78ea5050 100644 --- a/vendor/travis-core/lib/travis/github.rb +++ b/vendor/travis-core/lib/travis/github.rb @@ -1,16 +1,16 @@ require 'gh' require 'core_ext/hash/compact' +require 'travis/github/education' +require 'travis/github/services' module Travis module Github - require 'travis/github/services' - class << self def setup GH.set( client_id: Travis.config.oauth2.client_id, client_secret: Travis.config.oauth2.client_secret, - user_agent: "Travis-CI/#{TravisCore::VERSION} GH/#{GH::VERSION}", + user_agent: "Travis-CI/#{Travis::VERSION} GH/#{GH::VERSION}", origin: Travis.config.host, api_url: Travis.config.github.api_url, ssl: Travis.config.ssl.to_h.merge(Travis.config.github.ssl || {}).to_h.compact diff --git a/vendor/travis-core/lib/travis/github/services.rb b/vendor/travis-core/lib/travis/github/services.rb index bca56e28..4f2b028a 100644 --- a/vendor/travis-core/lib/travis/github/services.rb +++ b/vendor/travis-core/lib/travis/github/services.rb @@ -5,7 +5,6 @@ module Travis require 'travis/github/services/find_or_create_repo' require 'travis/github/services/find_or_create_user' require 'travis/github/services/set_hook' - require 'travis/github/services/sync_user' class << self def register diff --git a/vendor/travis-core/lib/travis/github/services/sync_user.rb b/vendor/travis-core/lib/travis/github/services/sync_user.rb deleted file mode 100644 index 1c5fda57..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user.rb +++ /dev/null @@ -1,74 +0,0 @@ -require 'metriks' -require 'travis/mailer/user_mailer' -require 'travis/services/base' - -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - require 'travis/github/services/sync_user/organizations' - require 'travis/github/services/sync_user/repositories' - require 'travis/github/services/sync_user/repository' - require 'travis/github/services/sync_user/reset_token' - require 'travis/github/services/sync_user/user_info' - - register :github_sync_user - - def run - new_user? do - syncing do - # if Time.now.utc.tuesday? && Travis::Features.feature_active?("reset_token_in_sync") - # ResetToken.new(user).run - # end - UserInfo.new(user).run - Organizations.new(user).run - Repositories.new(user).run - end - end - ensure - user.update_column(:is_syncing, false) - end - - def user - # TODO check that clients are only passing the id - @user ||= current_user || User.find(params[:id]) - end - - def new_user? - new_user = user.synced_at.nil? && user.created_at > 48.hours.ago.utc - - yield if block_given? - - if new_user and Travis.config.welcome_email - send_welcome_email - end - end - - def send_welcome_email - return unless user.email.present? - UserMailer.welcome_email(user).deliver - logger.info("Sent welcome email to #{user.login}") - Metriks.meter('travis.welcome.email').mark - end - - private - - def syncing - unless user.github_oauth_token? - logger.warn "user sync for #{user.login} (id:#{user.id}) was cancelled as the user doesn't have a token" - return - end - user.update_column(:is_syncing, true) - result = yield - user.update_column(:synced_at, Time.now) - result - rescue GH::TokenInvalid => e - logger.warn "user sync for #{user.login} (id:#{user.id}) failed as the token was invalid, dropping the token" - user.update_column(:github_oauth_token, nil) - ensure - user.update_column(:is_syncing, false) - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/sync_user/organizations.rb b/vendor/travis-core/lib/travis/github/services/sync_user/organizations.rb deleted file mode 100644 index f04caf33..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user/organizations.rb +++ /dev/null @@ -1,143 +0,0 @@ -require 'gh' - -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - class Organizations - class Filter - attr_reader :data, :limit - def initialize(data, options = {}) - @data = data || {} - @limit = options[:repositories_limit] || 1000 - end - - def allow? - repositories_count < limit - end - - def repositories_count - # I was not sure how to handle the case where we don't get the - # sufficient amount of data here and this seems the best answer, - # that way we will not get orgs siltently ignored - data['public_repositories'] || 0 - end - end - - class << self - def cancel_memberships(user, orgs) - user.memberships.where(:organization_id => orgs.map(&:id)).delete_all - end - end - - extend Travis::Instrumentation - include Travis::Logging - - attr_reader :user, :data - - def initialize(user) - @user = user - end - - def run - with_github do - { :synced => create_or_update, :removed => remove } - end - end - instrument :run - - private - - def create_or_update - fetch_and_filter.map do |data| - org = create_or_update_org(data) - user.organizations << org unless user.organizations.include?(org) - org - end - end - - def remove - orgs = user.organizations.reject { |org| github_ids.include?(org.github_id) } - self.class.cancel_memberships(user, orgs) - orgs - end - - def fetch - @data ||= GH['user/orgs'].to_a - end - instrument :fetch, :level => :debug - - def github_ids - @github_ids ||= data.map { |org| org['id'] } - end - - def with_github(&block) - # TODO in_parallel should return the block's result in a future version - result = nil - GH.with(:token => user.github_oauth_token) do - # GH.in_parallel do - result = yield - # end - end - result - end - - def fetch_and_filter - fetch.map do |data| - fetch_resource("organizations/#{data['id']}") - end.find_all do |data| - options = Travis.config.sync.organizations || {} - Filter.new(data, options).allow? - end - end - - def fetch_resource(resource) - GH[resource] # TODO should be: ?type=#{self.class.type} but GitHub doesn't work as documented - rescue GH::Error => e - log_exception(e) - end - - def create_or_update_org(data) - org = Organization.find_or_create_by_github_id(data['id']) - org.update_attributes!({ - :name => data['name'], - :login => data['login'], - :email => data['email'], - :avatar_url => avatar_url(data['_links']['avatar']), - :location => data['location'], - :homepage => data['_links']['blog'].try(:fetch, 'href'), - :company => data['company'] - }) - org - end - - def avatar_url(github_data) - href = github_data.try(:fetch, 'href') - href ? href[/^(https:\/\/[\w\.\/]*)/, 1] : nil - end - - class Instrument < Notification::Instrument - def run_completed - format = lambda do |orgs| - orgs.map { |org| { id: org.id, login: org.login } } - end - - publish( - msg: %(for #), - result: { synced: format.call(result[:synced]), removed: format.call(result[:removed]) } - ) - end - - def fetch_completed - publish( - msg: %(for #), - result: result - ) - end - end - Instrument.attach_to(self) - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/sync_user/repositories.rb b/vendor/travis-core/lib/travis/github/services/sync_user/repositories.rb deleted file mode 100644 index 294f670e..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user/repositories.rb +++ /dev/null @@ -1,140 +0,0 @@ -require 'active_support/core_ext/class/attribute' - -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - # Fetches all repositories from Github which are in /user/repos or any of the user's - # orgs/[name]/repos. Creates or updates existing repositories on our side and adds - # it to the user's permissions. Also removes existing permissions for repositories - # which are not in the received Github data. NOTE that this does *not* delete any - # repositories because we do not know if the repository was deleted or renamed - # on Github's side. - class Repositories - extend Travis::Instrumentation - include Travis::Logging - - class_attribute :types - self.types = [:public] - - class << self - # TODO backwards compat, remove once all apps use `types=` - def type=(types) - self.types = Array.wrap(types).map(&:to_s).join(',').split(',').map(&:to_sym) - end - - def include?(type) - self.types.include?(type) - end - end - - attr_reader :user, :resources, :data - - def initialize(user) - @user = user - @resources = ['user/repos'] + user.organizations.map { |org| "orgs/#{org.login}/repos" } - end - - def run - with_github do - { :synced => create_or_update, :removed => remove } - end - end - instrument :run - - private - - def create_or_update - data.map do |repository| - Repository.new(user, repository).run - end - end - - def remove - repos = user.repositories.reject { |repo| slugs.include?(repo.slug) } - Repository.unpermit_all(user, repos) - repos - end - - # we have to filter these ourselves because the github api is broken for this - def data - @data ||= filter_duplicates(filter_based_on_repo_permission) - end - - def filter_based_on_repo_permission - fetch.select { |repo| self.class.include?(repo['private'] ? :private : :public) } - end - - def filter_duplicates(repositories) - repositories.each_with_object([]) do |repository, filtered_list| - unless in_filtered_list?(filtered_list, repository) - filtered_list.push(repository) - end - end - end - - def in_filtered_list?(filtered_list, other_repository) - filtered_list.any? do |existing_repository| - same_repository_with_admin?(existing_repository, other_repository) - end - end - - def same_repository_with_admin?(existing_repository, other_repository) - existing_repository['owner']['login'] == other_repository['owner']['login'] and - existing_repository['name'] == other_repository['name'] and - existing_repository['permissions']['admin'] == true - end - - def slugs - @slugs ||= data.map { |repo| "#{repo['owner']['login']}/#{repo['name']}" } - end - - def fetch - resources.map { |resource| fetch_resource(resource) }.map(&:to_a).flatten.compact - end - instrument :fetch, :level => :debug - - def fetch_resource(resource) - GH[resource] # TODO should be: ?type=#{self.class.type} but GitHub doesn't work as documented - rescue GH::Error => e - log_exception(e) - end - - def with_github(&block) - # TODO in_parallel should return the block's result in a future version - result = nil - GH.with(:token => user.github_oauth_token) do - # GH.in_parallel do - result = yield - # end - end - result - end - - class Instrument < Notification::Instrument - def run_completed - format = lambda do |repos| - repos.map { |repo| { id: repo.id, owner: repo.owner_name, name: repo.name } } - end - - publish( - msg: %(for #), - resources: target.resources, - result: { synced: format.call(result[:synced]), removed: format.call(result[:removed]) } - ) - end - - def fetch_completed - publish( - msg: %(for #), - resources: target.resources, - result: result - ) - end - end - Instrument.attach_to(self) - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/sync_user/repository.rb b/vendor/travis-core/lib/travis/github/services/sync_user/repository.rb deleted file mode 100644 index 1636d0f5..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user/repository.rb +++ /dev/null @@ -1,140 +0,0 @@ -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - class Repository - class << self - def unpermit_all(user, repositories) - user.permissions.where(:repository_id => repositories.map(&:id)).delete_all unless repositories.empty? - end - end - - attr_reader :user, :data, :repo - - def initialize(user, data) - @user = user - @data = data - end - - def run - @repo = find || create - update - if permission - sync_permissions - elsif permit? - permit - end - repo - end - - private - - def find - ::Repository.where(:github_id => github_id).first - end - - def create - if Travis::Features.enabled_for_all?(:sync_repo_owner) - ::Repository.create!(:owner => owner, :owner_name => owner_name, :name => name, github_id: github_id) - else - ::Repository.create!(:owner_name => owner_name, :name => name, github_id: github_id) - end - end - # instrument :create, :level => :debug - - def permission - @permission ||= user.permissions.where(:repository_id => repo.id).first - end - - def sync_permissions - if permit? - permission.update_attributes!(permission_data) - else - permission.destroy - end - end - - def permit? - push_access? || admin_access? || repo.private? - end - - def permit - user.permissions.create!({ - :user => user, - :repository => repo - }.merge(permission_data)) - end - # instrument :permit, :level => :debug - - def update - if Travis::Features.enabled_for_all?(:sync_repo_owner) - repo.update_attributes!({ - owner: owner, - github_id: data['id'], - private: data['private'], - description: data['description'], - url: data['homepage'], - default_branch: data['default_branch'], - github_language: data['language'], - name: name, - owner_name: owner_name - }) - else - repo.update_attributes!({ - github_id: data['id'], - private: data['private'], - description: data['description'], - url: data['homepage'], - default_branch: data['default_branch'], - github_language: data['language'], - name: name, - owner_name: owner_name - }) - end - rescue ActiveRecord::RecordInvalid - # ignore for now. this seems to happen when multiple syncs (i.e. user sign - # in requests are running in parallel? - rescue GH::Error(response_status: 404) => e - Travis.logger.warn "[github][services][user_sync] GitHub info was not available for #{repo.owner_name}/#{repo.name}: #{e.inspect}" - end - - def owner - @owner ||= owner_type.constantize.find_by_github_id(owner_id) - end - - def owner_id - data['owner']['id'] - end - - def owner_type - data['owner']['type'] - end - - def owner_name - data['owner']['login'] - end - - def name - data['name'] - end - - def github_id - data['id'] - end - - def permission_data - data['permissions'] - end - - def push_access? - permission_data['push'] - end - - def admin_access? - permission_data['admin'] - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/sync_user/reset_token.rb b/vendor/travis-core/lib/travis/github/services/sync_user/reset_token.rb deleted file mode 100644 index cc09ae26..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user/reset_token.rb +++ /dev/null @@ -1,36 +0,0 @@ -require "gh" - -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - class ResetToken - def initialize(user, config = Travis.config.oauth2.to_h, gh = nil) - @user = user - @config = config - @gh = gh || GH.with(username: @config.client_id, password: @config.client_secret) - end - - def run - token = new_token - @user.update_attributes!(github_oauth_token: token) if token - end - - private - - def new_token - @new_token ||= @gh.post("/applications/#{client_id}/tokens/#{@user.github_oauth_token}", {})["token"] - end - - def client_id - @config.client_id - end - - def client_secret - @config.client_secret - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/sync_user/user_info.rb b/vendor/travis-core/lib/travis/github/services/sync_user/user_info.rb deleted file mode 100644 index c3be5399..00000000 --- a/vendor/travis-core/lib/travis/github/services/sync_user/user_info.rb +++ /dev/null @@ -1,90 +0,0 @@ -require 'gh' -require 'travis/github/education' - -module Travis - module Github - module Services - class SyncUser < Travis::Services::Base - class UserInfo - attr_reader :user, :gh - - def initialize(user, gh = Github.authenticated(user)) - @user, @gh = user, gh - end - - def run - if user.github_id != user_info['id'].to_i - raise "Updating # failed, github_id differs. github_id on user: #{user.github_id}, github_id from data: #{user_info['id']}" - end - if user.login != login - Travis.logger.info("Changing # login: current=\"#{user.login}\", new=\"#{login}\" (UserInfo), data: #{user_info.inspect}") - end - if user.email != email - Travis.logger.info("Changing # email: current=\"#{user.email}\", new=\"#{email}\" (UserInfo)") - end - - user.update_attributes!(name: name, login: login, gravatar_id: gravatar_id, email: email, education: education) - emails = verified_emails - emails << email unless emails.include? email - emails.each { |e| user.emails.find_or_create_by_email!(e) } - end - - def education - if Travis::Features.feature_active?(:education_data_sync) || Travis::Features.owner_active?(:education_data_sync, user) - Education.new(user.github_oauth_token).student? - end - end - - def name - user_info['name'] - end - - def login - user_info.fetch('login') - end - - def gravatar_id - user_info['gravatar_id'] - end - - def email - user_info['email'].presence || primary_email || verified_email || user.email.presence || first_email - end - - def verified_emails - emails.select { |e| e["verified"] }.map { |e| e['email'] } - end - - private - - def emails - return [] unless user.github_scopes.include? 'user' or user.github_scopes.include? 'user:email' - @emails ||= gh['user/emails'].to_a - end - - def first_email - emails.first.try(:[], 'email') - end - - def primary_email - emails.detect { |e| e["primary"] }.try(:[], 'email') - end - - def verified_email - verified_emails.first - end - - def user_info - @user_info ||= begin - data = gh['user'].to_hash - if user.login != data['login'] - Travis.logger.info("Fetching data for github_id=#{user.github_id} (UserInfo), data: #{data.inspect}") - end - data - end - end - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/mailer.rb b/vendor/travis-core/lib/travis/mailer.rb deleted file mode 100644 index 8a19cf01..00000000 --- a/vendor/travis-core/lib/travis/mailer.rb +++ /dev/null @@ -1,26 +0,0 @@ -require 'action_mailer' -require 'i18n' - -module Travis - module Mailer - class << self - def config - config = Travis.config.smtp - config ? config.to_h : {} - end - - def setup - if config.present? - mailer = ActionMailer::Base - mailer[:delivery_method] = :smtp - mailer[:smtp_settings] = config - @setup = true - end - end - - def setup? - !!@setup - end - end - end -end diff --git a/vendor/travis-core/lib/travis/mailer/user_mailer.rb b/vendor/travis-core/lib/travis/mailer/user_mailer.rb deleted file mode 100644 index 3a352648..00000000 --- a/vendor/travis-core/lib/travis/mailer/user_mailer.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'action_mailer' - -class UserMailer < ActionMailer::Base - ActionMailer::Base.append_view_path("#{File.dirname(__FILE__)}/views") - - layout 'contact_email' - - def welcome_email(user) - @user = user - mail(subject: "Welcome to Travis CI!", from: from, to: user.email) do |format| - format.html - end - end - - def from - Travis.config.email.from - end -end diff --git a/vendor/travis-core/lib/travis/mailer/views/layouts/contact_email.html.erb b/vendor/travis-core/lib/travis/mailer/views/layouts/contact_email.html.erb deleted file mode 100644 index ceef3ba3..00000000 --- a/vendor/travis-core/lib/travis/mailer/views/layouts/contact_email.html.erb +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -
- - -
- -
- <%= yield %> -
- - - - diff --git a/vendor/travis-core/lib/travis/mailer/views/user_mailer/welcome_email.html.erb b/vendor/travis-core/lib/travis/mailer/views/user_mailer/welcome_email.html.erb deleted file mode 100644 index 3f210a32..00000000 --- a/vendor/travis-core/lib/travis/mailer/views/user_mailer/welcome_email.html.erb +++ /dev/null @@ -1,54 +0,0 @@ -
-

Welcome to Travis CI!

- -

- Hey <%= @user.name.blank? ? @user.login : @user.name %>, -

- -

- We'd like to extend a warm welcome to you and provide with some links to help you get started. -

- -

- If you haven't set up your first project yet, head to your - accounts page and enable the project you'd like to test on Travis CI. Push some code, and your repository - will appear on <%= Travis.config.host -%>. -

- -

- Are you part of an organization that's already running builds on Travis CI? Great news, we've just finished - synchronizing your permissions from GitHub. You can see the projects you have access to and that have already - been built on Travis CI at <%= Travis.config.host %> so you can - dive in right away. -

- -

- Remember to add a .travis.yml file to your project to tell us what steps we should execute to set up your build - environment and run your build. We have sensible defaults, but you're free to customize everything to your - liking. -

- -

- You can find all details on how to setup specific languages, the - available configuration options for your - builds, and our build environment in our documentation. Don't forget to setup notifications if - you'd like to be kept up-to-date about your builds on Campfire, HipChat, IRC, and others. -

- -

- If you have any questions or issues, shoot us an email. -

- -

- Have an awesome day! -

- -

- Cheers, -

- -

- The Travis CI Team -

-
From c6f6dd5f5aed2cf7c74d43f030daa485ff6b464f Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 15:09:58 +0200 Subject: [PATCH 06/17] we can now run all specs in one go --- Gemfile.lock | 11 ----------- Rakefile | 7 ++++++- vendor/travis-core/lib/travis.rb | 2 -- vendor/travis-core/travis-core.gemspec | 1 - 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ec0958a1..81285ce2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -96,7 +96,6 @@ PATH remote: vendor specs: travis-core (0.0.1) - actionmailer (~> 3.2.19) activerecord (~> 3.2.19) coder (~> 0.4.0) data_migrations (~> 0.0.1) @@ -119,9 +118,6 @@ PATH GEM remote: https://rubygems.org/ specs: - actionmailer (3.2.22.2) - actionpack (= 3.2.22.2) - mail (~> 2.5.4) actionpack (3.2.22.2) activemodel (= 3.2.22.2) activesupport (= 3.2.22.2) @@ -230,9 +226,6 @@ GEM logging (2.1.0) little-plugger (~> 1.1) multi_json (~> 1.10) - mail (2.5.4) - mime-types (~> 1.16) - treetop (~> 1.4.8) memcachier (0.0.2) memoist (0.14.0) metaclass (0.0.4) @@ -253,7 +246,6 @@ GEM net-http-pipeline (1.0.1) os (0.9.6) pg (0.18.4) - polyglot (0.3.5) proxies (0.2.1) pry (0.10.3) coderay (~> 1.1.0) @@ -358,9 +350,6 @@ GEM tool (0.2.3) travis-config (0.1.4) hashr (~> 0.0) - treetop (1.4.15) - polyglot - polyglot (>= 0.3.1) tzinfo (0.3.49) uber (0.0.15) unicorn (5.1.0) diff --git a/Rakefile b/Rakefile index a48da4b0..27b2da1b 100644 --- a/Rakefile +++ b/Rakefile @@ -25,6 +25,11 @@ end # not sure how else to include the spec_helper namespace :spec do + desc 'Run all specs' + task :api do + sh 'bundle exec rspec -r spec_helper spec spec_core' + end + desc 'Run api specs' task :api do sh 'bundle exec rspec -r spec_helper spec' @@ -36,7 +41,7 @@ namespace :spec do end end -task :default => %w(spec:api spec:core) +task :default => :'spec:all' desc "generate gemspec" task 'travis-api.gemspec' do diff --git a/vendor/travis-core/lib/travis.rb b/vendor/travis-core/lib/travis.rb index fbe09549..7db92f49 100644 --- a/vendor/travis-core/lib/travis.rb +++ b/vendor/travis-core/lib/travis.rb @@ -20,8 +20,6 @@ require 'travis/commit_command' # events and send out such things as email, pusher, irc # notifications, archive builds or queue jobs for the # workers. -# travis/mailer - contains ActionMailers for sending out email -# notifications # # travis-core also contains some helper classes and modules like Travis::Database # (needed in travis-hub in order to connect to the database) and Travis::Renderer diff --git a/vendor/travis-core/travis-core.gemspec b/vendor/travis-core/travis-core.gemspec index c189c19f..5eb06b14 100644 --- a/vendor/travis-core/travis-core.gemspec +++ b/vendor/travis-core/travis-core.gemspec @@ -19,7 +19,6 @@ Gem::Specification.new do |s| s.add_dependency 'rake' s.add_dependency 'thor' s.add_dependency 'activerecord', '~> 3.2.19' - s.add_dependency 'actionmailer', '~> 3.2.19' s.add_dependency 'railties', '~> 3.2.19' s.add_dependency 'rollout', '~> 1.1.0' s.add_dependency 'coder', '~> 0.4.0' From 04cd5bea24db5583e32c9cb7023bbe7efd641bbb Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 15:20:11 +0200 Subject: [PATCH 07/17] move travis.rb and travis/config to lib --- {vendor/travis-core/lib => lib}/travis.rb | 19 ------------------- .../lib => lib}/travis/config/database.rb | 0 .../lib => lib}/travis/config/defaults.rb | 0 .../lib => lib}/travis/config/url.rb | 0 4 files changed, 19 deletions(-) rename {vendor/travis-core/lib => lib}/travis.rb (62%) rename {vendor/travis-core/lib => lib}/travis/config/database.rb (100%) rename {vendor/travis-core/lib => lib}/travis/config/defaults.rb (100%) rename {vendor/travis-core/lib => lib}/travis/config/url.rb (100%) diff --git a/vendor/travis-core/lib/travis.rb b/lib/travis.rb similarity index 62% rename from vendor/travis-core/lib/travis.rb rename to lib/travis.rb index 7db92f49..a1a1a123 100644 --- a/vendor/travis-core/lib/travis.rb +++ b/lib/travis.rb @@ -6,28 +6,9 @@ require 'travis/redis_pool' require 'travis/errors' require 'travis/commit_command' -# travis-core holds the central parts of the model layer used in both travis-ci -# (i.e. the web application) as well as travis-hub (a non-rails ui-less JRuby -# application that receives, processes and distributes messages from/to the -# workers and issues various events like email, pusher, irc notifications and -# so on). -# -# travis/model - contains ActiveRecord models that and model the main -# parts of the domain logic (e.g. repository, build, job -# etc.) and issue events on state changes (e.g. -# build:created, job:test:finished etc.) -# travis/event - contains event handlers that register for certain -# events and send out such things as email, pusher, irc -# notifications, archive builds or queue jobs for the -# workers. -# -# travis-core also contains some helper classes and modules like Travis::Database -# (needed in travis-hub in order to connect to the database) and Travis::Renderer -# (our inferior layer on top of Rabl). module Travis class << self def services=(services) - # Travis.logger.info("Using services: #{services}") @services = services end diff --git a/vendor/travis-core/lib/travis/config/database.rb b/lib/travis/config/database.rb similarity index 100% rename from vendor/travis-core/lib/travis/config/database.rb rename to lib/travis/config/database.rb diff --git a/vendor/travis-core/lib/travis/config/defaults.rb b/lib/travis/config/defaults.rb similarity index 100% rename from vendor/travis-core/lib/travis/config/defaults.rb rename to lib/travis/config/defaults.rb diff --git a/vendor/travis-core/lib/travis/config/url.rb b/lib/travis/config/url.rb similarity index 100% rename from vendor/travis-core/lib/travis/config/url.rb rename to lib/travis/config/url.rb From fb0493a33c055b1508869149d03fa0ed538c5749 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 15:45:55 +0200 Subject: [PATCH 08/17] delete commitcommand, request approval, branches, and states --- spec_core/model/request/approval_spec.rb | 270 ------------------ spec_core/model/request/branches_spec.rb | 157 ---------- spec_core/model/request/states_spec.rb | 250 ---------------- spec_core/model/user_spec.rb | 2 +- .../travis-core/lib/travis/commit_command.rb | 23 -- .../travis-core/lib/travis/model/request.rb | 5 +- .../lib/travis/model/request/approval.rb | 130 --------- .../lib/travis/model/request/branches.rb | 57 ---- .../lib/travis/model/request/states.rb | 119 -------- 9 files changed, 2 insertions(+), 1011 deletions(-) delete mode 100644 spec_core/model/request/approval_spec.rb delete mode 100644 spec_core/model/request/branches_spec.rb delete mode 100644 spec_core/model/request/states_spec.rb delete mode 100644 vendor/travis-core/lib/travis/commit_command.rb delete mode 100644 vendor/travis-core/lib/travis/model/request/approval.rb delete mode 100644 vendor/travis-core/lib/travis/model/request/branches.rb delete mode 100644 vendor/travis-core/lib/travis/model/request/states.rb diff --git a/spec_core/model/request/approval_spec.rb b/spec_core/model/request/approval_spec.rb deleted file mode 100644 index 58cc2f2f..00000000 --- a/spec_core/model/request/approval_spec.rb +++ /dev/null @@ -1,270 +0,0 @@ -describe Request::Approval do - include Travis::Testing::Stubs - - let(:approval) { Request::Approval.new(request) } - - before do - approval.stubs(:build_pull_requests?).returns(true) - approval.stubs(:build_pushes?).returns(true) - request.stubs(:creates_jobs?).returns(true) - end - - describe 'config_accepted?' do - it 'approves the build when .travis.yml is missing, but builds with .travis.yml are allowed' do - request.config['.result'] = 'not_found' - approval.config_accepted?.should be true - end - - it 'does not approve the build if .travis.yml is missing and builds without it are not allowed' do - request.repository.stubs(:builds_only_with_travis_yml?).returns(true) - request.config['.result'] = 'not_found' - - approval.config_accepted?.should be false - approval.message.should == '.travis.yml is missing and builds without .travis.yml are disabled' - end - - it 'approves the build when .travis.yml is present' do - request.config['.result'] = 'configured' - approval.config_accepted?.should be true - end - end - - describe 'branch_accepted?' do - it 'does not accept a request that belongs to the github_pages branch' do - request.commit.stubs(:branch).returns('gh_pages') - approval.branch_accepted?.should be false - end - - it 'accepts a request that belongs to the gh-pages branch if it\'s specified in branches:only' do - request.commit.stubs(:branch).returns('gh_pages') - request.config['branches'] = { 'only' => ['gh-pages'] } - approval.branch_accepted?.should be_truthy - end - - it "doesn't fail when the branch configuration is an array" do - request.config['branches'] = [{ 'only' => ['gh-pages'] }] - approval.branch_accepted?.should be true - end - end - - describe 'accepted?' do - it 'accepts a request that has a commit, belongs to a public repository, is not skipped and does not belong to the github_pages branch and it is not a rails fork' do - approval.should be_accepted - end - - it 'does not accept a request that does not have a commit' do - approval.stubs(:commit).returns(nil) - approval.should_not be_accepted - end - - it 'does not accept a request that belongs to a private repository' do - request.repository.stubs(:private?).returns(true) - approval.should_not be_accepted - end - - it 'does not accept a request that belongs to an excluded repository' do - request.repository.stubs(:slug).returns('svenfuchs/rails') - approval.should_not be_accepted - end - - it 'does not accept a request that is skipped (using the commit message)' do - request.commit.stubs(:message).returns('update README [ci:skip]') - approval.should_not be_accepted - end - - it 'accepts a request that belongs to the github_pages branch and is explicitly set to build that branch (String)' do - request.commit.stubs(:branch).returns('gh_pages') - request.stubs(:config).returns('branches' => { 'only' => 'gh_pages' }) - approval.should be_accepted - end - - it 'accepts a request that belongs to the github_pages branch and is explicitly set to build that branch (Array)' do - request.commit.stubs(:branch).returns('gh_pages') - request.stubs(:config).returns('branches' => { 'only' => ['gh_pages'] }) - approval.should be_accepted - end - - it 'does not accept a request when it is disabled in settings' do - approval.stubs(:enabled_in_settings?).returns(false) - approval.should_not be_accepted - end - - it 'does not accept a request when compare URL is too long' do - request.commit.stubs(:compare_url).returns('a'*256) - approval.should_not be_accepted - end - end - - describe 'approved?' do - xit 'should be specified' - end - - describe 'message' do - it 'returns "pull requests disabled" if pull requests are disabled' do - approval.stubs(:enabled_in_settings?).returns(false) - request.stubs(:pull_request?).returns(true) - approval.message.should == 'pull requests disabled' - end - - it 'returns "pushes disabled" if pushes are disabled' do - approval.stubs(:enabled_in_settings?).returns(false) - request.stubs(:pull_request?).returns(false) - approval.message.should == 'pushes disabled' - end - - it 'returns "missing commit" if the commit is missing' do - approval.stubs(:commit).returns(nil) - approval.message.should == 'missing commit' - end - - it 'returns "private repository" if the repository is private' do - request.repository.stubs(:private?).returns(true) - request.stubs(:config).returns({key: 'value'}) - approval.message.should == 'private repository' - end - - it 'returns "excluded repository" if the repository is an excluded repository' do - request.repository.stubs(:slug).returns('svenfuchs/rails') - approval.message.should == 'excluded repository' - end - - it 'returns "excluded repository" if the repository is an excluded repository and exclude rule is a string' do - Travis.config.repository_filter.stubs(:exclude).returns(["\\/rails$"]) - request.repository.stubs(:slug).returns('svenfuchs/rails') - approval.message.should == 'excluded repository' - end - - it 'returns "github pages branch" if the branch is a github pages branch' do - request.commit.stubs(:branch).returns('gh-pages') - approval.message.should == 'github pages branch' - end - - it 'returns "config is missing or contains YAML syntax error" if the config is not present' do - request.stubs(:config).returns(nil) - approval.message.should == 'config is missing or contains YAML syntax error' - end - - it 'returns "branch not included or excluded" if the branch was not approved' do - request.commit.stubs(:branch).returns('feature') - request.stubs(:config).returns('branches' => { 'only' => 'master' }) - approval.message.should == 'branch not included or excluded' - end - - it 'returns "compare URL too long; branch/tag names may be too long" if the compare URL is too long' do - request.stubs(:config).returns({key: 'value'}) - request.commit.stubs(:compare_url).returns('a'*256) - approval.message.should == 'compare URL too long; branch/tag names may be too long' - end - end - - describe 'skipped?' do - it 'returns true when the commit message contains [ci skip]' do - request.commit.stubs(:message).returns 'lets party like its 1999 [ci skip]' - approval.send(:skipped?).should be true - end - end - - describe 'github_pages?' do - it 'returns true for a branch named gh-pages' do - request.commit.stubs(:branch).returns 'gh-pages' - approval.send(:github_pages?).should be_truthy - end - - it 'returns true for a branch named gh_pages' do - request.commit.stubs(:branch).returns 'gh_pages' - approval.send(:github_pages?).should be_truthy - end - - it 'returns true when a PR is for gh_pages' do - request.commit.stubs(:ref).returns 'refs/pulls/1/merge' - request.commit.stubs(:branch).returns 'gh_pages' - approval.send(:github_pages?).should be_truthy - end - - it 'returns false for a branch named master' do - commit.stubs(:branch).returns 'master' - approval.send(:github_pages?).should be_falsy - end - end - - describe 'included_repository?' do - it 'returns true if the repository is an included repository' do - request.repository.stubs(:slug).returns 'rails/rails' - approval.send(:included_repository?).should be true - end - - it 'returns true if the repository is an included repository with rule as a string' do - Travis.config.repository_filter.stubs(:include).returns(["rails\\/rails"]) - request.repository.stubs(:slug).returns 'rails/rails' - approval.send(:included_repository?).should be true - end - - it 'returns false if the repository is not included' do - request.repository.stubs(:slug).returns 'josh/completeness-fu' - approval.send(:included_repository?).should be false - end - - it 'returns false if the repository is not included with rule as a string' do - Travis.config.repository_filter.stubs(:include).returns(["rails\\/rails"]) - request.repository.stubs(:slug).returns 'josh/completeness-fu' - approval.send(:included_repository?).should be false - end - end - - describe 'excluded_repository?' do - it 'returns true if the repository is an excluded repository' do - request.repository.stubs(:slug).returns 'josh/rails' - approval.send(:excluded_repository?).should be true - end - - it 'returns false if the repository is not excluded' do - request.repository.stubs(:slug).returns 'josh/completeness-fu' - approval.send(:excluded_repository?).should be false - end - - it 'returns true if the repository is an excluded repository with rule as a string' do - Travis.config.repository_filter.stubs(:exclude).returns(["\\/rails$"]) - request.repository.stubs(:slug).returns 'josh/rails' - approval.send(:excluded_repository?).should be true - end - - it 'returns false if the repository is not excluded with rule as a string' do - Travis.config.repository_filter.stubs(:exclude).returns(["\\/rails$"]) - request.repository.stubs(:slug).returns 'josh/completeness-fu' - approval.send(:excluded_repository?).should be false - end - end - - describe 'enabled_in_settings?' do - it 'returns true if a request is an api request' do - request.stubs(:api_request?).returns(true) - approval.enabled_in_settings?.should be true - end - - it 'returns true if pull requests are enabled and a request is a pull request' do - request.stubs(:pull_request?).returns(true) - approval.stubs(:build_pull_requests?).returns(true) - approval.enabled_in_settings?.should be true - end - - it 'returns true if pushes are enabled and a request is a push' do - request.stubs(:pull_request?).returns(false) - approval.stubs(:build_pushes?).returns(true) - approval.enabled_in_settings?.should be true - - end - - it 'returns false if pull requests are disabled and a request is a pull request' do - request.stubs(:pull_request?).returns(true) - approval.stubs(:build_pull_requests?).returns(false) - approval.enabled_in_settings?.should be false - end - - it 'returns false if pushes are disabled and a request is a push' do - request.stubs(:pull_request?).returns(false) - approval.stubs(:build_pushes?).returns(false) - approval.enabled_in_settings?.should be false - - end - end -end diff --git a/spec_core/model/request/branches_spec.rb b/spec_core/model/request/branches_spec.rb deleted file mode 100644 index dcb330f3..00000000 --- a/spec_core/model/request/branches_spec.rb +++ /dev/null @@ -1,157 +0,0 @@ -describe Request::Branches do - include Travis::Testing::Stubs - - let(:branches) { Request::Branches.new(request) } - - describe '#included?' do - it 'defaults to true if no branches are included' do - request.config['branches'] = { 'only' => nil } - branches.included?('feature').should be true - end - - describe 'returns true if the included branches include the given branch' do - it 'given as a string' do - request.config['branches'] = { 'only' => 'feature' } - branches.included?('feature').should be true - end - - it 'given as a comma separated list of branches' do - request.config['branches'] = { 'only' => 'feature, develop' } - branches.included?('feature').should be true - end - - it 'given as an array of branches' do - request.config['branches'] = { 'only' => %w(feature develop) } - branches.included?('feature').should be true - end - end - - describe 'returns true if the given branch matches a pattern from the included branches' do - it 'given as a string' do - request.config['branches'] = { 'only' => '/^feature-\d+$/' } - branches.included?('feature-42').should be true - end - - it 'given as a comma separated list of patterns' do - request.config['branches'] = { 'only' => '/^feature-\d+$/,/^develop-\d+$/' } - branches.included?('feature-42').should be true - end - - it 'given as an array of patterns' do - request.config['branches'] = { 'only' => %w(/^feature-\d+$/ /^develop-\d+$/) } - branches.included?('feature-42').should be true - end - end - - describe 'returns false if the included branches do not include the given branch' do - it 'given as a string' do - request.config['branches'] = { 'only' => 'feature' } - branches.included?('master').should be false - end - - it 'given as a comma separated list of branches' do - request.config['branches'] = { 'only' => 'feature, develop' } - branches.included?('master').should be false - end - - it 'given as an array of branches' do - request.config['branches'] = { 'only' => %w(feature develop) } - branches.included?('master').should be false - end - end - - describe 'returns false if the given branch does not match any pattern from the included branches' do - it 'given as a string' do - request.config['branches'] = { 'only' => '/^feature-\d+$/' } - branches.included?('master').should be false - end - - it 'given as a comma separated list of patterns' do - request.config['branches'] = { 'only' => '/^feature-\d+$/,/^develop-\d+$/' } - branches.included?('master').should be false - end - - it 'given as an array of patterns' do - request.config['branches'] = { 'only' => %w(/^feature-\d+$/ /^develop-\d+$/) } - branches.included?('master').should be false - end - end - end - - describe '#excluded?' do - it 'defaults to false if no branches are excluded' do - request.config['branches'] = { 'except' => nil } - branches.excluded?('feature').should be_falsy - end - - describe 'returns true if the excluded branches include the given branch' do - it 'given as a string' do - request.config['branches'] = { 'except' => 'feature' } - branches.excluded?('feature').should be true - end - - it 'given as a comma separated list of branches' do - request.config['branches'] = { 'except' => 'feature, develop' } - branches.excluded?('feature').should be true - end - - it 'given as an array of branches' do - request.config['branches'] = { 'except' => %w(feature develop) } - branches.excluded?('feature').should be true - end - end - - describe 'returns true if the given branch matches a pattern from the excluded branches' do - it 'given as a string' do - request.config['branches'] = { 'except' => '/^feature-\d+$/' } - branches.excluded?('feature-42').should be true - end - - it 'given as a comma separated list of patterns' do - request.config['branches'] = { 'except' => '/^feature-\d+$/,/^develop-\d+$/' } - branches.excluded?('feature-42').should be true - end - - it 'given as an array of patterns' do - request.config['branches'] = { 'except' => %w(/^feature-\d+$/ /^develop-\d+$/) } - branches.excluded?('feature-42').should be true - - end - end - - describe 'returns false if the excluded branches do not include the given branch' do - it 'given as a string' do - request.config['branches'] = { 'except' => 'feature' } - branches.excluded?('master').should be false - end - - it 'given as a comma separated list of branches' do - request.config['branches'] = { 'except' => 'feature, develop' } - branches.excluded?('master').should be false - end - - it 'given as an array of branches' do - request.config['branches'] = { 'except' => %w(feature develop) } - branches.excluded?('master').should be false - end - end - - describe 'returns false if the given branch does not match any pattern from the excluded branches' do - it 'given as a string' do - request.config['branches'] = { 'except' => '/^feature-\d+$/' } - branches.excluded?('master').should be false - end - - it 'given as a comma separated list of patterns' do - request.config['branches'] = { 'except' => '/^feature-\d+$/,/^develop-\d+$/' } - branches.excluded?('master').should be false - end - - it 'given as an array of patterns' do - request.config['branches'] = { 'except' => %w(/^feature-\d+$/ /^develop-\d+$/) } - branches.excluded?('master').should be false - - end - end - end -end diff --git a/spec_core/model/request/states_spec.rb b/spec_core/model/request/states_spec.rb deleted file mode 100644 index eb9c0177..00000000 --- a/spec_core/model/request/states_spec.rb +++ /dev/null @@ -1,250 +0,0 @@ -describe Request::States do - let(:owner) { User.new(:login => 'joshk') } - let(:repository) { Repository.new(:name => 'travis-ci', :owner => owner, :owner_name => 'travis-ci') } - let(:commit) { Commit.new(:repository => repository, :commit => '12345', :branch => 'master', :message => 'message', :committed_at => Time.now, :compare_url => 'https://github.com/svenfuchs/minimal/compare/master...develop') } - let(:request) { Request.new(:repository => repository, :commit => commit) } - - let(:approval) { Request::Approval.any_instance } - let(:config) { { :from => '.travis.yml' } } - - before :each do - repository.save! - Travis.stubs(:run_service).with(:github_fetch_config, is_a(Hash)).returns(config) - request.stubs(:add_build) - request.stubs(:creates_jobs?).returns(true) - end - - it 'has the state :created when just created' do - request.state.should == :created - end - - describe 'start' do - describe 'with an accepted request' do - before :each do - approval.stubs(:accepted?).returns(true) - end - - it 'configures the request' do - request.expects(:configure) - request.start - end - - it 'finishes the request' do - request.expects(:finish) - request.start - end - - it 'sets the state to started' do - request.start - request.was_started?.should be true - end - - it 'sets the result to :accepted' do - request.start - request.result.should == :accepted - end - - describe 'but rejected config' do - before :each do - approval.stubs(:config_accepted?).returns(false) - end - - it 'does config, but resets it to nil' do - request.expects(:fetch_config).returns({}) - - request.start - - request.config.should be_nil - end - end - - describe 'but rejected branch' do - before :each do - approval.stubs(:branch_accepted?).returns(false) - end - - it 'does config, but resets it to nil' do - request.expects(:fetch_config).returns({}) - - request.start - - request.config.should be_nil - end - end - end - - describe 'with a rejected request' do - before :each do - approval.stubs(:accepted?).returns(false) - end - - it 'does not configure the request' do - request.expects(:fetch_config).never - request.start - end - - it 'finishes the request' do - request.expects(:finish) - request.start - end - - it 'sets the state to started' do - request.start - request.was_started?.should be true - end - - it 'sets the result to :rejected' do - request.start - request.result.should == :rejected - end - end - end - - describe 'configure' do - it 'fetches the .travis.yml config from Github' do - Travis.expects(:run_service).returns(config) - request.configure - end - - it 'merges existing configuration (e.g. from an api request)' do - request.config = { env: 'FOO=foo' } - request.configure - request.config.should == config.merge(env: 'FOO=foo') - end - - it 'stores the config on the request' do - request.configure - request.config.should == config - end - - it 'sets the state to configured' do - request.configure - request.was_configured?.should be true - end - end - - describe 'finish' do - before :each do - request.stubs(:config).returns('.configured' => true) - end - - describe 'with an approved request' do - before :each do - approval.stubs(:approved?).returns(true) - end - - it 'builds the build' do - request.expects(:add_build) - request.finish - end - - it 'sets the state to finished' do - request.finish - request.should be_finished - end - end - - describe 'with an unapproved request' do - before :each do - approval.stubs(:approved?).returns(false) - end - - it 'does not build the build' do - request.expects(:add_build).never - request.finish - end - - it 'sets the state to finished' do - request.finish - request.should be_finished - end - end - - describe 'with a config parse error' do - let(:job) { stub(start!: nil, finish!: nil, :log_content= => nil) } - let(:build) { stub(matrix: [job], finish!: nil) } - - before :each do - request.stubs(:add_build).returns(build) - request.stubs(:config).returns('.result' => 'parse_error') - end - - it 'builds the build' do - request.expects(:add_build).returns(build) - request.finish - end - - it 'prints an error to the log' do - job.expects(:log_content=) - request.finish - end - end - - describe 'with a config server error' do - let(:job) { stub(start!: nil, finish!: nil, :log_content= => nil) } - let(:build) { stub(matrix: [job], finish!: nil) } - - before :each do - request.stubs(:add_build).returns(build) - request.stubs(:config).returns('.result' => 'server_error') - end - - it 'builds the build' do - request.expects(:add_build).returns(build) - request.finish - end - - it 'prints an error to the log' do - job.expects(:log_content=) - request.finish - end - end - end - - describe 'start!' do - before :each do - request.stubs(:config).returns('.configured' => true) - approval.stubs(:approved?).returns(true) - end - - it 'finally sets the state to finished' do - request.repository.save! - request.repository_id = request.repository.id - request.save! - request.start! - request.reload.should be_finished - end - end - - describe "adding a build" do - before do - request.unstub(:add_build) - Travis.config.notify_on_build_created = true - end - - after do - request.stubs(:add_build) - Travis.config.notify_on_build_created = false - end - - it "should create a build" do - request.save - request.add_build_and_notify.should be_a(Build) - end - - it "should notify the build" do - request.save - Travis::Event.expects(:dispatch).with do |event, *args| - event.should == "build:created" - end - request.add_build_and_notify - end - - it "shouldn't notify the build when the flag is disabled" do - Travis.config.notify_on_build_created = false - request.save - Travis::Event.expects(:dispatch).with { |e, *| e.should == "build:created" }.never - request.add_build_and_notify - end - end -end diff --git a/spec_core/model/user_spec.rb b/spec_core/model/user_spec.rb index 22bed4c7..ebc8fb97 100644 --- a/spec_core/model/user_spec.rb +++ b/spec_core/model/user_spec.rb @@ -1,5 +1,5 @@ describe User do - before { User.delete_all } + before { DatabaseCleaner.clean_with :truncation } let(:user) { Factory(:user, :github_oauth_token => 'token') } let(:payload) { GITHUB_PAYLOADS[:oauth] } diff --git a/vendor/travis-core/lib/travis/commit_command.rb b/vendor/travis-core/lib/travis/commit_command.rb deleted file mode 100644 index 2331387f..00000000 --- a/vendor/travis-core/lib/travis/commit_command.rb +++ /dev/null @@ -1,23 +0,0 @@ -module Travis - class CommitCommand - - def initialize(message) - @message = message.to_s - end - - def skip? - backwards_skip or command == 'skip' - end - - private - attr_reader :message - - def command - message =~ /\[ci(?: |:)([\w ]*)\]/i && $1.downcase - end - - def backwards_skip - message =~ /\[skip\s+ci\]/i && true - end - end -end diff --git a/vendor/travis-core/lib/travis/model/request.rb b/vendor/travis-core/lib/travis/model/request.rb index 25bed946..e2e96bf4 100644 --- a/vendor/travis-core/lib/travis/model/request.rb +++ b/vendor/travis-core/lib/travis/model/request.rb @@ -8,12 +8,9 @@ require 'travis/model/encrypted_column' # and needs to be approved based on the configuration. Once approved the # Request creates a Build. class Request < Travis::Model - require 'travis/model/request/approval' - require 'travis/model/request/branches' require 'travis/model/request/pull_request' - require 'travis/model/request/states' - include States, SimpleStates + include SimpleStates serialize :token, Travis::Model::EncryptedColumn.new(disable: true) diff --git a/vendor/travis-core/lib/travis/model/request/approval.rb b/vendor/travis-core/lib/travis/model/request/approval.rb deleted file mode 100644 index cf47b469..00000000 --- a/vendor/travis-core/lib/travis/model/request/approval.rb +++ /dev/null @@ -1,130 +0,0 @@ -class Request - class Approval - attr_reader :request, :repository, :commit - - def initialize(request) - @request = request - @repository = request.repository - @commit = request.commit - end - - def settings - repository.settings - end - - delegate :build_pushes?, :build_pull_requests?, to: :settings - - def accepted? - commit.present? && - !repository.private? && - (!excluded_repository? || included_repository?) && - !skipped? && - !compare_url_too_long? && - enabled_in_settings? - end - - def enabled_in_settings? - request.api_request? || (request.pull_request? ? build_pull_requests? : build_pushes?) - end - - def disabled_in_settings? - !enabled_in_settings? - end - - def branch_accepted? - github_pages_explicitly_enabled? || !github_pages? - end - - def config_accepted? - (travis_yml_present? || allow_builds_without_travis_yml?) - end - - def travis_yml_present? - request.config && request.config['.result'] == 'configured' - end - - def allow_builds_without_travis_yml? - !repository.builds_only_with_travis_yml? - end - - def compare_url_too_long? - commit.compare_url.length > 255 - end - - def approved? - accepted? && request.config.present? && branch_approved? && request.creates_jobs? - end - - def result - approved? ? :accepted : :rejected - end - - def message - if !commit.present? - 'missing commit' - elsif excluded_repository? - 'excluded repository' - elsif skipped? - 'skipped through commit message' - elsif disabled_in_settings? - request.pull_request? ? 'pull requests disabled' : 'pushes disabled' - elsif github_pages? - 'github pages branch' - elsif !branch_approved? || !branch_accepted? - 'branch not included or excluded' - elsif !config_accepted? - '.travis.yml is missing and builds without .travis.yml are disabled' - elsif repository.private? - 'private repository' - elsif !request.creates_jobs? - 'matrix created no jobs' - elsif compare_url_too_long? - 'compare URL too long; branch/tag names may be too long' - elsif request.config.blank? - 'config is missing or contains YAML syntax error' - end - end - - private - - def skipped? - Travis::CommitCommand.new(commit.message).skip? - end - - def github_pages_explicitly_enabled? - request.config && - request.config['branches'] && - request.config['branches'].is_a?(Hash) && - request.config['branches']['only'] && - Array(request.config['branches']['only']).grep(/gh[-_]pages/i) - end - - def github_pages? - commit.branch =~ /gh[-_]pages/i - end - - def excluded_repository? - exclude_rules.any? { |rule| repository.slug =~ rule } - end - - def included_repository? - include_rules.any? { |rule| repository.slug =~ rule } - end - - def include_rules - Travis.config.repository_filter.include.map { |rule| rule.is_a?(Regexp) ? rule : Regexp.new(rule) } - end - - def exclude_rules - Travis.config.repository_filter.exclude.map { |rule| rule.is_a?(Regexp) ? rule : Regexp.new(rule) } - end - - def branch_approved? - branches.included?(commit.branch) && !branches.excluded?(commit.branch) - end - - def branches - @branches ||= Branches.new(request) - end - end -end diff --git a/vendor/travis-core/lib/travis/model/request/branches.rb b/vendor/travis-core/lib/travis/model/request/branches.rb deleted file mode 100644 index 87e74de2..00000000 --- a/vendor/travis-core/lib/travis/model/request/branches.rb +++ /dev/null @@ -1,57 +0,0 @@ -class Request - - # Logic that figures out whether a branch is in- or excluded (white- or - # blacklisted) by the configuration (`.travis.yml`) - class Branches - attr_reader :request, :commit - - def initialize(request) - @request = request - @commit = request.commit - end - - def included?(branch) - !included || includes?(included, branch) - end - - def excluded?(branch) - excluded && includes?(excluded, branch) - end - - private - - def included - config['only'] - end - - def excluded - config['except'] - end - - def includes?(branches, branch) - branches.any? { |pattern| matches?(pattern, branch) } - end - - def matches?(pattern, branch) - pattern = pattern =~ %r{^/(.*)/$} ? Regexp.new($1) : pattern - pattern === branch - end - - def config - @config ||= case branches = request.config.try(:[], 'branches') - when Array - { :only => branches } - when String - { :only => split(branches) } - when Hash - branches.each_with_object({}) { |(k, v), result| result[k] = split(v) } - else - {} - end - end - - def split(branches) - branches.is_a?(String) ? branches.split(',').map(&:strip) : branches - end - end -end diff --git a/vendor/travis-core/lib/travis/model/request/states.rb b/vendor/travis-core/lib/travis/model/request/states.rb deleted file mode 100644 index 344d9ce0..00000000 --- a/vendor/travis-core/lib/travis/model/request/states.rb +++ /dev/null @@ -1,119 +0,0 @@ -require 'active_support/concern' -require 'simple_states' - -class Request - module States - extend ActiveSupport::Concern - include Travis::Event - - included do - include SimpleStates - - states :created, :started, :finished - event :start, :to => :started, :after => :configure - event :configure, :to => :configured, :after => :finish - event :finish, :to => :finished - event :all, :after => :notify - end - - def configure - if !accepted? - Travis.logger.warn("[request:configure] Request not accepted: event_type=#{event_type.inspect} commit=#{commit.try(:commit).inspect} message=#{approval.message.inspect}") - else - self.config = fetch_config.merge(config || {}) - - if branch_accepted? && config_accepted? - Travis.logger.info("[request:configure] Request successfully configured commit=#{commit.commit.inspect}") - else - self.config = nil - Travis.logger.warn("[request:configure] Request not accepted: event_type=#{event_type.inspect} commit=#{commit.try(:commit).inspect} message=#{approval.message.inspect}") - end - end - save! - end - - def finish - if config.blank? - Travis.logger.warn("[request:finish] Request not creating a build: config is blank or contains YAML syntax error, config=#{config.inspect} commit=#{commit.try(:commit).inspect}") - elsif !approved? - Travis.logger.warn("[request:finish] Request not creating a build: not approved commit=#{commit.try(:commit).inspect} message=#{approval.message.inspect}") - elsif parse_error? - Travis.logger.info("[request:finish] Request created but Build and Job automatically errored due to a config parsing error. commit=#{commit.try(:commit).inspect}") - add_parse_error_build - elsif server_error? - Travis.logger.info("[request:finish] Request created but Build and Job automatically errored due to a config server error. commit=#{commit.try(:commit).inspect}") - add_server_error_build - else - add_build_and_notify - Travis.logger.info("[request:finish] Request created a build. commit=#{commit.try(:commit).inspect}") - end - self.result = approval.result - self.message = approval.message - Travis.logger.info("[request:finish] Request finished. result=#{result.inspect} message=#{message.inspect} commit=#{commit.try(:commit).inspect}") - end - - def add_build - builds.create!(:repository => repository, :commit => commit, :config => config, :owner => owner) - end - - def add_build_and_notify - add_build.tap do |build| - build.notify(:created) if Travis.config.notify_on_build_created - end - end - - protected - - delegate :accepted?, :approved?, :branch_accepted?, :config_accepted?, :to => :approval - - def approval - @approval ||= Approval.new(self) - end - - def fetch_config - Travis.run_service(:github_fetch_config, request: self) # TODO move to a service, have it pass the config to configure - end - - def add_parse_error_build - Build.transaction do - build = add_build - job = build.matrix.first - job.start!(started_at: Time.now.utc) - job.log_content = < Date: Sun, 19 Jun 2016 15:51:41 +0200 Subject: [PATCH 09/17] remove overwritable_method_definitions --- lib/travis.rb | 1 - .../lib/travis/model/repository/settings.rb | 1 - .../travis/overwritable_method_definitions.rb | 39 ------------------- vendor/travis-core/lib/travis/settings.rb | 2 - 4 files changed, 43 deletions(-) delete mode 100644 vendor/travis-core/lib/travis/overwritable_method_definitions.rb diff --git a/lib/travis.rb b/lib/travis.rb index a1a1a123..cf1fc094 100644 --- a/lib/travis.rb +++ b/lib/travis.rb @@ -4,7 +4,6 @@ require 'travis/support/database' require 'travis/version' require 'travis/redis_pool' require 'travis/errors' -require 'travis/commit_command' module Travis class << self diff --git a/vendor/travis-core/lib/travis/model/repository/settings.rb b/vendor/travis-core/lib/travis/model/repository/settings.rb index 86060fd7..5e205483 100644 --- a/vendor/travis-core/lib/travis/model/repository/settings.rb +++ b/vendor/travis-core/lib/travis/model/repository/settings.rb @@ -1,7 +1,6 @@ # encoding: utf-8 require 'coercible' require 'travis/settings' -require 'travis/overwritable_method_definitions' require 'travis/settings/encrypted_value' require 'openssl' diff --git a/vendor/travis-core/lib/travis/overwritable_method_definitions.rb b/vendor/travis-core/lib/travis/overwritable_method_definitions.rb deleted file mode 100644 index 9225e9ed..00000000 --- a/vendor/travis-core/lib/travis/overwritable_method_definitions.rb +++ /dev/null @@ -1,39 +0,0 @@ -module Travis - # OverwritableMethodDefinitions module allows to easily define methods which will be - # overwritable in the same class. For example, given such a class: - # - # class Foo - # include Travis::OverwritableMethodDefinitions - # - # define_overwritable_method :foo do - # 'foo' - # end - # - # def foo - # super + '!' - # end - # end - # - # Foo.new.foo #=> foo! - module OverwritableMethodDefinitions - def self.included(base) - base.extend(ClassMethods) - base.initialize_overwritable_methods_module - end - - module ClassMethods - def inherited(child) - child.initialize_overwritable_methods_module - end - - def initialize_overwritable_methods_module - @generated_overwritable_methods = Module.new - include @generated_overwritable_methods - end - - def define_overwritable_method(*args, &block) - @generated_overwritable_methods.send :define_method, *args, &block - end - end - end -end diff --git a/vendor/travis-core/lib/travis/settings.rb b/vendor/travis-core/lib/travis/settings.rb index dcaf9eb9..d81e0ab1 100644 --- a/vendor/travis-core/lib/travis/settings.rb +++ b/vendor/travis-core/lib/travis/settings.rb @@ -1,12 +1,10 @@ require 'coercible' -require 'travis/overwritable_method_definitions' require 'travis/settings/collection' require 'travis/settings/model' require 'travis/settings/model_extensions' module Travis class Settings - include Travis::OverwritableMethodDefinitions include Virtus.model include ActiveModel::Validations include Travis::Settings::ModelExtensions From 734a7b9566c91fcbe6a3367aaa89fc229e4a227c Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 16:00:24 +0200 Subject: [PATCH 10/17] use travis-settings, remove travis/settings --- Gemfile | 3 +- Gemfile.lock | 11 +- vendor/travis-core/lib/travis/model/user.rb | 2 +- vendor/travis-core/lib/travis/settings.rb | 65 ------- .../lib/travis/settings/collection.rb | 79 -------- .../lib/travis/settings/encrypted_value.rb | 62 ------ .../travis-core/lib/travis/settings/model.rb | 39 ---- .../lib/travis/settings/model_extensions.rb | 177 ------------------ vendor/travis-core/lib/travis/states_cache.rb | 2 + 9 files changed, 15 insertions(+), 425 deletions(-) delete mode 100644 vendor/travis-core/lib/travis/settings.rb delete mode 100644 vendor/travis-core/lib/travis/settings/collection.rb delete mode 100644 vendor/travis-core/lib/travis/settings/encrypted_value.rb delete mode 100644 vendor/travis-core/lib/travis/settings/model.rb delete mode 100644 vendor/travis-core/lib/travis/settings/model_extensions.rb diff --git a/Gemfile b/Gemfile index 8bdd51f8..ab1dc3bf 100644 --- a/Gemfile +++ b/Gemfile @@ -3,10 +3,11 @@ gemspec gem 's3', github: 'travis-ci/s3' -gem 'travis-core', path: 'vendor' +gem 'travis-core', path: 'vendor/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-settings', github: 'travis-ci/travis-settings' gem 'travis-sidekiqs', github: 'travis-ci/travis-sidekiqs' gem 'travis-yaml', github: 'travis-ci/travis-yaml' diff --git a/Gemfile.lock b/Gemfile.lock index 81285ce2..0dda637b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -45,6 +45,14 @@ GIT specs: travis-migrations (0.0.2) +GIT + remote: git://github.com/travis-ci/travis-settings.git + revision: d510e63b6c6f059cccae141c265e7a0c7236d1fd + specs: + travis-settings (0.0.1) + activemodel + virtus + GIT remote: git://github.com/travis-ci/travis-sidekiqs.git revision: c5d4a4abc6c3737f9c43d3333efb94daa18b9fbb @@ -93,7 +101,7 @@ PATH virtus (~> 1.0.0) PATH - remote: vendor + remote: vendor/travis-core specs: travis-core (0.0.1) activerecord (~> 3.2.19) @@ -403,6 +411,7 @@ DEPENDENCIES travis-config (~> 0.1.0) travis-core! travis-migrations! + travis-settings! travis-sidekiqs! travis-support! travis-yaml! diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index 692918d0..5a44a7ef 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -142,7 +142,7 @@ class User < Travis::Model end def invalid_github_scopes? - Travis.env == 'production' and (github_oauth_token_changed? or github_scopes.blank?) + Travis.env != 'test' and (github_oauth_token_changed? or github_scopes.blank?) end def set_as_recent diff --git a/vendor/travis-core/lib/travis/settings.rb b/vendor/travis-core/lib/travis/settings.rb deleted file mode 100644 index d81e0ab1..00000000 --- a/vendor/travis-core/lib/travis/settings.rb +++ /dev/null @@ -1,65 +0,0 @@ -require 'coercible' -require 'travis/settings/collection' -require 'travis/settings/model' -require 'travis/settings/model_extensions' - -module Travis - class Settings - include Virtus.model - include ActiveModel::Validations - include Travis::Settings::ModelExtensions - - def on_save(&block) - @on_save = block - self - end - - def merge(hash) - hash.each { |k, v| - set(k, v) unless collection?(k) || model?(k) - } - end - - def obfuscated - to_hash - end - - def save - if valid? - @on_save.call - end - end - - def to_json - to_hash.to_json - end - - def to_hash - result = super - - result.each do |key, value| - if value.respond_to?(:to_hash) - result[key] = value.to_hash - end - end - - result - end - end - - module DefaultSettings - def initialize(*) - super - - freeze - end - - def merge(*) - raise "merge is not supported on default settings" - end - - def set(key, value) - raise "setting values is not supported on default settings" - end - end -end diff --git a/vendor/travis-core/lib/travis/settings/collection.rb b/vendor/travis-core/lib/travis/settings/collection.rb deleted file mode 100644 index 8d378756..00000000 --- a/vendor/travis-core/lib/travis/settings/collection.rb +++ /dev/null @@ -1,79 +0,0 @@ -class Travis::Settings - class Collection - include Enumerable - - delegate :each, :<<, :push, :delete, :length, :first, :last, to: '@collection' - attr_accessor :additional_attributes - - class << self - # This feels a bit weird, but I don't know how to do it better. - # Virtus checks for collection type by checking an array member, - # so if you pass Array[String], a collection type will be set to String. - # Here, we already specify what is a model class for a collection. - # In order to not have to specify class twice, I created this method - # which creates just what Virtus needs. - def for_virtus - self[model_class] - end - - def [](*args) - new(*args) - end - - def model(model_name_or_class = nil) - if model_name_or_class - klass = if model_name_or_class.is_a?(String) || model_name_or_class.is_a?(Symbol) - name = model_name_or_class.to_s.classify - self.const_defined?(name, false) ? self.const_get(name, false) : Travis::Settings.const_get(name, false) - else - model_name_or_class - end - - @model_class = klass - else - @model_class - end - end - attr_reader :model_class - end - - delegate :model_class, to: 'self.class' - - def initialize(*args) - @collection = Array[*args] - end - - def create(attributes) - model = model_class.new(attributes) - model.load({}, additional_attributes) - model.id = SecureRandom.uuid unless model.id - push model - model - end - - def find(id) - detect { |model| model.id == id.to_s } - end - - def destroy(id) - record = find(id) - if record - delete record - record - end - end - - def to_hash - @collection.map(&:to_hash) - end - - def load(collection, additional_attributes = {}) - self.additional_attributes = additional_attributes - return unless collection.respond_to?(:each) - - collection.each do |element| - self.push model_class.load(element, additional_attributes) - end - end - end -end diff --git a/vendor/travis-core/lib/travis/settings/encrypted_value.rb b/vendor/travis-core/lib/travis/settings/encrypted_value.rb deleted file mode 100644 index a9b852e6..00000000 --- a/vendor/travis-core/lib/travis/settings/encrypted_value.rb +++ /dev/null @@ -1,62 +0,0 @@ -require 'virtus' - -class Travis::Settings - class EncryptedValue - include Virtus.value_object - attr_reader :value, :key - - values do - attribute :value, String - end - - def initialize(value) - if value.is_a? String - # a value is set through the accessor, not loaded in jason, we - # need to encrypt it and put into hash form - value = { value: encrypt(value) } - end - - super value - end - - def to_s - value - end - - def to_str - value - end - - def to_json(*) - as_json.to_json - end - - def as_json(*) - value - end - - def to_hash - value - end - - def inspect - "" - end - - def key - Travis.config.encryption.key - end - - def encrypt(value) - Travis::Model::EncryptedColumn.new(key: key, use_prefix: false).dump(value) - end - - def decrypt - Travis::Model::EncryptedColumn.new(key: key, use_prefix: false).load(value) - end - - def load(value, additional_attributes = nil) - self.instance_variable_set('@value', value) - end - end -end diff --git a/vendor/travis-core/lib/travis/settings/model.rb b/vendor/travis-core/lib/travis/settings/model.rb deleted file mode 100644 index 37b97f7c..00000000 --- a/vendor/travis-core/lib/travis/settings/model.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'virtus' -require 'travis/settings/encrypted_value' -require 'travis/settings/model_extensions' - -class Travis::Settings - class Model - include Virtus.model - include ActiveModel::Validations - include ModelExtensions - include ActiveModel::Serialization - - def attribute?(name) - attributes.keys.include?(name.to_sym) - end - - def read_attribute_for_serialization(name) - self.send(name) if attribute?(name) - end - - def read_attribute_for_validation(name) - return unless attribute?(name) - - value = self.send(name) - value.is_a?(EncryptedValue) ? value.to_s : value - end - - def update(attributes) - self.attributes = attributes - end - - def key - Travis.config.encryption.key - end - - def to_json - to_hash.to_json - end - end -end diff --git a/vendor/travis-core/lib/travis/settings/model_extensions.rb b/vendor/travis-core/lib/travis/settings/model_extensions.rb deleted file mode 100644 index 46f19a47..00000000 --- a/vendor/travis-core/lib/travis/settings/model_extensions.rb +++ /dev/null @@ -1,177 +0,0 @@ -module Travis - class Settings - module AccessorExtensions - def set(instance, value) - if instance.frozen? - raise 'setting values is not supported on default settings' - end - - super - end - - def get(instance) - if type.primitive <= Travis::Settings::EncryptedValue - unless instance.instance_variable_get(instance_variable_name) - value = Travis::Settings::EncryptedValue.new(nil) - if instance.frozen? - return value - else - set(instance, value) - end - end - end - - super instance - end - end - - module ModelExtensions - class Errors < ActiveModel::Errors - # Default behavior of Errors in Active Model is to - # translate symbolized message into full text message, - # using i18n if available. I don't want such a behavior, - # as I want to return error "codes" like :blank, not - # full text like "can't be blank" - def normalize_message(attribute, message, options) - message || :invalid - end - end - - module ClassMethods - def attribute(name, type = nil, options = {}) - options[:finalize] = false - - super name, type, options - - attribute = attribute_set[name] - attribute.extend(AccessorExtensions) - attribute.finalize - attribute.define_accessor_methods(attribute_set) - - self - end - - def load(json, additional_attributes = {}) - instance = new() - - json = JSON.parse(json) if json.is_a?(String) - instance.load json, additional_attributes - instance - end - end - - def self.included(base) - base.extend ClassMethods - end - - def additional_attributes - @additional_attributes || {} - end - - def additional_attributes=(hash = {}) - attribute_set.each do |attribute| - value = get(attribute.name) - if value.respond_to?(:additional_attributes=) - value.additional_attributes = hash - end - end - @additional_attributes = hash - end - - def errors - @errors ||= Errors.new(self) - end - - def attribute?(key) - attributes.keys.include? key.to_sym - end - - def to_hash - attributes.each_with_object({}) do |(name, value), hash| - hash[name] = value.respond_to?(:to_hash) ? value.to_hash : value - end - end - - def collection?(name) - # TODO: I don't like this type of class checking, it will be better to work - # based on an API contract, but it should do for now - if attribute = attribute_set[name.to_sym] - attribute.type.primitive <= Travis::Settings::Collection - end - end - - def encrypted?(name) - if attribute = attribute_set[name.to_sym] - attribute.type.primitive <= Travis::Settings::EncryptedValue - end - end - - def model?(name) - if attribute = attribute_set[name.to_sym] - attribute.type.primitive <= Travis::Settings::Model - end - end - - def primitive(name) - attribute_set[name.to_sym].type.primitive - end - - def get(key) - if attribute?(key) - self.send(key) - end - end - - def set(key, value) - if attribute?(key) - self.send("#{key}=", value) - end - end - - def simple_attributes - attributes.select { |k, v| simple_attribute?(k) } - end - - def simple_attribute?(key) - !(collection?(key) || encrypted?(key) || model?(key)) - end - - def load(hash = {}, additional_attributes = {}) - hash ||= {} - self.additional_attributes = additional_attributes || {} - - hash.merge(self.additional_attributes).each do |key, value| - if collection?(key) || encrypted?(key) || model?(key) - thing = get(key) - thing = set(key, primitive(key).new) if !thing && value - thing.load(value, self.additional_attributes) if thing - elsif attribute?(key) - set(key, value) - end - end - end - - def create(key, attributes) - attributes = (attributes || {}).merge(additional_attributes || {}) - set(key, primitive(key).new(attributes)) - get(key) - end - - def delete(key) - model = get(key) - set(key, nil) - model - end - - def update(key, attributes) - attributes = (attributes || {}).merge(additional_attributes || {}) - if model = get(key) - model.update(attributes) - model - else - create(key, attributes) - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/states_cache.rb b/vendor/travis-core/lib/travis/states_cache.rb index 145e14c8..03a43390 100644 --- a/vendor/travis-core/lib/travis/states_cache.rb +++ b/vendor/travis-core/lib/travis/states_cache.rb @@ -3,6 +3,8 @@ require 'connection_pool' require 'active_support/core_ext/module/delegation' require 'travis/api/serialize' +# TODO compare commit history to travis-states-cache, and start using it + module Travis class StatesCache class CacheError < StandardError; end From 84ebb6b24ed5dcec499356c8be7aaaac226bcd58 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 17:33:03 +0200 Subject: [PATCH 11/17] move tracking github oauth scopes out of the user model, and into Travis::Github::Oauth --- lib/travis/api/app/endpoint/authorization.rb | 5 +- lib/travis/api/serialize/v2/http/user.rb | 3 +- .../authorization/user_manager_spec.rb | 1 + spec/unit/endpoint/authorization_spec.rb | 3 - spec/unit/endpoint/users_spec.rb | 1 + spec/unit/serialize/v2/http/user_spec.rb | 2 + spec_core/github/oauth_spec.rb | 65 +++++++++++++++++++ spec_core/model/user_spec.rb | 50 +------------- vendor/travis-core/lib/travis/github.rb | 11 +--- vendor/travis-core/lib/travis/github/oauth.rb | 51 +++++++++++++++ vendor/travis-core/lib/travis/model/user.rb | 39 +++++------ .../lib/travis/model/user/oauth.rb | 5 -- .../travis-core/lib/travis/testing/stubs.rb | 3 +- 13 files changed, 146 insertions(+), 93 deletions(-) create mode 100644 spec_core/github/oauth_spec.rb create mode 100644 vendor/travis-core/lib/travis/github/oauth.rb diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index bfc4f1e5..f5ccc09d 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -4,6 +4,7 @@ require 'securerandom' require 'customerio' require 'travis/api/app' require 'travis/github/education' +require 'travis/github/oauth' class Travis::Api::App class Endpoint @@ -290,6 +291,8 @@ class Travis::Api::App self.user = ::User.create! info end + Travis::Github::Oauth.track_scopes(user) # unless Travis.env == 'test' + nullify_logins(user.github_id, user.login) end @@ -341,7 +344,7 @@ class Travis::Api::App end def acceptable?(scopes, lossy = false) - User::Oauth.wanted_scopes.all? do |scope| + Travis::Github::Oauth.wanted_scopes.all? do |scope| acceptable_scopes_for(scope, lossy).any? { |s| scopes.include? s } end end diff --git a/lib/travis/api/serialize/v2/http/user.rb b/lib/travis/api/serialize/v2/http/user.rb index e7bbbf55..e414d961 100644 --- a/lib/travis/api/serialize/v2/http/user.rb +++ b/lib/travis/api/serialize/v2/http/user.rb @@ -1,4 +1,5 @@ require 'travis/api/serialize/formats' +require 'travis/github/oauth' module Travis module Api @@ -33,7 +34,7 @@ module Travis 'locale' => user.locale, 'is_syncing' => user.syncing?, 'synced_at' => format_date(user.synced_at), - 'correct_scopes' => user.correct_scopes?, + 'correct_scopes' => Github::Oauth.correct_scopes?(user), 'created_at' => format_date(user.created_at), 'channels' => channels } diff --git a/spec/unit/endpoint/authorization/user_manager_spec.rb b/spec/unit/endpoint/authorization/user_manager_spec.rb index 0dd28728..0954c131 100644 --- a/spec/unit/endpoint/authorization/user_manager_spec.rb +++ b/spec/unit/endpoint/authorization/user_manager_spec.rb @@ -3,6 +3,7 @@ describe Travis::Api::App::Endpoint::Authorization::UserManager do before do Travis::Features.enable_for_all(:education_data_sync) + Travis::Github::Oauth.stubs(:track_scopes) # TODO test that scopes are being updated end describe '#info' do diff --git a/spec/unit/endpoint/authorization_spec.rb b/spec/unit/endpoint/authorization_spec.rb index 5ca8b830..7d33ef64 100644 --- a/spec/unit/endpoint/authorization_spec.rb +++ b/spec/unit/endpoint/authorization_spec.rb @@ -68,9 +68,6 @@ describe Travis::Api::App::Endpoint::Authorization do after do Travis.redis.srem('github:states', 'github-state') - # this is cached after first run, so if we change scopes, it will stay - # like that for the rest of the run - User::Oauth.instance_variable_set("@wanted_scopes", nil) end # in endpoint/authorization.rb 271, get_token faraday raises the exception: diff --git a/spec/unit/endpoint/users_spec.rb b/spec/unit/endpoint/users_spec.rb index 140c0119..7b4d5770 100644 --- a/spec/unit/endpoint/users_spec.rb +++ b/spec/unit/endpoint/users_spec.rb @@ -7,6 +7,7 @@ describe Travis::Api::App::Endpoint::Users, set_app: true do User.stubs(:find).returns(user) user.stubs(:repositories).returns(stub(administratable: stub(select: [repository]))) user.stubs(:repository_ids).returns([1, 2, 3]) + user.stubs(:github_scopes).returns(['public_repo', 'user:email']) end it 'needs to be authenticated' do diff --git a/spec/unit/serialize/v2/http/user_spec.rb b/spec/unit/serialize/v2/http/user_spec.rb index 45b58fca..b0ccc157 100644 --- a/spec/unit/serialize/v2/http/user_spec.rb +++ b/spec/unit/serialize/v2/http/user_spec.rb @@ -4,6 +4,8 @@ describe Travis::Api::Serialize::V2::Http::User do let(:user) { stub_user(repository_ids: [1, 4, 8]) } let(:data) { described_class.new(user).data } + before { user.stubs(:github_scopes).returns(['public_repo', 'user:email']) } + it 'user' do data['user'].should == { 'id' => 1, diff --git a/spec_core/github/oauth_spec.rb b/spec_core/github/oauth_spec.rb new file mode 100644 index 00000000..eb7fe169 --- /dev/null +++ b/spec_core/github/oauth_spec.rb @@ -0,0 +1,65 @@ +describe Travis::Github::Oauth do + let(:user) { Factory(:user, github_oauth_token: 'token', github_scopes: scopes) } + + describe 'correct_scopes?' do + let(:scopes) { ['public_repo', 'user:email'] } + subject { described_class.correct_scopes?(user) } + + it 'accepts correct scopes' do + should eq true + end + + it 'complains about missing scopes' do + user.github_scopes.pop + should eq false + end + + it 'accepts additional scopes' do + user.github_scopes << 'foo' + should eq true + end + end + + describe 'track_scopes' do + before { user.reload } + + describe 'the token did not change' do + let(:scopes) { ['public_repo', 'user:email'] } + + it 'does not resolve github scopes' do + Travis::Github::Oauth.expects(:scopes_for).never + described_class.track_scopes(user) + end + end + + describe 'the token has changed' do + let(:scopes) { ['public_repo', 'user:email'] } + + before do + user.github_oauth_token = 'changed' + user.save! + end + + it 'updates github scopes' do + Travis::Github::Oauth.expects(:scopes_for).returns(['foo', 'bar']) + described_class.track_scopes(user) + expect(user.reload.github_scopes).to eq ['foo', 'bar'] + end + end + + describe 'no scopes have been set so far' do + let(:scopes) { nil } + + before do + user.github_oauth_token = 'changed' + user.save! + end + + it 'updates github scopes' do + Travis::Github::Oauth.expects(:scopes_for).returns(['foo', 'bar']) + described_class.track_scopes(user) + expect(user.reload.github_scopes).to eq ['foo', 'bar'] + end + end + end +end diff --git a/spec_core/model/user_spec.rb b/spec_core/model/user_spec.rb index ebc8fb97..c3b653d5 100644 --- a/spec_core/model/user_spec.rb +++ b/spec_core/model/user_spec.rb @@ -165,34 +165,7 @@ describe User do end end - describe 'track_github_scopes' do - before { user.save! } - - it "does not resolve github scopes if the token didn't change" do - user.github_scopes = ['public_repo', 'user:email'] - user.save! - Travis::Github.expects(:scopes_for).never - user.save! - end - - it "it resolves github scopes if the token did change" do - ENV['ENV'] = 'production' # TODO see user.rb ... move this out of the model. - Travis::Github.expects(:scopes_for).with(user).returns(['foo', 'bar']) - user.github_oauth_token = 'new_token' - user.save! - user.github_scopes.should be == ['foo', 'bar'] - ENV['ENV'] = 'test' - end - - it "it resolves github scopes if they haven't been resolved already" do - ENV['ENV'] = 'production' # TODO see user.rb ... move this out of the model. - Travis::Github.expects(:scopes_for).with(user).returns(['foo', 'bar']) - user.github_scopes = nil - user.save! - user.github_scopes.should be == ['foo', 'bar'] - ENV['ENV'] = 'test' - end - + describe 'github_scopes' do it 'returns an empty list if the token is missing' do user.github_scopes = ['foo'] user.github_oauth_token = nil @@ -200,27 +173,6 @@ describe User do end end - describe 'correct_scopes?' do - before do - user.github_scopes = ['public_repo', 'user:email'] - user.save! - end - - it "accepts correct scopes" do - user.should be_correct_scopes - end - - it "complains about missing scopes" do - user.github_scopes.pop - user.should_not be_correct_scopes - end - - it "accepts additional scopes" do - user.github_scopes << "foo" - user.should be_correct_scopes - end - end - describe 'inspect' do context 'when user has GitHub OAuth token' do before :each do diff --git a/vendor/travis-core/lib/travis/github.rb b/vendor/travis-core/lib/travis/github.rb index 78ea5050..3afc1d72 100644 --- a/vendor/travis-core/lib/travis/github.rb +++ b/vendor/travis-core/lib/travis/github.rb @@ -1,6 +1,7 @@ require 'gh' require 'core_ext/hash/compact' require 'travis/github/education' +require 'travis/github/oauth' require 'travis/github/services' module Travis @@ -21,16 +22,6 @@ module Travis fail "we don't have a github token for #{user.inspect}" if user.github_oauth_token.blank? GH.with(:token => user.github_oauth_token, &block) end - - # TODO: Maybe this should move to gh? - def scopes_for(token) - token = token.github_oauth_token if token.respond_to? :github_oauth_token - scopes = GH.with(token: token.to_s) { GH.head('user') }.headers['x-oauth-scopes'] if token.present? - scopes &&= scopes.gsub(/\s/,'').split(',') - Array(scopes).sort - rescue GH::Error - [] - end end end end diff --git a/vendor/travis-core/lib/travis/github/oauth.rb b/vendor/travis-core/lib/travis/github/oauth.rb new file mode 100644 index 00000000..969152a4 --- /dev/null +++ b/vendor/travis-core/lib/travis/github/oauth.rb @@ -0,0 +1,51 @@ +module Travis + module Github + module Oauth + class TrackScopes < Struct.new(:user) + def run + update if update? + end + + private + + def update + user.github_scopes = Oauth.scopes_for(user) + user.save! + end + + def update? + github_oauth_token_changed?(user) or user.github_scopes.blank? + end + + def github_oauth_token_changed?(user) + user.github_oauth_token_changed? or user.previous_changes.key?('github_oauth_token') + end + end + + class << self + def track_scopes(user) + TrackScopes.new(user).run + end + + def correct_scopes?(user) + missing = wanted_scopes - user.github_scopes + missing.empty? + end + + def wanted_scopes + Travis.config.oauth2.scope.to_s.split(',').sort + end + + # TODO: Maybe this should move to gh? + def scopes_for(token) + token = token.github_oauth_token if token.respond_to? :github_oauth_token + scopes = GH.with(token: token.to_s) { GH.head('user') }.headers['x-oauth-scopes'] if token.present? + scopes &&= scopes.gsub(/\s/,'').split(',') + Array(scopes).sort + rescue GH::Error + [] + end + end + end + end +end diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index 5a44a7ef..89a2ec9c 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -1,5 +1,6 @@ require 'gh' require 'travis/model' +require 'travis/github/oauth' class User < Travis::Model require 'travis/model/user/oauth' @@ -16,9 +17,9 @@ class User < Travis::Model before_create :set_as_recent after_create :create_a_token after_commit :sync, on: :create + before_save :track_previous_changes serialize :github_scopes - before_save :track_github_scopes serialize :github_oauth_token, Travis::Model::EncryptedColumn.new @@ -65,7 +66,7 @@ class User < Travis::Model end def sync - Travis.run_service(:sync_user, self) # TODO remove once apps use the service + Travis.run_service(:sync_user, self) # TODO move to the authentication endpoint, or create a separate service end def syncing? @@ -102,7 +103,7 @@ class User < Travis::Model end def recently_signed_up? - @recently_signed_up || false + !!@recently_signed_up end def profile_image_hash @@ -113,36 +114,30 @@ class User < Travis::Model end def github_scopes - return [] unless github_oauth_token - read_attribute(:github_scopes) || [] - end - - def correct_scopes? - missing = Oauth.wanted_scopes - github_scopes - missing.empty? + github_oauth_token && read_attribute(:github_scopes) || [] end def avatar_url "https://0.gravatar.com/avatar/#{profile_image_hash}" end + def previous_changes + @previous_changes ||= {} + end + + def reload + @previous_changes = nil + super + end + def inspect - if github_oauth_token - super.gsub(github_oauth_token, '[REDACTED]') - else - super - end + github_oauth_token ? super.gsub(github_oauth_token, '[REDACTED]') : super end protected - # TODO this accesses GitHub during tests. should move initializing the scopes out of the model. - def track_github_scopes - self.github_scopes = Travis::Github.scopes_for(self) if invalid_github_scopes? - end - - def invalid_github_scopes? - Travis.env != 'test' and (github_oauth_token_changed? or github_scopes.blank?) + def track_previous_changes + @previous_changes = changes end def set_as_recent diff --git a/vendor/travis-core/lib/travis/model/user/oauth.rb b/vendor/travis-core/lib/travis/model/user/oauth.rb index 17ccf6d9..d8a9e5ab 100644 --- a/vendor/travis-core/lib/travis/model/user/oauth.rb +++ b/vendor/travis-core/lib/travis/model/user/oauth.rb @@ -1,11 +1,6 @@ class User module Oauth class << self - def wanted_scopes - return [] unless Travis.config.oauth2.scope - @wanted_scopes ||= Travis.config.oauth2.scope.split(',').sort - end - def find_or_create_by(payload) attrs = attributes_from(payload) user = User.find_by_github_id(attrs['github_id']) diff --git a/vendor/travis-core/lib/travis/testing/stubs.rb b/vendor/travis-core/lib/travis/testing/stubs.rb index f4b08611..5a8fe51a 100644 --- a/vendor/travis-core/lib/travis/testing/stubs.rb +++ b/vendor/travis-core/lib/travis/testing/stubs.rb @@ -290,8 +290,7 @@ module Travis is_syncing: false, synced_at: Time.now.utc - 3600, tokens: [stub('token', token: 'token')], - github_scopes: Travis.config.oauth2.to_h[:scopes].to_s.split(','), - correct_scopes?: true, + github_scopes: Travis.config.oauth2.scopes.to_s.split(','), created_at: Time.now.utc - 7200 ) end From 060dd8aced2a492c6911e2e55a911701274cc2c7 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 19 Jun 2016 17:40:23 +0200 Subject: [PATCH 12/17] delete github/find_or_create[org|repo|user] services --- Rakefile | 17 +--- .../travis-core/lib/travis/github/services.rb | 7 +- .../github/services/find_or_create_org.rb | 80 ------------------- .../github/services/find_or_create_repo.rb | 44 ---------- .../github/services/find_or_create_user.rb | 66 --------------- vendor/travis-core/lib/travis/model/user.rb | 1 + 6 files changed, 4 insertions(+), 211 deletions(-) delete mode 100644 vendor/travis-core/lib/travis/github/services/find_or_create_org.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/find_or_create_repo.rb delete mode 100644 vendor/travis-core/lib/travis/github/services/find_or_create_user.rb diff --git a/Rakefile b/Rakefile index 27b2da1b..dde12314 100644 --- a/Rakefile +++ b/Rakefile @@ -26,7 +26,7 @@ end # not sure how else to include the spec_helper namespace :spec do desc 'Run all specs' - task :api do + task :all do sh 'bundle exec rspec -r spec_helper spec spec_core' end @@ -42,18 +42,3 @@ namespace :spec do end task :default => :'spec:all' - -desc "generate gemspec" -task 'travis-api.gemspec' do - content = File.read 'travis-api.gemspec' - - 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 -task default: 'travis-api.gemspec' diff --git a/vendor/travis-core/lib/travis/github/services.rb b/vendor/travis-core/lib/travis/github/services.rb index 4f2b028a..b955f341 100644 --- a/vendor/travis-core/lib/travis/github/services.rb +++ b/vendor/travis-core/lib/travis/github/services.rb @@ -1,11 +1,8 @@ +require 'travis/github/services/set_hook' + module Travis module Github module Services - require 'travis/github/services/find_or_create_org' - require 'travis/github/services/find_or_create_repo' - require 'travis/github/services/find_or_create_user' - require 'travis/github/services/set_hook' - class << self def register constants(false).each { |name| const_get(name) } diff --git a/vendor/travis-core/lib/travis/github/services/find_or_create_org.rb b/vendor/travis-core/lib/travis/github/services/find_or_create_org.rb deleted file mode 100644 index 7bb4e748..00000000 --- a/vendor/travis-core/lib/travis/github/services/find_or_create_org.rb +++ /dev/null @@ -1,80 +0,0 @@ -require 'gh' -require 'travis/services/base' -require 'travis/model/organization' -require 'travis/model/repository' -require 'travis/model/user' - -module Travis - module Github - module Services - class FindOrCreateOrg < Travis::Services::Base - register :github_find_or_create_org - - def run - find || create - end - - private - - def find - ::Organization.where(:github_id => params[:github_id]).first.tap do |organization| - if organization - ActiveRecord::Base.transaction do - login = params[:login] || data['login'] - if organization.login != login - Repository.where(owner_name: organization.login). - update_all(owner_name: login) - organization.update_attributes(login: login) - end - - nullify_logins(organization.github_id, organization.login) - end - end - end - end - - def nullify_logins(github_id, login) - users = User.where(["login = ?", login]) - if users.exists? - Travis.logger.info("About to nullify login (#{login}) for users: #{users.map(&:id).join(', ')}") - users.update_all(login: nil) - end - - organizations = Organization.where(["github_id <> ? AND login = ?", github_id, login]) - if organizations.exists? - Travis.logger.info("About to nullify login (#{login}) for organizations: #{organizations.map(&:id).join(', ')}") - organizations.update_all(login: nil) - end - end - - def create - organization = Organization.create!( - :name => data['name'], - :login => data['login'], - :github_id => data['id'], - :email => data['email'], - :location => data['location'], - :avatar_url => data['_links'] && data['_links']['avatar'].try(:fetch, 'href'), - :company => data['company'], - :homepage => data['_links'] && data['_links']['blog'].try(:fetch, 'href') - ) - - nullify_logins(organization.github_id, organization.login) - - organization - rescue ActiveRecord::RecordNotUnique - find - end - - def avatar_url(github_data) - href = github_data.try(:fetch, 'href') - href ? href[/^(https:\/\/[\w\.\/]*)/, 1] : nil - end - - def data - @data ||= GH["organizations/#{params[:github_id]}"] || raise(Travis::GithubApiError) - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/find_or_create_repo.rb b/vendor/travis-core/lib/travis/github/services/find_or_create_repo.rb deleted file mode 100644 index c85835cf..00000000 --- a/vendor/travis-core/lib/travis/github/services/find_or_create_repo.rb +++ /dev/null @@ -1,44 +0,0 @@ -module Travis - module Github - module Services - class FindOrCreateRepo < Travis::Services::Base - register :github_find_or_create_repo - - def run - repo = find || create - repo.update_attributes(params) - repo - end - - private - - def find - unless params[:github_id] - message = "No github_id passed to FindOrCreateRepo#find, params: #{params.inspect}" - ActiveSupport::Deprecation.warn(message) - Travis.logger.info(message) - end - - query = if params[:github_id] - { github_id: params[:github_id] } - else - { owner_name: params[:owner_name], name: params[:name] } - end - - run_service(:find_repo, query) - end - - def create - unless params[:github_id] - message = "No github_id passed to FindOrCreateRepo#find, params: #{params.inspect}" - ActiveSupport::Deprecation.warn(message) - Travis.logger.info(message) - end - Repository.create!(:owner_name => params[:owner_name], :name => params[:name], github_id: params[:github_id]) - rescue ActiveRecord::RecordNotUnique - find - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/github/services/find_or_create_user.rb b/vendor/travis-core/lib/travis/github/services/find_or_create_user.rb deleted file mode 100644 index 839eb5e8..00000000 --- a/vendor/travis-core/lib/travis/github/services/find_or_create_user.rb +++ /dev/null @@ -1,66 +0,0 @@ -require 'gh' -require 'travis/model/repository' -require 'travis/model/user' -require 'travis/model/user/renaming' -require 'travis/services/base' - -module Travis - module Github - module Services - class FindOrCreateUser < Travis::Services::Base - register :github_find_or_create_user - - def run - find || create - end - - private - - include ::User::Renaming - - def find - ::User.where(github_id: params[:github_id]).first.tap do |user| - if user - ActiveRecord::Base.transaction do - login = params[:login] || data['login'] - if user.login != login - Travis.logger.info("Changing # login: current=\"#{user.login}\", new=\"#{login}\" (FindOrCreateUser), data: #{data.inspect}") - rename_repos_owner(user.login, login) - user.update_attributes(login: login) - end - end - - nullify_logins(user.github_id, user.login) - end - end - end - - def create - user = User.create!( - :name => data['name'], - :login => data['login'], - :email => data['email'], - :github_id => data['id'], - :gravatar_id => data['gravatar_id'] - ) - - nullify_logins(user.github_id, user.login) - - user - rescue ActiveRecord::RecordNotUnique - find - end - - def data - @data ||= fetch_data - end - - def fetch_data - data = GH["user/#{params[:github_id]}"] || raise(Travis::GithubApiError) - Travis.logger.info("Fetching data for github_id=#{params[:github_id]} (FindOrCreateUser), data: #{data.inspect}") - data - end - end - end - end -end diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index 89a2ec9c..9cfe0fcf 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -4,6 +4,7 @@ require 'travis/github/oauth' class User < Travis::Model require 'travis/model/user/oauth' + require 'travis/model/user/renaming' has_many :tokens, dependent: :destroy has_many :memberships, dependent: :destroy From da4c7f26e6096c8d4409ee57cf268e0f75dc8d98 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Mon, 20 Jun 2016 15:04:38 +0200 Subject: [PATCH 13/17] fix auth endpoint --- lib/travis/api/app/endpoint/authorization.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index f5ccc09d..f89a9bd6 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -188,7 +188,7 @@ class Travis::Api::App end def serialize_user(user) - rendered = Travis::Api.data(user, version: :v2) + rendered = Travis::Api::Serialize.data(user, version: :v2) rendered['user'].merge('token' => user.tokens.first.try(:token).to_s) end From 6603990fe4aa43beb932e90d7071b3e2894f4646 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Mon, 20 Jun 2016 16:32:00 +0200 Subject: [PATCH 14/17] trigger sync in the auth endpoint, not the user model --- lib/travis/api/app/endpoint/authorization.rb | 1 + spec/unit/endpoint/authorization/user_manager_spec.rb | 2 +- vendor/travis-core/lib/travis/model/user.rb | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index f89a9bd6..2343c2d5 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -289,6 +289,7 @@ class Travis::Api::App user.update_attributes info else self.user = ::User.create! info + Travis.run_service(:sync_user, user) end Travis::Github::Oauth.track_scopes(user) # unless Travis.env == 'test' diff --git a/spec/unit/endpoint/authorization/user_manager_spec.rb b/spec/unit/endpoint/authorization/user_manager_spec.rb index 0954c131..9f3acf40 100644 --- a/spec/unit/endpoint/authorization/user_manager_spec.rb +++ b/spec/unit/endpoint/authorization/user_manager_spec.rb @@ -62,9 +62,9 @@ describe Travis::Api::App::Endpoint::Authorization::UserManager do context 'without existing user' do it 'creates new user' do - user = stub('user', login: 'drogus', github_id: 456) User.expects(:find_by_github_id).with(456).returns(nil) attributes = { login: 'drogus', github_id: 456, github_oauth_token: 'abc123', education: false }.stringify_keys + user = User.create(id: 1, login: 'drogus', github_id: 456) User.expects(:create!).with(attributes).returns(user) manager.stubs(:education).returns(false) diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index 9cfe0fcf..d2dedc8d 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -17,7 +17,7 @@ class User < Travis::Model before_create :set_as_recent after_create :create_a_token - after_commit :sync, on: :create + # after_commit :sync, on: :create before_save :track_previous_changes serialize :github_scopes @@ -66,9 +66,9 @@ class User < Travis::Model synced_at.nil? end - def sync - Travis.run_service(:sync_user, self) # TODO move to the authentication endpoint, or create a separate service - end + # def sync + # Travis.run_service(:sync_user, self) # TODO move to the authentication endpoint, or create a separate service + # end def syncing? is_syncing? From 7250656de00f29fbb86c114c3949452aa4049627 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 21 Jun 2016 12:07:21 +0200 Subject: [PATCH 15/17] fix event notification --- vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb | 2 +- vendor/travis-core/lib/travis/addons/pusher/event_handler.rb | 2 +- vendor/travis-core/lib/travis/addons/webhook/event_handler.rb | 2 +- vendor/travis-core/lib/travis/event/handler.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb b/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb index 64adb5bc..0743ae44 100644 --- a/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/flowdock/event_handler.rb @@ -16,7 +16,7 @@ module Travis def initialize(*) super - @payload = Serializer.data(object, for: 'event', version: 'v0', params: data) + @payload = Api::Serialize.data(object, for: 'event', version: 'v0', params: data) end def handle? diff --git a/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb b/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb index ec11da32..3c72efea 100644 --- a/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/pusher/event_handler.rb @@ -16,7 +16,7 @@ module Travis def initialize(*) super - @pusher_payload = Serializer.data(object, :for => 'pusher', :type => type, :params => data) if handle? + @pusher_payload = Api::Serialize.data(object, :for => 'pusher', :type => type, :params => data) if handle? end def handle? diff --git a/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb b/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb index 94f2d947..3a705090 100644 --- a/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb +++ b/vendor/travis-core/lib/travis/addons/webhook/event_handler.rb @@ -25,7 +25,7 @@ module Travis end def webhook_payload - Serializer.data(object, :for => 'webhook', :type => 'build/finished', :version => 'v1') + Api::Serialize.data(object, :for => 'webhook', :type => 'build/finished', :version => 'v1') end def targets diff --git a/vendor/travis-core/lib/travis/event/handler.rb b/vendor/travis-core/lib/travis/event/handler.rb index 9930fd34..63edbd65 100644 --- a/vendor/travis-core/lib/travis/event/handler.rb +++ b/vendor/travis-core/lib/travis/event/handler.rb @@ -18,7 +18,7 @@ module Travis class << self def notify(event, object, data = {}) - payload = Api.data(object, for: 'event', version: 'v0', params: data) if object.is_a?(Build) + payload = Travis::Api::Serialize.data(object, for: 'event', version: 'v0', params: data) if object.is_a?(Build) handler = new(event, object, data, payload) handler.notify if handler.handle? end From 25f74defe5e0d96371842bbe78561bde2cf37a2d Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 21 Jun 2016 13:59:12 +0200 Subject: [PATCH 16/17] try fixing updating github oauth scopes --- lib/travis/api/app/endpoint/authorization.rb | 2 +- spec/unit/endpoint/authorization/user_manager_spec.rb | 2 +- spec_core/github/oauth_spec.rb | 8 ++++---- vendor/travis-core/lib/travis/github/oauth.rb | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index 2343c2d5..3cf72469 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -292,7 +292,7 @@ class Travis::Api::App Travis.run_service(:sync_user, user) end - Travis::Github::Oauth.track_scopes(user) # unless Travis.env == 'test' + Travis::Github::Oauth.update_scopes(user) # unless Travis.env == 'test' nullify_logins(user.github_id, user.login) end diff --git a/spec/unit/endpoint/authorization/user_manager_spec.rb b/spec/unit/endpoint/authorization/user_manager_spec.rb index 9f3acf40..71ea2932 100644 --- a/spec/unit/endpoint/authorization/user_manager_spec.rb +++ b/spec/unit/endpoint/authorization/user_manager_spec.rb @@ -3,7 +3,7 @@ describe Travis::Api::App::Endpoint::Authorization::UserManager do before do Travis::Features.enable_for_all(:education_data_sync) - Travis::Github::Oauth.stubs(:track_scopes) # TODO test that scopes are being updated + Travis::Github::Oauth.stubs(:update_scopes) # TODO test that scopes are being updated end describe '#info' do diff --git a/spec_core/github/oauth_spec.rb b/spec_core/github/oauth_spec.rb index eb7fe169..86613d91 100644 --- a/spec_core/github/oauth_spec.rb +++ b/spec_core/github/oauth_spec.rb @@ -20,7 +20,7 @@ describe Travis::Github::Oauth do end end - describe 'track_scopes' do + describe 'update_scopes' do before { user.reload } describe 'the token did not change' do @@ -28,7 +28,7 @@ describe Travis::Github::Oauth do it 'does not resolve github scopes' do Travis::Github::Oauth.expects(:scopes_for).never - described_class.track_scopes(user) + described_class.update_scopes(user) end end @@ -42,7 +42,7 @@ describe Travis::Github::Oauth do it 'updates github scopes' do Travis::Github::Oauth.expects(:scopes_for).returns(['foo', 'bar']) - described_class.track_scopes(user) + described_class.update_scopes(user) expect(user.reload.github_scopes).to eq ['foo', 'bar'] end end @@ -57,7 +57,7 @@ describe Travis::Github::Oauth do it 'updates github scopes' do Travis::Github::Oauth.expects(:scopes_for).returns(['foo', 'bar']) - described_class.track_scopes(user) + described_class.update_scopes(user) expect(user.reload.github_scopes).to eq ['foo', 'bar'] end end diff --git a/vendor/travis-core/lib/travis/github/oauth.rb b/vendor/travis-core/lib/travis/github/oauth.rb index 969152a4..59348ab1 100644 --- a/vendor/travis-core/lib/travis/github/oauth.rb +++ b/vendor/travis-core/lib/travis/github/oauth.rb @@ -1,7 +1,7 @@ module Travis module Github module Oauth - class TrackScopes < Struct.new(:user) + class UpdateScopes < Struct.new(:user) def run update if update? end @@ -14,17 +14,17 @@ module Travis end def update? - github_oauth_token_changed?(user) or user.github_scopes.blank? + token_changed?(user) or not Oauth.correct_scopes?(user) end - def github_oauth_token_changed?(user) + def token_changed?(user) user.github_oauth_token_changed? or user.previous_changes.key?('github_oauth_token') end end class << self - def track_scopes(user) - TrackScopes.new(user).run + def update_scopes(user) + UpdateScopes.new(user).run end def correct_scopes?(user) From dc176e0c0e762ecebf52899b838f1ad3f2d8f076 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 21 Jun 2016 15:20:24 +0200 Subject: [PATCH 17/17] remove commented callback code --- vendor/travis-core/lib/travis/model/user.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/vendor/travis-core/lib/travis/model/user.rb b/vendor/travis-core/lib/travis/model/user.rb index d2dedc8d..41cd30dc 100644 --- a/vendor/travis-core/lib/travis/model/user.rb +++ b/vendor/travis-core/lib/travis/model/user.rb @@ -17,7 +17,6 @@ class User < Travis::Model before_create :set_as_recent after_create :create_a_token - # after_commit :sync, on: :create before_save :track_previous_changes serialize :github_scopes @@ -66,10 +65,6 @@ class User < Travis::Model synced_at.nil? end - # def sync - # Travis.run_service(:sync_user, self) # TODO move to the authentication endpoint, or create a separate service - # end - def syncing? is_syncing? end