Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Griffith <dyl.griffith@gmail.com>2018-04-20 10:30:46 +0300
committerDylan Griffith <dyl.griffith@gmail.com>2018-04-20 10:30:46 +0300
commit467ad16662b0c2f6f28b61edaf10aaf118bbe4a8 (patch)
tree16e4529b096a6fc1676c031cf7ed5d30546c8e7c
parentef55bbd25400349aa9ec35e269f408f94ce5f890 (diff)
-rw-r--r--app/controllers/acme_challenge_controller.rb2
-rw-r--r--db/migrate/20180420061925_add_acme_challenge_columns_for_pages_domain.rb10
-rw-r--r--db/schema.rb29
-rw-r--r--spec/requests/acme_challenge_spec.rb31
4 files changed, 71 insertions, 1 deletions
diff --git a/app/controllers/acme_challenge_controller.rb b/app/controllers/acme_challenge_controller.rb
new file mode 100644
index 00000000000..ad647434abb
--- /dev/null
+++ b/app/controllers/acme_challenge_controller.rb
@@ -0,0 +1,2 @@
+class AcmeChallengeController
+end
diff --git a/db/migrate/20180420061925_add_acme_challenge_columns_for_pages_domain.rb b/db/migrate/20180420061925_add_acme_challenge_columns_for_pages_domain.rb
new file mode 100644
index 00000000000..71b28cc89c4
--- /dev/null
+++ b/db/migrate/20180420061925_add_acme_challenge_columns_for_pages_domain.rb
@@ -0,0 +1,10 @@
+class AddAcmeChallengeColumnsForPagesDomain < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def change
+ add_column :pages_domains, :acme_challenge_token, :text
+ add_column :pages_domains, :acme_challenge_response, :text
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 1d272bdb779..a66bd6f08e4 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20180418053107) do
+ActiveRecord::Schema.define(version: 20180420061925) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -443,6 +443,17 @@ ActiveRecord::Schema.define(version: 20180418053107) do
add_index "ci_pipelines", ["status"], name: "index_ci_pipelines_on_status", using: :btree
add_index "ci_pipelines", ["user_id"], name: "index_ci_pipelines_on_user_id", using: :btree
+ create_table "ci_runner_groups", force: :cascade do |t|
+ t.integer "runner_id"
+ t.integer "group_id"
+ t.datetime_with_timezone "created_at", null: false
+ t.datetime_with_timezone "updated_at", null: false
+ end
+
+ add_index "ci_runner_groups", ["group_id"], name: "index_ci_runner_groups_on_group_id", using: :btree
+ add_index "ci_runner_groups", ["runner_id", "group_id"], name: "index_ci_runner_groups_on_runner_id_and_group_id", unique: true, using: :btree
+ add_index "ci_runner_groups", ["runner_id"], name: "index_ci_runner_groups_on_runner_id", using: :btree
+
create_table "ci_runner_projects", force: :cascade do |t|
t.integer "runner_id", null: false
t.datetime "created_at"
@@ -1257,6 +1268,7 @@ ActiveRecord::Schema.define(version: 20180418053107) do
t.boolean "require_two_factor_authentication", default: false, null: false
t.integer "two_factor_grace_period", default: 48, null: false
t.integer "cached_markdown_version"
+ t.string "runners_token"
end
add_index "namespaces", ["created_at"], name: "index_namespaces_on_created_at", using: :btree
@@ -1267,6 +1279,7 @@ ActiveRecord::Schema.define(version: 20180418053107) do
add_index "namespaces", ["path"], name: "index_namespaces_on_path", using: :btree
add_index "namespaces", ["path"], name: "index_namespaces_on_path_trigram", using: :gin, opclasses: {"path"=>"gin_trgm_ops"}
add_index "namespaces", ["require_two_factor_authentication"], name: "index_namespaces_on_require_two_factor_authentication", using: :btree
+ add_index "namespaces", ["runners_token"], name: "index_namespaces_on_runners_token", unique: true, using: :btree
add_index "namespaces", ["type"], name: "index_namespaces_on_type", using: :btree
create_table "notes", force: :cascade do |t|
@@ -1392,6 +1405,8 @@ ActiveRecord::Schema.define(version: 20180418053107) do
t.datetime_with_timezone "verified_at"
t.string "verification_code", null: false
t.datetime_with_timezone "enabled_until"
+ t.text "acme_challenge_token"
+ t.text "acme_challenge_response"
end
add_index "pages_domains", ["domain"], name: "index_pages_domains_on_domain", unique: true, using: :btree
@@ -1489,6 +1504,14 @@ ActiveRecord::Schema.define(version: 20180418053107) do
add_index "project_import_data", ["project_id"], name: "index_project_import_data_on_project_id", using: :btree
+ create_table "project_settings", force: :cascade do |t|
+ t.integer "project_id"
+ t.boolean "group_runners_enabled", default: true
+ end
+
+ add_index "project_settings", ["group_runners_enabled"], name: "index_project_settings_on_group_runners_enabled", using: :btree
+ add_index "project_settings", ["project_id"], name: "index_project_settings_on_project_id", using: :btree
+
create_table "project_statistics", force: :cascade do |t|
t.integer "project_id", null: false
t.integer "namespace_id", null: false
@@ -1643,6 +1666,7 @@ ActiveRecord::Schema.define(version: 20180418053107) do
end
add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path", unique: true, using: :btree
+ add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path_text_pattern_ops", using: :btree, opclasses: {"path"=>"varchar_pattern_ops"}
add_index "redirect_routes", ["source_type", "source_id"], name: "index_redirect_routes_on_source_type_and_source_id", using: :btree
create_table "releases", force: :cascade do |t|
@@ -2076,6 +2100,8 @@ ActiveRecord::Schema.define(version: 20180418053107) do
add_foreign_key "ci_pipelines", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_3d34ab2e06", on_delete: :nullify
add_foreign_key "ci_pipelines", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_262d4c2d19", on_delete: :nullify
add_foreign_key "ci_pipelines", "projects", name: "fk_86635dbd80", on_delete: :cascade
+ add_foreign_key "ci_runner_groups", "ci_runners", column: "runner_id", name: "fk_d8a0baa93b", on_delete: :cascade
+ add_foreign_key "ci_runner_groups", "namespaces", column: "group_id", name: "fk_cdafb3bbba", on_delete: :cascade
add_foreign_key "ci_runner_projects", "projects", name: "fk_4478a6f1e4", on_delete: :cascade
add_foreign_key "ci_stages", "ci_pipelines", column: "pipeline_id", name: "fk_fb57e6cc56", on_delete: :cascade
add_foreign_key "ci_stages", "projects", name: "fk_2360681d1d", on_delete: :cascade
@@ -2165,6 +2191,7 @@ ActiveRecord::Schema.define(version: 20180418053107) do
add_foreign_key "project_features", "projects", name: "fk_18513d9b92", on_delete: :cascade
add_foreign_key "project_group_links", "projects", name: "fk_daa8cee94c", on_delete: :cascade
add_foreign_key "project_import_data", "projects", name: "fk_ffb9ee3a10", on_delete: :cascade
+ add_foreign_key "project_settings", "projects", on_delete: :cascade
add_foreign_key "project_statistics", "projects", on_delete: :cascade
add_foreign_key "protected_branch_merge_access_levels", "protected_branches", name: "fk_8a3072ccb3", on_delete: :cascade
add_foreign_key "protected_branch_push_access_levels", "protected_branches", name: "fk_9ffc86a3d9", on_delete: :cascade
diff --git a/spec/requests/acme_challenge_spec.rb b/spec/requests/acme_challenge_spec.rb
new file mode 100644
index 00000000000..809e6f58033
--- /dev/null
+++ b/spec/requests/acme_challenge_spec.rb
@@ -0,0 +1,31 @@
+require 'spec_helper'
+
+describe '/-/acme-challenge/' do
+ describe 'GET /:domain/:token' do
+ context 'when the domain exists with matching acme token' do
+ before do
+ create(:pages_domain,
+ domain: 'mydomain.com',
+ acme_challenge_token: 'the-token',
+ acme_challenge_response: 'the-token.the-rest-of-the-content'
+ )
+ end
+
+ it 'returns the challenge content for the domain' do
+ get '/-/acme-challenge/mydomain.com/the-token'
+
+ expect(response).to have_gitlab_http_status 200
+ expect(response.body).to eq('the-token.the-rest-of-the-content')
+ end
+ end
+
+ context 'when the token does not match' do
+ end
+
+ context 'when the domain is not verified' do
+ end
+
+ context 'when the domain does not exist' do
+ end
+ end
+end