diff options
108 files changed, 1348 insertions, 863 deletions
@@ -218,9 +218,6 @@ gem 'ruby-fogbugz', '~> 0.2.1' # Kubernetes integration gem 'kubeclient', '~> 3.0' -# d3 -gem 'd3_rails', '~> 3.5.0' - # Sanitize user input gem 'sanitize', '~> 2.0' gem 'babosa', '~> 1.0.2' diff --git a/Gemfile.lock b/Gemfile.lock index 50800af9437..ee28465decd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -147,8 +147,6 @@ GEM creole (0.5.0) css_parser (1.5.0) addressable - d3_rails (3.5.11) - railties (>= 3.1.0) daemons (1.2.3) database_cleaner (1.5.3) debug_inspector (0.0.2) @@ -1024,7 +1022,6 @@ DEPENDENCIES concurrent-ruby (~> 1.0.5) connection_pool (~> 2.0) creole (~> 0.5.0) - d3_rails (~> 3.5.0) database_cleaner (~> 1.5.0) deckar01-task_list (= 2.0.0) default_value_for (~> 3.0.0) diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js index 87f8854f940..1c43fc3cdc7 100644 --- a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js +++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js @@ -82,7 +82,6 @@ export default () => { this.service .fetchCycleAnalyticsData(fetchOptions) - .then(resp => resp.json()) .then((response) => { this.store.setCycleAnalyticsData(response); this.selectDefaultStage(); @@ -116,7 +115,6 @@ export default () => { stage, startDate: this.startDate, }) - .then(resp => resp.json()) .then((response) => { this.isEmptyStage = !response.events.length; this.store.setStageEvents(response.events, stage); diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_service.js b/app/assets/javascripts/cycle_analytics/cycle_analytics_service.js index f496c38208d..4cf416c50e5 100644 --- a/app/assets/javascripts/cycle_analytics/cycle_analytics_service.js +++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_service.js @@ -1,16 +1,20 @@ -import Vue from 'vue'; -import VueResource from 'vue-resource'; - -Vue.use(VueResource); +import axios from '~/lib/utils/axios_utils'; export default class CycleAnalyticsService { constructor(options) { - this.requestPath = options.requestPath; - this.cycleAnalytics = Vue.resource(this.requestPath); + this.axios = axios.create({ + baseURL: options.requestPath, + }); } fetchCycleAnalyticsData(options = { startDate: 30 }) { - return this.cycleAnalytics.get({ cycle_analytics: { start_date: options.startDate } }); + return this.axios + .get('', { + params: { + 'cycle_analytics[start_date]': options.startDate, + }, + }) + .then(x => x.data); } fetchStageData(options) { @@ -19,12 +23,12 @@ export default class CycleAnalyticsService { startDate, } = options; - return Vue.http.get(`${this.requestPath}/events/${stage.name}.json`, { - params: { - cycle_analytics: { - start_date: startDate, + return this.axios + .get(`events/${stage.name}.json`, { + params: { + 'cycle_analytics[start_date]': startDate, }, - }, - }); + }) + .then(x => x.data); } } diff --git a/app/assets/javascripts/deploy_keys/service/index.js b/app/assets/javascripts/deploy_keys/service/index.js index 194e95e4fca..9dc3b21f6f6 100644 --- a/app/assets/javascripts/deploy_keys/service/index.js +++ b/app/assets/javascripts/deploy_keys/service/index.js @@ -1,37 +1,24 @@ -import Vue from 'vue'; -import VueResource from 'vue-resource'; - -Vue.use(VueResource); +import axios from '~/lib/utils/axios_utils'; export default class DeployKeysService { constructor(endpoint) { - this.endpoint = endpoint; - - this.resource = Vue.resource( - `${this.endpoint}{/id}`, - {}, - { - enable: { - method: 'PUT', - url: `${this.endpoint}{/id}/enable`, - }, - disable: { - method: 'PUT', - url: `${this.endpoint}{/id}/disable`, - }, - }, - ); + this.axios = axios.create({ + baseURL: endpoint, + }); } getKeys() { - return this.resource.get().then(response => response.json()); + return this.axios.get() + .then(response => response.data); } enableKey(id) { - return this.resource.enable({ id }, {}); + return this.axios.put(`${id}/enable`) + .then(response => response.data); } disableKey(id) { - return this.resource.disable({ id }, {}); + return this.axios.put(`${id}/disable`) + .then(response => response.data); } } diff --git a/app/assets/javascripts/ide/lib/common/model.js b/app/assets/javascripts/ide/lib/common/model.js index 016dcda1fa1..b1e43a1e38c 100644 --- a/app/assets/javascripts/ide/lib/common/model.js +++ b/app/assets/javascripts/ide/lib/common/model.js @@ -14,12 +14,12 @@ export default class Model { (this.originalModel = this.monaco.editor.createModel( head ? head.content : this.file.raw, undefined, - new this.monaco.Uri(null, null, `original/${this.file.key}`), + new this.monaco.Uri(null, null, `original/${this.path}`), )), (this.model = this.monaco.editor.createModel( this.content, undefined, - new this.monaco.Uri(null, null, this.file.key), + new this.monaco.Uri(null, null, this.path), )), ); if (this.file.mrChange) { @@ -27,7 +27,7 @@ export default class Model { (this.baseModel = this.monaco.editor.createModel( this.file.baseRaw, undefined, - new this.monaco.Uri(null, null, `target/${this.file.path}`), + new this.monaco.Uri(null, null, `target/${this.path}`), )), ); } diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js index 3ac9b9222ca..b6baa693104 100644 --- a/app/assets/javascripts/ide/stores/actions/file.js +++ b/app/assets/javascripts/ide/stores/actions/file.js @@ -196,6 +196,8 @@ export const unstageChange = ({ commit }, path) => { }; export const openPendingTab = ({ commit, getters, dispatch, state }, { file, keyPrefix }) => { + if (getters.activeFile && getters.activeFile.key === `${keyPrefix}-${file.key}`) return false; + state.openFiles.forEach(f => eventHub.$emit(`editor.update.model.dispose.${f.key}`)); commit(types.ADD_PENDING_TAB, { file, keyPrefix }); diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index b07a5ae22cd..90ccd4abd90 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -36,7 +36,9 @@ ul.notes-form, .gutter-toggle, .issuable-details .content-block-small, .edit-link, -.note-action-button { +.note-action-button, +.right-sidebar, +.flash-container { display: none !important; } @@ -53,3 +55,7 @@ pre { .right-sidebar { top: 0; } + +a[href]::after { + content: none !important; +} diff --git a/app/controllers/import/base_controller.rb b/app/controllers/import/base_controller.rb index bcb856ce3f4..663269a0f92 100644 --- a/app/controllers/import/base_controller.rb +++ b/app/controllers/import/base_controller.rb @@ -7,9 +7,9 @@ class Import::BaseController < ApplicationController def find_jobs(import_type) current_user.created_projects - .includes(:import_state) - .where(import_type: import_type) - .to_json(only: [:id], methods: [:import_status]) + .includes(:import_state) + .where(import_type: import_type) + .to_json(only: [:id], methods: [:import_status]) end def find_or_create_namespace(names, owner) diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb index 23078f1c3ed..ed8b30dae49 100644 --- a/app/models/ci/runner.rb +++ b/app/models/ci/runner.rb @@ -58,6 +58,7 @@ module Ci validate :tag_constraints validate :either_projects_or_group validates :access_level, presence: true + validates :runner_type, presence: true acts_as_taggable diff --git a/app/models/clusters/applications/runner.rb b/app/models/clusters/applications/runner.rb index 16efe90fa27..b881b4eaf36 100644 --- a/app/models/clusters/applications/runner.rb +++ b/app/models/clusters/applications/runner.rb @@ -43,12 +43,20 @@ module Clusters def create_and_assign_runner transaction do - project.runners.create!(name: 'kubernetes-cluster', tag_list: %w(kubernetes cluster)).tap do |runner| + project.runners.create!(runner_create_params).tap do |runner| update!(runner_id: runner.id) end end end + def runner_create_params + { + name: 'kubernetes-cluster', + runner_type: :project_type, + tag_list: %w(kubernetes cluster) + } + end + def gitlab_url Gitlab::Routing.url_helpers.root_url(only_path: false) end diff --git a/app/models/repository.rb b/app/models/repository.rb index b75c4aca982..44c6bff6b66 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -37,7 +37,7 @@ class Repository changelog license_blob license_key gitignore koding_yml gitlab_ci_yml branch_names tag_names branch_count tag_count avatar exists? root_ref has_visible_content? - issue_template_names merge_request_template_names).freeze + issue_template_names merge_request_template_names xcode_project?).freeze # Methods that use cache_method but only memoize the value MEMOIZED_CACHED_METHODS = %i(license).freeze @@ -55,7 +55,8 @@ class Repository gitlab_ci: :gitlab_ci_yml, avatar: :avatar, issue_template: :issue_template_names, - merge_request_template: :merge_request_template_names + merge_request_template: :merge_request_template_names, + xcode_config: :xcode_project? }.freeze def initialize(full_path, project, disk_path: nil, is_wiki: false) @@ -594,6 +595,11 @@ class Repository end cache_method :gitlab_ci_yml + def xcode_project? + file_on_head(:xcode_config).present? + end + cache_method :xcode_project? + def head_commit @head_commit ||= commit(self.root_ref) end diff --git a/app/views/groups/runners/_group_runners.html.haml b/app/views/groups/runners/_group_runners.html.haml index 1f9b43e8727..e6c089c3494 100644 --- a/app/views/groups/runners/_group_runners.html.haml +++ b/app/views/groups/runners/_group_runners.html.haml @@ -1,4 +1,4 @@ -- link = link_to 'Runners API', help_page_path('api/runners.md') +- link = link_to _('Runners API'), help_page_path('api/runners.md') %h3 = _('Group Runners') diff --git a/app/views/groups/runners/edit.html.haml b/app/views/groups/runners/edit.html.haml index d4993d9c235..fcd096eeaa0 100644 --- a/app/views/groups/runners/edit.html.haml +++ b/app/views/groups/runners/edit.html.haml @@ -1,4 +1,4 @@ -- page_title "Edit", "#{@runner.description} ##{@runner.id}", "Runners" +- page_title _('Edit'), "#{@runner.description} ##{@runner.id}", 'Runners' %h4 Runner ##{@runner.id} diff --git a/app/views/projects/runners/_group_runners.html.haml b/app/views/projects/runners/_group_runners.html.haml index ec8011182de..dfed0553f84 100644 --- a/app/views/projects/runners/_group_runners.html.haml +++ b/app/views/projects/runners/_group_runners.html.haml @@ -1,4 +1,4 @@ -- link = link_to 'Runners API', help_page_path('api/runners.md') +- link = link_to _('Runners API'), help_page_path('api/runners.md') %h3 = _('Group Runners') @@ -25,7 +25,7 @@ = _('This group does not provide any group Runners yet.') - if can?(current_user, :admin_pipeline, @project.group) - - group_link = link_to 'Group CI/CD settings', group_settings_ci_cd_path(@project.group) + - group_link = link_to _('Group CI/CD settings'), group_settings_ci_cd_path(@project.group) = _('Group masters can register group runners in the %{link}').html_safe % { link: group_link } - else = _('Ask your group master to setup a group Runner.') diff --git a/app/views/projects/runners/_shared_runners.html.haml b/app/views/projects/runners/_shared_runners.html.haml index 969efdb2560..20a5ef039f8 100644 --- a/app/views/projects/runners/_shared_runners.html.haml +++ b/app/views/projects/runners/_shared_runners.html.haml @@ -1,4 +1,5 @@ -%h3 Shared Runners +%h3 + = _('Shared Runners') .bs-callout.shared-runners-description - if Gitlab::CurrentSettings.shared_runners_text.present? @@ -17,8 +18,7 @@ for this project - if @shared_runners_count.zero? - This GitLab instance does not provide any shared Runners yet. Instance - administrators can register shared Runners in the admin area. + = _('This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area.') - else %h4.underlined-title Available shared Runners : #{@shared_runners_count} %ul.bordered-list.available-shared-runners diff --git a/app/views/projects/runners/_specific_runners.html.haml b/app/views/projects/runners/_specific_runners.html.haml index f0813e56b71..6c11ce3b394 100644 --- a/app/views/projects/runners/_specific_runners.html.haml +++ b/app/views/projects/runners/_specific_runners.html.haml @@ -1,4 +1,5 @@ -%h3 Specific Runners +%h3 + = _('Specific Runners') = render partial: 'ci/runner/how_to_setup_specific_runner', locals: { registration_token: @project.runners_token } diff --git a/app/views/projects/runners/edit.html.haml b/app/views/projects/runners/edit.html.haml index 56eb526bfd5..d59f9c19862 100644 --- a/app/views/projects/runners/edit.html.haml +++ b/app/views/projects/runners/edit.html.haml @@ -1,4 +1,4 @@ -- page_title "Edit", "#{@runner.description} ##{@runner.id}", "Runners" +- page_title _('Edit'), "#{@runner.description} ##{@runner.id}", 'Runners' %h4 Runner ##{@runner.id} diff --git a/app/views/shared/runners/_form.html.haml b/app/views/shared/runners/_form.html.haml index a995c355bd8..302a543cf12 100644 --- a/app/views/shared/runners/_form.html.haml +++ b/app/views/shared/runners/_form.html.haml @@ -20,11 +20,11 @@ %span.light Indicates whether this runner can pick jobs without tags - unless runner.group_type? .form-group - = label :locked, 'Lock to current projects', class: 'control-label' + = label :locked, _('Lock to current projects'), class: 'control-label' .col-sm-10 .checkbox = f.check_box :locked - %span.light When a runner is locked, it cannot be assigned to other projects + %span.light= _('When a runner is locked, it cannot be assigned to other projects') .form-group = label_tag :token, class: 'control-label' do Token diff --git a/app/views/shared/runners/show.html.haml b/app/views/shared/runners/show.html.haml index 1265305608c..480a224b6d5 100644 --- a/app/views/shared/runners/show.html.haml +++ b/app/views/shared/runners/show.html.haml @@ -21,17 +21,17 @@ %th Value %tr %td Active - %td= @runner.active? ? 'Yes' : 'No' + %td= @runner.active? ? _('Yes') : _('No') %tr %td Protected - %td= @runner.ref_protected? ? 'Yes' : 'No' + %td= @runner.ref_protected? ? _('Yes') : _('No') %tr - %td Can run untagged jobs - %td= @runner.run_untagged? ? 'Yes' : 'No' + %td= _('Can run untagged jobs') + %td= @runner.run_untagged? ? _('Yes') : _('No') - unless @runner.group_type? %tr - %td Locked to this project - %td= @runner.locked? ? 'Yes' : 'No' + %td= _('Locked to this project') + %td= @runner.locked? ? _('Yes') : _('No') %tr %td Tags %td @@ -60,7 +60,7 @@ %td Description %td= @runner.description %tr - %td Maximum job timeout + %td= _('Maximum job timeout') %td= @runner.maximum_timeout_human_readable %tr %td Last contact diff --git a/changelogs/unreleased/23465-print-markdown.yml b/changelogs/unreleased/23465-print-markdown.yml new file mode 100644 index 00000000000..ba950667acc --- /dev/null +++ b/changelogs/unreleased/23465-print-markdown.yml @@ -0,0 +1,5 @@ +--- +title: Fix print styles for markdown pages +merge_request: +author: +type: fixed diff --git a/changelogs/unreleased/blackst0ne-replace-spinach-project-deploy-keys-feature.yml b/changelogs/unreleased/blackst0ne-replace-spinach-project-deploy-keys-feature.yml new file mode 100644 index 00000000000..7014de4ece7 --- /dev/null +++ b/changelogs/unreleased/blackst0ne-replace-spinach-project-deploy-keys-feature.yml @@ -0,0 +1,5 @@ +--- +title: 'Replace the `project/deploy_keys.feature` spinach test with an rspec analog' +merge_request: 18796 +author: '@blackst0ne' +type: other diff --git a/changelogs/unreleased/blackst0ne-replace-spinach-project-issues-references-feature.yml b/changelogs/unreleased/blackst0ne-replace-spinach-project-issues-references-feature.yml new file mode 100644 index 00000000000..968a937ca5a --- /dev/null +++ b/changelogs/unreleased/blackst0ne-replace-spinach-project-issues-references-feature.yml @@ -0,0 +1,5 @@ +--- +title: 'Replace the `project/issues/references.feature` spinach test with an rspec analog' +merge_request: 18769 +author: '@blackst0ne' +type: other diff --git a/changelogs/unreleased/fix-project-mirror-data-schema.yml b/changelogs/unreleased/fix-project-mirror-data-schema.yml new file mode 100644 index 00000000000..107f1fe3b9c --- /dev/null +++ b/changelogs/unreleased/fix-project-mirror-data-schema.yml @@ -0,0 +1,6 @@ +--- +title: Fixes database inconsistencies between Community and Enterprise Edition on + import state +merge_request: 18811 +author: +type: fixed diff --git a/changelogs/unreleased/support-active-setting-while-registering-a-runner.yml b/changelogs/unreleased/support-active-setting-while-registering-a-runner.yml new file mode 100644 index 00000000000..6c378fd450a --- /dev/null +++ b/changelogs/unreleased/support-active-setting-while-registering-a-runner.yml @@ -0,0 +1,5 @@ +--- +title: Add support for 'active' setting on Runner Registration API endpoint +merge_request: 18848 +author: +type: changed diff --git a/db/migrate/20140313092127_init_schema.rb b/db/migrate/20140313092127_init_schema.rb index e5c3b65fa8d..895298ed4ed 100644 --- a/db/migrate/20140313092127_init_schema.rb +++ b/db/migrate/20140313092127_init_schema.rb @@ -1,4 +1,6 @@ class InitSchema < ActiveRecord::Migration + DOWNTIME = true + def up create_table "broadcast_messages", force: :cascade do |t| t.text "message", null: false diff --git a/db/migrate/20180420010616_cleanup_build_stage_migration.rb b/db/migrate/20180420010616_cleanup_build_stage_migration.rb index 0342695ec3d..24777294101 100644 --- a/db/migrate/20180420010616_cleanup_build_stage_migration.rb +++ b/db/migrate/20180420010616_cleanup_build_stage_migration.rb @@ -2,6 +2,7 @@ class CleanupBuildStageMigration < ActiveRecord::Migration include Gitlab::Database::MigrationHelpers DOWNTIME = false + TMP_INDEX = 'tmp_id_stage_partial_null_index'.freeze disable_ddl_transaction! @@ -13,16 +14,48 @@ class CleanupBuildStageMigration < ActiveRecord::Migration end def up + disable_statement_timeout + + ## + # We steal from the background migrations queue to catch up with the + # scheduled migrations set. + # Gitlab::BackgroundMigration.steal('MigrateBuildStage') + ## + # We add temporary index, to make iteration over batches more performant. + # Conditional here is to avoid the need of doing that in a separate + # migration file to make this operation idempotent. + # + unless index_exists_by_name?(:ci_builds, TMP_INDEX) + add_concurrent_index(:ci_builds, :id, where: 'stage_id IS NULL', name: TMP_INDEX) + end + + ## + # We check if there are remaining rows that should be migrated (for example + # if Sidekiq / Redis fails / is restarted, what could result in not all + # background migrations being executed correctly. + # + # We migrate remaining rows synchronously in a blocking way, to make sure + # that when this migration is done we are confident that all rows are + # already migrated. + # Build.where('stage_id IS NULL').each_batch(of: 50) do |batch| range = batch.pluck('MIN(id)', 'MAX(id)').first Gitlab::BackgroundMigration::MigrateBuildStage.new.perform(*range) end + + ## + # We remove temporary index, because it is not required during standard + # operations and runtime. + # + remove_concurrent_index_by_name(:ci_builds, TMP_INDEX) end def down - # noop + if index_exists_by_name?(:ci_builds, TMP_INDEX) + remove_concurrent_index_by_name(:ci_builds, TMP_INDEX) + end end end diff --git a/db/migrate/20180508100222_add_not_null_constraint_to_project_mirror_data_foreign_key.rb b/db/migrate/20180508100222_add_not_null_constraint_to_project_mirror_data_foreign_key.rb new file mode 100644 index 00000000000..82087d15ccb --- /dev/null +++ b/db/migrate/20180508100222_add_not_null_constraint_to_project_mirror_data_foreign_key.rb @@ -0,0 +1,21 @@ +class AddNotNullConstraintToProjectMirrorDataForeignKey < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + class ProjectImportState < ActiveRecord::Base + include EachBatch + + self.table_name = 'project_mirror_data' + end + + def up + ProjectImportState.where(project_id: nil).delete_all + + change_column_null :project_mirror_data, :project_id, false + end + + def down + change_column_null :project_mirror_data, :project_id, true + end +end diff --git a/db/migrate/20180508102840_add_unique_constraint_to_project_mirror_data_project_id_index.rb b/db/migrate/20180508102840_add_unique_constraint_to_project_mirror_data_project_id_index.rb new file mode 100644 index 00000000000..acb976b52fa --- /dev/null +++ b/db/migrate/20180508102840_add_unique_constraint_to_project_mirror_data_project_id_index.rb @@ -0,0 +1,31 @@ +class AddUniqueConstraintToProjectMirrorDataProjectIdIndex < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index(:project_mirror_data, + :project_id, + unique: true, + name: 'index_project_mirror_data_on_project_id_unique') + + remove_concurrent_index_by_name(:project_mirror_data, 'index_project_mirror_data_on_project_id') + + rename_index(:project_mirror_data, + 'index_project_mirror_data_on_project_id_unique', + 'index_project_mirror_data_on_project_id') + end + + def down + rename_index(:project_mirror_data, + 'index_project_mirror_data_on_project_id', + 'index_project_mirror_data_on_project_id_old') + + add_concurrent_index(:project_mirror_data, :project_id) + + remove_concurrent_index_by_name(:project_mirror_data, + 'index_project_mirror_data_on_project_id_old') + end +end diff --git a/db/migrate/20180508135515_set_runner_type_not_null.rb b/db/migrate/20180508135515_set_runner_type_not_null.rb new file mode 100644 index 00000000000..dd043ec7179 --- /dev/null +++ b/db/migrate/20180508135515_set_runner_type_not_null.rb @@ -0,0 +1,9 @@ +class SetRunnerTypeNotNull < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + change_column_null(:ci_runners, :runner_type, false) + end +end diff --git a/db/schema.rb b/db/schema.rb index 2cf6ff3da9f..77492236f72 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: 20180508055821) do +ActiveRecord::Schema.define(version: 20180508135515) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -499,7 +499,7 @@ ActiveRecord::Schema.define(version: 20180508055821) do t.integer "access_level", default: 0, null: false t.string "ip_address" t.integer "maximum_timeout" - t.integer "runner_type", limit: 2 + t.integer "runner_type", limit: 2, null: false end add_index "ci_runners", ["contacted_at"], name: "index_ci_runners_on_contacted_at", using: :btree @@ -1531,14 +1531,14 @@ ActiveRecord::Schema.define(version: 20180508055821) do add_index "project_import_data", ["project_id"], name: "index_project_import_data_on_project_id", using: :btree create_table "project_mirror_data", force: :cascade do |t| - t.integer "project_id" + t.integer "project_id", null: false t.string "status" t.string "jid" t.text "last_error" end add_index "project_mirror_data", ["jid"], name: "index_project_mirror_data_on_jid", using: :btree - add_index "project_mirror_data", ["project_id"], name: "index_project_mirror_data_on_project_id", using: :btree + add_index "project_mirror_data", ["project_id"], name: "index_project_mirror_data_on_project_id", unique: true, using: :btree add_index "project_mirror_data", ["status"], name: "index_project_mirror_data_on_status", using: :btree create_table "project_statistics", force: :cascade do |t| @@ -2150,6 +2150,7 @@ ActiveRecord::Schema.define(version: 20180508055821) do add_foreign_key "ci_build_trace_sections", "ci_builds", column: "build_id", name: "fk_4ebe41f502", on_delete: :cascade add_foreign_key "ci_build_trace_sections", "projects", on_delete: :cascade add_foreign_key "ci_builds", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_a2141b1522", on_delete: :nullify + add_foreign_key "ci_builds", "ci_pipelines", column: "commit_id", name: "fk_d3130c9a7f", on_delete: :cascade add_foreign_key "ci_builds", "ci_stages", column: "stage_id", name: "fk_3a9eaa254d", on_delete: :cascade add_foreign_key "ci_builds", "projects", name: "fk_befce0568a", on_delete: :cascade add_foreign_key "ci_builds_metadata", "ci_builds", column: "build_id", on_delete: :cascade diff --git a/doc/README.md b/doc/README.md index a2e152ce383..c929ba7a59e 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,5 +1,6 @@ --- comments: false +description: 'Learn how to use and administer GitLab, the most scalable Git-based fully integrated platform for software development.' --- # GitLab Documentation diff --git a/doc/administration/external_database.md b/doc/administration/external_database.md new file mode 100644 index 00000000000..31199f2cdc7 --- /dev/null +++ b/doc/administration/external_database.md @@ -0,0 +1,17 @@ +# Configure GitLab using an external PostgreSQL service + +If you're hosting GitLab on a cloud provider, you can optionally use a +managed service for PostgreSQL. For example, AWS offers a managed Relational +Database Service (RDS) that runs PostgreSQL. + +Alternatively, you may opt to manage your own PostgreSQL instance or cluster +separate from the GitLab Omnibus package. + +If you use a cloud-managed service, or provide your own PostgreSQL instance: + +1. Setup PostgreSQL according to the + [database requirements document](../install/requirements.md#database). +1. Set up a `gitlab` username with a password of your choice. The `gitlab` user + needs privileges to create the `gitlabhq_production` database. +1. Configure the GitLab application servers with the appropriate details. + This step is covered in [Configuring GitLab for HA](high_availability/gitlab.md). diff --git a/doc/administration/index.md b/doc/administration/index.md index 5551a04959c..df935095e61 100644 --- a/doc/administration/index.md +++ b/doc/administration/index.md @@ -1,3 +1,7 @@ +--- +description: 'Learn how to install, configure, update, and maintain your GitLab instance.' +--- + # Administrator documentation **[CORE ONLY]** Learn how to administer your GitLab instance (Community Edition and diff --git a/doc/administration/pages/index.md b/doc/administration/pages/index.md index 9b3b1e48efd..c0221533f13 100644 --- a/doc/administration/pages/index.md +++ b/doc/administration/pages/index.md @@ -1,3 +1,7 @@ +--- +description: 'Learn how to administer GitLab Pages.' +--- + # GitLab Pages administration > **Notes:** @@ -8,8 +12,6 @@ GitLab from source, follow the [Pages source installation document](source.md). - To learn how to use GitLab Pages, read the [user documentation][pages-userguide]. ---- - This document describes how to set up the _latest_ GitLab Pages feature. Make sure to read the [changelog](#changelog) if you are upgrading to a new GitLab version as it may include new features and changes needed to be made in your @@ -24,8 +26,6 @@ SNI and exposes pages using HTTP2 by default. You are encouraged to read its [README][pages-readme] to fully understand how it works. ---- - In the case of [custom domains](#custom-domains) (but not [wildcard domains](#wildcard-domains)), the Pages daemon needs to listen on ports `80` and/or `443`. For that reason, there is some flexibility in the way diff --git a/doc/administration/raketasks/project_import_export.md b/doc/administration/raketasks/project_import_export.md index 39b1883375e..ecc4ac6b29b 100644 --- a/doc/administration/raketasks/project_import_export.md +++ b/doc/administration/raketasks/project_import_export.md @@ -1,4 +1,4 @@ -# Project import/export +# Project import/export administration **[CORE ONLY]** >**Note:** > diff --git a/doc/articles/openshift_and_gitlab/index.md b/doc/articles/openshift_and_gitlab/index.md index b7594cfef7f..76fdb2eb00a 100644 --- a/doc/articles/openshift_and_gitlab/index.md +++ b/doc/articles/openshift_and_gitlab/index.md @@ -1 +1,4 @@ -This document was moved to [another location](../../install/openshift_and_gitlab/index.html). +--- +redirect_to: '../../install/openshift_and_gitlab/index.html' +--- + diff --git a/doc/ci/README.md b/doc/ci/README.md index 6aa0e5885db..8d1d72c2a2b 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -1,5 +1,6 @@ --- comments: false +description: "Learn how to use GitLab CI/CD, the GitLab built-in Continuous Integration, Continuous Deployment, and Continuous Delivery toolset to build, test, and deploy your application." --- # GitLab Continuous Integration (GitLab CI/CD) diff --git a/doc/ci/examples/container_scanning.md b/doc/ci/examples/container_scanning.md index eb76521cc02..a9501f6c577 100644 --- a/doc/ci/examples/container_scanning.md +++ b/doc/ci/examples/container_scanning.md @@ -23,7 +23,7 @@ sast:container: - docker:stable-dind script: - docker run -d --name db arminc/clair-db:latest - - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 + - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 diff --git a/doc/ci/runners/README.md b/doc/ci/runners/README.md index 821413900fd..703a7f030ed 100644 --- a/doc/ci/runners/README.md +++ b/doc/ci/runners/README.md @@ -11,7 +11,7 @@ Ideally, the GitLab Runner should not be installed on the same machine as GitLab Read the [requirements documentation](../../install/requirements.md#gitlab-runner) for more information. -## Shared vs specific Runners +## Shared, specific and group Runners After [installing the Runner][install], you can either register it as shared or specific. You can only register a shared Runner if you have admin access to @@ -32,6 +32,9 @@ are: Runners. For example, if you want to deploy a certain project, you can setup a specific Runner to have the right credentials for this. The [usage of tags](#using-tags) may be useful in this case. Specific Runners process jobs using a [FIFO] queue. +- **Group Runners** are useful when you have multiple projects under one group + and would like all projects to have access to a set of Runners. Group Runners + process jobs using a [FIFO] queue. A Runner that is specific only runs for the specified project(s). A shared Runner can run jobs for every project that has enabled the option **Allow shared Runners** @@ -66,7 +69,7 @@ Runners to disabled. ## Registering a specific Runner -Registering a specific can be done in two ways: +Registering a specific Runner can be done in two ways: 1. Creating a Runner with the project registration token 1. Converting a shared Runner into a specific Runner (one-way, admin only) @@ -79,6 +82,14 @@ visit the project you want to make the Runner work for in GitLab: 1. Go to **Settings > CI/CD** to obtain the token 1. [Register the Runner][register] +## Registering a group Runner + +Creating a group Runner requires Master permissions for the group. To create a +group Runner visit the group you want to make the Runner work for in GitLab: + +1. Go to **Settings > CI/CD** to obtain the token +1. [Register the Runner][register] + ### Making an existing shared Runner specific If you are an admin on your GitLab instance, you can turn any shared Runner into @@ -121,7 +132,7 @@ To enable/disable a Runner in your project: > **Note**: Consider that if you don't lock your specific Runner to a specific project, any -user with Master role in you project can assign your runner to another arbitrary +user with Master role in you project can assign your Runner to another arbitrary project without requiring your authorization, so use it with caution. An admin can enable/disable a specific Runner for projects: diff --git a/doc/ci/services/docker-services.md b/doc/ci/services/docker-services.md index 787c5e462e4..e5fc7a3c85f 100644 --- a/doc/ci/services/docker-services.md +++ b/doc/ci/services/docker-services.md @@ -1,9 +1,3 @@ --- -comments: false +redirect_to: 'README.md' --- - -# GitLab CI Services - -- [Using MySQL](mysql.md) -- [Using PostgreSQL](postgres.md) -- [Using Redis](redis.md) diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index fb6d9826d08..2a17a51d7f8 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -738,10 +738,15 @@ cache: rspec: script: test cache: + key: rspec paths: - binaries/ ``` +Note that since cache is shared between jobs, if you're using different +paths for different jobs, you should also set a different **cache:key** +otherwise cache content can be overwritten. + ### `cache:key` > Introduced in GitLab Runner v1.0.0. @@ -756,10 +761,9 @@ or any other way that fits your workflow. This way, you can fine tune caching, allowing you to cache data between different jobs or even different branches. The `cache:key` variable can use any of the -[predefined variables](../variables/README.md), and the default key, if not set, -is `$CI_JOB_NAME-$CI_COMMIT_REF_NAME` which translates as "per-job and -per-branch". It is the default across the project, therefore everything is -shared between pipelines and jobs running on the same branch by default. +[predefined variables](../variables/README.md), and the default key, if not +set, is just literal `default` which means everything is shared between each +pipelines and jobs by default, starting from GitLab 9.0. NOTE: **Note:** The `cache:key` variable cannot contain the `/` character, or the equivalent @@ -779,7 +783,7 @@ If you use **Windows Batch** to run your shell scripts you need to replace ```yaml cache: - key: "%CI_JOB_STAGE%-%CI_COMMIT_REF_SLUG%" + key: "%CI_COMMIT_REF_SLUG%" paths: - binaries/ ``` @@ -789,7 +793,7 @@ If you use **Windows PowerShell** to run your shell scripts you need to replace ```yaml cache: - key: "$env:CI_JOB_STAGE-$env:CI_COMMIT_REF_SLUG" + key: "$env:CI_COMMIT_REF_SLUG" paths: - binaries/ ``` @@ -1572,7 +1576,7 @@ capitalization, the commit will be created but the pipeline will be skipped. ## Validate the .gitlab-ci.yml Each instance of GitLab CI has an embedded debug tool called Lint, which validates the -content of your `.gitlab-ci.yml` files. You can find the Lint under the page `ci/lint` of your +content of your `.gitlab-ci.yml` files. You can find the Lint under the page `ci/lint` of your project namespace (e.g, `http://gitlab-example.com/gitlab-org/project-123/-/ci/lint`) ## Using reserved keywords diff --git a/doc/container_registry/README.md b/doc/container_registry/README.md index fe3e4681ba7..5d2f5edcb18 100644 --- a/doc/container_registry/README.md +++ b/doc/container_registry/README.md @@ -1 +1 @@ -This document was moved in [user/project/container_registry](../user/project/container_registry.md). +This document was moved to [another location](../user/project/container_registry.md). diff --git a/doc/customization/issue_closing.md b/doc/customization/issue_closing.md index d14ba6ad522..680c51e7524 100644 --- a/doc/customization/issue_closing.md +++ b/doc/customization/issue_closing.md @@ -1,8 +1,3 @@ --- -comments: false +redirect_to: '../user/project/issues/automatic_issue_closing.md' --- - -This document was split into: - -- [administration/issue_closing_pattern.md](../administration/issue_closing_pattern.md). -- [user/project/issues/automatic_issue_closing](../user/project/issues/automatic_issue_closing.md). diff --git a/doc/development/README.md b/doc/development/README.md index 32ae86a7150..898c60e96c0 100644 --- a/doc/development/README.md +++ b/doc/development/README.md @@ -1,5 +1,6 @@ --- comments: false +description: 'Learn how to contribute to GitLab.' --- # GitLab development guides diff --git a/doc/development/doc_styleguide.md b/doc/development/doc_styleguide.md index 5da015ca557..5d595c33915 100644 --- a/doc/development/doc_styleguide.md +++ b/doc/development/doc_styleguide.md @@ -1,3 +1,7 @@ +--- +description: 'Writing styles, markup, formatting, and reusing regular expressions throughout the GitLab Documentation.' +--- + # Documentation style guidelines The documentation style guide defines the markup structure used in @@ -21,23 +25,39 @@ Check the GitLab handbook for the [writing styles guidelines](https://about.gitl - Use [single spaces][] instead of double spaces - Jump a line between different markups (e.g., after every paragraph, header, list, etc) - Capitalize "G" and "L" in GitLab -- Capitalize feature, products, and methods names. E.g.: GitLab Runner, Geo, -Issue Boards, Git, Prometheus, Continuous Integration. +- Use sentence case for titles, headings, labels, menu items, and buttons. +- Use title case when referring to [features](https://about.gitlab.com/features/) or [products](https://about.gitlab.com/pricing/), and methods. Note that some features are also objects (e.g. "Merge Requests" and "merge requests"). E.g.: GitLab Runner, Geo, Issue Boards, Git, Prometheus, Continuous Integration. ## Formatting +- Use double asterisks (`**`) to mark a word or text in bold (`**bold**`) +- Use undescore (`_`) for text in italics (`_italic_`) +- Jump a line between different markups, for example: + + ```md + ## Header + + Paragraph. + + - List item + - List item + ``` + +### Punctuation + +For punctuation rules, please refer to the [GitLab UX guide](https://design.gitlab.com/content/punctuation/). + +### Ordered and unordered lists + - Use dashes (`-`) for unordered lists instead of asterisks (`*`) - Use the number one (`1`) for ordered lists -- Use underscores (`_`) to mark a word or text in italics -- Use double asterisks (`**`) to mark a word or text in bold -- When using lists, prefer not to end each item with a period. You can use - them if there are multiple sentences, just keep the last sentence without - a period +- For punctuation in bullet lists, please refer to the [GitLab UX guide](https://design.gitlab.com/content/punctuation/) ## Headings -- Add only one H1 title in each document, by adding `#` at the beginning of - it (when using markdown). For subheadings, use `##`, `###` and so on +- Add **only one H1** in each document, by adding `#` at the beginning of + it (when using markdown). The `h1` will be the document `<title>`. +- For subheadings, use `##`, `###` and so on - Avoid putting numbers in headings. Numbers shift, hence documentation anchor links shift too, which eventually leads to dead links. If you think it is compelling to add numbers in headings, make sure to at least discuss it with @@ -106,21 +126,75 @@ Inside the document: - If a heading is placed right after an image, always add three dashes (`---`) between the image and the heading -## Notes +## Alert boxes -- Notes should be quoted with the word `Note:` being bold. Use this form: +Whenever you want to call the attention to a particular sentence, +use the following markup for highlighting. - ```md - >**Note:** - This is something to note. - ``` +_Note that the alert boxes only work for one paragraph only. Multiple paragraphs, +lists, headers, etc will not render correctly._ + +### Note + +```md +NOTE: **Note:** +This is something to note. +``` + +How it renders in docs.gitlab.com: + +NOTE: **Note:** +This is something to note. + +### Tip + +```md +TIP: **Tip:** +This is a tip. +``` + +How it renders in docs.gitlab.com: + +TIP: **Tip:** +This is a tip. + +### Caution + +```md +CAUTION: **Caution:** +This is something to be cautious about. +``` + +How it renders in docs.gitlab.com: + +CAUTION: **Caution:** +This is something to be cautious about. + +### Danger - which renders to: +```md +DANGER: **Danger:** +This is a breaking change, a bug, or something very important to note. +``` + +How it renders in docs.gitlab.com: - >**Note:** - This is something to note. +DANGER: **Danger:** +This is a breaking change, a bug, or something very important to note. - If the note spans across multiple lines it's OK to split the line. +## Blockquotes + +For highlighting a text within a blue blockquote, use this format: + +```md +> This is a blockquote. +``` + +which renders in docs.gitlab.com to: + +> This is a blockquote. + +If the text spans across multiple lines it's OK to split the line. ## Specific sections and terms @@ -137,7 +211,7 @@ below. > Introduced in GitLab 8.3. ``` -- If possible every feature should have a link to the MR, issue, or epic that introduced it. +- Whenever possible, every feature should have a link to the MR, issue, or epic that introduced it. The above note would be then transformed to: ```md @@ -152,11 +226,9 @@ below. the feature is available in: ```md - > [Introduced][ee-1234] in [GitLab Starter](https://about.gitlab.com/products/) 8.3. + > [Introduced][ee-1234] in [GitLab Starter](https://about.gitlab.com/pricing/) 8.3. ``` - Otherwise, leave this mention out. - ### Product badges When a feature is available in EE-only tiers, add the corresponding tier according to the diff --git a/doc/development/writing_documentation.md b/doc/development/writing_documentation.md index 9bca4637830..1c41fc7611f 100644 --- a/doc/development/writing_documentation.md +++ b/doc/development/writing_documentation.md @@ -1,3 +1,7 @@ +--- +description: Learn how to contribute to GitLab Documentation. +--- + # GitLab Documentation guidelines - **General Documentation**: written by the [developers responsible by creating features](#contributing-to-docs). Should be submitted in the same merge request containing code. Feature proposals (by GitLab contributors) should also be accompanied by its respective documentation. They can be later improved by PMs and Technical Writers. @@ -201,6 +205,19 @@ Things to note: built-in help page, that's why we omit it in `git grep`. - Use the checklist on the documentation MR description template. +#### Alternative redirection method + +Alternatively to the method described above, you can simply replace the content +of the old file with a frontmatter containing a redirect link: + +```yaml +--- +redirect_to: '../path/to/file/README.md' +--- +``` + +It supports both full and relative URLs, e.g. `https://docs.gitlab.com/ee/path/to/file.html`, `../path/to/file.html`, `path/to/file.md`. Note that any `*.md` paths will be compiled to `*.html`. + ### Redirections for pages with Disqus comments If the documentation page being relocated already has any Disqus comments, diff --git a/doc/install/README.md b/doc/install/README.md index 5dadf57ea9a..27df03c6ac6 100644 --- a/doc/install/README.md +++ b/doc/install/README.md @@ -1,5 +1,6 @@ --- comments: false +description: Read through the GitLab installation methods. --- # Installation diff --git a/doc/install/azure/index.md b/doc/install/azure/index.md index b0c3ad960bb..21694b02d18 100644 --- a/doc/install/azure/index.md +++ b/doc/install/azure/index.md @@ -1,3 +1,8 @@ +--- +description: 'Learn how to spin up a +pre-configured GitLab VM on Microsoft Azure and have your very own private GitLab instance up and running in around 30 minutes.' +--- + # Install GitLab on Microsoft Azure > _This article was originally written by Dave Wentzel and [published on the GitLab Blog][Original-Blog-Post]._ diff --git a/doc/install/docker.md b/doc/install/docker.md index 933756072ff..c7dc9db70c5 100644 --- a/doc/install/docker.md +++ b/doc/install/docker.md @@ -1,4 +1,4 @@ -# GitLab Docker images +# Install GitLab with Docker [Docker](https://www.docker.com) and container technology have been revolutionizing the software world for the past few years. They combine the performance and efficiency of native execution with the abstraction, security, and immutability of virtualization. diff --git a/doc/install/google_cloud_platform/index.md b/doc/install/google_cloud_platform/index.md index 2691495e0d4..ab5f7507f24 100644 --- a/doc/install/google_cloud_platform/index.md +++ b/doc/install/google_cloud_platform/index.md @@ -1,3 +1,7 @@ +--- +description: 'Learn how to install a GitLab instance on Google Cloud Platform.' +--- + # Installing GitLab on Google Cloud Platform ![GCP landing page](img/gcp_landing.png) diff --git a/doc/install/kubernetes/index.md b/doc/install/kubernetes/index.md index 7d8b8fc1597..aeaa739edab 100644 --- a/doc/install/kubernetes/index.md +++ b/doc/install/kubernetes/index.md @@ -1,4 +1,9 @@ +--- +description: 'Read through the different methods to deploy GitLab on Kubernetes.' +--- + # Installing GitLab on Kubernetes + > **Note**: These charts have been tested on Google Kubernetes Engine and Azure Container Service. Other Kubernetes installations may work as well, if not please [open an issue](https://gitlab.com/charts/charts.gitlab.io/issues). The easiest method to deploy GitLab on [Kubernetes](https://kubernetes.io/) is @@ -16,6 +21,7 @@ should be deployed, upgraded, and configured. * [Community Contributed Charts](#community-contributed-charts): Community contributed charts, deprecated by the official GitLab chart. ## GitLab-Omnibus Chart (Recommended) + > **Note**: This chart is in beta while [additional features](https://gitlab.com/charts/charts.gitlab.io/issues/68) are being added. This chart is the best available way to operate GitLab on Kubernetes. It deploys and configures nearly all features of GitLab, including: a [Runner](https://docs.gitlab.com/runner/), [Container Registry](../../user/project/container_registry.html#gitlab-container-registry), [Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/), [automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego), and a [load balancer](https://github.com/kubernetes/ingress/tree/master/controllers/nginx). It is based on our [GitLab Omnibus Docker Images](https://docs.gitlab.com/omnibus/docker/README.html). diff --git a/doc/install/openshift_and_gitlab/index.md b/doc/install/openshift_and_gitlab/index.md index e6ccfccd33f..1ced1fb513d 100644 --- a/doc/install/openshift_and_gitlab/index.md +++ b/doc/install/openshift_and_gitlab/index.md @@ -6,7 +6,7 @@ article_type: tutorial date: 2016-06-28 --- -# Getting started with OpenShift Origin 3 and GitLab +# How to install GitLab on OpenShift Origin 3 ## Introduction diff --git a/doc/legal/README.md b/doc/legal/README.md index 6413f1d645f..d991429a652 100644 --- a/doc/legal/README.md +++ b/doc/legal/README.md @@ -4,5 +4,4 @@ comments: false # Legal -- [Corporate contributor license agreement](corporate_contributor_license_agreement.md) -- [Individual contributor license agreement](individual_contributor_license_agreement.md) +Please read through the [GitLab License Agreement](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). diff --git a/doc/legal/corporate_contributor_license_agreement.md b/doc/legal/corporate_contributor_license_agreement.md index ebb24ba0a7f..e5fc7a3c85f 100644 --- a/doc/legal/corporate_contributor_license_agreement.md +++ b/doc/legal/corporate_contributor_license_agreement.md @@ -1,2 +1,3 @@ -This document has been replaced by a Developer Certificate of Origin and License, -as described in [Contributing.md](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md).
\ No newline at end of file +--- +redirect_to: 'README.md' +--- diff --git a/doc/legal/individual_contributor_license_agreement.md b/doc/legal/individual_contributor_license_agreement.md index ebb24ba0a7f..e5fc7a3c85f 100644 --- a/doc/legal/individual_contributor_license_agreement.md +++ b/doc/legal/individual_contributor_license_agreement.md @@ -1,2 +1,3 @@ -This document has been replaced by a Developer Certificate of Origin and License, -as described in [Contributing.md](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md).
\ No newline at end of file +--- +redirect_to: 'README.md' +--- diff --git a/doc/raketasks/features.md b/doc/raketasks/features.md index fee49cc27cc..57c16f110e4 100644 --- a/doc/raketasks/features.md +++ b/doc/raketasks/features.md @@ -1,4 +1,4 @@ -# Features +# Namespaces ## Enable usernames and namespaces for user projects diff --git a/doc/raketasks/web_hooks.md b/doc/raketasks/web_hooks.md index 2ebf7c48f4e..5f3143f76cd 100644 --- a/doc/raketasks/web_hooks.md +++ b/doc/raketasks/web_hooks.md @@ -1,4 +1,4 @@ -# Webhooks +# Webhooks administration **[CORE ONLY]** ## Add a webhook for **ALL** projects: diff --git a/doc/topics/git/how_to_install_git/index.md b/doc/topics/git/how_to_install_git/index.md index 6c909a1ba86..58d86f7d387 100644 --- a/doc/topics/git/how_to_install_git/index.md +++ b/doc/topics/git/how_to_install_git/index.md @@ -4,6 +4,7 @@ author_gitlab: SeanPackham level: beginner article_type: user guide date: 2017-05-15 +description: 'This article describes how to install Git on macOS, Ubuntu Linux and Windows.' --- # Installing Git diff --git a/doc/university/training/gitlab_flow.md b/doc/university/training/gitlab_flow.md index 02a6ad48a38..d7bc7bda43f 100644 --- a/doc/university/training/gitlab_flow.md +++ b/doc/university/training/gitlab_flow.md @@ -2,39 +2,31 @@ comments: false --- -# GitLab Flow +# What is the GitLab Flow - A simplified branching strategy - All features and fixes first go to master - Allows for 'production' or 'stable' branches - Bug fixes/hot fix patches are cherry-picked from master ---- - -# Feature branches +## Feature branches - Create a feature/bugfix branch to do all work - Use merge requests to merge to master ![inline](gitlab_flow/feature_branches.png) ---- - -# Production branch +## Production branch - One, long-running production release branch as opposed to individual stable branches - Consider creating a tag for each version that gets deployed ---- - -# Production branch +## Production branch ![inline](gitlab_flow/production_branch.png) ---- - -# Release branch +## Release branch - Useful if you release software to customers - When preparing a new release, create stable branch @@ -43,15 +35,11 @@ comments: false - Cherry-pick critical bug fixes to stable branch for patch release - Never commit bug fixes directly to stable branch ---- - -# Release branch +## Release branch ![inline](gitlab_flow/release_branches.png) ---- - -# More details +## More details -Blog post on 'GitLab Flow' at -[http://doc.gitlab.com/ee/workflow/gitlab_flow.html](http://doc.gitlab.com/ee/workflow/gitlab_flow.html) +For more information read through the [GitLab Flow](../../workflow/gitlab_flow.md) +documentation. diff --git a/doc/university/training/topics/gitlab_flow.md b/doc/university/training/topics/gitlab_flow.md index b8049b5c80e..f6006ce0a60 100644 --- a/doc/university/training/topics/gitlab_flow.md +++ b/doc/university/training/topics/gitlab_flow.md @@ -1,57 +1,3 @@ --- -comments: false +redirect_to: '../gitlab_flow.md' --- - -# GitLab Flow - ----------- - -- A simplified branching strategy -- All features and fixes first go to master -- Allows for 'production' or 'stable' branches -- Bug fixes/hot fix patches are cherry-picked from master - ----------- - -### Feature branches - -- Create a feature/bugfix branch to do all work -- Use merge requests to merge to master - -![inline](http://gitlab.com/gitlab-org/University/raw/5baea0fe222a915d0500e40747d35eb18681cdc3/training/gitlab_flow/feature_branches.png) - ----------- - -## Production branch - -- One, long-running production release branch - as opposed to individual stable branches -- Consider creating a tag for each version that gets deployed - ----------- - -## Production branch - -![inline](http://gitlab.com/gitlab-org/University/raw/5baea0fe222a915d0500e40747d35eb18681cdc3/training/gitlab_flow/production_branch.png) - ----------- - -## Release branch - -- Useful if you release software to customers -- When preparing a new release, create stable branch - from master -- Consider creating a tag for each version -- Cherry-pick critical bug fixes to stable branch for patch release -- Never commit bug fixes directly to stable branch - ----------- - -![inline](http://gitlab.com/gitlab-org/University/raw/5baea0fe222a915d0500e40747d35eb18681cdc3/training/gitlab_flow/release_branches.png) - ----------- - -## More details - -Blog post on 'GitLab Flow' at -[http://doc.gitlab.com/ee/workflow/gitlab_flow.html](http://doc.gitlab.com/ee/workflow/gitlab_flow.html) diff --git a/doc/university/training/topics/merge_requests.md b/doc/university/training/topics/merge_requests.md index 4e8c9de85a1..d7b771cd87b 100644 --- a/doc/university/training/topics/merge_requests.md +++ b/doc/university/training/topics/merge_requests.md @@ -2,7 +2,7 @@ comments: false --- -# Merge requests +# Code review and collaboration with Merge Requests ---------- diff --git a/doc/user/admin_area/labels.md b/doc/user/admin_area/labels.md index 9e2a89ebdf6..e383142c33e 100644 --- a/doc/user/admin_area/labels.md +++ b/doc/user/admin_area/labels.md @@ -1,4 +1,4 @@ -# Labels +# Labels administration **[CORE ONLY]** ## Default Labels diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 88f4bb2ee04..30761a66563 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -40,20 +40,20 @@ In GitLab, a namespace is a unique name to be used as a user name, a group name, - `http://gitlab.example.com/groupname` - `http://gitlab.example.com/groupname/subgroup_name` -For example, consider a user called John: +For example, consider a user named Alex: -1. John creates his account on GitLab.com with the username `john`; -his profile will be accessed under `https://gitlab.example.com/john` -1. John creates a group for his team with the groupname `john-team`; -his group and its projects will be accessed under `https://gitlab.example.com/john-team` -1. John creates a subgroup of `john-team` with the subgroup name `marketing`; -his subgroup and its projects will be accessed under `https://gitlab.example.com/john-team/marketing` +1. Alex creates an account on GitLab.com with the username `alex`; +their profile will be accessed under `https://gitlab.example.com/alex` +1. Alex creates a group for their team with the groupname `alex-team`; +the group and its projects will be accessed under `https://gitlab.example.com/alex-team` +1. Alex creates a subgroup of `alex-team` with the subgroup name `marketing`; +this subgroup and its projects will be accessed under `https://gitlab.example.com/alex-team/marketing` By doing so: -- Any team member mentions John with `@john` -- John mentions everyone from his team with `@john-team` -- John mentions only his marketing team with `@john-team/marketing` +- Any team member mentions Alex with `@alex` +- Alex mentions everyone from their team with `@alex-team` +- Alex mentions only the marketing team with `@alex-team/marketing` ## Issues and merge requests within a group diff --git a/doc/user/index.md b/doc/user/index.md index 2494df46f1c..a50e5e8fbf8 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -1,3 +1,7 @@ +--- +description: 'Read through the GitLab User documentation to learn how to use, configure, and customize GitLab and GitLab.com to your own needs.' +--- + # User documentation Welcome to GitLab! We're glad to have you here! diff --git a/doc/user/permissions.md b/doc/user/permissions.md index a9ba2a51242..0808e3949be 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -1,3 +1,7 @@ +--- +description: 'Understand and explore the user permission levels in GitLab, and what features each of them grants you access to.' +--- + # Permissions Users have different abilities depending on the access level they have in a diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index a97ce84b861..4b5c2539c4b 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -1,3 +1,7 @@ +--- +description: 'Learn how to use GitLab Pages to deploy a static website at no additional cost.' +--- + # GitLab Pages With GitLab Pages it's easy to publish your project website. GitLab Pages is a hosting service for static websites, at no additional cost. diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index 0b5076b8c5d..fe4d15adfa1 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -1,4 +1,4 @@ -# GitLab Pages +# Exploring GitLab Pages > **Notes:** > - This feature was [introduced][ee-80] in GitLab EE 8.3. @@ -14,9 +14,7 @@ deploy static pages for your individual projects, your user or your group. Read [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlab-com) for specific information, if you are using GitLab.com to host your website. -Read through [All you Need to Know About GitLab Pages][pages-index-guide] for a list of all learning materials we have prepared for GitLab Pages (webpages, articles, guides, blog posts, video tutorials). - -## Getting started with GitLab Pages +## Getting started with GitLab Pages domains > **Note:** > In the rest of this document we will assume that the general domain name that diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 2c90f4b4413..b8bac01959e 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -5,6 +5,7 @@ > - [Introduced][ce-3050] in GitLab 8.9. > - Importing will not be possible if the import instance version differs from > that of the exporter. +> - For GitLab admins, please read through [Project import/export administration](../../../administration/raketasks/project_import_export.md). > - For existing installations, the project import option has to be enabled in > application settings (`/admin/application_settings`) under 'Import sources'. > Ask your administrator if you don't see the **GitLab export** button when diff --git a/doc/workflow/protected_branches.md b/doc/workflow/protected_branches.md index aa48b8f750e..ced7d391ace 100644 --- a/doc/workflow/protected_branches.md +++ b/doc/workflow/protected_branches.md @@ -1 +1 @@ -This document is moved to [user/project/protected_branches.md](../user/project/protected_branches.md) +This document was moved to [another location](../user/project/protected_branches.md). diff --git a/features/project/deploy_keys.feature b/features/project/deploy_keys.feature deleted file mode 100644 index 6f1ed9ff5b6..00000000000 --- a/features/project/deploy_keys.feature +++ /dev/null @@ -1,46 +0,0 @@ -Feature: Project Deploy Keys - Background: - Given I sign in as a user - And I own project "Shop" - - @javascript - Scenario: I should see deploy keys list - Given project has deploy key - When I visit project deploy keys page - Then I should see project deploy key - - @javascript - Scenario: I should see project deploy keys - Given other projects have deploy keys - When I visit project deploy keys page - Then I should see other project deploy key - And I should only see the same deploy key once - - @javascript - Scenario: I should see public deploy keys - Given public deploy key exists - When I visit project deploy keys page - Then I should see public deploy key - - @javascript - Scenario: I add new deploy key - Given I visit project deploy keys page - And I submit new deploy key - Then I should be on deploy keys page - And I should see newly created deploy key - - @javascript - Scenario: I attach other project deploy key to project - Given other projects have deploy keys - And I visit project deploy keys page - When I click attach deploy key - Then I should be on deploy keys page - And I should see newly created deploy key - - @javascript - Scenario: I attach public deploy key to project - Given public deploy key exists - And I visit project deploy keys page - When I click attach deploy key - Then I should be on deploy keys page - And I should see newly created deploy key diff --git a/features/project/issues/references.feature b/features/project/issues/references.feature deleted file mode 100644 index 4ae2d653337..00000000000 --- a/features/project/issues/references.feature +++ /dev/null @@ -1,33 +0,0 @@ -@project_issues -Feature: Project Issues References - Background: - Given I sign in as "John Doe" - And public project "Community" - And "John Doe" owns public project "Community" - And project "Community" has "Community issue" open issue - And I logout - And I sign in as "Mary Jane" - And private project "Enterprise" - And "Mary Jane" owns private project "Enterprise" - And project "Enterprise" has "Enterprise issue" open issue - And project "Enterprise" has "Enterprise fix" open merge request - And I visit issue page "Enterprise issue" - And I leave a comment referencing issue "Community issue" - And I visit merge request page "Enterprise fix" - And I leave a comment referencing issue "Community issue" - And I logout - - @javascript - Scenario: Viewing the public issue as a "John Doe" - Given I sign in as "John Doe" - When I visit issue page "Community issue" - Then I should not see any related merge requests - And I should see no notes at all - - @javascript - Scenario: Viewing the public issue as "Mary Jane" - Given I sign in as "Mary Jane" - When I visit issue page "Community issue" - Then I should see the "Enterprise fix" related merge request - And I should see a note linking to "Enterprise fix" merge request - And I should see a note linking to "Enterprise issue" issue diff --git a/features/steps/project/deploy_keys.rb b/features/steps/project/deploy_keys.rb deleted file mode 100644 index 8e2f594328d..00000000000 --- a/features/steps/project/deploy_keys.rb +++ /dev/null @@ -1,94 +0,0 @@ -class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps - include SharedAuthentication - include SharedProject - include SharedPaths - - step 'project has deploy key' do - create(:deploy_keys_project, project: @project) - end - - step 'I should see project deploy key' do - page.within(find('.deploy-keys')) do - find('.js-deployKeys-tab-enabled_keys').click() - expect(page).to have_content deploy_key.title - end - end - - step 'I should see other project deploy key' do - page.within(find('.deploy-keys')) do - find('.js-deployKeys-tab-available_project_keys').click() - expect(page).to have_content other_deploy_key.title - end - end - - step 'I should see public deploy key' do - page.within(find('.deploy-keys')) do - find('.js-deployKeys-tab-public_keys').click() - expect(page).to have_content public_deploy_key.title - end - end - - step 'I click \'New Deploy Key\'' do - click_link 'New deploy key' - end - - step 'I submit new deploy key' do - fill_in "deploy_key_title", with: "laptop" - fill_in "deploy_key_key", with: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop" - click_button "Add key" - end - - step 'I should be on deploy keys page' do - expect(current_path).to eq project_settings_repository_path(@project) - end - - step 'I should see newly created deploy key' do - @project.reload - page.within(find('.deploy-keys')) do - find('.js-deployKeys-tab-enabled_keys').click() - expect(page).to have_content(deploy_key.title) - end - end - - step 'other projects have deploy keys' do - @second_project = create(:project, namespace: create(:group)) - @second_project.add_master(current_user) - create(:deploy_keys_project, project: @second_project) - - @third_project = create(:project, namespace: create(:group)) - @third_project.add_master(current_user) - create(:deploy_keys_project, project: @third_project, deploy_key: @second_project.deploy_keys.first) - end - - step 'I should only see the same deploy key once' do - page.within(find('.deploy-keys')) do - expect(find('.js-deployKeys-tab-available_project_keys .badge')).to have_content('1') - end - end - - step 'public deploy key exists' do - create(:deploy_key, public: true) - end - - step 'I click attach deploy key' do - page.within(find('.deploy-keys')) do - find('.badge', text: '1').click() - click_button 'Enable' - expect(page).not_to have_selector('.fa-spinner') - end - end - - protected - - def deploy_key - @project.deploy_keys.last - end - - def other_deploy_key - @second_project.deploy_keys.last - end - - def public_deploy_key - DeployKey.are_public.last - end -end diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb index a9174efd334..8d9cd3db9d9 100644 --- a/features/steps/shared/issuable.rb +++ b/features/steps/shared/issuable.rb @@ -5,13 +5,6 @@ module SharedIssuable find('.js-issuable-edit', visible: true).click end - step 'project "Community" has "Community issue" open issue' do - create_issuable_for_project( - project_name: 'Community', - title: 'Community issue' - ) - end - step 'project "Community" has "Community fix" open merge request' do create_issuable_for_project( project_name: 'Community', @@ -59,32 +52,11 @@ module SharedIssuable visit project_merge_request_path(mr.target_project, mr) end - step 'I visit issue page "Community issue"' do - issue = Issue.find_by(title: 'Community issue') - visit project_issue_path(issue.project, issue) - end - step 'I visit issue page "Community fix"' do mr = MergeRequest.find_by(title: 'Community fix') visit project_merge_request_path(mr.target_project, mr) end - step 'I should not see any related merge requests' do - page.within '.issue-details' do - expect(page).not_to have_content('#merge-requests .merge-requests-title') - end - end - - step 'I should see the "Enterprise fix" related merge request' do - page.within '#merge-requests .merge-requests-title' do - expect(page).to have_content('1 Related Merge Request') - end - - page.within '#merge-requests ul' do - expect(page).to have_content('Enterprise fix') - end - end - step 'I should see a note linking to "Enterprise fix" merge request' do visible_note( issuable: MergeRequest.find_by(title: 'Enterprise fix'), diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb index f2769f28fed..a6bf7008955 100644 --- a/features/steps/shared/paths.rb +++ b/features/steps/shared/paths.rb @@ -240,10 +240,6 @@ module SharedPaths visit project_settings_integrations_path(@project) end - step 'I visit project deploy keys page' do - visit project_deploy_keys_path(@project) - end - step 'I visit project find file page' do visit project_find_file_path(@project, root_ref) end diff --git a/lib/api/runner.rb b/lib/api/runner.rb index cd7d6603171..649feba1036 100644 --- a/lib/api/runner.rb +++ b/lib/api/runner.rb @@ -11,13 +11,14 @@ module API requires :token, type: String, desc: 'Registration token' optional :description, type: String, desc: %q(Runner's description) optional :info, type: Hash, desc: %q(Runner's metadata) + optional :active, type: Boolean, desc: 'Should Runner be active' optional :locked, type: Boolean, desc: 'Should Runner be locked for current project' optional :run_untagged, type: Boolean, desc: 'Should Runner handle untagged jobs' optional :tag_list, type: Array[String], desc: %q(List of Runner's tags) optional :maximum_timeout, type: Integer, desc: 'Maximum timeout set when this Runner will handle the job' end post '/' do - attributes = attributes_for_keys([:description, :locked, :run_untagged, :tag_list, :maximum_timeout]) + attributes = attributes_for_keys([:description, :active, :locked, :run_untagged, :tag_list, :maximum_timeout]) .merge(get_runner_details_from_request) runner = diff --git a/lib/gitlab/file_detector.rb b/lib/gitlab/file_detector.rb index cc2638172ec..77af7a868d0 100644 --- a/lib/gitlab/file_detector.rb +++ b/lib/gitlab/file_detector.rb @@ -14,6 +14,7 @@ module Gitlab avatar: /\Alogo\.(png|jpg|gif)\z/, issue_template: %r{\A\.gitlab/issue_templates/[^/]+\.md\z}, merge_request_template: %r{\A\.gitlab/merge_request_templates/[^/]+\.md\z}, + xcode_config: %r{\A[^/]*\.(xcodeproj|xcworkspace)\z}, # Configuration files gitignore: '.gitignore', diff --git a/lib/gitlab/git/blame.rb b/lib/gitlab/git/blame.rb index 6d6ed065f79..4158d50cd9e 100644 --- a/lib/gitlab/git/blame.rb +++ b/lib/gitlab/git/blame.rb @@ -15,10 +15,7 @@ module Gitlab def each @blames.each do |blame| - yield( - Gitlab::Git::Commit.new(@repo, blame.commit), - blame.line - ) + yield(blame.commit, blame.line) end end @@ -60,9 +57,8 @@ module Gitlab end end - # load all commits in single call - commits.keys.each do |key| - commits[key] = @repo.lookup(key) + Gitlab::Git::Commit.batch_by_oid(@repo, commits.keys).each do |commit| + commits[commit.sha] = commit end # get it together diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 728c3605131..20377dc81b2 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab 1.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 22:28+0200\n" -"PO-Revision-Date: 2018-05-02 22:28+0200\n" +"POT-Creation-Date: 2018-05-09 09:24+0200\n" +"PO-Revision-Date: 2018-05-09 09:24+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" @@ -104,6 +104,12 @@ msgstr "" msgid "+ %{moreCount} more" msgstr "" +msgid "- Runner is active and can process any new jobs" +msgstr "" + +msgid "- Runner is paused and will not receive any new jobs" +msgstr "" + msgid "- show less" msgstr "" @@ -156,6 +162,9 @@ msgstr "" msgid "<strong>Removes</strong> source branch" msgstr "" +msgid "A 'Runner' is a process which runs a job. You can setup as many Runners as you need." +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" @@ -387,6 +396,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Ask your group master to setup a group Runner." +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -474,6 +486,12 @@ msgstr "" msgid "Available" msgstr "" +msgid "Available group Runners : %{runners}" +msgstr "" + +msgid "Available group Runners : %{runners}." +msgstr "" + msgid "Avatar will be removed. Are you sure?" msgstr "" @@ -716,6 +734,9 @@ msgstr "" msgid "CI/CD configuration" msgstr "" +msgid "CI/CD settings" +msgstr "" + msgid "CICD|An explicit %{ci_file} needs to be specified before you can begin using Continuous Integration and Delivery." msgstr "" @@ -749,6 +770,9 @@ msgstr "" msgid "CICD|You need to specify a domain if you want to use Auto Review Apps and Auto Deploy stages." msgstr "" +msgid "Can run untagged jobs" +msgstr "" + msgid "Cancel" msgstr "" @@ -1652,6 +1676,15 @@ msgstr "" msgid "Directory name" msgstr "" +msgid "Disable" +msgstr "" + +msgid "Disable for this project" +msgstr "" + +msgid "Disable group Runners" +msgstr "" + msgid "Discard changes" msgstr "" @@ -1703,6 +1736,9 @@ msgstr "" msgid "Due date" msgstr "" +msgid "Each Runner can be in one of the following states:" +msgstr "" + msgid "Edit" msgstr "" @@ -1724,6 +1760,9 @@ msgstr "" msgid "Embed" msgstr "" +msgid "Enable" +msgstr "" + msgid "Enable Auto DevOps" msgstr "" @@ -1736,6 +1775,12 @@ msgstr "" msgid "Enable and configure Prometheus metrics." msgstr "" +msgid "Enable for this project" +msgstr "" + +msgid "Enable group Runners" +msgstr "" + msgid "Enable or disable version check and usage ping." msgstr "" @@ -1978,6 +2023,9 @@ msgstr "" msgid "GitLab CI Linter has been moved" msgstr "" +msgid "GitLab Group Runners can execute code for all the projects in this group." +msgstr "" + msgid "GitLab Runner section" msgstr "" @@ -2002,9 +2050,18 @@ msgstr "" msgid "Got it!" msgstr "" +msgid "Group CI/CD settings" +msgstr "" + msgid "Group ID" msgstr "" +msgid "Group Runners" +msgstr "" + +msgid "Group masters can register group runners in the %{link}" +msgstr "" + msgid "GroupSettings|Prevent sharing a project within %{group} with other groups" msgstr "" @@ -2315,9 +2372,18 @@ msgstr "" msgid "Lock %{issuableDisplayName}" msgstr "" +msgid "Lock to current projects" +msgstr "" + msgid "Locked" msgstr "" +msgid "Locked to current projects" +msgstr "" + +msgid "Locked to this project" +msgstr "" + msgid "Login" msgstr "" @@ -2348,6 +2414,9 @@ msgstr "" msgid "Maximum git storage failures" msgstr "" +msgid "Maximum job timeout" +msgstr "" + msgid "May" msgstr "" @@ -2491,6 +2560,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No" +msgstr "" + msgid "No assignee" msgstr "" @@ -2680,6 +2752,9 @@ msgstr "" msgid "Password" msgstr "" +msgid "Pause" +msgstr "" + msgid "Pending" msgstr "" @@ -3145,6 +3220,9 @@ msgstr "" msgid "Register / Sign In" msgstr "" +msgid "Register and see your runners for this group." +msgstr "" + msgid "Related Commits" msgstr "" @@ -3169,6 +3247,12 @@ msgstr "" msgid "Remind later" msgstr "" +msgid "Remove" +msgstr "" + +msgid "Remove Runner" +msgstr "" + msgid "Remove avatar" msgstr "" @@ -3202,6 +3286,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Resume" +msgstr "" + msgid "Retry" msgstr "" @@ -3234,6 +3321,15 @@ msgstr "" msgid "Runners" msgstr "" +msgid "Runners API" +msgstr "" + +msgid "Runners can be placed on separate users, servers, and even on your local machine." +msgstr "" + +msgid "Runners settings" +msgstr "" + msgid "Running" msgstr "" @@ -3360,6 +3456,9 @@ msgstr "" msgid "Share" msgstr "" +msgid "Shared Runners" +msgstr "" + msgid "Show command" msgstr "" @@ -3515,6 +3614,9 @@ msgstr "" msgid "Spam and Anti-bot Protection" msgstr "" +msgid "Specific Runners" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" @@ -3772,9 +3874,18 @@ msgstr "" msgid "There was an error when unsubscribing from this label." msgstr "" +msgid "They can be managed using the %{link}." +msgstr "" + +msgid "This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area." +msgstr "" + msgid "This directory" msgstr "" +msgid "This group does not provide any group Runners yet." +msgstr "" + msgid "This is a confidential issue." msgstr "" @@ -3832,6 +3943,9 @@ msgstr "" msgid "This project" msgstr "" +msgid "This project does not belong to a group and can therefore not make use of group Runners." +msgstr "" + msgid "This repository" msgstr "" @@ -4016,6 +4130,9 @@ msgstr "" msgid "To import an SVN repository, check out %{svn_link}." msgstr "" +msgid "To start serving your jobs you can add Runners to your group" +msgstr "" + msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." msgstr "" @@ -4187,6 +4304,9 @@ msgstr "" msgid "Web terminal" msgstr "" +msgid "When a runner is locked, it cannot be assigned to other projects" +msgstr "" + msgid "When enabled, users cannot use GitLab until the terms have been accepted." msgstr "" @@ -4304,6 +4424,9 @@ msgstr "" msgid "Write a commit message..." msgstr "" +msgid "Yes" +msgstr "" + msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" @@ -4447,6 +4570,9 @@ msgstr "" msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "for this project" +msgstr "" + msgid "importing" msgstr "" diff --git a/package.json b/package.json index 9543dba1bbc..6d5932dcec6 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "worker-loader": "^1.1.1" }, "devDependencies": { - "axios-mock-adapter": "^1.10.0", + "axios-mock-adapter": "^1.15.0", "babel-eslint": "^8.0.2", "babel-plugin-istanbul": "^4.1.6", "babel-plugin-rewire": "^1.1.0", diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb index 34b8b246d0f..cdc170b9ccb 100644 --- a/spec/factories/ci/runners.rb +++ b/spec/factories/ci/runners.rb @@ -6,6 +6,7 @@ FactoryBot.define do is_shared false active true access_level :not_protected + runner_type :project_type trait :online do contacted_at Time.now @@ -13,6 +14,7 @@ FactoryBot.define do trait :shared do is_shared true + runner_type :instance_type end trait :specific do diff --git a/spec/features/issuables/markdown_references/internal_references_spec.rb b/spec/features/issuables/markdown_references/internal_references_spec.rb new file mode 100644 index 00000000000..8af4b157cd8 --- /dev/null +++ b/spec/features/issuables/markdown_references/internal_references_spec.rb @@ -0,0 +1,80 @@ +require "rails_helper" + +describe "Internal references", :js do + include Spec::Support::Helpers::Features::NotesHelpers + + let(:private_project_user) { private_project.owner } + let(:private_project) { create(:project, :private, :repository) } + let(:private_project_issue) { create(:issue, project: private_project) } + let(:private_project_merge_request) { create(:merge_request, source_project: private_project) } + let(:public_project_user) { public_project.owner } + let(:public_project) { create(:project, :public, :repository) } + let(:public_project_issue) { create(:issue, project: public_project) } + + context "when referencing to open issue" do + context "from private project" do + context "from issue" do + before do + sign_in(private_project_user) + + visit(project_issue_path(private_project, private_project_issue)) + + add_note("##{public_project_issue.to_reference(private_project)}") + end + + context "when user doesn't have access to private project" do + before do + sign_in(public_project_user) + + visit(project_issue_path(public_project, public_project_issue)) + end + + it { expect(page).not_to have_css(".note") } + end + end + + context "from merge request" do + before do + sign_in(private_project_user) + + visit(project_merge_request_path(private_project, private_project_merge_request)) + + add_note("##{public_project_issue.to_reference(private_project)}") + end + + context "when user doesn't have access to private project" do + before do + sign_in(public_project_user) + + visit(project_issue_path(public_project, public_project_issue)) + end + + it "doesn't show any references" do + page.within(".issue-details") do + expect(page).not_to have_content("#merge-requests .merge-requests-title") + end + end + end + + context "when user has access to private project" do + before do + visit(project_issue_path(public_project, public_project_issue)) + end + + it "shows references" do + page.within("#merge-requests .merge-requests-title") do + expect(page).to have_content("1 Related Merge Request") + end + + page.within("#merge-requests ul") do + expect(page).to have_content(private_project_merge_request.title) + end + + expect(page).to have_content("mentioned in merge request #{private_project_merge_request.to_reference(public_project)}") + .and have_content(private_project_user.name) + end + end + end + end + end +end diff --git a/spec/features/issuables/markdown_references/jira_spec.rb b/spec/features/issuables/markdown_references/jira_spec.rb new file mode 100644 index 00000000000..fa0ab88624e --- /dev/null +++ b/spec/features/issuables/markdown_references/jira_spec.rb @@ -0,0 +1,187 @@ +require "rails_helper" + +describe "Jira", :js do + let(:user) { create(:user) } + let(:actual_project) { create(:project, :public, :repository) } + let(:merge_request) { create(:merge_request, target_project: actual_project, source_project: actual_project) } + let(:issue_actual_project) { create(:issue, project: actual_project) } + let!(:other_project) { create(:project, :public) } + let!(:issue_other_project) { create(:issue, project: other_project) } + let(:issues) { [issue_actual_project, issue_other_project] } + + shared_examples "correct references" do + before do + remotelink = double(:remotelink, all: [], build: double(save!: true)) + + stub_request(:get, "https://jira.example.com/rest/api/2/issue/JIRA-5") + stub_request(:post, "https://jira.example.com/rest/api/2/issue/JIRA-5/comment") + allow_any_instance_of(JIRA::Resource::Issue).to receive(:remotelink).and_return(remotelink) + + sign_in(user) + + visit(merge_request_path(merge_request)) + + build_note + end + + it "creates a link to the referenced issue on the preview" do + find(".js-md-preview-button").click + + wait_for_requests + + page.within(".md-preview-holder") do + links_expectations + end + end + + it "creates a link to the referenced issue after submit" do + click_button("Comment") + + wait_for_requests + + page.within("#diff-notes-app") do + links_expectations + end + end + + it "creates a note on the referenced issues" do + click_button("Comment") + + wait_for_requests + + if referenced_issues.include?(issue_actual_project) + visit(issue_path(issue_actual_project)) + + page.within("#notes") do + expect(page).to have_content("#{user.to_reference} mentioned in merge request #{merge_request.to_reference}") + end + end + + if referenced_issues.include?(issue_other_project) + visit(issue_path(issue_other_project)) + + page.within("#notes") do + expect(page).to have_content("#{user.to_reference} mentioned in merge request #{merge_request.to_reference(other_project)}") + end + end + end + end + + context "when internal issues tracker is enabled for the other project" do + context "when only internal issues tracker is enabled for the actual project" do + include_examples "correct references" do + let(:referenced_issues) { [issue_actual_project, issue_other_project] } + let(:jira_referenced) { false } + end + end + + context "when both external and internal issues trackers are enabled for the actual project" do + before do + create(:jira_service, project: actual_project) + end + + include_examples "correct references" do + let(:referenced_issues) { [issue_actual_project, issue_other_project] } + let(:jira_referenced) { true } + end + end + + context "when only external issues tracker is enabled for the actual project" do + let(:actual_project) { create(:project, :public, :repository, :issues_disabled) } + + before do + create(:jira_service, project: actual_project) + end + + include_examples "correct references" do + let(:referenced_issues) { [issue_other_project] } + let(:jira_referenced) { true } + end + end + + context "when no tracker is enabled for the actual project" do + let(:actual_project) { create(:project, :public, :repository, :issues_disabled) } + + include_examples 'correct references' do + let(:referenced_issues) { [issue_other_project] } + let(:jira_referenced) { false } + end + end + end + + context "when internal issues tracker is disabled for the other project" do + let(:other_project) { create(:project, :public, :repository, :issues_disabled) } + + context "when only internal issues tracker is enabled for the actual project" do + include_examples "correct references" do + let(:referenced_issues) { [issue_actual_project] } + let(:jira_referenced) { false } + end + end + + context "when both external and internal issues trackers are enabled for the actual project" do + before do + create(:jira_service, project: actual_project) + end + + include_examples "correct references" do + let(:referenced_issues) { [issue_actual_project] } + let(:jira_referenced) { true } + end + end + + context "when only external issues tracker is enabled for the actual project" do + let(:actual_project) { create(:project, :public, :repository, :issues_disabled) } + + before do + create(:jira_service, project: actual_project) + end + + include_examples "correct references" do + let(:referenced_issues) { [] } + let(:jira_referenced) { true } + end + end + + context "when no issues tracker is enabled for the actual project" do + let(:actual_project) { create(:project, :public, :repository, :issues_disabled) } + + include_examples "correct references" do + let(:referenced_issues) { [] } + let(:jira_referenced) { false } + end + end + end + + private + + def build_note + markdown = <<~HEREDOC + Referencing internal issue #{issue_actual_project.to_reference}, + cross-project #{issue_other_project.to_reference(actual_project)} external JIRA-5 + and non existing #999 + HEREDOC + + page.within("#diff-notes-app") do + fill_in("note_note", with: markdown) + end + end + + def links_expectations + issues.each do |issue| + if referenced_issues.include?(issue) + expect(page).to have_link(issue.to_reference, href: issue_path(issue)) + else + expect(page).not_to have_link(issue.to_reference, href: issue_path(issue)) + end + end + + if jira_referenced + expect(page).to have_link("JIRA-5", href: "https://jira.example.com/browse/JIRA-5") + else + expect(page).not_to have_link("JIRA-5", href: "https://jira.example.com/browse/JIRA-5") + end + + expect(page).not_to have_link("#999") + end +end diff --git a/spec/features/issuables/markdown_references_spec.rb b/spec/features/issuables/markdown_references_spec.rb deleted file mode 100644 index dd4e10a9886..00000000000 --- a/spec/features/issuables/markdown_references_spec.rb +++ /dev/null @@ -1,193 +0,0 @@ -require 'rails_helper' - -describe 'Markdown References', :js do - let(:user) { create(:user) } - let(:actual_project) { create(:project, :public, :repository) } - let(:merge_request) { create(:merge_request, target_project: actual_project, source_project: actual_project)} - let(:issue_actual_project) { create(:issue, project: actual_project) } - let!(:other_project) { create(:project, :public) } - let!(:issue_other_project) { create(:issue, project: other_project) } - let(:issues) { [issue_actual_project, issue_other_project] } - - def build_note - markdown = "Referencing internal issue #{issue_actual_project.to_reference}, " + - "cross-project #{issue_other_project.to_reference(actual_project)} external JIRA-5 " + - "and non existing #999" - - page.within('#diff-notes-app') do - fill_in 'note_note', with: markdown - end - end - - shared_examples 'correct references' do - before do - remotelink = double(:remotelink, all: [], build: double(save!: true)) - - stub_request(:get, "https://jira.example.com/rest/api/2/issue/JIRA-5") - stub_request(:post, "https://jira.example.com/rest/api/2/issue/JIRA-5/comment") - allow_any_instance_of(JIRA::Resource::Issue).to receive(:remotelink).and_return(remotelink) - - sign_in(user) - visit merge_request_path(merge_request) - build_note - end - - def links_expectations - issues.each do |issue| - if referenced_issues.include?(issue) - expect(page).to have_link(issue.to_reference, href: issue_path(issue)) - else - expect(page).not_to have_link(issue.to_reference, href: issue_path(issue)) - end - end - - if jira_referenced - expect(page).to have_link('JIRA-5', href: 'https://jira.example.com/browse/JIRA-5') - else - expect(page).not_to have_link('JIRA-5', href: 'https://jira.example.com/browse/JIRA-5') - end - - expect(page).not_to have_link('#999') - end - - it 'creates a link to the referenced issue on the preview' do - find('.js-md-preview-button').click - wait_for_requests - - page.within('.md-preview-holder') do - links_expectations - end - end - - it 'creates a link to the referenced issue after submit' do - click_button 'Comment' - wait_for_requests - - page.within('#diff-notes-app') do - links_expectations - end - end - - it 'creates a note on the referenced issues' do - click_button 'Comment' - wait_for_requests - - if referenced_issues.include?(issue_actual_project) - visit issue_path(issue_actual_project) - - page.within('#notes') do - expect(page).to have_content( - "#{user.to_reference} mentioned in merge request #{merge_request.to_reference}" - ) - end - end - - if referenced_issues.include?(issue_other_project) - visit issue_path(issue_other_project) - - page.within('#notes') do - expect(page).to have_content( - "#{user.to_reference} mentioned in merge request #{merge_request.to_reference(other_project)}" - ) - end - end - end - end - - context 'when internal issues tracker is enabled for the other project' do - context 'when only internal issues tracker is enabled for the actual project' do - include_examples 'correct references' do - let(:referenced_issues) { [issue_actual_project, issue_other_project] } - let(:jira_referenced) { false } - end - end - - context 'when both external and internal issues trackers are enabled for the actual project' do - before do - create(:jira_service, project: actual_project) - end - - include_examples 'correct references' do - let(:referenced_issues) { [issue_actual_project, issue_other_project] } - let(:jira_referenced) { true } - end - end - - context 'when only external issues tracker is enabled for the actual project' do - before do - create(:jira_service, project: actual_project) - - actual_project.issues_enabled = false - actual_project.save! - end - - include_examples 'correct references' do - let(:referenced_issues) { [issue_other_project] } - let(:jira_referenced) { true } - end - end - - context 'when no tracker is enabled for the actual project' do - before do - actual_project.issues_enabled = false - actual_project.save! - end - - include_examples 'correct references' do - let(:referenced_issues) { [issue_other_project] } - let(:jira_referenced) { false } - end - end - end - - context 'when internal issues tracker is disabled for the other project' do - before do - other_project.issues_enabled = false - other_project.save! - end - - context 'when only internal issues tracker is enabled for the actual project' do - include_examples 'correct references' do - let(:referenced_issues) { [issue_actual_project] } - let(:jira_referenced) { false } - end - end - - context 'when both external and internal issues trackers are enabled for the actual project' do - before do - create(:jira_service, project: actual_project) - end - - include_examples 'correct references' do - let(:referenced_issues) { [issue_actual_project] } - let(:jira_referenced) { true } - end - end - - context 'when only external issues tracker is enabled for the actual project' do - before do - create(:jira_service, project: actual_project) - - actual_project.issues_enabled = false - actual_project.save! - end - - include_examples 'correct references' do - let(:referenced_issues) { [] } - let(:jira_referenced) { true } - end - end - - context 'when no issues tracker is enabled for the actual project' do - before do - actual_project.issues_enabled = false - actual_project.save! - end - - include_examples 'correct references' do - let(:referenced_issues) { [] } - let(:jira_referenced) { false } - end - end - end -end diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb new file mode 100644 index 00000000000..71a077039b7 --- /dev/null +++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb @@ -0,0 +1,125 @@ +require "spec_helper" + +describe "User interacts with deploy keys", :js do + let(:project) { create(:project, :repository) } + let(:user) { project.owner } + + before do + sign_in(user) + end + + shared_examples "attaches a key" do + it "attaches key" do + visit(project_deploy_keys_path(project)) + + page.within(".deploy-keys") do + find(".badge", text: "1").click + + click_button("Enable") + + expect(page).not_to have_selector(".fa-spinner") + expect(current_path).to eq(project_settings_repository_path(project)) + + find(".js-deployKeys-tab-enabled_keys").click + + expect(page).to have_content(deploy_key.title) + end + end + end + + context "viewing deploy keys" do + let(:deploy_key) { create(:deploy_key) } + + context "when project has keys" do + before do + create(:deploy_keys_project, project: project, deploy_key: deploy_key) + end + + it "shows deploy keys" do + visit(project_deploy_keys_path(project)) + + page.within(".deploy-keys") do + expect(page).to have_content(deploy_key.title) + end + end + end + + context "when another project has keys" do + let(:another_project) { create(:project) } + + before do + create(:deploy_keys_project, project: another_project, deploy_key: deploy_key) + + another_project.add_master(user) + end + + it "shows deploy keys" do + visit(project_deploy_keys_path(project)) + + page.within(".deploy-keys") do + find('.js-deployKeys-tab-available_project_keys').click + + expect(page).to have_content(deploy_key.title) + expect(find(".js-deployKeys-tab-available_project_keys .badge")).to have_content("1") + end + end + end + + context "when there are public deploy keys" do + let!(:deploy_key) { create(:deploy_key, public: true) } + + it "shows public deploy keys" do + visit(project_deploy_keys_path(project)) + + page.within(".deploy-keys") do + find(".js-deployKeys-tab-public_keys").click + + expect(page).to have_content(deploy_key.title) + end + end + end + end + + context "adding deploy keys" do + before do + visit(project_deploy_keys_path(project)) + end + + it "adds new key" do + DEPLOY_KEY_TITLE = attributes_for(:key)[:title] + DEPLOY_KEY_BODY = attributes_for(:key)[:key] + + fill_in("deploy_key_title", with: DEPLOY_KEY_TITLE) + fill_in("deploy_key_key", with: DEPLOY_KEY_BODY) + + click_button("Add key") + + expect(current_path).to eq(project_settings_repository_path(project)) + + page.within(".deploy-keys") do + expect(page).to have_content(DEPLOY_KEY_TITLE) + end + end + end + + context "attaching existing keys" do + context "from another project" do + let(:another_project) { create(:project) } + let(:deploy_key) { create(:deploy_key) } + + before do + create(:deploy_keys_project, project: another_project, deploy_key: deploy_key) + + another_project.add_master(user) + end + + it_behaves_like "attaches a key" + end + + context "when keys are public" do + let!(:deploy_key) { create(:deploy_key, public: true) } + + it_behaves_like "attaches a key" + end + end +end diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index 8fcb175416f..f8877b6d1aa 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -283,7 +283,7 @@ describe ProjectsHelper do end it 'removes the repo path' do - repo = "#{storage_path}/namespace/test.git" + repo = File.join(storage_path, 'namespace/test.git') import_error = "Could not clone #{repo}\n" expect(sanitize_repo_path(project, import_error)).to eq('Could not clone [REPOS PATH]/namespace/test.git') diff --git a/spec/javascripts/deploy_keys/components/app_spec.js b/spec/javascripts/deploy_keys/components/app_spec.js index 3f9e25a8862..183d7cf2d41 100644 --- a/spec/javascripts/deploy_keys/components/app_spec.js +++ b/spec/javascripts/deploy_keys/components/app_spec.js @@ -1,28 +1,25 @@ -import _ from 'underscore'; import Vue from 'vue'; +import MockAdapter from 'axios-mock-adapter'; +import axios from '~/lib/utils/axios_utils'; import eventHub from '~/deploy_keys/eventhub'; import deployKeysApp from '~/deploy_keys/components/app.vue'; +import { TEST_HOST } from 'spec/test_constants'; describe('Deploy keys app component', () => { const data = getJSONFixture('deploy_keys/keys.json'); let vm; + let mock; - const deployKeysResponse = (request, next) => { - next( - request.respondWith(JSON.stringify(data), { - status: 200, - }), - ); - }; + beforeEach((done) => { + // setup axios mock before component + mock = new MockAdapter(axios); + mock.onGet(`${TEST_HOST}/dummy/`).replyOnce(200, data); - beforeEach(done => { const Component = Vue.extend(deployKeysApp); - Vue.http.interceptors.push(deployKeysResponse); - vm = new Component({ propsData: { - endpoint: '/test', + endpoint: `${TEST_HOST}/dummy`, projectId: '8', }, }).$mount(); @@ -31,7 +28,7 @@ describe('Deploy keys app component', () => { }); afterEach(() => { - Vue.http.interceptors = _.without(Vue.http.interceptors, deployKeysResponse); + mock.restore(); }); it('renders loading icon', done => { diff --git a/spec/javascripts/ide/lib/common/model_spec.js b/spec/javascripts/ide/lib/common/model_spec.js index 7a6c22b6d27..c278bf92b08 100644 --- a/spec/javascripts/ide/lib/common/model_spec.js +++ b/spec/javascripts/ide/lib/common/model_spec.js @@ -28,6 +28,10 @@ describe('Multi-file editor library model', () => { expect(model.originalModel).not.toBeNull(); expect(model.model).not.toBeNull(); expect(model.baseModel).not.toBeNull(); + + expect(model.originalModel.uri.path).toBe('original/path--path'); + expect(model.model.uri.path).toBe('path--path'); + expect(model.baseModel.uri.path).toBe('target/path--path'); }); it('creates model with head file to compare against', () => { diff --git a/spec/javascripts/ide/stores/actions/file_spec.js b/spec/javascripts/ide/stores/actions/file_spec.js index 3ef5a859001..7bebc2288e3 100644 --- a/spec/javascripts/ide/stores/actions/file_spec.js +++ b/spec/javascripts/ide/stores/actions/file_spec.js @@ -569,6 +569,22 @@ describe('IDE store file actions', () => { .catch(done.fail); }); + it('returns false when already opened', done => { + store.state.openFiles.push({ + ...f, + active: true, + key: `pending-${f.key}`, + }); + + store + .dispatch('openPendingTab', { file: f, keyPrefix: 'pending' }) + .then(added => { + expect(added).toBe(false); + }) + .then(done) + .catch(done.fail); + }); + it('pushes router URL when added', done => { store.state.currentBranchId = 'master'; diff --git a/spec/migrations/add_not_null_constraint_to_project_mirror_data_foreign_key_spec.rb b/spec/migrations/add_not_null_constraint_to_project_mirror_data_foreign_key_spec.rb new file mode 100644 index 00000000000..6fd3cb1f44e --- /dev/null +++ b/spec/migrations/add_not_null_constraint_to_project_mirror_data_foreign_key_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20180508100222_add_not_null_constraint_to_project_mirror_data_foreign_key.rb') + +describe AddNotNullConstraintToProjectMirrorDataForeignKey, :migration do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:import_state) { table(:project_mirror_data) } + + before do + import_state.create!(id: 1, project_id: nil, status: :started) + end + + it 'removes every import state without an associated project_id' do + expect do + subject.up + end.to change { import_state.count }.from(1).to(0) + end +end diff --git a/spec/models/ci/runner_spec.rb b/spec/models/ci/runner_spec.rb index fa9dff1c0f1..eb59ba7cbe9 100644 --- a/spec/models/ci/runner_spec.rb +++ b/spec/models/ci/runner_spec.rb @@ -3,6 +3,7 @@ require 'spec_helper' describe Ci::Runner do describe 'validation' do it { is_expected.to validate_presence_of(:access_level) } + it { is_expected.to validate_presence_of(:runner_type) } context 'when runner is not allowed to pick untagged jobs' do context 'when runner does not have tags' do diff --git a/spec/models/clusters/applications/runner_spec.rb b/spec/models/clusters/applications/runner_spec.rb index 64d995a73c1..5f2c723d483 100644 --- a/spec/models/clusters/applications/runner_spec.rb +++ b/spec/models/clusters/applications/runner_spec.rb @@ -74,9 +74,8 @@ describe Clusters::Applications::Runner do it 'assigns the new runner to runner' do subject - gitlab_runner.reload - expect(gitlab_runner.runner).not_to be_nil + expect(gitlab_runner.reload.runner).to be_project_type end end diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 4b736b02b7d..a7755a505d8 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -1733,7 +1733,8 @@ describe Repository do :gitlab_ci, :avatar, :issue_template, - :merge_request_template + :merge_request_template, + :xcode_config ]) repository.after_change_head @@ -2058,6 +2059,36 @@ describe Repository do end end + describe '#xcode_project?' do + before do + allow(repository).to receive(:tree).with(:head).and_return(double(:tree, blobs: [blob])) + end + + context 'when the root contains a *.xcodeproj file' do + let(:blob) { double(:blob, path: 'Foo.xcodeproj') } + + it 'returns true' do + expect(repository.xcode_project?).to be_truthy + end + end + + context 'when the root contains a *.xcworkspace file' do + let(:blob) { double(:blob, path: 'Foo.xcworkspace') } + + it 'returns true' do + expect(repository.xcode_project?).to be_truthy + end + end + + context 'when the root contains no XCode config file' do + let(:blob) { double(:blob, path: 'subdir/Foo.xcworkspace') } + + it 'returns false' do + expect(repository.xcode_project?).to be_falsey + end + end + end + describe "#keep_around" do it "does not fail if we attempt to reference bad commit" do expect(repository.kept_around?('abc1234')).to be_falsey diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 082605827b7..da392c5ab81 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -41,6 +41,7 @@ describe API::Runner, :clean_gitlab_redis_shared_state do expect(json_response['id']).to eq(runner.id) expect(json_response['token']).to eq(runner.token) expect(runner.run_untagged).to be true + expect(runner.active).to be true expect(runner.token).not_to eq(registration_token) expect(runner).to be_instance_type end @@ -129,6 +130,28 @@ describe API::Runner, :clean_gitlab_redis_shared_state do end end + context 'when option for activating a Runner is provided' do + context 'when active is set to true' do + it 'creates runner' do + post api('/runners'), token: registration_token, + active: true + + expect(response).to have_gitlab_http_status 201 + expect(Ci::Runner.first.active).to be true + end + end + + context 'when active is set to false' do + it 'creates runner' do + post api('/runners'), token: registration_token, + active: false + + expect(response).to have_gitlab_http_status 201 + expect(Ci::Runner.first.active).to be false + end + end + end + context 'when maximum job timeout is specified' do it 'creates runner' do post api('/runners'), token: registration_token, diff --git a/vendor/gitignore/Global/JetBrains.gitignore b/vendor/gitignore/Global/JetBrains.gitignore index a83a428c844..b09cb3dbc04 100644 --- a/vendor/gitignore/Global/JetBrains.gitignore +++ b/vendor/gitignore/Global/JetBrains.gitignore @@ -4,7 +4,8 @@ # User-specific stuff .idea/**/workspace.xml .idea/**/tasks.xml -.idea/dictionaries +.idea/**/dictionaries +.idea/**/shelf # Sensitive or high-churn files .idea/**/dataSources/ diff --git a/vendor/gitignore/Global/Vim.gitignore b/vendor/gitignore/Global/Vim.gitignore index 6d21783d471..19cfe22f583 100644 --- a/vendor/gitignore/Global/Vim.gitignore +++ b/vendor/gitignore/Global/Vim.gitignore @@ -12,3 +12,5 @@ Session.vim *~ # Auto-generated tag files tags +# Persistent undo +[._]*.un~ diff --git a/vendor/gitignore/Java.gitignore b/vendor/gitignore/Java.gitignore index 6143e53f9e3..a1c2a238a96 100644 --- a/vendor/gitignore/Java.gitignore +++ b/vendor/gitignore/Java.gitignore @@ -13,6 +13,7 @@ # Package Files # *.jar *.war +*.nar *.ear *.zip *.tar.gz diff --git a/vendor/gitignore/Objective-C.gitignore b/vendor/gitignore/Objective-C.gitignore index 09dfede4814..86de6aa3f5f 100644 --- a/vendor/gitignore/Objective-C.gitignore +++ b/vendor/gitignore/Objective-C.gitignore @@ -52,7 +52,7 @@ Carthage/Build fastlane/report.xml fastlane/Preview.html -fastlane/screenshots +fastlane/screenshots/**/*.png fastlane/test_output # Code Injection diff --git a/vendor/gitignore/Swift.gitignore b/vendor/gitignore/Swift.gitignore index 161179bff3e..312d1f652c6 100644 --- a/vendor/gitignore/Swift.gitignore +++ b/vendor/gitignore/Swift.gitignore @@ -64,5 +64,5 @@ Carthage/Build fastlane/report.xml fastlane/Preview.html -fastlane/screenshots +fastlane/screenshots/**/*.png fastlane/test_output diff --git a/vendor/gitignore/TeX.gitignore b/vendor/gitignore/TeX.gitignore index c560658e45c..e6598ba1727 100644 --- a/vendor/gitignore/TeX.gitignore +++ b/vendor/gitignore/TeX.gitignore @@ -198,6 +198,9 @@ pythontex-files-*/ # easy-todo *.lod +# xmpincl +*.xmpi + # xindy *.xdy @@ -234,3 +237,6 @@ TSWLatexianTemp* # standalone packages *.sta + +# generated if using elsarticle.cls +*.spl diff --git a/vendor/gitignore/Unity.gitignore b/vendor/gitignore/Unity.gitignore index a7c0c70a0b4..0210746b1a5 100644 --- a/vendor/gitignore/Unity.gitignore +++ b/vendor/gitignore/Unity.gitignore @@ -6,7 +6,7 @@ Assets/AssetStoreTools* # Visual Studio cache directory -/.vs/ +.vs/ # Autogenerated VS/MD/Consulo solution and project files ExportedObj/ @@ -22,6 +22,7 @@ ExportedObj/ *.booproj *.svd *.pdb +*.opendb # Unity3D generated meta files *.pidb.meta diff --git a/vendor/gitignore/VisualStudio.gitignore b/vendor/gitignore/VisualStudio.gitignore index 29063cf6072..3e759b75bf4 100644 --- a/vendor/gitignore/VisualStudio.gitignore +++ b/vendor/gitignore/VisualStudio.gitignore @@ -240,6 +240,7 @@ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ +*.rptproj.bak # SQL Server files *.mdf diff --git a/vendor/gitlab-ci-yml/Chef.gitlab-ci.yml b/vendor/gitlab-ci-yml/Chef.gitlab-ci.yml index ff7c87c29f0..4d5b6484d6e 100644 --- a/vendor/gitlab-ci-yml/Chef.gitlab-ci.yml +++ b/vendor/gitlab-ci-yml/Chef.gitlab-ci.yml @@ -7,7 +7,7 @@ image: "chef/chefdk" services: - - docker:stable-dind + - docker:dind variables: DOCKER_HOST: "tcp://docker:2375" diff --git a/vendor/gitlab-ci-yml/Docker.gitlab-ci.yml b/vendor/gitlab-ci-yml/Docker.gitlab-ci.yml index 58d48d1284b..eeefadaa019 100644 --- a/vendor/gitlab-ci-yml/Docker.gitlab-ci.yml +++ b/vendor/gitlab-ci-yml/Docker.gitlab-ci.yml @@ -2,7 +2,7 @@ image: docker:latest services: - - docker:stable-dind + - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY diff --git a/vendor/gitlab-ci-yml/Maven.gitlab-ci.yml b/vendor/gitlab-ci-yml/Maven.gitlab-ci.yml index ba2efbd03a0..d5ee7ed2c13 100644 --- a/vendor/gitlab-ci-yml/Maven.gitlab-ci.yml +++ b/vendor/gitlab-ci-yml/Maven.gitlab-ci.yml @@ -24,7 +24,7 @@ variables: MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" # Cache downloaded dependencies and plugins between builds. -# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"' +# To keep cache across branches add 'key: "$CI_JOB_NAME"' cache: paths: - .m2/repository diff --git a/vendor/gitlab-ci-yml/Swift.gitlab-ci.yml b/vendor/gitlab-ci-yml/Swift.gitlab-ci.yml index c9c35906d1c..10d0b05d9f8 100644 --- a/vendor/gitlab-ci-yml/Swift.gitlab-ci.yml +++ b/vendor/gitlab-ci-yml/Swift.gitlab-ci.yml @@ -1,5 +1,5 @@ # Lifted from: https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/ -# This file assumes an own GitLab CI runner, setup on an OS X system. +# This file assumes an own GitLab CI runner, setup on an macOS system. stages: - build - archive @@ -8,11 +8,11 @@ build_project: stage: build script: - xcodebuild clean -project ProjectName.xcodeproj -scheme SchemeName | xcpretty - - xcodebuild test -project ProjectName.xcodeproj -scheme SchemeName -destination 'platform=iOS Simulator,name=iPhone 6s,OS=9.2' | xcpretty -s + - xcodebuild test -project ProjectName.xcodeproj -scheme SchemeName -destination 'platform=iOS Simulator,name=iPhone 8,OS=11.3' | xcpretty -s tags: - - ios_9-2 - - xcode_7-2 - - osx_10-11 + - ios_11-3 + - xcode_9-3 + - macos_10-13 archive_project: stage: archive @@ -25,6 +25,6 @@ archive_project: paths: - build/ProjectName.ipa tags: - - ios_9-2 - - xcode_7-2 - - osx_10-11 + - ios_11-3 + - xcode_9-3 + - macos_10-13 diff --git a/vendor/licenses.csv b/vendor/licenses.csv index ca88f867fe5..07861631a07 100644 --- a/vendor/licenses.csv +++ b/vendor/licenses.csv @@ -4,22 +4,19 @@ @babel/template,7.0.0-beta.32,MIT @babel/traverse,7.0.0-beta.32,MIT @babel/types,7.0.0-beta.32,MIT -@gitlab-org/gitlab-svgs,1.17.0,SEE LICENSE IN LICENSE +@gitlab-org/gitlab-svgs,1.20.0,SEE LICENSE IN LICENSE +@mrmlnc/readdir-enhanced,2.2.1,MIT +@sindresorhus/is,0.7.0,MIT @types/jquery,2.0.48,MIT -JSONStream,1.3.2,MIT RedCloth,4.3.2,MIT abbrev,1.0.9,ISC abbrev,1.1.1,ISC -accepts,1.3.3,MIT accepts,1.3.4,MIT ace-rails-ap,4.1.2,MIT acorn,3.3.0,MIT -acorn,4.0.13,MIT -acorn,5.1.1,MIT acorn,5.4.1,MIT -acorn-dynamic-import,2.0.2,MIT +acorn-dynamic-import,3.0.0,MIT acorn-jsx,3.0.1,MIT -acorn-node,1.3.0,Apache 2.0 actionmailer,4.2.10,MIT actionpack,4.2.10,MIT actionview,4.2.10,MIT @@ -28,14 +25,12 @@ activemodel,4.2.10,MIT activerecord,4.2.10,MIT activesupport,4.2.10,MIT acts-as-taggable-on,5.0.0,MIT -address,1.0.3,MIT addressable,2.5.2,Apache 2.0 addressparser,1.0.1,MIT aes_key_wrap,1.0.1,MIT after,0.8.2,MIT agent-base,2.1.1,MIT ajv,4.11.8,MIT -ajv,5.2.2,MIT ajv,5.5.2,MIT ajv,6.1.1,MIT ajv-keywords,1.5.1,MIT @@ -52,8 +47,10 @@ ansi-escapes,3.0.0,MIT ansi-html,0.0.7,Apache 2.0 ansi-regex,2.1.1,MIT ansi-regex,3.0.0,MIT +ansi-styles,1.0.0,MIT ansi-styles,2.2.1,MIT -ansi-styles,3.2.0,MIT +ansi-styles,3.2.1,MIT +any-observable,0.2.0,MIT anymatch,1.3.2,ISC anymatch,2.0.0,ISC append-transform,0.4.0,MIT @@ -65,14 +62,12 @@ arr-diff,2.0.0,MIT arr-diff,4.0.0,MIT arr-flatten,1.1.0,MIT arr-union,3.1.0,MIT -array-filter,0.0.1,MIT +array-differ,1.0.0,MIT array-find,1.0.0,MIT array-find-index,1.0.2,MIT array-flatten,1.1.1,MIT array-flatten,2.1.1,MIT array-includes,3.0.3,MIT -array-map,0.0.0,MIT -array-reduce,0.0.0,MIT array-slice,0.2.3,MIT array-union,1.0.2,MIT array-uniq,1.0.3,MIT @@ -88,11 +83,11 @@ asn1.js,4.10.1,MIT assert,1.4.1,MIT assert-plus,0.2.0,MIT assert-plus,1.0.0,MIT -asset_sync,2.2.0,MIT +asset_sync,2.4.0,MIT assign-symbols,1.0.0,MIT +ast-types,0.10.1,MIT ast-types,0.11.1,MIT -astw,2.2.0,MIT -async,0.9.2,MIT +ast-types,0.11.3,MIT async,1.5.2,MIT async,2.1.5,MIT async,2.4.1,MIT @@ -102,7 +97,7 @@ async-limiter,1.0.0,MIT asynckit,0.4.0,MIT atob,2.0.3,(MIT OR Apache-2.0) atomic,1.1.99,Apache 2.0 -attr_encrypted,3.0.3,MIT +attr_encrypted,3.1.0,MIT attr_required,1.0.0,MIT autoprefixer,6.7.7,MIT autoprefixer-rails,6.2.3,MIT @@ -115,7 +110,7 @@ axios,0.15.3,MIT axios,0.17.1,MIT axios-mock-adapter,1.10.0,MIT babel-code-frame,6.26.0,MIT -babel-core,6.26.0,MIT +babel-core,6.26.3,MIT babel-eslint,8.0.2,MIT babel-generator,6.26.0,MIT babel-helper-bindify-decorators,6.24.1,MIT @@ -132,20 +127,25 @@ babel-helper-regex,6.26.0,MIT babel-helper-remap-async-to-generator,6.24.1,MIT babel-helper-replace-supers,6.24.1,MIT babel-helpers,6.24.1,MIT -babel-loader,7.1.2,MIT +babel-loader,7.1.4,MIT babel-messages,6.23.0,MIT babel-plugin-check-es2015-constants,6.22.0,MIT -babel-plugin-istanbul,4.1.5,New BSD +babel-plugin-istanbul,4.1.6,New BSD +babel-plugin-rewire,1.1.0,ISC babel-plugin-syntax-async-functions,6.13.0,MIT babel-plugin-syntax-async-generators,6.13.0,MIT +babel-plugin-syntax-class-constructor-call,6.18.0,MIT babel-plugin-syntax-class-properties,6.13.0,MIT babel-plugin-syntax-decorators,6.13.0,MIT babel-plugin-syntax-dynamic-import,6.18.0,MIT babel-plugin-syntax-exponentiation-operator,6.13.0,MIT +babel-plugin-syntax-export-extensions,6.13.0,MIT +babel-plugin-syntax-flow,6.18.0,MIT babel-plugin-syntax-object-rest-spread,6.13.0,MIT babel-plugin-syntax-trailing-function-commas,6.22.0,MIT babel-plugin-transform-async-generator-functions,6.24.1,MIT babel-plugin-transform-async-to-generator,6.24.1,MIT +babel-plugin-transform-class-constructor-call,6.24.1,MIT babel-plugin-transform-class-properties,6.24.1,MIT babel-plugin-transform-decorators,6.24.1,MIT babel-plugin-transform-define,1.3.0,MIT @@ -172,6 +172,8 @@ babel-plugin-transform-es2015-template-literals,6.22.0,MIT babel-plugin-transform-es2015-typeof-symbol,6.23.0,MIT babel-plugin-transform-es2015-unicode-regex,6.24.1,MIT babel-plugin-transform-exponentiation-operator,6.24.1,MIT +babel-plugin-transform-export-extensions,6.22.0,MIT +babel-plugin-transform-flow-strip-types,6.22.0,MIT babel-plugin-transform-object-rest-spread,6.23.0,MIT babel-plugin-transform-regenerator,6.26.0,MIT babel-plugin-transform-strict-mode,6.24.1,MIT @@ -179,6 +181,7 @@ babel-preset-es2015,6.24.1,MIT babel-preset-es2016,6.24.1,MIT babel-preset-es2017,6.24.1,MIT babel-preset-latest,6.24.1,MIT +babel-preset-stage-1,6.24.1,MIT babel-preset-stage-2,6.24.1,MIT babel-preset-stage-3,6.24.1,MIT babel-register,6.26.0,MIT @@ -189,6 +192,7 @@ babel-types,6.26.0,MIT babosa,1.0.2,MIT babylon,6.18.0,MIT babylon,7.0.0-beta.32,MIT +babylon,7.0.0-beta.44,MIT backo2,1.0.2,MIT balanced-match,0.4.2,MIT balanced-match,1.0.0,MIT @@ -206,13 +210,13 @@ better-assert,1.0.2,MIT bfj-node4,5.2.1,MIT big.js,3.1.3,MIT binary-extensions,1.11.0,MIT +binaryextensions,2.1.1,MIT bindata,2.4.3,ruby bitsyntax,0.0.4,UNKNOWN bl,1.1.2,MIT blackst0ne-mermaid,7.1.0-fixed,MIT blob,0.0.4,MIT* block-stream,0.0.9,ISC -bluebird,3.5.0,MIT bluebird,3.5.1,MIT bn.js,4.11.8,MIT body-parser,1.18.2,MIT @@ -224,25 +228,19 @@ bootstrap-sass,3.3.6,MIT bootstrap_form,2.7.0,MIT boxen,1.3.0,MIT brace-expansion,1.1.11,MIT -brace-expansion,1.1.8,MIT braces,0.1.5,MIT braces,1.8.5,MIT braces,2.3.1,MIT brorand,1.1.0,MIT browser,2.2.0,MIT -browser-pack,6.0.4,MIT -browser-resolve,1.11.2,MIT -browserify,14.5.0,MIT browserify-aes,1.1.1,MIT browserify-cipher,1.0.0,MIT browserify-des,1.0.0,MIT browserify-rsa,4.0.1,MIT browserify-sign,4.0.4,ISC browserify-zlib,0.1.4,MIT -browserify-zlib,0.2.0,MIT browserslist,1.7.7,MIT buffer,4.9.1,MIT -buffer,5.1.0,MIT buffer-indexof,1.1.0,MIT buffer-more-ints,0.0.2,MIT buffer-xor,1.0.3,MIT @@ -254,13 +252,13 @@ bytes,2.5.0,MIT bytes,3.0.0,MIT cacache,10.0.4,ISC cache-base,1.0.1,MIT -cached-path-relative,1.0.1,MIT +cacheable-request,2.1.4,MIT +call-me-maybe,1.0.1,MIT caller-path,0.1.0,MIT callsite,1.0.0,MIT* callsites,0.2.0,MIT camelcase,1.2.1,MIT camelcase,2.1.1,MIT -camelcase,3.0.0,MIT camelcase,4.1.0,MIT camelcase-keys,2.1.0,MIT caniuse-api,1.6.1,MIT @@ -271,16 +269,19 @@ caseless,0.11.0,Apache 2.0 caseless,0.12.0,Apache 2.0 cause,0.1,MIT center-align,0.1.3,MIT +chalk,0.4.0,MIT chalk,1.1.3,MIT -chalk,2.3.0,MIT -chalk,2.3.1,MIT +chalk,2.4.0,MIT +chalk,2.4.1,MIT chardet,0.4.2,MIT +charenc,0.0.2,New BSD charlock_holmes,0.7.6,MIT chart.js,1.0.2,MIT check-types,7.3.0,MIT chokidar,1.7.0,MIT chokidar,2.0.2,MIT chownr,1.0.1,ISC +chrome-trace-event,0.1.2,MIT chronic,0.10.2,MIT chronic_duration,0.10.6,MIT chunky_png,1.3.5,MIT @@ -294,11 +295,21 @@ classlist-polyfill,1.2.0,Unlicense cli-boxes,1.0.0,MIT cli-cursor,1.0.2,MIT cli-cursor,2.1.0,MIT +cli-spinners,0.1.2,MIT +cli-table,0.3.1,MIT +cli-truncate,0.2.1,MIT cli-width,2.1.0,ISC clipboard,1.7.1,MIT cliui,2.1.0,ISC -cliui,3.2.0,ISC +cliui,4.0.0,ISC clone,1.0.2,MIT +clone,1.0.3,MIT +clone,2.1.1,MIT +clone-buffer,1.0.0,MIT +clone-response,1.0.2,MIT +clone-stats,0.0.1,MIT +clone-stats,1.0.0,MIT +cloneable-readable,1.0.0,MIT co,3.0.6,MIT co,4.6.0,MIT coa,1.0.1,MIT @@ -310,11 +321,11 @@ color-convert,1.9.1,MIT color-name,1.1.2,MIT color-string,0.3.0,MIT colormin,1.1.2,MIT +colors,1.0.3,MIT colors,1.1.2,MIT combine-lists,1.0.1,MIT -combine-source-map,0.7.2,MIT -combine-source-map,0.8.0,MIT combined-stream,1.0.6,MIT +commander,2.13.0,MIT commander,2.15.1,MIT commondir,1.0.1,MIT commonmarker,0.17.8,MIT @@ -323,9 +334,8 @@ component-emitter,1.2.1,MIT component-inherit,0.0.3,MIT* compressible,2.0.11,MIT compression,1.7.0,MIT -compression-webpack-plugin,1.1.7,MIT +compression-webpack-plugin,1.1.11,MIT concat-map,0.0.1,MIT -concat-stream,1.5.2,MIT concat-stream,1.6.0,MIT concurrent-ruby-ext,1.0.5,MIT configstore,3.1.1,Simplified BSD @@ -339,21 +349,18 @@ constants-browserify,1.0.0,MIT contains-path,0.1.0,MIT content-disposition,0.5.2,MIT content-type,1.0.4,MIT -convert-source-map,1.1.3,MIT -convert-source-map,1.5.0,MIT +convert-source-map,1.5.1,MIT cookie,0.3.1,MIT cookie-signature,1.0.6,MIT copy-concurrently,1.0.5,ISC copy-descriptor,0.1.1,MIT -copy-webpack-plugin,4.4.1,MIT +copy-webpack-plugin,4.5.1,MIT core-js,2.3.0,MIT -core-js,2.4.1,MIT -core-js,2.5.1,MIT core-js,2.5.3,MIT core-util-is,1.0.2,MIT -cosmiconfig,2.1.1,MIT +cosmiconfig,2.2.2,MIT crack,0.4.3,MIT -crass,1.0.3,MIT +crass,1.0.4,MIT create-ecdh,4.0.0,MIT create-error-class,3.0.2,MIT create-hash,1.1.3,MIT @@ -361,13 +368,14 @@ create-hmac,1.1.6,MIT creole,0.5.0,ruby cropper,2.3.0,MIT cross-spawn,5.1.0,MIT +cross-spawn,6.0.5,MIT +crypt,0.0.2,New BSD cryptiles,2.0.5,New BSD cryptiles,3.1.2,New BSD -crypto-browserify,3.11.0,MIT crypto-browserify,3.12.0,MIT crypto-random-string,1.0.0,MIT css-color-names,0.0.4,MIT -css-loader,0.28.9,MIT +css-loader,0.28.11,MIT css-selector-tokenizer,0.7.0,MIT css_parser,1.5.0,MIT cssesc,0.1.0,MIT @@ -400,10 +408,13 @@ d3-transition,1.1.1,New BSD d3_rails,3.5.11,MIT dagre-d3-renderer,0.4.24,MIT dagre-layout,0.8.0,MIT +dargs,5.1.0,MIT dashdash,1.14.1,MIT data-uri-to-buffer,1.2.0,MIT +date-fns,1.29.0,MIT date-format,1.2.0,MIT date-now,0.1.4,MIT +dateformat,3.0.3,MIT de-indent,1.0.2,MIT debug,2.2.0,MIT debug,2.6.8,MIT @@ -418,6 +429,7 @@ decode-uri-component,0.2.0,MIT decompress-response,3.3.0,MIT deep-equal,1.0.1,MIT deep-extend,0.4.2,MIT +deep-extend,0.5.1,MIT deep-is,0.1.3,MIT default-require-extensions,1.0.0,MIT default_value_for,3.0.2,MIT @@ -433,19 +445,19 @@ delayed-stream,1.0.0,MIT delegate,3.1.2,MIT delegates,1.0.0,MIT depd,1.1.1,MIT -deps-sort,2.0.0,MIT des.js,1.0.0,MIT descendants_tracker,0.0.4,MIT destroy,1.0.4,MIT +detect-conflict,1.0.1,MIT detect-indent,4.0.0,MIT detect-libc,1.0.3,Apache 2.0 detect-node,2.0.3,ISC -detect-port-alt,1.1.5,MIT -detective,4.7.1,MIT -devise,4.2.0,MIT +device_detector,1.0.0,LGPL +devise,4.4.3,MIT devise-two-factor,3.0.0,MIT di,0.0.1,MIT diff,3.4.0,New BSD +diff,3.5.0,New BSD diff-lcs,1.3,"MIT,Artistic-2.0,GPL-2.0+" diffie-hellman,5.0.2,MIT diffy,3.1.0,MIT @@ -464,38 +476,43 @@ domelementtype,1.1.3,Simplified BSD domelementtype,1.3.0,Simplified BSD domhandler,2.4.1,Simplified BSD domutils,1.6.2,Simplified BSD -doorkeeper,4.3.1,MIT +doorkeeper,4.3.2,MIT doorkeeper-openid_connect,1.3.0,MIT dot-prop,4.2.0,MIT double-ended-queue,2.1.0-0,MIT dropzone,4.2.0,MIT dropzonejs-rails,0.7.2,MIT duplexer,0.1.1,MIT -duplexer2,0.1.4,New BSD duplexer3,0.1.4,New BSD duplexify,3.5.3,MIT ecc-jsbn,0.1.1,MIT +editions,1.3.4,MIT ee-first,1.1.1,MIT ejs,2.5.7,Apache 2.0 +ejs,2.5.9,Apache 2.0 electron-to-chromium,1.3.3,ISC +elegant-spinner,1.0.1,MIT elliptic,6.4.0,MIT email_reply_trimmer,0.1.6,MIT emoji-unicode-version,0.2.1,MIT emojis-list,2.1.0,MIT encodeurl,1.0.2,MIT encryptor,3.0.0,MIT -end-of-stream,1.4.0,MIT end-of-stream,1.4.1,MIT engine.io,3.1.5,MIT engine.io-client,3.1.5,MIT engine.io-parser,2.1.2,MIT enhanced-resolve,0.9.1,MIT -enhanced-resolve,3.4.1,MIT +enhanced-resolve,4.0.0,MIT ent,2.2.0,MIT entities,1.1.1,Simplified BSD +envinfo,4.4.2,MIT equalizer,0.0.11,MIT errno,0.1.4,MIT +errno,0.1.7,MIT +error,7.0.2,MIT error-ex,1.3.0,MIT +error-ex,1.3.1,MIT erubis,2.7.0,MIT es-abstract,1.10.0,MIT es-to-primitive,1.1.1,MIT @@ -525,7 +542,6 @@ eslint-plugin-promise,3.5.0,ISC eslint-plugin-vue,4.0.1,MIT eslint-scope,3.7.1,Simplified BSD eslint-visitor-keys,1.0.0,Apache 2.0 -espree,3.5.0,Simplified BSD espree,3.5.2,Simplified BSD esprima,2.7.3,Simplified BSD esprima,3.1.3,Simplified BSD @@ -545,7 +561,7 @@ eventemitter3,1.2.0,MIT events,1.1.1,MIT eventsource,0.1.6,MIT evp_bytestokey,1.0.3,MIT -excon,0.60.0,MIT +excon,0.62.0,MIT execa,0.7.0,MIT execjs,2.6.0,MIT exit-hook,1.1.1,MIT @@ -562,14 +578,16 @@ extend,3.0.1,MIT extend-shallow,2.0.1,MIT extend-shallow,3.0.2,MIT external-editor,2.1.0,MIT +external-editor,2.2.0,MIT extglob,0.3.2,MIT extglob,2.0.4,MIT extsprintf,1.3.0,MIT extsprintf,1.4.0,MIT faraday,0.12.2,MIT -faraday_middleware,0.11.0.1,MIT +faraday_middleware,0.12.2,MIT faraday_middleware-multi_json,0.0.6,MIT fast-deep-equal,1.0.0,MIT +fast-glob,2.2.1,MIT fast-json-stable-stringify,2.0.0,MIT fast-levenshtein,2.0.6,MIT fast_blank,1.0.0,MIT @@ -581,11 +599,10 @@ ffi,1.9.18,New BSD figures,1.7.0,MIT figures,2.0.0,MIT file-entry-cache,2.0.0,MIT -file-loader,1.1.8,MIT +file-loader,1.1.11,MIT file-uri-to-path,1.0.0,MIT filename-regex,2.0.1,MIT fileset,2.0.3,MIT -filesize,3.5.11,New BSD filesize,3.6.0,New BSD fill-range,2.2.3,MIT fill-range,4.0.0,MIT @@ -594,11 +611,13 @@ find-cache-dir,1.0.0,MIT find-root,0.1.2,MIT find-up,1.1.2,MIT find-up,2.1.0,MIT +first-chunk-stream,2.0.0,MIT flat-cache,1.2.2,MIT flatten,1.0.2,MIT flipper,0.13.0,MIT flipper-active_record,0.13.0,MIT flipper-active_support_cache_store,0.13.0,MIT +flow-parser,0.66.0,MIT flowdock,0.7.1,MIT flush-write-stream,1.0.2,MIT fog-aliyun,0.2.0,MIT @@ -649,19 +668,25 @@ get_process_mem,0.2.0,MIT getpass,0.1.7,MIT gettext_i18n_rails,1.8.0,MIT gettext_i18n_rails_js,1.3.0,MIT -gitaly-proto,0.94.0,MIT +gh-got,6.0.0,MIT +gitaly-proto,0.99.0,MIT github-linguist,5.3.3,MIT -github-markup,1.6.1,MIT +github-markup,1.7.0,MIT +github-username,4.1.0,MIT gitlab-flowdock-git-hook,1.0.1,MIT +gitlab-gollum-lib,4.2.7.2,MIT +gitlab-gollum-rugged_adapter,0.4.4,MIT gitlab-grit,2.8.2,MIT gitlab-markup,1.6.3,MIT gitlab_omniauth-ldap,2.0.4,MIT glob,5.0.15,ISC glob,7.1.1,ISC glob,7.1.2,ISC +glob-all,3.1.0,MIT glob-base,0.3.0,MIT glob-parent,2.0.0,ISC glob-parent,3.1.0,ISC +glob-to-regexp,0.3.0,BSD global-dirs,0.1.1,MIT global-modules,1.0.0,MIT global-prefix,1.0.2,MIT @@ -671,10 +696,8 @@ globals,9.18.0,MIT globby,5.0.0,MIT globby,6.1.0,MIT globby,7.1.1,MIT -goldiloader,2.0.1,MIT +globby,8.0.1,MIT gollum-grit_adapter,1.0.1,MIT -gollum-lib,4.2.7,MIT -gollum-rugged_adapter,0.4.4,MIT gon,6.1.0,MIT good-listener,1.2.2,MIT google-api-client,0.19.8,Apache 2.0 @@ -683,15 +706,16 @@ googleapis-common-protos-types,1.0.1,Apache 2.0 googleauth,0.6.2,Apache 2.0 got,6.7.1,MIT got,7.1.0,MIT +got,8.3.0,MIT gpgme,2.0.13,LGPL-2.1+ graceful-fs,4.1.11,ISC grape,1.0.2,MIT -grape-entity,0.6.0,MIT +grape-entity,0.7.1,MIT grape-route-helpers,2.1.0,MIT grape_logging,1.7.0,MIT graphlib,2.1.1,MIT -grpc,1.10.0,Apache 2.0 -gzip-size,3.0.0,MIT +grouped-queue,0.3.3,MIT +grpc,1.11.0,Apache 2.0 gzip-size,4.1.0,MIT hamlit,2.6.1,MIT handle-thing,1.2.5,MIT @@ -704,6 +728,7 @@ har-validator,5.0.3,ISC has,1.0.1,MIT has-ansi,2.0.0,MIT has-binary2,1.0.2,MIT +has-color,0.1.7,MIT has-cors,1.1.0,MIT has-flag,1.0.0,MIT has-flag,2.0.0,MIT @@ -739,16 +764,16 @@ html-entities,1.2.0,MIT html-pipeline,2.7.1,MIT html2text,0.2.0,MIT htmlentities,4.3.4,MIT -htmlescape,1.1.1,MIT htmlparser2,3.9.2,MIT http,2.2.2,MIT +http-cache-semantics,3.8.1,Simplified BSD http-cookie,1.0.3,MIT http-deceiver,1.2.7,MIT http-errors,1.6.2,MIT http-form_data,1.0.3,MIT http-proxy,1.16.2,MIT http-proxy-agent,1.0.0,MIT -http-proxy-middleware,0.17.4,MIT +http-proxy-middleware,0.18.0,MIT http-signature,1.1.1,MIT http-signature,1.2.0,MIT http_parser.rb,0.6.0,MIT @@ -757,7 +782,6 @@ httpclient,2.8.3,ruby httpntlm,1.6.1,MIT httpreq,0.4.24,MIT https-browserify,0.0.1,MIT -https-browserify,1.0.0,MIT https-proxy-agent,1.0.0,MIT i18n,0.9.5,MIT ice_nine,0.11.2,MIT @@ -767,7 +791,6 @@ icss-replace-symbols,1.1.0,ISC icss-utils,2.1.0,ISC ieee754,1.1.8,New BSD iferr,0.1.5,MIT -ignore,3.3.3,MIT ignore,3.3.7,MIT ignore-by-default,1.0.1,ISC immediate,3.0.6,MIT @@ -776,6 +799,7 @@ import-local,1.0.0,MIT imports-loader,0.8.0,MIT imurmurhash,0.1.4,MIT indent-string,2.1.0,MIT +indent-string,3.2.0,MIT indexes-of,1.0.1,MIT indexof,0.0.1,MIT* inflection,1.10.0,MIT @@ -785,12 +809,13 @@ influxdb,0.2.3,MIT inherits,2.0.1,ISC inherits,2.0.3,ISC ini,1.3.5,ISC -inline-source-map,0.6.2,MIT inquirer,0.12.0,MIT inquirer,3.3.0,MIT -insert-module-globals,7.0.1,MIT +inquirer,5.2.0,MIT internal-ip,1.2.0,MIT interpret,1.0.1,MIT +interpret,1.1.0,MIT +into-stream,3.1.0,MIT invariant,2.2.2,New BSD invert-kv,1.0.0,MIT ip,1.0.1,MIT @@ -803,7 +828,6 @@ is-accessor-descriptor,0.1.6,MIT is-accessor-descriptor,1.0.0,MIT is-arrayish,0.2.1,MIT is-binary-path,1.0.1,MIT -is-buffer,1.1.5,MIT is-buffer,1.1.6,MIT is-builtin-module,1.0.0,MIT is-callable,1.1.3,MIT @@ -812,6 +836,7 @@ is-data-descriptor,1.0.0,MIT is-date-object,1.0.1,MIT is-descriptor,0.1.6,MIT is-descriptor,1.0.2,MIT +is-directory,0.3.1,MIT is-dotfile,1.0.3,MIT is-equal-shallow,0.1.3,MIT is-extendable,0.1.1,MIT @@ -826,7 +851,6 @@ is-glob,3.1.0,MIT is-glob,4.0.0,MIT is-installed-globally,0.1.0,MIT is-my-ip-valid,1.0.0,MIT -is-my-json-valid,2.16.0,MIT is-my-json-valid,2.17.2,MIT is-npm,1.0.0,MIT is-number,0.1.1,MIT @@ -835,6 +859,7 @@ is-number,3.0.0,MIT is-number,4.0.0,MIT is-obj,1.0.1,MIT is-object,1.0.1,MIT +is-observable,0.2.0,MIT is-odd,2.0.0,MIT is-path-cwd,1.0.0,MIT is-path-in-cwd,1.0.0,MIT @@ -850,7 +875,7 @@ is-regex,1.0.4,MIT is-relative,0.2.1,MIT is-resolvable,1.0.0,MIT is-retry-allowed,1.1.0,MIT -is-root,1.0.0,MIT +is-scoped,1.0.0,MIT is-stream,1.1.0,MIT is-svg,2.1.0,MIT is-symbol,1.0.1,MIT @@ -864,7 +889,6 @@ isarray,0.0.1,MIT isarray,1.0.0,MIT isarray,2.0.1,MIT isbinaryfile,3.0.2,MIT -isexe,1.1.2,ISC isexe,2.0.0,ISC isobject,2.1.0,MIT isobject,3.0.1,MIT @@ -872,11 +896,14 @@ isstream,0.1.2,MIT istanbul,0.4.5,New BSD istanbul-api,1.2.1,New BSD istanbul-lib-coverage,1.1.1,New BSD +istanbul-lib-coverage,1.2.0,New BSD istanbul-lib-hook,1.1.0,New BSD +istanbul-lib-instrument,1.10.1,New BSD istanbul-lib-instrument,1.9.1,New BSD istanbul-lib-report,1.1.2,New BSD istanbul-lib-source-maps,1.2.2,New BSD istanbul-reports,1.1.3,New BSD +istextorbinary,2.2.1,MIT isurl,1.0.0,MIT jasmine-core,2.9.0,MIT jasmine-jquery,2.1.1,MIT @@ -889,23 +916,25 @@ jquery.waitforimages,2.2.0,MIT js-base64,2.1.9,New BSD js-cookie,2.1.3,MIT js-tokens,3.0.2,MIT +js-yaml,3.11.0,MIT js-yaml,3.7.0,MIT js-yaml,3.9.1,MIT jsbn,0.1.1,MIT +jscodeshift,0.4.1,New BSD +jscodeshift,0.5.0,New BSD jsesc,0.5.0,MIT jsesc,1.3.0,MIT json,1.8.6,ruby +json-buffer,3.0.0,MIT json-jwt,1.9.2,MIT -json-loader,0.5.7,MIT +json-parse-better-errors,1.0.2,MIT json-schema,0.2.3,BSD json-schema-traverse,0.3.1,MIT -json-stable-stringify,0.0.1,MIT json-stable-stringify,1.0.1,MIT json-stringify-safe,5.0.1,ISC json3,3.3.2,MIT json5,0.5.1,MIT jsonify,0.0.0,Public Domain -jsonparse,1.3.1,MIT jsonpointer,4.0.1,MIT jsprim,1.4.1,MIT jszip,3.1.3,(MIT OR GPL-3.0) @@ -915,14 +944,15 @@ kaminari,1.0.1,MIT kaminari-actionview,1.0.1,MIT kaminari-activerecord,1.0.1,MIT kaminari-core,1.0.1,MIT -karma,2.0.0,MIT +karma,2.0.2,MIT karma-chrome-launcher,2.2.0,MIT -karma-coverage-istanbul-reporter,1.4.1,MIT +karma-coverage-istanbul-reporter,1.4.2,MIT karma-jasmine,1.1.1,MIT karma-mocha-reporter,2.2.5,MIT karma-sourcemap-loader,0.3.7,MIT -karma-webpack,2.0.7,MIT +karma-webpack,3.0.0,MIT katex,0.8.3,MIT +keyv,3.0.0,MIT kgio,2.10.0,LGPL-2.1+ killable,1.0.0,ISC kind-of,3.2.2,MIT @@ -930,27 +960,28 @@ kind-of,4.0.0,MIT kind-of,5.1.0,MIT kind-of,6.0.2,MIT kubeclient,3.0.0,MIT -labeled-stream-splicer,2.0.0,MIT latest-version,3.1.0,MIT lazy-cache,1.0.4,MIT lazy-cache,2.0.2,MIT lcid,1.0.0,MIT levn,0.3.0,MIT -lexical-scope,1.2.0,MIT libbase64,0.1.0,MIT libmime,3.0.0,MIT libqp,1.1.0,MIT licensee,8.9.2,MIT lie,3.1.1,MIT +listr,0.13.0,MIT +listr-silent-renderer,1.1.1,MIT +listr-update-renderer,0.4.0,MIT +listr-verbose-renderer,0.4.1,MIT little-plugger,1.1.4,MIT load-json-file,1.1.0,MIT -load-json-file,2.0.0,MIT +load-json-file,4.0.0,MIT loader-runner,2.3.0,MIT -loader-utils,0.2.16,MIT loader-utils,1.1.0,MIT locale,2.1.2,"ruby,LGPLv3+" locate-path,2.0.0,MIT -lodash,3.10.1,MIT +lodash,4.17.10,MIT lodash,4.17.4,MIT lodash,4.17.5,MIT lodash._baseget,3.7.2,MIT @@ -968,24 +999,28 @@ lodash.isarray,3.0.4,MIT lodash.isfunction,3.0.9,MIT lodash.isstring,4.0.1,MIT lodash.kebabcase,4.0.1,MIT -lodash.memoize,3.0.4,MIT lodash.memoize,4.1.2,MIT lodash.mergewith,4.6.0,MIT lodash.snakecase,4.0.1,MIT lodash.startswith,4.2.1,MIT lodash.uniq,4.5.0,MIT lodash.words,4.2.0,MIT +log-symbols,1.0.2,MIT log-symbols,2.1.0,MIT +log-symbols,2.2.0,MIT +log-update,1.0.2,MIT log4js,2.5.3,Apache 2.0 logging,2.2.2,MIT loggly,1.1.1,MIT loglevel,1.4.1,MIT -lograge,0.5.1,MIT +loglevelnext,1.0.3,MIT +lograge,0.10.0,MIT longest,1.0.1,MIT loofah,2.2.2,MIT loose-envify,1.3.1,MIT loud-rejection,1.6.0,MIT lowercase-keys,1.0.0,MIT +lru-cache,2.2.4,MIT lru-cache,2.6.5,ISC lru-cache,4.1.1,ISC macaddress,0.2.8,MIT @@ -994,6 +1029,7 @@ mail_room,0.9.1,MIT mailcomposer,4.0.1,MIT mailgun-js,0.7.15,MIT make-dir,1.0.0,MIT +make-dir,1.2.0,MIT map-cache,0.2.2,MIT map-obj,1.0.1,MIT map-stream,0.1.0,UNKNOWN @@ -1004,19 +1040,25 @@ math-expression-evaluator,1.2.16,MIT md5.js,1.3.4,MIT media-typer,0.3.0,MIT mem,1.1.0,MIT +mem-fs,1.1.3,MIT +mem-fs-editor,4.0.1,MIT memoist,0.16.0,MIT memory-fs,0.2.0,MIT memory-fs,0.4.1,MIT meow,3.7.0,MIT merge-descriptors,1.0.1,MIT +merge2,1.2.2,MIT method_source,0.8.2,MIT methods,1.1.2,MIT micromatch,2.3.11,MIT +micromatch,3.1.10,MIT micromatch,3.1.6,MIT +micromatch,3.1.9,MIT miller-rabin,4.0.1,MIT mime,1.4.1,MIT mime,1.6.0,MIT -mime-db,1.29.0,MIT +mime,2.2.0,MIT +mime,2.3.1,MIT mime-db,1.33.0,MIT mime-types,2.1.18,MIT mime-types,3.1,MIT @@ -1028,15 +1070,14 @@ mini_mime,1.0.0,MIT mini_portile2,2.3.0,MIT minimalistic-assert,1.0.0,ISC minimalistic-crypto-utils,1.0.1,MIT -minimatch,3.0.3,ISC minimatch,3.0.4,ISC minimist,0.0.10,MIT minimist,0.0.8,MIT +minimist,0.1.0,MIT minimist,1.2.0,MIT mississippi,2.0.0,Simplified BSD mixin-deep,1.3.1,MIT mkdirp,0.5.1,MIT -module-deps,4.1.1,MIT moment,2.19.2,MIT monaco-editor,0.10.0,MIT mousetrap,1.4.6,Apache 2.0 @@ -1048,21 +1089,24 @@ multi_json,1.13.1,MIT multi_xml,0.6.0,MIT multicast-dns,6.1.1,MIT multicast-dns-service-types,1.1.0,MIT +multimatch,2.1.0,MIT multipart-post,2.0.0,MIT mustermann,1.0.2,MIT mustermann-grape,1.0.0,MIT mute-stream,0.0.5,ISC mute-stream,0.0.7,ISC mysql2,0.4.10,MIT -name-all-modules-plugin,1.0.1,MIT nan,2.8.0,MIT nanomatch,1.2.9,MIT natural-compare,1.4.0,MIT negotiator,0.6.1,MIT +neo-async,2.5.0,MIT net-ldap,0.16.0,MIT net-ssh,4.2.0,MIT netmask,1.0.6,MIT netrc,0.11.0,MIT +nice-try,1.0.4,MIT +node-dir,0.1.8,MIT node-forge,0.6.33,New BSD node-libs-browser,1.1.1,MIT node-libs-browser,2.0.0,MIT @@ -1075,8 +1119,9 @@ nodemailer-shared,1.1.0,MIT nodemailer-smtp-pool,2.8.2,MIT nodemailer-smtp-transport,2.7.2,MIT nodemailer-wellknown,0.1.10,MIT -nodemon,1.15.1,MIT +nodemon,1.17.3,MIT nokogiri,1.8.2,MIT +nomnom,1.8.1,MIT nopt,1.0.10,MIT nopt,3.0.6,ISC nopt,4.0.1,ISC @@ -1084,6 +1129,7 @@ normalize-package-data,2.4.0,Simplified BSD normalize-path,2.1.1,MIT normalize-range,0.1.2,MIT normalize-url,1.9.1,MIT +normalize-url,2.0.1,MIT npm-run-path,2.0.2,MIT npmlog,4.1.2,ISC null-check,1.0.0,MIT @@ -1108,10 +1154,9 @@ omniauth-authentiq,0.3.1,MIT omniauth-azure-oauth2,0.0.9,MIT omniauth-cas3,1.1.4,MIT omniauth-facebook,4.0.0,MIT -omniauth-github,1.1.2,MIT +omniauth-github,1.3.0,MIT omniauth-gitlab,1.0.2,MIT omniauth-google-oauth2,0.5.3,MIT -omniauth-jwt,0.0.2,MIT omniauth-kerberos,0.3.0,MIT omniauth-multipassword,0.4.2,MIT omniauth-oauth,1.1.0,MIT @@ -1130,36 +1175,39 @@ opener,1.4.3,(WTFPL OR MIT) opn,5.2.0,MIT optimist,0.6.1,MIT optionator,0.8.2,MIT +ora,0.2.3,MIT org-ruby,0.9.12,MIT original,1.0.0,MIT orm_adapter,0.5.0,MIT os,0.9.6,MIT os-browserify,0.2.1,MIT -os-browserify,0.3.0,MIT os-homedir,1.0.2,MIT -os-locale,1.4.0,MIT os-locale,2.1.0,MIT os-tmpdir,1.0.2,MIT osenv,0.1.5,ISC p-cancelable,0.3.0,MIT +p-cancelable,0.4.1,MIT +p-each-series,1.0.0,MIT p-finally,1.0.0,MIT -p-limit,1.1.0,MIT +p-is-promise,1.1.0,MIT +p-lazy,1.0.0,MIT p-limit,1.2.0,MIT p-locate,2.0.0,MIT p-map,1.1.1,MIT -p-timeout,1.2.0,MIT +p-reduce,1.0.0,MIT +p-timeout,1.2.1,MIT +p-timeout,2.0.1,MIT p-try,1.0.0,MIT pac-proxy-agent,1.1.0,MIT pac-resolver,2.0.0,MIT package-json,4.0.1,MIT pako,0.2.9,MIT -pako,1.0.5,(MIT AND Zlib) pako,1.0.6,(MIT AND Zlib) parallel-transform,1.1.0,MIT -parents,1.0.1,MIT parse-asn1,5.1.0,ISC parse-glob,3.0.4,MIT parse-json,2.2.0,MIT +parse-json,4.0.0,MIT parse-passwd,1.0.0,MIT parseqs,0.0.5,MIT parseuri,0.0.5,MIT @@ -1173,18 +1221,15 @@ path-is-absolute,1.0.1,MIT path-is-inside,1.0.2,(WTFPL OR MIT) path-key,2.0.1,MIT path-parse,1.0.5,MIT -path-platform,0.11.15,MIT path-proxy,1.0.0,MIT path-to-regexp,0.1.7,MIT path-type,1.1.0,MIT -path-type,2.0.0,MIT path-type,3.0.0,MIT pause-stream,0.0.11,Apache 2.0 pbkdf2,3.0.14,MIT peek,1.0.1,MIT peek-gc,0.0.2,MIT peek-mysql2,1.1.0,MIT -peek-performance_bar,1.3.1,MIT peek-pg,1.3.0,MIT peek-rblineprof,0.2.0,MIT peek-redis,1.2.0,MIT @@ -1206,9 +1251,8 @@ portfinder,1.0.13,MIT posix-character-classes,0.1.1,MIT posix-spawn,0.3.13,MIT postcss,5.2.16,MIT -postcss,6.0.14,MIT -postcss,6.0.15,MIT postcss,6.0.19,MIT +postcss,6.0.21,MIT postcss-calc,5.3.1,MIT postcss-colormin,2.2.2,MIT postcss-convert-values,2.6.1,MIT @@ -1248,13 +1292,15 @@ prelude-ls,1.1.2,MIT premailer,1.10.4,New BSD premailer-rails,1.9.7,MIT prepend-http,1.0.4,MIT +prepend-http,2.0.0,MIT preserve,0.2.0,MIT +prettier,1.10.2,MIT prettier,1.11.1,MIT prettier,1.8.2,MIT +pretty-bytes,4.0.2,MIT prismjs,1.6.0,MIT private,0.1.8,MIT process,0.11.10,MIT -process,0.11.9,MIT process-nextick-args,1.0.7,MIT process-nextick-args,2.0.0,MIT progress,1.1.8,MIT @@ -1263,6 +1309,7 @@ promise-inflight,1.0.1,ISC proxy-addr,2.0.3,MIT proxy-agent,2.0.0,MIT prr,0.0.0,MIT +prr,1.0.1,MIT ps-tree,1.1.0,MIT pseudomap,1.0.2,ISC pstree.remy,1.1.0,MIT @@ -1280,11 +1327,12 @@ qs,6.2.3,New BSD qs,6.4.0,New BSD qs,6.5.1,New BSD query-string,4.3.2,MIT +query-string,5.1.1,MIT querystring,0.2.0,MIT querystring-es3,0.2.1,MIT querystringify,0.0.4,MIT querystringify,1.0.0,MIT -rack,1.6.9,MIT +rack,1.6.10,MIT rack-accept,0.4.5,MIT rack-attack,4.4.1,MIT rack-cors,1.0.2,MIT @@ -1300,7 +1348,7 @@ rails-i18n,4.0.9,MIT railties,4.2.10,MIT rainbow,2.2.2,MIT raindrops,0.18.0,LGPL-2.1+ -rake,12.3.0,MIT +rake,12.3.1,MIT randomatic,1.1.7,MIT randombytes,2.0.6,MIT randomfill,1.0.4,MIT @@ -1313,27 +1361,24 @@ rb-fsevent,0.10.2,MIT rb-inotify,0.9.10,MIT rbnacl,4.0.2,MIT rbnacl-libsodium,1.0.11,MIT -rc,1.2.1,(BSD-2-Clause OR MIT OR Apache-2.0) rc,1.2.5,(BSD-2-Clause OR MIT OR Apache-2.0) rdoc,4.2.2,ruby re2,1.1.1,New BSD -react-dev-utils,5.0.0,MIT -react-error-overlay,4.0.0,MIT -read-only-stream,2.0.0,MIT +read-chunk,2.1.0,MIT read-pkg,1.1.0,MIT -read-pkg,2.0.0,MIT +read-pkg,3.0.0,MIT read-pkg-up,1.0.1,MIT -read-pkg-up,2.0.0,MIT +read-pkg-up,3.0.0,MIT readable-stream,1.1.14,MIT readable-stream,2.0.6,MIT -readable-stream,2.3.3,MIT readable-stream,2.3.4,MIT readdirp,2.1.0,MIT readline2,1.0.1,MIT recaptcha,3.0.0,MIT +recast,0.12.9,MIT +recast,0.14.7,MIT rechoir,0.6.2,MIT recursive-open-struct,1.0.5,MIT -recursive-readdir,2.2.1,MIT redcarpet,3.4.0,MIT redent,1.0.0,MIT redis,2.8.0,MIT @@ -1364,6 +1409,8 @@ repeat-element,1.1.2,MIT repeat-string,0.2.2,MIT repeat-string,1.6.1,MIT repeating,2.0.1,MIT +replace-ext,0.0.1,MIT +replace-ext,1.0.0,MIT representable,3.0.4,MIT request,2.75.0,Apache 2.0 request,2.81.0,Apache 2.0 @@ -1378,24 +1425,27 @@ require-uncached,1.0.3,MIT requires-port,1.0.0,MIT resolve,1.1.7,MIT resolve,1.5.0,MIT +resolve,1.7.1,MIT resolve-cwd,2.0.0,MIT resolve-dir,1.0.1,MIT resolve-from,1.0.1,MIT resolve-from,3.0.0,MIT resolve-url,0.2.1,MIT -responders,2.3.0,MIT +responders,2.4.0,MIT +responselike,1.0.2,MIT rest-client,2.0.2,MIT restore-cursor,1.0.1,MIT restore-cursor,2.0.0,MIT ret,0.1.15,MIT retriable,3.1.1,MIT right-align,0.1.3,MIT +rimraf,2.2.8,MIT rimraf,2.6.1,ISC rimraf,2.6.2,ISC rinku,2.0.0,ISC ripemd160,2.0.1,MIT rotp,2.1.2,MIT -rouge,2.2.1,MIT +rouge,3.1.1,MIT rqrcode,0.7.0,MIT rqrcode-rails3,0.1.7,MIT ruby-enum,0.7.2,MIT @@ -1413,6 +1463,7 @@ run-queue,1.0.3,ISC rx-lite,3.1.2,Apache 2.0 rx-lite,4.0.8,Apache 2.0 rx-lite-aggregates,4.0.8,Apache 2.0 +rxjs,5.5.10,Apache 2.0 safe-buffer,5.1.1,MIT safe-regex,1.1.0,MIT safe_yaml,1.0.4,MIT @@ -1423,8 +1474,8 @@ sass-listen,4.0.0,MIT sass-rails,5.0.6,MIT sawyer,0.8.1,MIT sax,1.2.2,ISC -schema-utils,0.3.0,MIT schema-utils,0.4.5,MIT +scoped-regex,1.0.0,MIT securecompare,1.0.0,MIT seed-fu,2.3.7,MIT select,1.1.2,MIT @@ -1452,11 +1503,11 @@ setprototypeof,1.1.0,ISC settingslogic,2.0.9,MIT sexp_processor,4.9.0,MIT sha.js,2.4.10,MIT -shasum,1.0.2,MIT +sha1,1.1.1,New BSD shebang-command,1.2.0,MIT shebang-regex,1.0.0,MIT -shell-quote,1.6.1,MIT shelljs,0.7.8,New BSD +shelljs,0.8.1,New BSD sidekiq,5.0.5,LGPL sidekiq-cron,0.6.0,MIT sidekiq-limit_fetch,3.4.0,MIT @@ -1466,6 +1517,7 @@ slack-node,0.2.0,MIT slack-notifier,1.5.1,MIT slash,1.0.0,MIT slice-ansi,0.0.4,MIT +slide,1.1.6,ISC smart-buffer,1.1.15,MIT smtp-connection,2.12.0,MIT snapdragon,0.8.1,MIT @@ -1483,6 +1535,7 @@ socks,1.1.10,MIT socks,1.1.9,MIT socks-proxy-agent,2.1.1,MIT sort-keys,1.1.2,MIT +sort-keys,2.0.0,MIT source-list-map,2.0.0,MIT source-map,0.2.0,New BSD source-map,0.4.4,New BSD @@ -1516,50 +1569,51 @@ statuses,1.3.1,MIT statuses,1.4.0,MIT stream-browserify,2.0.1,MIT stream-combiner,0.0.4,MIT -stream-combiner2,1.1.1,MIT stream-each,1.2.2,MIT -stream-http,2.6.3,MIT stream-http,2.8.0,MIT stream-shift,1.0.0,MIT -stream-splicer,2.0.0,MIT +stream-to-observable,0.2.0,MIT streamroller,0.7.0,MIT strict-uri-encode,1.1.0,MIT +string-template,0.2.1,MIT string-width,1.0.2,MIT -string-width,2.0.0,MIT string-width,2.1.1,MIT string_decoder,0.10.31,MIT string_decoder,1.0.3,MIT -stringex,2.7.1,MIT +stringex,2.8.4,MIT stringstream,0.0.5,MIT +strip-ansi,0.1.1,MIT strip-ansi,3.0.1,MIT strip-ansi,4.0.0,MIT strip-bom,2.0.0,MIT strip-bom,3.0.0,MIT +strip-bom-stream,2.0.0,MIT strip-eof,1.0.0,MIT strip-indent,1.0.1,MIT strip-json-comments,2.0.1,MIT -style-loader,0.20.2,MIT -subarg,1.0.0,MIT +style-loader,0.21.0,MIT supports-color,2.0.0,MIT supports-color,3.2.3,MIT -supports-color,4.2.1,MIT -supports-color,4.5.0,MIT supports-color,5.1.0,MIT supports-color,5.2.0,MIT +supports-color,5.4.0,MIT svg4everybody,2.1.9,CC0-1.0 svgo,0.7.2,MIT -syntax-error,1.4.0,MIT +symbol-observable,0.2.4,MIT +symbol-observable,1.0.1,MIT sys-filesystem,1.1.6,Artistic 2.0 table,3.8.3,New BSD tapable,0.1.10,MIT -tapable,0.2.8,MIT +tapable,1.0.0,MIT tar,2.2.1,ISC tar-pack,3.4.1,Simplified BSD +temp,0.8.3,MIT temple,0.7.7,MIT term-size,1.2.0,MIT -test-exclude,4.1.1,ISC +test-exclude,4.2.1,ISC text,1.3.1,MIT text-table,0.2.0,MIT +textextensions,2.2.0,MIT thor,0.19.4,MIT thread_safe,0.3.6,Apache 2.0 three,0.84.0,MIT @@ -1570,7 +1624,6 @@ through2,2.0.3,MIT thunkify,2.1.2,MIT thunky,0.1.0,MIT* tilt,2.0.6,MIT -time-stamp,2.0.0,MIT timeago.js,3.0.2,MIT timed-out,4.0.1,MIT timers-browserify,1.4.2,MIT @@ -1585,6 +1638,7 @@ to-fast-properties,1.0.3,MIT to-fast-properties,2.0.0,MIT to-object-path,0.3.0,MIT to-regex,3.0.1,MIT +to-regex,3.0.2,MIT to-regex-range,2.1.1,MIT toml-rb,1.0.0,MIT touch,3.1.0,ISC @@ -1597,7 +1651,6 @@ tryer,1.0.0,MIT tryit,1.0.3,MIT tsscmp,1.0.5,MIT tty-browserify,0.0.0,MIT -tty-browserify,0.0.1,MIT tunnel-agent,0.4.3,Apache 2.0 tunnel-agent,0.6.0,Apache 2.0 tweetnacl,0.14.5,Unlicense @@ -1608,16 +1661,17 @@ tzinfo,1.2.5,MIT u2f,0.2.1,MIT uber,0.1.0,MIT uglifier,2.7.2,MIT +uglify-es,3.3.9,Simplified BSD uglify-js,2.8.29,Simplified BSD uglify-to-browserify,1.0.2,MIT -uglifyjs-webpack-plugin,0.4.6,MIT +uglifyjs-webpack-plugin,1.2.5,MIT uid-number,0.0.6,ISC ultron,1.1.1,MIT -umd,3.0.1,MIT unc-path-regex,0.1.2,MIT undefsafe,2.0.2,MIT +underscore,1.6.0,MIT underscore,1.7.0,MIT -underscore,1.8.3,MIT +underscore,1.9.0,MIT unf,0.1.4,BSD unf_ext,0.0.7.5,MIT unicorn,5.1.0,ruby @@ -1631,25 +1685,30 @@ unique-slug,2.0.0,ISC unique-string,1.0.0,MIT unpipe,1.0.0,MIT unset-value,1.0.0,MIT +untildify,3.0.2,MIT unzip-response,2.0.1,MIT upath,1.0.2,MIT update-notifier,2.3.0,Simplified BSD urix,0.1.0,MIT url,0.11.0,MIT -url-loader,0.6.2,MIT +url-join,2.0.5,MIT +url-join,4.0.0,MIT +url-loader,1.0.1,MIT url-parse,1.0.5,MIT url-parse,1.1.9,MIT url-parse-lax,1.0.0,MIT +url-parse-lax,3.0.0,MIT url-to-options,1.0.1,MIT url_safe_base64,0.2.2,MIT use,2.0.2,MIT user-home,2.0.0,MIT -useragent,2.3.0,MIT +useragent,2.2.1,MIT util,0.10.3,MIT util-deprecate,1.0.2,MIT utils-merge,1.0.1,MIT uuid,3.2.1,MIT uws,9.14.0,Zlib +v8-compile-cache,1.1.2,MIT validate-npm-package-license,3.0.1,Apache 2.0 validates_hostname,1.0.6,MIT vary,1.1.1,MIT @@ -1657,38 +1716,46 @@ vary,1.1.2,MIT vendors,1.0.1,MIT verror,1.10.0,MIT version_sorter,2.1.0,MIT +vinyl,1.2.0,MIT +vinyl,2.1.0,MIT +vinyl-file,2.0.0,MIT virtus,1.0.5,MIT visibilityjs,1.2.4,MIT vm-browserify,0.0.4,MIT vmstat,2.3.0,MIT void-elements,2.0.1,MIT -vue,2.5.13,MIT +vue,2.5.16,MIT vue-eslint-parser,2.0.1,MIT -vue-hot-reload-api,2.2.4,MIT -vue-loader,14.1.1,MIT -vue-resource,1.3.5,MIT +vue-hot-reload-api,2.3.0,MIT +vue-loader,14.2.2,MIT +vue-resource,1.5.0,MIT vue-router,3.0.1,MIT -vue-style-loader,4.0.2,MIT -vue-template-compiler,2.5.13,MIT +vue-style-loader,4.1.0,MIT +vue-template-compiler,2.5.16,MIT vue-template-es2015-compiler,1.6.0,MIT +vue-virtual-scroll-list,1.2.5,MIT vuex,3.0.1,MIT -warden,1.2.6,MIT -watchpack,1.4.0,MIT +warden,1.2.7,MIT +watchpack,1.5.0,MIT wbuf,1.7.2,MIT -webpack,3.11.0,MIT -webpack-bundle-analyzer,2.10.0,MIT -webpack-dev-middleware,1.12.2,MIT -webpack-dev-server,2.11.2,MIT +webpack,4.7.0,MIT +webpack-addons,1.1.5,MIT +webpack-bundle-analyzer,2.11.1,MIT +webpack-cli,2.1.2,MIT +webpack-dev-middleware,2.0.6,MIT +webpack-dev-middleware,3.1.3,MIT +webpack-dev-server,3.1.4,MIT +webpack-log,1.1.2,MIT +webpack-log,1.2.0,MIT webpack-rails,0.9.10,MIT webpack-sources,1.0.1,MIT -webpack-stats-plugin,0.1.5,MIT +webpack-sources,1.1.0,MIT +webpack-stats-plugin,0.2.1,MIT websocket-driver,0.6.5,MIT websocket-extensions,0.1.1,MIT when,3.7.8,MIT whet.extend,0.9.9,MIT -which,1.2.12,ISC which,1.3.0,ISC -which-module,1.0.0,ISC which-module,2.0.0,ISC wide-align,1.1.2,ISC widest-line,2.0.0,MIT @@ -1697,10 +1764,12 @@ window-size,0.1.0,MIT wordwrap,0.0.2,MIT wordwrap,0.0.3,MIT wordwrap,1.0.0,MIT -worker-loader,1.1.0,MIT +worker-farm,1.5.2,MIT +worker-loader,1.1.1,MIT wrap-ansi,2.1.0,MIT wrappy,1.0.2,ISC write,0.2.1,MIT +write-file-atomic,1.3.4,ISC write-file-atomic,2.3.0,ISC ws,3.3.3,MIT ws,4.0.0,MIT @@ -1712,9 +1781,12 @@ xtend,4.0.1,MIT y18n,3.2.1,ISC y18n,4.0.0,ISC yallist,2.1.2,ISC +yargs,1.2.6,MIT +yargs,11.0.0,MIT +yargs,11.1.0,MIT yargs,3.10.0,MIT -yargs,6.6.0,MIT -yargs,8.0.2,MIT -yargs-parser,4.2.1,ISC -yargs-parser,7.0.0,ISC +yargs-parser,9.0.2,ISC yeast,0.1.2,MIT +yeoman-environment,2.0.5,Simplified BSD +yeoman-environment,2.0.6,Simplified BSD +yeoman-generator,2.0.5,Simplified BSD diff --git a/yarn.lock b/yarn.lock index d3d04fa0d47..b48a16c6ff1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -444,9 +444,9 @@ aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -axios-mock-adapter@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.10.0.tgz#3ccee65466439a2c7567e932798fc0377d39209d" +axios-mock-adapter@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.15.0.tgz#fbc06825d8302c95c3334d21023bba996255d45d" dependencies: deep-equal "^1.0.1" @@ -5406,10 +5406,6 @@ lodash.deburr@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" -lodash.endswith@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09" - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" @@ -5425,14 +5421,6 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isfunction@^3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - lodash.kebabcase@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.0.1.tgz#5e63bc9aa2a5562ff3b97ca7af2f803de1bcb90e" @@ -5455,10 +5443,6 @@ lodash.snakecase@4.0.1: lodash.deburr "^4.0.0" lodash.words "^4.0.0" -lodash.startswith@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.startswith/-/lodash.startswith-4.2.1.tgz#c598c4adce188a27e53145731cdc6c0e7177600c" - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -8787,13 +8771,8 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" upath@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.2.tgz#80aaae5395abc5fd402933ae2f58694f0860204c" - dependencies: - lodash.endswith "^4.2.1" - lodash.isfunction "^3.0.8" - lodash.isstring "^4.0.1" - lodash.startswith "^4.2.1" + version "1.0.5" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.5.tgz#02cab9ecebe95bbec6d5fc2566325725ab6d1a73" update-notifier@^2.3.0: version "2.3.0" |