From 43480752fa311a76b0377902f13f4cd479d2c97d Mon Sep 17 00:00:00 2001 From: carlad Date: Thu, 7 Jan 2016 12:34:10 +0100 Subject: [PATCH] intial work on adding /lint endpoint --- lib/travis/api/v3/permissions/lint.rb | 9 +++++++++ lib/travis/api/v3/queries/lint.rb | 13 +++++++++++++ lib/travis/api/v3/routes.rb | 6 ++++++ lib/travis/api/v3/services.rb | 1 + lib/travis/api/v3/services/lint/lint.rb | 7 +++++++ 5 files changed, 36 insertions(+) create mode 100644 lib/travis/api/v3/permissions/lint.rb create mode 100644 lib/travis/api/v3/queries/lint.rb create mode 100644 lib/travis/api/v3/services/lint/lint.rb diff --git a/lib/travis/api/v3/permissions/lint.rb b/lib/travis/api/v3/permissions/lint.rb new file mode 100644 index 00000000..7ae54412 --- /dev/null +++ b/lib/travis/api/v3/permissions/lint.rb @@ -0,0 +1,9 @@ +require 'travis/api/v3/permissions/generic' + +module Travis::API::V3 + class Permissions::Lint < Permissions::Generic + def lint? + write? + end + end +end diff --git a/lib/travis/api/v3/queries/lint.rb b/lib/travis/api/v3/queries/lint.rb new file mode 100644 index 00000000..66f6370b --- /dev/null +++ b/lib/travis/api/v3/queries/lint.rb @@ -0,0 +1,13 @@ +require 'travis/yaml' + +module Travis::API::V3 + class Queries::Lint < Query + def lint + request.body.rewind + content = params[:content] || request.body.read + parsed = Travis::Yaml.parse(content) + warnings = parsed.nested_warnings.map { |k, m| { key: k, message: m } } + { lint: { warnings: warnings } }.to_json + end + end +end \ No newline at end of file diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index 4243edb4..da60103d 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -36,6 +36,12 @@ module Travis::API::V3 post :restart, '/restart' end + resource :lint do + route '/lint' + post :lint + put :lint + end + resource :organization do capture id: :digit route '/org/{organization.id}' diff --git a/lib/travis/api/v3/services.rb b/lib/travis/api/v3/services.rb index ffb67158..985e9d4e 100644 --- a/lib/travis/api/v3/services.rb +++ b/lib/travis/api/v3/services.rb @@ -11,6 +11,7 @@ module Travis::API::V3 Builds = Module.new { extend Services } Job = Module.new { extend Services } Jobs = Module.new { extend Services } + Lint = Module.new { extend Services } Organization = Module.new { extend Services } Organizations = Module.new { extend Services } Owner = Module.new { extend Services } diff --git a/lib/travis/api/v3/services/lint/lint.rb b/lib/travis/api/v3/services/lint/lint.rb new file mode 100644 index 00000000..a4d5dc63 --- /dev/null +++ b/lib/travis/api/v3/services/lint/lint.rb @@ -0,0 +1,7 @@ +module Travis::API::V3 + class Services::Lint::Lint < Service + def run! + lint + end + end +end