diff options
author | Matija Čupić <matteeyah@gmail.com> | 2018-05-10 00:38:42 +0300 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2018-05-10 00:38:42 +0300 |
commit | 9d7599d718f72cdaf204fccfa93ae61b7ebdacf5 (patch) | |
tree | 0db57c7a35e26bd94ead90f827603ef4f06e8cd5 | |
parent | 0f4aa6598add80cdd6ae2ec0aede110b89e1d325 (diff) | |
parent | 1a9f90f8c132feb5760720931597e1bff28d386d (diff) |
Merge branch 'master' into 46082-runner-contacted_at-is-not-always-a-time-type
208 files changed, 1525 insertions, 1792 deletions
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 95fce8ca25f..01781720cd4 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -0.98.0 +0.99.0 @@ -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' @@ -434,4 +431,4 @@ gem 'lograge', '~> 0.5' gem 'grape_logging', '~> 1.7' # Asset synchronization -gem 'asset_sync', '~> 2.2.0' +gem 'asset_sync', '~> 2.4' diff --git a/Gemfile.lock b/Gemfile.lock index 2a63ee6a532..ee28465decd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -59,7 +59,7 @@ GEM asciidoctor (1.5.6.2) asciidoctor-plantuml (0.0.8) asciidoctor (~> 1.5) - asset_sync (2.2.0) + asset_sync (2.4.0) activemodel (>= 4.1.0) fog-core mime-types (>= 2.99) @@ -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) @@ -197,7 +195,7 @@ GEM et-orbi (1.0.3) tzinfo eventmachine (1.0.8) - excon (0.60.0) + excon (0.62.0) execjs (2.6.0) expression_parser (0.9.0) factory_bot (4.8.2) @@ -998,7 +996,7 @@ DEPENDENCIES asana (~> 0.6.0) asciidoctor (~> 1.5.6) asciidoctor-plantuml (= 0.0.8) - asset_sync (~> 2.2.0) + asset_sync (~> 2.4) attr_encrypted (~> 3.1.0) awesome_print (~> 1.2.0) babosa (~> 1.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/framework/buttons.scss b/app/assets/stylesheets/framework/buttons.scss index f4f5926e198..cd9d60b96d3 100644 --- a/app/assets/stylesheets/framework/buttons.scss +++ b/app/assets/stylesheets/framework/buttons.scss @@ -106,10 +106,6 @@ @include btn-color($red-500, $red-600, $red-600, $red-700, $red-700, $red-800, $white-light); } -@mixin btn-gray { - @include btn-color($gray-light, $border-gray-normal, $gray-normal, $border-gray-normal, $gray-dark, $border-gray-dark, $gl-text-color); -} - @mixin btn-white { @include btn-color($white-light, $border-color, $white-normal, $border-white-normal, $white-dark, $border-gray-dark, $gl-text-color); } @@ -183,10 +179,6 @@ } } - &.btn-gray { - @include btn-gray; - } - &.btn-info, &.btn-primary, &.btn-register { diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss index ea6467f0f11..dd0cb2c2613 100644 --- a/app/assets/stylesheets/pages/projects.scss +++ b/app/assets/stylesheets/pages/projects.scss @@ -205,7 +205,6 @@ .project-repo-buttons, .group-buttons { .btn { - @include btn-gray; padding: 3px 10px; &:last-child { @@ -294,7 +293,7 @@ } .count { - @include btn-gray; + @include btn-white; display: inline-block; background: $white-light; border-radius: 2px; 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 ce3e595a2e1..54326d0c42c 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/services/users/migrate_to_ghost_user_service.rb b/app/services/users/migrate_to_ghost_user_service.rb index 976017dfa82..a2833b1e051 100644 --- a/app/services/users/migrate_to_ghost_user_service.rb +++ b/app/services/users/migrate_to_ghost_user_service.rb @@ -49,7 +49,7 @@ module Users migrate_merge_requests migrate_notes migrate_abuse_reports - migrate_award_emojis + migrate_award_emoji end def migrate_issues @@ -70,7 +70,7 @@ module Users user.reported_abuse_reports.update_all(reporter_id: ghost_user.id) end - def migrate_award_emojis + def migrate_award_emoji user.award_emoji.update_all(user_id: ghost_user.id) end 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/help/_shortcuts.html.haml b/app/views/help/_shortcuts.html.haml index 29b23ae2e52..1c5b4aecabb 100644 --- a/app/views/help/_shortcuts.html.haml +++ b/app/views/help/_shortcuts.html.haml @@ -1,5 +1,5 @@ #modal-shortcuts.modal{ tabindex: -1 } - .modal-dialog + .modal-dialog.modal-lg .modal-content .modal-header %a.close{ href: "#", "data-dismiss" => "modal" } × diff --git a/app/views/help/ui.html.haml b/app/views/help/ui.html.haml index ce09b44fbb2..7908a04c2eb 100644 --- a/app/views/help/ui.html.haml +++ b/app/views/help/ui.html.haml @@ -74,10 +74,10 @@ = lorem .cover-controls - = link_to '#', class: 'btn btn-gray' do + = link_to '#', class: 'btn btn-default' do = icon('pencil') - = link_to '#', class: 'btn btn-gray' do + = link_to '#', class: 'btn btn-default' do = icon('rss') %h2#lists Lists @@ -206,7 +206,6 @@ .example %button.btn.btn-default{ :type => "button" } Default - %button.btn.btn-gray{ :type => "button" } Gray %button.btn.btn-primary{ :type => "button" } Primary %button.btn.btn-success{ :type => "button" } Success %button.btn.btn-info{ :type => "button" } Info 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 1a386d96bcd..93c6ba86640 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/app/views/users/show.html.haml b/app/views/users/show.html.haml index d35ddf3eb39..fb909237b9a 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -12,7 +12,7 @@ .cover-block.user-cover-block.top-area .cover-controls - if @user == current_user - = link_to profile_path, class: 'btn btn-gray has-tooltip', title: 'Edit profile', 'aria-label': 'Edit profile' do + = link_to profile_path, class: 'btn btn-default has-tooltip', title: 'Edit profile', 'aria-label': 'Edit profile' do = icon('pencil') - elsif current_user - if @user.abuse_report @@ -20,13 +20,13 @@ data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } } = icon('exclamation-circle') - else - = link_to new_abuse_report_path(user_id: @user.id, ref_url: request.referrer), class: 'btn btn-gray', + = link_to new_abuse_report_path(user_id: @user.id, ref_url: request.referrer), class: 'btn', title: 'Report abuse', data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do = icon('exclamation-circle') - = link_to user_path(@user, rss_url_options), class: 'btn btn-gray has-tooltip', title: 'Subscribe', 'aria-label': 'Subscribe' do + = link_to user_path(@user, rss_url_options), class: 'btn btn-default has-tooltip', title: 'Subscribe', 'aria-label': 'Subscribe' do = icon('rss') - if current_user && current_user.admin? - = link_to [:admin, @user], class: 'btn btn-gray', title: 'View user in admin area', + = link_to [:admin, @user], class: 'btn btn-default', title: 'View user in admin area', data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do = icon('users') 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/44319-remove-gray-buttons.yml b/changelogs/unreleased/44319-remove-gray-buttons.yml new file mode 100644 index 00000000000..9803dde8493 --- /dev/null +++ b/changelogs/unreleased/44319-remove-gray-buttons.yml @@ -0,0 +1,5 @@ +--- +title: Remove gray button styles +merge_request: +author: +type: fixed diff --git a/changelogs/unreleased/5750-backport-checksum-git-commanderror-exit-status-128.yml b/changelogs/unreleased/5750-backport-checksum-git-commanderror-exit-status-128.yml new file mode 100644 index 00000000000..d778b44c110 --- /dev/null +++ b/changelogs/unreleased/5750-backport-checksum-git-commanderror-exit-status-128.yml @@ -0,0 +1,6 @@ +--- +title: Raise NoRepository error for non-valid repositories when calculating repository + checksum +merge_request: 18594 +author: +type: fixed diff --git a/changelogs/unreleased/blackst0ne-replace-spinach-project-ff-merge-requests-feature.yml b/changelogs/unreleased/blackst0ne-replace-spinach-project-ff-merge-requests-feature.yml new file mode 100644 index 00000000000..7802391ec64 --- /dev/null +++ b/changelogs/unreleased/blackst0ne-replace-spinach-project-ff-merge-requests-feature.yml @@ -0,0 +1,5 @@ +--- +title: 'Replace the `project/ff_merge_requests.feature` spinach test with an rspec analog' +merge_request: 18800 +author: '@blackst0ne' +type: other diff --git a/changelogs/unreleased/fix-gb-add-pipeline-builds-foreign-key.yml b/changelogs/unreleased/fix-gb-add-pipeline-builds-foreign-key.yml new file mode 100644 index 00000000000..bded7bb7cc4 --- /dev/null +++ b/changelogs/unreleased/fix-gb-add-pipeline-builds-foreign-key.yml @@ -0,0 +1,5 @@ +--- +title: Add database foreign key constraint between pipelines and build +merge_request: 18822 +author: +type: fixed 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/fix-shorcut-modal.yml b/changelogs/unreleased/fix-shorcut-modal.yml new file mode 100644 index 00000000000..796a1523a61 --- /dev/null +++ b/changelogs/unreleased/fix-shorcut-modal.yml @@ -0,0 +1,5 @@ +--- +title: Fix modal width of shorcuts help page +merge_request: 18766 +author: Lars Greiss +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/20121220064453_init_schema.rb b/db/migrate/20121220064453_init_schema.rb deleted file mode 100644 index f93dc92b70f..00000000000 --- a/db/migrate/20121220064453_init_schema.rb +++ /dev/null @@ -1,307 +0,0 @@ -# rubocop:disable all -class InitSchema < ActiveRecord::Migration - def up - - create_table "events", force: true do |t| - t.string "target_type" - t.integer "target_id" - t.string "title" - t.text "data" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "action" - t.integer "author_id" - end - - add_index "events", ["action"], name: "index_events_on_action", using: :btree - add_index "events", ["author_id"], name: "index_events_on_author_id", using: :btree - add_index "events", ["created_at"], name: "index_events_on_created_at", using: :btree - add_index "events", ["project_id"], name: "index_events_on_project_id", using: :btree - add_index "events", ["target_id"], name: "index_events_on_target_id", using: :btree - add_index "events", ["target_type"], name: "index_events_on_target_type", using: :btree - - create_table "issues", force: true do |t| - t.string "title" - t.integer "assignee_id" - t.integer "author_id" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "closed", default: false, null: false - t.integer "position", default: 0 - t.string "branch_name" - t.text "description" - t.integer "milestone_id" - end - - add_index "issues", ["assignee_id"], name: "index_issues_on_assignee_id", using: :btree - add_index "issues", ["author_id"], name: "index_issues_on_author_id", using: :btree - add_index "issues", ["closed"], name: "index_issues_on_closed", using: :btree - add_index "issues", ["created_at"], name: "index_issues_on_created_at", using: :btree - add_index "issues", ["milestone_id"], name: "index_issues_on_milestone_id", using: :btree - add_index "issues", ["project_id"], name: "index_issues_on_project_id", using: :btree - add_index "issues", ["title"], name: "index_issues_on_title", using: :btree - - create_table "keys", force: true do |t| - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - t.text "key" - t.string "title" - t.string "identifier" - t.integer "project_id" - end - - add_index "keys", ["identifier"], name: "index_keys_on_identifier", using: :btree - add_index "keys", ["project_id"], name: "index_keys_on_project_id", using: :btree - add_index "keys", ["user_id"], name: "index_keys_on_user_id", using: :btree - - create_table "merge_requests", force: true do |t| - t.string "target_branch", null: false - t.string "source_branch", null: false - t.integer "project_id", null: false - t.integer "author_id" - t.integer "assignee_id" - t.string "title" - t.boolean "closed", default: false, null: false - t.datetime "created_at" - t.datetime "updated_at" - t.text "st_commits" - t.text "st_diffs" - t.boolean "merged", default: false, null: false - t.integer "state", default: 1, null: false - t.integer "milestone_id" - end - - add_index "merge_requests", ["assignee_id"], name: "index_merge_requests_on_assignee_id", using: :btree - add_index "merge_requests", ["author_id"], name: "index_merge_requests_on_author_id", using: :btree - add_index "merge_requests", ["closed"], name: "index_merge_requests_on_closed", using: :btree - add_index "merge_requests", ["created_at"], name: "index_merge_requests_on_created_at", using: :btree - add_index "merge_requests", ["milestone_id"], name: "index_merge_requests_on_milestone_id", using: :btree - add_index "merge_requests", ["project_id"], name: "index_merge_requests_on_project_id", using: :btree - add_index "merge_requests", ["source_branch"], name: "index_merge_requests_on_source_branch", using: :btree - add_index "merge_requests", ["target_branch"], name: "index_merge_requests_on_target_branch", using: :btree - add_index "merge_requests", ["title"], name: "index_merge_requests_on_title", using: :btree - - create_table "milestones", force: true do |t| - t.string "title", null: false - t.integer "project_id", null: false - t.text "description" - t.date "due_date" - t.boolean "closed", default: false, null: false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "milestones", ["due_date"], name: "index_milestones_on_due_date", using: :btree - add_index "milestones", ["project_id"], name: "index_milestones_on_project_id", using: :btree - - create_table "namespaces", force: true do |t| - t.string "name", null: false - t.string "path", null: false - t.integer "owner_id", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.string "type" - end - - add_index "namespaces", ["name"], name: "index_namespaces_on_name", using: :btree - add_index "namespaces", ["owner_id"], name: "index_namespaces_on_owner_id", using: :btree - add_index "namespaces", ["path"], name: "index_namespaces_on_path", using: :btree - add_index "namespaces", ["type"], name: "index_namespaces_on_type", using: :btree - - create_table "notes", force: true do |t| - t.text "note" - t.string "noteable_type" - t.integer "author_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_id" - t.string "attachment" - t.string "line_code" - t.string "commit_id" - t.integer "noteable_id" - end - - add_index "notes", ["commit_id"], name: "index_notes_on_commit_id", using: :btree - add_index "notes", ["created_at"], name: "index_notes_on_created_at", using: :btree - add_index "notes", ["noteable_type"], name: "index_notes_on_noteable_type", using: :btree - add_index "notes", ["project_id", "noteable_type"], name: "index_notes_on_project_id_and_noteable_type", using: :btree - add_index "notes", ["project_id"], name: "index_notes_on_project_id", using: :btree - - create_table "projects", force: true do |t| - t.string "name" - t.string "path" - t.text "description" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "private_flag", default: true, null: false - t.integer "owner_id" - t.string "default_branch" - t.boolean "issues_enabled", default: true, null: false - t.boolean "wall_enabled", default: true, null: false - t.boolean "merge_requests_enabled", default: true, null: false - t.boolean "wiki_enabled", default: true, null: false - t.integer "namespace_id" - end - - add_index "projects", ["namespace_id"], name: "index_projects_on_namespace_id", using: :btree - add_index "projects", ["owner_id"], name: "index_projects_on_owner_id", using: :btree - - create_table "protected_branches", force: true do |t| - t.integer "project_id", null: false - t.string "name", null: false - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "services", force: true do |t| - t.string "type" - t.string "title" - t.string "token" - t.integer "project_id", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "active", default: false, null: false - t.string "project_url" - end - - add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree - - create_table "snippets", force: true do |t| - t.string "title" - t.text "content" - t.integer "author_id", null: false - t.integer "project_id", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.string "file_name" - t.datetime "expires_at" - end - - add_index "snippets", ["created_at"], name: "index_snippets_on_created_at", using: :btree - add_index "snippets", ["expires_at"], name: "index_snippets_on_expires_at", using: :btree - add_index "snippets", ["project_id"], name: "index_snippets_on_project_id", using: :btree - - create_table "taggings", force: true do |t| - t.integer "tag_id" - t.integer "taggable_id" - t.string "taggable_type" - t.integer "tagger_id" - t.string "tagger_type" - t.string "context" - t.datetime "created_at" - end - - add_index "taggings", ["tag_id"], name: "index_taggings_on_tag_id", using: :btree - add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree - - create_table "tags", force: true do |t| - t.string "name" - end - - create_table "user_team_project_relationships", force: true do |t| - t.integer "project_id" - t.integer "user_team_id" - t.integer "greatest_access" - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "user_team_user_relationships", force: true do |t| - t.integer "user_id" - t.integer "user_team_id" - t.boolean "group_admin" - t.integer "permission" - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "user_teams", force: true do |t| - t.string "name" - t.string "path" - t.integer "owner_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "users", force: true do |t| - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false - t.string "reset_password_token" - t.datetime "reset_password_sent_at" - t.datetime "remember_created_at" - t.integer "sign_in_count", default: 0 - t.datetime "current_sign_in_at" - t.datetime "last_sign_in_at" - t.string "current_sign_in_ip" - t.string "last_sign_in_ip" - t.datetime "created_at" - t.datetime "updated_at" - t.string "name" - t.boolean "admin", default: false, null: false - t.integer "projects_limit", default: 10 - t.string "skype", default: "", null: false - t.string "linkedin", default: "", null: false - t.string "twitter", default: "", null: false - t.string "authentication_token" - t.boolean "dark_scheme", default: false, null: false - t.integer "theme_id", default: 1, null: false - t.string "bio" - t.boolean "blocked", default: false, null: false - t.integer "failed_attempts", default: 0 - t.datetime "locked_at" - t.string "extern_uid" - t.string "provider" - t.string "username" - end - - add_index "users", ["admin"], name: "index_users_on_admin", using: :btree - add_index "users", ["blocked"], name: "index_users_on_blocked", using: :btree - add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree - add_index "users", ["extern_uid", "provider"], name: "index_users_on_extern_uid_and_provider", unique: true, using: :btree - add_index "users", ["name"], name: "index_users_on_name", using: :btree - add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree - add_index "users", ["username"], name: "index_users_on_username", using: :btree - - create_table "users_projects", force: true do |t| - t.integer "user_id", null: false - t.integer "project_id", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_access", default: 0, null: false - end - - add_index "users_projects", ["project_access"], name: "index_users_projects_on_project_access", using: :btree - add_index "users_projects", ["project_id"], name: "index_users_projects_on_project_id", using: :btree - add_index "users_projects", ["user_id"], name: "index_users_projects_on_user_id", using: :btree - - create_table "web_hooks", force: true do |t| - t.string "url" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type", default: "ProjectHook" - t.integer "service_id" - end - - create_table "wikis", force: true do |t| - t.string "title" - t.text "content" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "slug" - t.integer "user_id" - end - - add_index "wikis", ["project_id"], name: "index_wikis_on_project_id", using: :btree - add_index "wikis", ["slug"], name: "index_wikis_on_slug", using: :btree - - end - - def down - raise "Can not revert initial migration" - end -end diff --git a/db/migrate/20130102143055_rename_owner_to_creator_for_project.rb b/db/migrate/20130102143055_rename_owner_to_creator_for_project.rb deleted file mode 100644 index 84fd2060770..00000000000 --- a/db/migrate/20130102143055_rename_owner_to_creator_for_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class RenameOwnerToCreatorForProject < ActiveRecord::Migration - def change - rename_column :projects, :owner_id, :creator_id - end -end diff --git a/db/migrate/20130110172407_add_public_to_project.rb b/db/migrate/20130110172407_add_public_to_project.rb deleted file mode 100644 index 4362aadcc1d..00000000000 --- a/db/migrate/20130110172407_add_public_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddPublicToProject < ActiveRecord::Migration - def change - add_column :projects, :public, :boolean, default: false, null: false - end -end diff --git a/db/migrate/20130123114545_add_issues_tracker_to_project.rb b/db/migrate/20130123114545_add_issues_tracker_to_project.rb deleted file mode 100644 index ba8c50b53e2..00000000000 --- a/db/migrate/20130123114545_add_issues_tracker_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddIssuesTrackerToProject < ActiveRecord::Migration - def change - add_column :projects, :issues_tracker, :string, default: :gitlab, null: false - end -end diff --git a/db/migrate/20130125090214_add_user_permissions.rb b/db/migrate/20130125090214_add_user_permissions.rb deleted file mode 100644 index 1350eadb60e..00000000000 --- a/db/migrate/20130125090214_add_user_permissions.rb +++ /dev/null @@ -1,12 +0,0 @@ -# rubocop:disable all -class AddUserPermissions < ActiveRecord::Migration - def up - add_column :users, :can_create_group, :boolean, default: true, null: false - add_column :users, :can_create_team, :boolean, default: true, null: false - end - - def down - remove_column :users, :can_create_group - remove_column :users, :can_create_team - end -end diff --git a/db/migrate/20130131070232_remove_private_flag_from_project.rb b/db/migrate/20130131070232_remove_private_flag_from_project.rb deleted file mode 100644 index f0273ba448e..00000000000 --- a/db/migrate/20130131070232_remove_private_flag_from_project.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemovePrivateFlagFromProject < ActiveRecord::Migration - def up - remove_column :projects, :private_flag - end - - def down - add_column :projects, :private_flag, :boolean, default: true, null: false - end -end diff --git a/db/migrate/20130206084024_add_description_to_namsespace.rb b/db/migrate/20130206084024_add_description_to_namsespace.rb deleted file mode 100644 index 62676ce8914..00000000000 --- a/db/migrate/20130206084024_add_description_to_namsespace.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddDescriptionToNamsespace < ActiveRecord::Migration - def change - add_column :namespaces, :description, :string, default: '', null: false - end -end diff --git a/db/migrate/20130207104426_add_description_to_teams.rb b/db/migrate/20130207104426_add_description_to_teams.rb deleted file mode 100644 index bd9a4767b69..00000000000 --- a/db/migrate/20130207104426_add_description_to_teams.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddDescriptionToTeams < ActiveRecord::Migration - def change - add_column :user_teams, :description, :string, default: '', null: false - end -end diff --git a/db/migrate/20130211085435_add_issues_tracker_id_to_project.rb b/db/migrate/20130211085435_add_issues_tracker_id_to_project.rb deleted file mode 100644 index 56b01cbf892..00000000000 --- a/db/migrate/20130211085435_add_issues_tracker_id_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddIssuesTrackerIdToProject < ActiveRecord::Migration - def change - add_column :projects, :issues_tracker_id, :string - end -end diff --git a/db/migrate/20130214154045_rename_state_to_merge_status_in_milestone.rb b/db/migrate/20130214154045_rename_state_to_merge_status_in_milestone.rb deleted file mode 100644 index 4722cc13d4b..00000000000 --- a/db/migrate/20130214154045_rename_state_to_merge_status_in_milestone.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class RenameStateToMergeStatusInMilestone < ActiveRecord::Migration - def change - rename_column :merge_requests, :state, :merge_status - end -end diff --git a/db/migrate/20130218140952_add_state_to_issue.rb b/db/migrate/20130218140952_add_state_to_issue.rb deleted file mode 100644 index 3a5e978a182..00000000000 --- a/db/migrate/20130218140952_add_state_to_issue.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddStateToIssue < ActiveRecord::Migration - def change - add_column :issues, :state, :string - end -end diff --git a/db/migrate/20130218141038_add_state_to_merge_request.rb b/db/migrate/20130218141038_add_state_to_merge_request.rb deleted file mode 100644 index e0180c755e2..00000000000 --- a/db/migrate/20130218141038_add_state_to_merge_request.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddStateToMergeRequest < ActiveRecord::Migration - def change - add_column :merge_requests, :state, :string - end -end diff --git a/db/migrate/20130218141117_add_state_to_milestone.rb b/db/migrate/20130218141117_add_state_to_milestone.rb deleted file mode 100644 index 5f71608692c..00000000000 --- a/db/migrate/20130218141117_add_state_to_milestone.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddStateToMilestone < ActiveRecord::Migration - def change - add_column :milestones, :state, :string - end -end diff --git a/db/migrate/20130218141258_convert_closed_to_state_in_issue.rb b/db/migrate/20130218141258_convert_closed_to_state_in_issue.rb deleted file mode 100644 index 67a0d3b53eb..00000000000 --- a/db/migrate/20130218141258_convert_closed_to_state_in_issue.rb +++ /dev/null @@ -1,19 +0,0 @@ -# rubocop:disable all -class ConvertClosedToStateInIssue < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def up - execute "UPDATE #{table_name} SET state = 'closed' WHERE closed = #{true_value}" - execute "UPDATE #{table_name} SET state = 'opened' WHERE closed = #{false_value}" - end - - def down - execute "UPDATE #{table_name} SET closed = #{true_value} WHERE state = 'closed'" - end - - private - - def table_name - Issue.table_name - end -end diff --git a/db/migrate/20130218141327_convert_closed_to_state_in_merge_request.rb b/db/migrate/20130218141327_convert_closed_to_state_in_merge_request.rb deleted file mode 100644 index 307fc6a023d..00000000000 --- a/db/migrate/20130218141327_convert_closed_to_state_in_merge_request.rb +++ /dev/null @@ -1,21 +0,0 @@ -# rubocop:disable all -class ConvertClosedToStateInMergeRequest < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def up - execute "UPDATE #{table_name} SET state = 'merged' WHERE closed = #{true_value} AND merged = #{true_value}" - execute "UPDATE #{table_name} SET state = 'closed' WHERE closed = #{true_value} AND merged = #{false_value}" - execute "UPDATE #{table_name} SET state = 'opened' WHERE closed = #{false_value}" - end - - def down - execute "UPDATE #{table_name} SET closed = #{true_value} WHERE state = 'closed'" - execute "UPDATE #{table_name} SET closed = #{true_value}, merged = #{true_value} WHERE state = 'merged'" - end - - private - - def table_name - MergeRequest.table_name - end -end diff --git a/db/migrate/20130218141344_convert_closed_to_state_in_milestone.rb b/db/migrate/20130218141344_convert_closed_to_state_in_milestone.rb deleted file mode 100644 index d12703cf3b2..00000000000 --- a/db/migrate/20130218141344_convert_closed_to_state_in_milestone.rb +++ /dev/null @@ -1,19 +0,0 @@ -# rubocop:disable all -class ConvertClosedToStateInMilestone < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def up - execute "UPDATE #{table_name} SET state = 'closed' WHERE closed = #{true_value}" - execute "UPDATE #{table_name} SET state = 'active' WHERE closed = #{false_value}" - end - - def down - execute "UPDATE #{table_name} SET closed = #{true_value} WHERE state = 'cloesd'" - end - - private - - def table_name - Milestone.table_name - end -end diff --git a/db/migrate/20130218141444_remove_merged_from_merge_request.rb b/db/migrate/20130218141444_remove_merged_from_merge_request.rb deleted file mode 100644 index afa5137061e..00000000000 --- a/db/migrate/20130218141444_remove_merged_from_merge_request.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveMergedFromMergeRequest < ActiveRecord::Migration - def up - remove_column :merge_requests, :merged - end - - def down - add_column :merge_requests, :merged, :boolean, default: true, null: false - end -end diff --git a/db/migrate/20130218141507_remove_closed_from_issue.rb b/db/migrate/20130218141507_remove_closed_from_issue.rb deleted file mode 100644 index f250288bc3b..00000000000 --- a/db/migrate/20130218141507_remove_closed_from_issue.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveClosedFromIssue < ActiveRecord::Migration - def up - remove_column :issues, :closed - end - - def down - add_column :issues, :closed, :boolean - end -end diff --git a/db/migrate/20130218141536_remove_closed_from_merge_request.rb b/db/migrate/20130218141536_remove_closed_from_merge_request.rb deleted file mode 100644 index efa12e32636..00000000000 --- a/db/migrate/20130218141536_remove_closed_from_merge_request.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveClosedFromMergeRequest < ActiveRecord::Migration - def up - remove_column :merge_requests, :closed - end - - def down - add_column :merge_requests, :closed, :boolean - end -end diff --git a/db/migrate/20130218141554_remove_closed_from_milestone.rb b/db/migrate/20130218141554_remove_closed_from_milestone.rb deleted file mode 100644 index 75ac14e43be..00000000000 --- a/db/migrate/20130218141554_remove_closed_from_milestone.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveClosedFromMilestone < ActiveRecord::Migration - def up - remove_column :milestones, :closed - end - - def down - add_column :milestones, :closed, :boolean - end -end diff --git a/db/migrate/20130220124204_add_new_merge_status_to_merge_request.rb b/db/migrate/20130220124204_add_new_merge_status_to_merge_request.rb deleted file mode 100644 index 97615e47c89..00000000000 --- a/db/migrate/20130220124204_add_new_merge_status_to_merge_request.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddNewMergeStatusToMergeRequest < ActiveRecord::Migration - def change - add_column :merge_requests, :new_merge_status, :string - end -end diff --git a/db/migrate/20130220125544_convert_merge_status_in_merge_request.rb b/db/migrate/20130220125544_convert_merge_status_in_merge_request.rb deleted file mode 100644 index 3b8c3686c55..00000000000 --- a/db/migrate/20130220125544_convert_merge_status_in_merge_request.rb +++ /dev/null @@ -1,20 +0,0 @@ -# rubocop:disable all -class ConvertMergeStatusInMergeRequest < ActiveRecord::Migration - def up - execute "UPDATE #{table_name} SET new_merge_status = 'unchecked' WHERE merge_status = 1" - execute "UPDATE #{table_name} SET new_merge_status = 'can_be_merged' WHERE merge_status = 2" - execute "UPDATE #{table_name} SET new_merge_status = 'cannot_be_merged' WHERE merge_status = 3" - end - - def down - execute "UPDATE #{table_name} SET merge_status = 1 WHERE new_merge_status = 'unchecked'" - execute "UPDATE #{table_name} SET merge_status = 2 WHERE new_merge_status = 'can_be_merged'" - execute "UPDATE #{table_name} SET merge_status = 3 WHERE new_merge_status = 'cannot_be_merged'" - end - - private - - def table_name - MergeRequest.table_name - end -end diff --git a/db/migrate/20130220125545_remove_merge_status_from_merge_request.rb b/db/migrate/20130220125545_remove_merge_status_from_merge_request.rb deleted file mode 100644 index bd25ffbfc99..00000000000 --- a/db/migrate/20130220125545_remove_merge_status_from_merge_request.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveMergeStatusFromMergeRequest < ActiveRecord::Migration - def up - remove_column :merge_requests, :merge_status - end - - def down - add_column :merge_requests, :merge_status, :integer - end -end diff --git a/db/migrate/20130220133245_rename_new_merge_status_to_merge_status_in_milestone.rb b/db/migrate/20130220133245_rename_new_merge_status_to_merge_status_in_milestone.rb deleted file mode 100644 index f0595720a39..00000000000 --- a/db/migrate/20130220133245_rename_new_merge_status_to_merge_status_in_milestone.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class RenameNewMergeStatusToMergeStatusInMilestone < ActiveRecord::Migration - def change - rename_column :merge_requests, :new_merge_status, :merge_status - end -end diff --git a/db/migrate/20130304104623_add_state_to_user.rb b/db/migrate/20130304104623_add_state_to_user.rb deleted file mode 100644 index 4456d022e3f..00000000000 --- a/db/migrate/20130304104623_add_state_to_user.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddStateToUser < ActiveRecord::Migration - def change - add_column :users, :state, :string - end -end diff --git a/db/migrate/20130304104740_convert_blocked_to_state.rb b/db/migrate/20130304104740_convert_blocked_to_state.rb deleted file mode 100644 index 9afd1093645..00000000000 --- a/db/migrate/20130304104740_convert_blocked_to_state.rb +++ /dev/null @@ -1,15 +0,0 @@ -# rubocop:disable all -class ConvertBlockedToState < ActiveRecord::Migration - def up - User.transaction do - User.where(blocked: true).update_all(state: :blocked) - User.where(blocked: false).update_all(state: :active) - end - end - - def down - User.transaction do - User.where(state: :blocked).update_all(blocked: :true) - end - end -end diff --git a/db/migrate/20130304105317_remove_blocked_from_user.rb b/db/migrate/20130304105317_remove_blocked_from_user.rb deleted file mode 100644 index 8f5b2c59b43..00000000000 --- a/db/migrate/20130304105317_remove_blocked_from_user.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveBlockedFromUser < ActiveRecord::Migration - def up - remove_column :users, :blocked - end - - def down - add_column :users, :blocked, :boolean - end -end diff --git a/db/migrate/20130315124931_user_color_scheme.rb b/db/migrate/20130315124931_user_color_scheme.rb deleted file mode 100644 index 09af928fde7..00000000000 --- a/db/migrate/20130315124931_user_color_scheme.rb +++ /dev/null @@ -1,15 +0,0 @@ -# rubocop:disable all -class UserColorScheme < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def up - add_column :users, :color_scheme_id, :integer, null: false, default: 1 - execute("UPDATE users SET color_scheme_id = 2 WHERE dark_scheme = #{true_value}") - remove_column :users, :dark_scheme - end - - def down - add_column :users, :dark_scheme, :boolean, null: false, default: false - remove_column :users, :color_scheme_id - end -end diff --git a/db/migrate/20130318212250_add_snippets_to_features.rb b/db/migrate/20130318212250_add_snippets_to_features.rb deleted file mode 100644 index 9860b85f504..00000000000 --- a/db/migrate/20130318212250_add_snippets_to_features.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddSnippetsToFeatures < ActiveRecord::Migration - def change - add_column :projects, :snippets_enabled, :boolean, null: false, default: true - end -end diff --git a/db/migrate/20130319214458_create_forked_project_links.rb b/db/migrate/20130319214458_create_forked_project_links.rb deleted file mode 100644 index 065a5e08243..00000000000 --- a/db/migrate/20130319214458_create_forked_project_links.rb +++ /dev/null @@ -1,14 +0,0 @@ -# rubocop:disable all -class CreateForkedProjectLinks < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :forked_project_links do |t| - t.integer :forked_to_project_id, null: false - t.integer :forked_from_project_id, null: false - - t.timestamps null: true - end - add_index :forked_project_links, :forked_to_project_id, unique: true - end -end diff --git a/db/migrate/20130323174317_add_private_to_snippets.rb b/db/migrate/20130323174317_add_private_to_snippets.rb deleted file mode 100644 index 376f4618d41..00000000000 --- a/db/migrate/20130323174317_add_private_to_snippets.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddPrivateToSnippets < ActiveRecord::Migration - def change - add_column :snippets, :private, :boolean, null: false, default: true - end -end diff --git a/db/migrate/20130324151736_add_type_to_snippets.rb b/db/migrate/20130324151736_add_type_to_snippets.rb deleted file mode 100644 index 097cb9bc7cb..00000000000 --- a/db/migrate/20130324151736_add_type_to_snippets.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddTypeToSnippets < ActiveRecord::Migration - def change - add_column :snippets, :type, :string - end -end diff --git a/db/migrate/20130324172327_change_project_id_to_null_in_snipepts.rb b/db/migrate/20130324172327_change_project_id_to_null_in_snipepts.rb deleted file mode 100644 index 9256e62086e..00000000000 --- a/db/migrate/20130324172327_change_project_id_to_null_in_snipepts.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class ChangeProjectIdToNullInSnipepts < ActiveRecord::Migration - def up - change_column :snippets, :project_id, :integer, :null => true - end - - def down - change_column :snippets, :project_id, :integer, :null => false - end -end diff --git a/db/migrate/20130324203535_add_type_value_for_snippets.rb b/db/migrate/20130324203535_add_type_value_for_snippets.rb deleted file mode 100644 index 6e910fd74c7..00000000000 --- a/db/migrate/20130324203535_add_type_value_for_snippets.rb +++ /dev/null @@ -1,9 +0,0 @@ -# rubocop:disable all -class AddTypeValueForSnippets < ActiveRecord::Migration - def up - Snippet.where("project_id IS NOT NULL").update_all(type: 'ProjectSnippet') - end - - def down - end -end diff --git a/db/migrate/20130325173941_add_notification_level_to_user.rb b/db/migrate/20130325173941_add_notification_level_to_user.rb deleted file mode 100644 index 1dc58d4bcc8..00000000000 --- a/db/migrate/20130325173941_add_notification_level_to_user.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddNotificationLevelToUser < ActiveRecord::Migration - def change - add_column :users, :notification_level, :integer, null: false, default: 1 - end -end diff --git a/db/migrate/20130326142630_add_index_to_users_authentication_token.rb b/db/migrate/20130326142630_add_index_to_users_authentication_token.rb deleted file mode 100644 index 0592181927e..00000000000 --- a/db/migrate/20130326142630_add_index_to_users_authentication_token.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddIndexToUsersAuthenticationToken < ActiveRecord::Migration - def change - add_index :users, :authentication_token, unique: true - end -end diff --git a/db/migrate/20130403003950_add_last_activity_column_into_project.rb b/db/migrate/20130403003950_add_last_activity_column_into_project.rb deleted file mode 100644 index 04a01612c6f..00000000000 --- a/db/migrate/20130403003950_add_last_activity_column_into_project.rb +++ /dev/null @@ -1,24 +0,0 @@ -# rubocop:disable all -class AddLastActivityColumnIntoProject < ActiveRecord::Migration - def up - add_column :projects, :last_activity_at, :datetime - add_index :projects, :last_activity_at - - select_all('SELECT id, updated_at FROM projects').each do |project| - project_id = project['id'] - update_date = project['updated_at'] - event = select_one("SELECT created_at FROM events WHERE project_id = #{project_id} ORDER BY created_at DESC LIMIT 1") - - if event && event['created_at'] - update_date = event['created_at'] - end - - execute("UPDATE projects SET last_activity_at = '#{update_date}' WHERE id = #{project_id}") - end - end - - def down - remove_index :projects, :last_activity_at - remove_column :projects, :last_activity_at - end -end diff --git a/db/migrate/20130404164628_add_notification_level_to_user_project.rb b/db/migrate/20130404164628_add_notification_level_to_user_project.rb deleted file mode 100644 index 1e072d9c6e1..00000000000 --- a/db/migrate/20130404164628_add_notification_level_to_user_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddNotificationLevelToUserProject < ActiveRecord::Migration - def change - add_column :users_projects, :notification_level, :integer, null: false, default: 3 - end -end diff --git a/db/migrate/20130410175022_remove_wiki_table.rb b/db/migrate/20130410175022_remove_wiki_table.rb deleted file mode 100644 index 5885b1cc375..00000000000 --- a/db/migrate/20130410175022_remove_wiki_table.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveWikiTable < ActiveRecord::Migration - def up - drop_table :wikis - end - - def down - raise ActiveRecord::IrreversibleMigration - end -end diff --git a/db/migrate/20130419190306_allow_merges_for_forks.rb b/db/migrate/20130419190306_allow_merges_for_forks.rb deleted file mode 100644 index ec953986c6a..00000000000 --- a/db/migrate/20130419190306_allow_merges_for_forks.rb +++ /dev/null @@ -1,20 +0,0 @@ -# rubocop:disable all -class AllowMergesForForks < ActiveRecord::Migration - def self.up - add_column :merge_requests, :target_project_id, :integer, :null => true - execute "UPDATE #{table_name} SET target_project_id = project_id" - change_column :merge_requests, :target_project_id, :integer, :null => false - rename_column :merge_requests, :project_id, :source_project_id - end - - def self.down - remove_column :merge_requests, :target_project_id - rename_column :merge_requests, :source_project_id,:project_id - end - - private - - def table_name - MergeRequest.table_name - end -end diff --git a/db/migrate/20130506085413_add_type_to_key.rb b/db/migrate/20130506085413_add_type_to_key.rb deleted file mode 100644 index c9f1ee4e389..00000000000 --- a/db/migrate/20130506085413_add_type_to_key.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddTypeToKey < ActiveRecord::Migration - def change - add_column :keys, :type, :string - end -end diff --git a/db/migrate/20130506090604_create_deploy_keys_projects.rb b/db/migrate/20130506090604_create_deploy_keys_projects.rb deleted file mode 100644 index 8b9662a27c3..00000000000 --- a/db/migrate/20130506090604_create_deploy_keys_projects.rb +++ /dev/null @@ -1,13 +0,0 @@ -# rubocop:disable all -class CreateDeployKeysProjects < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :deploy_keys_projects do |t| - t.integer :deploy_key_id, null: false - t.integer :project_id, null: false - - t.timestamps null: true - end - end -end diff --git a/db/migrate/20130506095501_remove_project_id_from_key.rb b/db/migrate/20130506095501_remove_project_id_from_key.rb deleted file mode 100644 index 53abc4e7b52..00000000000 --- a/db/migrate/20130506095501_remove_project_id_from_key.rb +++ /dev/null @@ -1,23 +0,0 @@ -# rubocop:disable all -class RemoveProjectIdFromKey < ActiveRecord::Migration - def up - puts 'Migrate deploy keys: ' - Key.where('project_id IS NOT NULL').update_all(type: 'DeployKey') - - DeployKey.all.each do |key| - project = Project.find_by(id: key.project_id) - if project - project.deploy_keys << key - print '.' - end - end - - puts 'Done' - - remove_column :keys, :project_id - end - - def down - add_column :keys, :project_id, :integer - end -end diff --git a/db/migrate/20130522141856_add_more_fields_to_service.rb b/db/migrate/20130522141856_add_more_fields_to_service.rb deleted file mode 100644 index 9f764a1d050..00000000000 --- a/db/migrate/20130522141856_add_more_fields_to_service.rb +++ /dev/null @@ -1,7 +0,0 @@ -# rubocop:disable all -class AddMoreFieldsToService < ActiveRecord::Migration - def change - add_column :services, :subdomain, :string - add_column :services, :room, :string - end -end diff --git a/db/migrate/20130528184641_add_system_to_notes.rb b/db/migrate/20130528184641_add_system_to_notes.rb deleted file mode 100644 index 27fbf8983ac..00000000000 --- a/db/migrate/20130528184641_add_system_to_notes.rb +++ /dev/null @@ -1,17 +0,0 @@ -# rubocop:disable all -class AddSystemToNotes < ActiveRecord::Migration - class Note < ActiveRecord::Base - end - - def up - add_column :notes, :system, :boolean, default: false, null: false - - Note.reset_column_information - Note.update_all(system: false) - Note.where("note like '_status changed to%'").update_all(system: true) - end - - def down - remove_column :notes, :system - end -end diff --git a/db/migrate/20130611210815_increase_snippet_text_column_size.rb b/db/migrate/20130611210815_increase_snippet_text_column_size.rb deleted file mode 100644 index f710c79a9a5..00000000000 --- a/db/migrate/20130611210815_increase_snippet_text_column_size.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class IncreaseSnippetTextColumnSize < ActiveRecord::Migration - def up - # MYSQL LARGETEXT for snippet - change_column :snippets, :content, :text, :limit => 4294967295 - end - - def down - end -end diff --git a/db/migrate/20130613165816_add_password_expires_at_to_users.rb b/db/migrate/20130613165816_add_password_expires_at_to_users.rb deleted file mode 100644 index 47306a370a8..00000000000 --- a/db/migrate/20130613165816_add_password_expires_at_to_users.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddPasswordExpiresAtToUsers < ActiveRecord::Migration - def change - add_column :users, :password_expires_at, :datetime - end -end diff --git a/db/migrate/20130613173246_add_created_by_id_to_user.rb b/db/migrate/20130613173246_add_created_by_id_to_user.rb deleted file mode 100644 index 3138c0f40a7..00000000000 --- a/db/migrate/20130613173246_add_created_by_id_to_user.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddCreatedByIdToUser < ActiveRecord::Migration - def change - add_column :users, :created_by_id, :integer - end -end diff --git a/db/migrate/20130614132337_add_improted_to_project.rb b/db/migrate/20130614132337_add_improted_to_project.rb deleted file mode 100644 index 26dc16e3b43..00000000000 --- a/db/migrate/20130614132337_add_improted_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddImprotedToProject < ActiveRecord::Migration - def change - add_column :projects, :imported, :boolean, default: false, null: false - end -end diff --git a/db/migrate/20130617095603_create_users_groups.rb b/db/migrate/20130617095603_create_users_groups.rb deleted file mode 100644 index 4ba7d0c9461..00000000000 --- a/db/migrate/20130617095603_create_users_groups.rb +++ /dev/null @@ -1,14 +0,0 @@ -# rubocop:disable all -class CreateUsersGroups < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :users_groups do |t| - t.integer :group_access, null: false - t.integer :group_id, null: false - t.integer :user_id, null: false - - t.timestamps null: true - end - end -end diff --git a/db/migrate/20130621195223_add_notification_level_to_user_group.rb b/db/migrate/20130621195223_add_notification_level_to_user_group.rb deleted file mode 100644 index 6fd4941f615..00000000000 --- a/db/migrate/20130621195223_add_notification_level_to_user_group.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddNotificationLevelToUserGroup < ActiveRecord::Migration - def change - add_column :users_groups, :notification_level, :integer, null: false, default: 3 - end -end diff --git a/db/migrate/20130622115340_add_more_db_index.rb b/db/migrate/20130622115340_add_more_db_index.rb deleted file mode 100644 index 4113217de59..00000000000 --- a/db/migrate/20130622115340_add_more_db_index.rb +++ /dev/null @@ -1,13 +0,0 @@ -# rubocop:disable all -class AddMoreDbIndex < ActiveRecord::Migration - def change - add_index :deploy_keys_projects, :project_id - add_index :web_hooks, :project_id - add_index :protected_branches, :project_id - - add_index :users_groups, :user_id - add_index :snippets, :author_id - add_index :notes, :author_id - add_index :notes, [:noteable_id, :noteable_type] - end -end diff --git a/db/migrate/20130624162710_add_fingerprint_to_key.rb b/db/migrate/20130624162710_add_fingerprint_to_key.rb deleted file mode 100644 index 3e574ea81b9..00000000000 --- a/db/migrate/20130624162710_add_fingerprint_to_key.rb +++ /dev/null @@ -1,7 +0,0 @@ -# rubocop:disable all -class AddFingerprintToKey < ActiveRecord::Migration - def change - add_column :keys, :fingerprint, :string - remove_column :keys, :identifier - end -end diff --git a/db/migrate/20130711063759_create_project_group_links.rb b/db/migrate/20130711063759_create_project_group_links.rb deleted file mode 100644 index efccb2aa938..00000000000 --- a/db/migrate/20130711063759_create_project_group_links.rb +++ /dev/null @@ -1,13 +0,0 @@ -# rubocop:disable all -class CreateProjectGroupLinks < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :project_group_links do |t| - t.integer :project_id, null: false - t.integer :group_id, null: false - - t.timestamps null: true - end - end -end diff --git a/db/migrate/20130804151314_add_st_diff_to_note.rb b/db/migrate/20130804151314_add_st_diff_to_note.rb deleted file mode 100644 index 9e2da73b695..00000000000 --- a/db/migrate/20130804151314_add_st_diff_to_note.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddStDiffToNote < ActiveRecord::Migration - def change - add_column :notes, :st_diff, :text, :null => true - end -end diff --git a/db/migrate/20130809124851_add_permission_check_to_user.rb b/db/migrate/20130809124851_add_permission_check_to_user.rb deleted file mode 100644 index 9f9dea36101..00000000000 --- a/db/migrate/20130809124851_add_permission_check_to_user.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddPermissionCheckToUser < ActiveRecord::Migration - def change - add_column :users, :last_credential_check_at, :datetime - end -end diff --git a/db/migrate/20130812143708_add_import_url_to_project.rb b/db/migrate/20130812143708_add_import_url_to_project.rb deleted file mode 100644 index d2bdfe1894e..00000000000 --- a/db/migrate/20130812143708_add_import_url_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddImportUrlToProject < ActiveRecord::Migration - def change - add_column :projects, :import_url, :string - end -end diff --git a/db/migrate/20130819182730_add_internal_ids_to_issues_and_mr.rb b/db/migrate/20130819182730_add_internal_ids_to_issues_and_mr.rb deleted file mode 100644 index 0e0e78b0f0d..00000000000 --- a/db/migrate/20130819182730_add_internal_ids_to_issues_and_mr.rb +++ /dev/null @@ -1,7 +0,0 @@ -# rubocop:disable all -class AddInternalIdsToIssuesAndMr < ActiveRecord::Migration - def change - add_column :issues, :iid, :integer - add_column :merge_requests, :iid, :integer - end -end diff --git a/db/migrate/20130820102832_add_access_to_project_group_link.rb b/db/migrate/20130820102832_add_access_to_project_group_link.rb deleted file mode 100644 index 98f3fa87523..00000000000 --- a/db/migrate/20130820102832_add_access_to_project_group_link.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddAccessToProjectGroupLink < ActiveRecord::Migration - def change - add_column :project_group_links, :group_access, :integer, null: false, default: ProjectGroupLink.default_access - end -end diff --git a/db/migrate/20130821090530_remove_deprecated_tables.rb b/db/migrate/20130821090530_remove_deprecated_tables.rb deleted file mode 100644 index d22e713a7a1..00000000000 --- a/db/migrate/20130821090530_remove_deprecated_tables.rb +++ /dev/null @@ -1,12 +0,0 @@ -# rubocop:disable all -class RemoveDeprecatedTables < ActiveRecord::Migration - def up - drop_table :user_teams - drop_table :user_team_project_relationships - drop_table :user_team_user_relationships - end - - def down - raise 'No rollback for this migration' - end -end diff --git a/db/migrate/20130821090531_add_internal_ids_to_milestones.rb b/db/migrate/20130821090531_add_internal_ids_to_milestones.rb deleted file mode 100644 index e25b8f91662..00000000000 --- a/db/migrate/20130821090531_add_internal_ids_to_milestones.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddInternalIdsToMilestones < ActiveRecord::Migration - def change - add_column :milestones, :iid, :integer - end -end diff --git a/db/migrate/20130909132950_add_description_to_merge_request.rb b/db/migrate/20130909132950_add_description_to_merge_request.rb deleted file mode 100644 index fbac50c8216..00000000000 --- a/db/migrate/20130909132950_add_description_to_merge_request.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddDescriptionToMergeRequest < ActiveRecord::Migration - def change - add_column :merge_requests, :description, :text, null: true - end -end diff --git a/db/migrate/20130926081215_change_owner_id_for_group.rb b/db/migrate/20130926081215_change_owner_id_for_group.rb deleted file mode 100644 index 2bdd22d5a04..00000000000 --- a/db/migrate/20130926081215_change_owner_id_for_group.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class ChangeOwnerIdForGroup < ActiveRecord::Migration - def up - change_column :namespaces, :owner_id, :integer, null: true - end - - def down - change_column :namespaces, :owner_id, :integer, null: false - end -end diff --git a/db/migrate/20131005191208_add_avatar_to_users.rb b/db/migrate/20131005191208_add_avatar_to_users.rb deleted file mode 100644 index df9057b81d6..00000000000 --- a/db/migrate/20131005191208_add_avatar_to_users.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddAvatarToUsers < ActiveRecord::Migration - def change - add_column :users, :avatar, :string - end -end diff --git a/db/migrate/20131009115346_add_confirmable_to_users.rb b/db/migrate/20131009115346_add_confirmable_to_users.rb deleted file mode 100644 index d714dd98e85..00000000000 --- a/db/migrate/20131009115346_add_confirmable_to_users.rb +++ /dev/null @@ -1,16 +0,0 @@ -# rubocop:disable all -class AddConfirmableToUsers < ActiveRecord::Migration - def self.up - add_column :users, :confirmation_token, :string - add_column :users, :confirmed_at, :datetime - add_column :users, :confirmation_sent_at, :datetime - add_column :users, :unconfirmed_email, :string - add_index :users, :confirmation_token, unique: true - User.update_all(confirmed_at: Time.now) - end - - def self.down - remove_column :users, :confirmation_token, :confirmed_at, :confirmation_sent_at - remove_column :users, :unconfirmed_email - end -end diff --git a/db/migrate/20131106151520_remove_default_branch.rb b/db/migrate/20131106151520_remove_default_branch.rb deleted file mode 100644 index fd3d1ed7ab3..00000000000 --- a/db/migrate/20131106151520_remove_default_branch.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class RemoveDefaultBranch < ActiveRecord::Migration - def up - remove_column :projects, :default_branch - end - - def down - add_column :projects, :default_branch, :string - end -end diff --git a/db/migrate/20131112114325_create_broadcast_messages.rb b/db/migrate/20131112114325_create_broadcast_messages.rb deleted file mode 100644 index ad2549e53af..00000000000 --- a/db/migrate/20131112114325_create_broadcast_messages.rb +++ /dev/null @@ -1,15 +0,0 @@ -# rubocop:disable all -class CreateBroadcastMessages < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :broadcast_messages do |t| - t.text :message, null: false - t.datetime :starts_at - t.datetime :ends_at - t.integer :alert_type - - t.timestamps null: true - end - end -end diff --git a/db/migrate/20131112220935_add_visibility_level_to_projects.rb b/db/migrate/20131112220935_add_visibility_level_to_projects.rb deleted file mode 100644 index 86d73753adc..00000000000 --- a/db/migrate/20131112220935_add_visibility_level_to_projects.rb +++ /dev/null @@ -1,16 +0,0 @@ -# rubocop:disable all -class AddVisibilityLevelToProjects < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def self.up - add_column :projects, :visibility_level, :integer, :default => 0, :null => false - execute("UPDATE projects SET visibility_level = #{Gitlab::VisibilityLevel::PUBLIC} WHERE public = #{true_value}") - remove_column :projects, :public - end - - def self.down - add_column :projects, :public, :boolean, :default => false, :null => false - execute("UPDATE projects SET public = #{true_value} WHERE visibility_level = #{Gitlab::VisibilityLevel::PUBLIC}") - remove_column :projects, :visibility_level - end -end diff --git a/db/migrate/20131129154016_add_archived_to_projects.rb b/db/migrate/20131129154016_add_archived_to_projects.rb deleted file mode 100644 index e8e6908d137..00000000000 --- a/db/migrate/20131129154016_add_archived_to_projects.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddArchivedToProjects < ActiveRecord::Migration - def change - add_column :projects, :archived, :boolean, default: false, null: false - end -end diff --git a/db/migrate/20131130165425_add_color_and_font_to_broadcast_messages.rb b/db/migrate/20131130165425_add_color_and_font_to_broadcast_messages.rb deleted file mode 100644 index 348a284a53e..00000000000 --- a/db/migrate/20131130165425_add_color_and_font_to_broadcast_messages.rb +++ /dev/null @@ -1,7 +0,0 @@ -# rubocop:disable all -class AddColorAndFontToBroadcastMessages < ActiveRecord::Migration - def change - add_column :broadcast_messages, :color, :string - add_column :broadcast_messages, :font, :string - end -end diff --git a/db/migrate/20131202192556_add_event_fields_for_web_hook.rb b/db/migrate/20131202192556_add_event_fields_for_web_hook.rb deleted file mode 100644 index 99d76611524..00000000000 --- a/db/migrate/20131202192556_add_event_fields_for_web_hook.rb +++ /dev/null @@ -1,8 +0,0 @@ -# rubocop:disable all -class AddEventFieldsForWebHook < ActiveRecord::Migration - def change - add_column :web_hooks, :push_events, :boolean, default: true, null: false - add_column :web_hooks, :issues_events, :boolean, default: false, null: false - add_column :web_hooks, :merge_requests_events, :boolean, default: false, null: false - end -end diff --git a/db/migrate/20131214224427_add_hide_no_ssh_key_to_users.rb b/db/migrate/20131214224427_add_hide_no_ssh_key_to_users.rb deleted file mode 100644 index 4333dc59323..00000000000 --- a/db/migrate/20131214224427_add_hide_no_ssh_key_to_users.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddHideNoSshKeyToUsers < ActiveRecord::Migration - def change - add_column :users, :hide_no_ssh_key, :boolean, :default => false - end -end diff --git a/db/migrate/20131217102743_add_recipients_to_service.rb b/db/migrate/20131217102743_add_recipients_to_service.rb deleted file mode 100644 index 3c76be0f68d..00000000000 --- a/db/migrate/20131217102743_add_recipients_to_service.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddRecipientsToService < ActiveRecord::Migration - def change - add_column :services, :recipients, :text - end -end diff --git a/db/migrate/20140116231608_add_website_url_to_users.rb b/db/migrate/20140116231608_add_website_url_to_users.rb deleted file mode 100644 index 1c39423562e..00000000000 --- a/db/migrate/20140116231608_add_website_url_to_users.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddWebsiteUrlToUsers < ActiveRecord::Migration - def change - add_column :users, :website_url, :string, {:null => false, :default => ''} - end -end diff --git a/db/migrate/20140122112253_create_merge_request_diffs.rb b/db/migrate/20140122112253_create_merge_request_diffs.rb deleted file mode 100644 index 6c7a92b6950..00000000000 --- a/db/migrate/20140122112253_create_merge_request_diffs.rb +++ /dev/null @@ -1,24 +0,0 @@ -# rubocop:disable all -class CreateMergeRequestDiffs < ActiveRecord::Migration - DOWNTIME = false - - def up - create_table :merge_request_diffs do |t| - t.string :state, null: false, default: 'collected' - t.text :st_commits, null: true - t.text :st_diffs, null: true - t.integer :merge_request_id, null: false - - t.timestamps null: true - end - - if ActiveRecord::Base.configurations[Rails.env]['adapter'] =~ /^mysql/ - change_column :merge_request_diffs, :st_commits, :text, limit: 2147483647 - change_column :merge_request_diffs, :st_diffs, :text, limit: 2147483647 - end - end - - def down - drop_table :merge_request_diffs - end -end diff --git a/db/migrate/20140122114406_migrate_mr_diffs.rb b/db/migrate/20140122114406_migrate_mr_diffs.rb deleted file mode 100644 index 429aeb2293f..00000000000 --- a/db/migrate/20140122114406_migrate_mr_diffs.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable all -class MigrateMrDiffs < ActiveRecord::Migration - def self.up - execute "INSERT INTO merge_request_diffs ( merge_request_id, st_commits, st_diffs ) SELECT id, st_commits, st_diffs FROM merge_requests" - end - - def self.down - MergeRequestDiff.delete_all - end -end diff --git a/db/migrate/20140122122549_remove_m_rdiff_fields.rb b/db/migrate/20140122122549_remove_m_rdiff_fields.rb deleted file mode 100644 index bbf35811b61..00000000000 --- a/db/migrate/20140122122549_remove_m_rdiff_fields.rb +++ /dev/null @@ -1,22 +0,0 @@ -# rubocop:disable all -class RemoveMRdiffFields < ActiveRecord::Migration - def up - remove_column :merge_requests, :st_commits - remove_column :merge_requests, :st_diffs - end - - def down - add_column :merge_requests, :st_commits, :text, null: true, limit: 2147483647 - add_column :merge_requests, :st_diffs, :text, null: true, limit: 2147483647 - - if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' - execute "UPDATE merge_requests mr - SET (st_commits, st_diffs) = (md.st_commits, md.st_diffs) - FROM merge_request_diffs md - WHERE md.merge_request_id = mr.id" - else - execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_commits = md.st_commits WHERE md.merge_request_id = mr.id" - execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_diffs = md.st_diffs WHERE md.merge_request_id = mr.id" - end - end -end diff --git a/db/migrate/20140125162722_add_avatar_to_projects.rb b/db/migrate/20140125162722_add_avatar_to_projects.rb deleted file mode 100644 index 888341b7535..00000000000 --- a/db/migrate/20140125162722_add_avatar_to_projects.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddAvatarToProjects < ActiveRecord::Migration - def change - add_column :projects, :avatar, :string - end -end diff --git a/db/migrate/20140127170938_add_group_avatars.rb b/db/migrate/20140127170938_add_group_avatars.rb deleted file mode 100644 index 95d1c1c6b27..00000000000 --- a/db/migrate/20140127170938_add_group_avatars.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddGroupAvatars < ActiveRecord::Migration - def change - add_column :namespaces, :avatar, :string - end -end diff --git a/db/migrate/20140209025651_create_emails.rb b/db/migrate/20140209025651_create_emails.rb deleted file mode 100644 index 51886f8fc89..00000000000 --- a/db/migrate/20140209025651_create_emails.rb +++ /dev/null @@ -1,16 +0,0 @@ -# rubocop:disable all -class CreateEmails < ActiveRecord::Migration - DOWNTIME = false - - def change - create_table :emails do |t| - t.integer :user_id, null: false - t.string :email, null: false - - t.timestamps null: true - end - - add_index :emails, :user_id - add_index :emails, :email, unique: true - end -end diff --git a/db/migrate/20140214102325_add_api_key_to_services.rb b/db/migrate/20140214102325_add_api_key_to_services.rb deleted file mode 100644 index b58c36c0a30..00000000000 --- a/db/migrate/20140214102325_add_api_key_to_services.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddApiKeyToServices < ActiveRecord::Migration - def change - add_column :services, :api_key, :string - end -end diff --git a/db/migrate/20140304005354_add_index_merge_request_diffs_on_merge_request_id.rb b/db/migrate/20140304005354_add_index_merge_request_diffs_on_merge_request_id.rb deleted file mode 100644 index aab8a41c2c3..00000000000 --- a/db/migrate/20140304005354_add_index_merge_request_diffs_on_merge_request_id.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddIndexMergeRequestDiffsOnMergeRequestId < ActiveRecord::Migration - def change - add_index :merge_request_diffs, :merge_request_id, unique: true - end -end diff --git a/db/migrate/20140305193308_add_tag_push_hooks_to_project_hook.rb b/db/migrate/20140305193308_add_tag_push_hooks_to_project_hook.rb deleted file mode 100644 index ec163bb843c..00000000000 --- a/db/migrate/20140305193308_add_tag_push_hooks_to_project_hook.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddTagPushHooksToProjectHook < ActiveRecord::Migration - def change - add_column :web_hooks, :tag_push_events, :boolean, default: false - end -end diff --git a/db/migrate/20140312145357_add_import_status_to_project.rb b/db/migrate/20140312145357_add_import_status_to_project.rb deleted file mode 100644 index 9947cd8c6f9..00000000000 --- a/db/migrate/20140312145357_add_import_status_to_project.rb +++ /dev/null @@ -1,6 +0,0 @@ -# rubocop:disable all -class AddImportStatusToProject < ActiveRecord::Migration - def change - add_column :projects, :import_status, :string - end -end diff --git a/db/migrate/20140313092127_init_schema.rb b/db/migrate/20140313092127_init_schema.rb new file mode 100644 index 00000000000..895298ed4ed --- /dev/null +++ b/db/migrate/20140313092127_init_schema.rb @@ -0,0 +1,337 @@ +class InitSchema < ActiveRecord::Migration + DOWNTIME = true + + def up + create_table "broadcast_messages", force: :cascade do |t| + t.text "message", null: false + t.datetime "starts_at" + t.datetime "ends_at" + t.integer "alert_type" + t.datetime "created_at" + t.datetime "updated_at" + t.string "color" + t.string "font" + end + create_table "deploy_keys_projects", force: :cascade do |t| + t.integer "deploy_key_id", null: false + t.integer "project_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + add_index "deploy_keys_projects", ["project_id"], name: "index_deploy_keys_projects_on_project_id", using: :btree + create_table "emails", force: :cascade do |t| + t.integer "user_id", null: false + t.string "email", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + add_index "emails", ["email"], name: "index_emails_on_email", unique: true, using: :btree + add_index "emails", ["user_id"], name: "index_emails_on_user_id", using: :btree + create_table "events", force: :cascade do |t| + t.string "target_type" + t.integer "target_id" + t.string "title" + t.text "data" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "action" + t.integer "author_id" + end + add_index "events", ["action"], name: "index_events_on_action", using: :btree + add_index "events", ["author_id"], name: "index_events_on_author_id", using: :btree + add_index "events", ["created_at"], name: "index_events_on_created_at", using: :btree + add_index "events", ["project_id"], name: "index_events_on_project_id", using: :btree + add_index "events", ["target_id"], name: "index_events_on_target_id", using: :btree + add_index "events", ["target_type"], name: "index_events_on_target_type", using: :btree + create_table "forked_project_links", force: :cascade do |t| + t.integer "forked_to_project_id", null: false + t.integer "forked_from_project_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree + create_table "issues", force: :cascade do |t| + t.string "title" + t.integer "assignee_id" + t.integer "author_id" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "position", default: 0 + t.string "branch_name" + t.text "description" + t.integer "milestone_id" + t.string "state" + t.integer "iid" + end + add_index "issues", ["assignee_id"], name: "index_issues_on_assignee_id", using: :btree + add_index "issues", ["author_id"], name: "index_issues_on_author_id", using: :btree + add_index "issues", ["created_at"], name: "index_issues_on_created_at", using: :btree + add_index "issues", ["milestone_id"], name: "index_issues_on_milestone_id", using: :btree + add_index "issues", ["project_id"], name: "index_issues_on_project_id", using: :btree + add_index "issues", ["title"], name: "index_issues_on_title", using: :btree + create_table "keys", force: :cascade do |t| + t.integer "user_id" + t.datetime "created_at" + t.datetime "updated_at" + t.text "key" + t.string "title" + t.string "type" + t.string "fingerprint" + end + add_index "keys", ["user_id"], name: "index_keys_on_user_id", using: :btree + create_table "merge_request_diffs", force: :cascade do |t| + t.string "state", default: "collected", null: false + t.text "st_commits" + t.text "st_diffs" + t.integer "merge_request_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + add_index "merge_request_diffs", ["merge_request_id"], name: "index_merge_request_diffs_on_merge_request_id", unique: true, using: :btree + create_table "merge_requests", force: :cascade do |t| + t.string "target_branch", null: false + t.string "source_branch", null: false + t.integer "source_project_id", null: false + t.integer "author_id" + t.integer "assignee_id" + t.string "title" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "milestone_id" + t.string "state" + t.string "merge_status" + t.integer "target_project_id", null: false + t.integer "iid" + t.text "description" + end + add_index "merge_requests", ["assignee_id"], name: "index_merge_requests_on_assignee_id", using: :btree + add_index "merge_requests", ["author_id"], name: "index_merge_requests_on_author_id", using: :btree + add_index "merge_requests", ["created_at"], name: "index_merge_requests_on_created_at", using: :btree + add_index "merge_requests", ["milestone_id"], name: "index_merge_requests_on_milestone_id", using: :btree + add_index "merge_requests", ["source_branch"], name: "index_merge_requests_on_source_branch", using: :btree + add_index "merge_requests", ["source_project_id"], name: "index_merge_requests_on_source_project_id", using: :btree + add_index "merge_requests", ["target_branch"], name: "index_merge_requests_on_target_branch", using: :btree + add_index "merge_requests", ["title"], name: "index_merge_requests_on_title", using: :btree + create_table "milestones", force: :cascade do |t| + t.string "title", null: false + t.integer "project_id", null: false + t.text "description" + t.date "due_date" + t.datetime "created_at" + t.datetime "updated_at" + t.string "state" + t.integer "iid" + end + add_index "milestones", ["due_date"], name: "index_milestones_on_due_date", using: :btree + add_index "milestones", ["project_id"], name: "index_milestones_on_project_id", using: :btree + create_table "namespaces", force: :cascade do |t| + t.string "name", null: false + t.string "path", null: false + t.integer "owner_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type" + t.string "description", default: "", null: false + t.string "avatar" + end + add_index "namespaces", ["name"], name: "index_namespaces_on_name", using: :btree + add_index "namespaces", ["owner_id"], name: "index_namespaces_on_owner_id", using: :btree + add_index "namespaces", ["path"], name: "index_namespaces_on_path", using: :btree + add_index "namespaces", ["type"], name: "index_namespaces_on_type", using: :btree + create_table "notes", force: :cascade do |t| + t.text "note" + t.string "noteable_type" + t.integer "author_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "project_id" + t.string "attachment" + t.string "line_code" + t.string "commit_id" + t.integer "noteable_id" + t.boolean "system", default: false, null: false + t.text "st_diff" + end + add_index "notes", ["author_id"], name: "index_notes_on_author_id", using: :btree + add_index "notes", ["commit_id"], name: "index_notes_on_commit_id", using: :btree + add_index "notes", ["created_at"], name: "index_notes_on_created_at", using: :btree + add_index "notes", ["noteable_id", "noteable_type"], name: "index_notes_on_noteable_id_and_noteable_type", using: :btree + add_index "notes", ["noteable_type"], name: "index_notes_on_noteable_type", using: :btree + add_index "notes", ["project_id", "noteable_type"], name: "index_notes_on_project_id_and_noteable_type", using: :btree + add_index "notes", ["project_id"], name: "index_notes_on_project_id", using: :btree + create_table "project_group_links", force: :cascade do |t| + t.integer "project_id", null: false + t.integer "group_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "group_access", default: 30, null: false + end + create_table "projects", force: :cascade do |t| + t.string "name" + t.string "path" + t.text "description" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "creator_id" + t.boolean "issues_enabled", default: true, null: false + t.boolean "wall_enabled", default: true, null: false + t.boolean "merge_requests_enabled", default: true, null: false + t.boolean "wiki_enabled", default: true, null: false + t.integer "namespace_id" + t.string "issues_tracker", default: "gitlab", null: false + t.string "issues_tracker_id" + t.boolean "snippets_enabled", default: true, null: false + t.datetime "last_activity_at" + t.string "import_url" + t.integer "visibility_level", default: 0, null: false + t.boolean "archived", default: false, null: false + t.string "avatar" + t.string "import_status" + end + add_index "projects", ["creator_id"], name: "index_projects_on_creator_id", using: :btree + add_index "projects", ["last_activity_at"], name: "index_projects_on_last_activity_at", using: :btree + add_index "projects", ["namespace_id"], name: "index_projects_on_namespace_id", using: :btree + create_table "protected_branches", force: :cascade do |t| + t.integer "project_id", null: false + t.string "name", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + add_index "protected_branches", ["project_id"], name: "index_protected_branches_on_project_id", using: :btree + create_table "services", force: :cascade do |t| + t.string "type" + t.string "title" + t.string "token" + t.integer "project_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "active", default: false, null: false + t.string "project_url" + t.string "subdomain" + t.string "room" + t.text "recipients" + t.string "api_key" + end + add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree + create_table "snippets", force: :cascade do |t| + t.string "title" + t.text "content" + t.integer "author_id", null: false + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "file_name" + t.datetime "expires_at" + t.boolean "private", default: true, null: false + t.string "type" + end + add_index "snippets", ["author_id"], name: "index_snippets_on_author_id", using: :btree + add_index "snippets", ["created_at"], name: "index_snippets_on_created_at", using: :btree + add_index "snippets", ["expires_at"], name: "index_snippets_on_expires_at", using: :btree + add_index "snippets", ["project_id"], name: "index_snippets_on_project_id", using: :btree + create_table "taggings", force: :cascade do |t| + t.integer "tag_id" + t.integer "taggable_id" + t.string "taggable_type" + t.integer "tagger_id" + t.string "tagger_type" + t.string "context" + t.datetime "created_at" + end + add_index "taggings", ["tag_id"], name: "index_taggings_on_tag_id", using: :btree + add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree + create_table "tags", force: :cascade do |t| + t.string "name" + end + create_table "users", force: :cascade do |t| + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "reset_password_token" + t.datetime "reset_password_sent_at" + t.datetime "remember_created_at" + t.integer "sign_in_count", default: 0 + t.datetime "current_sign_in_at" + t.datetime "last_sign_in_at" + t.string "current_sign_in_ip" + t.string "last_sign_in_ip" + t.datetime "created_at" + t.datetime "updated_at" + t.string "name" + t.boolean "admin", default: false, null: false + t.integer "projects_limit", default: 10 + t.string "skype", default: "", null: false + t.string "linkedin", default: "", null: false + t.string "twitter", default: "", null: false + t.string "authentication_token" + t.integer "theme_id", default: 1, null: false + t.string "bio" + t.integer "failed_attempts", default: 0 + t.datetime "locked_at" + t.string "extern_uid" + t.string "provider" + t.string "username" + t.boolean "can_create_group", default: true, null: false + t.boolean "can_create_team", default: true, null: false + t.string "state" + t.integer "color_scheme_id", default: 1, null: false + t.integer "notification_level", default: 1, null: false + t.datetime "password_expires_at" + t.integer "created_by_id" + t.datetime "last_credential_check_at" + t.string "avatar" + t.string "confirmation_token" + t.datetime "confirmed_at" + t.datetime "confirmation_sent_at" + t.string "unconfirmed_email" + t.boolean "hide_no_ssh_key", default: false + t.string "website_url", default: "", null: false + end + add_index "users", ["admin"], name: "index_users_on_admin", using: :btree + add_index "users", ["authentication_token"], name: "index_users_on_authentication_token", unique: true, using: :btree + add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree + add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree + add_index "users", ["extern_uid", "provider"], name: "index_users_on_extern_uid_and_provider", unique: true, using: :btree + add_index "users", ["name"], name: "index_users_on_name", using: :btree + add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree + add_index "users", ["username"], name: "index_users_on_username", using: :btree + create_table "users_groups", force: :cascade do |t| + t.integer "group_access", null: false + t.integer "group_id", null: false + t.integer "user_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "notification_level", default: 3, null: false + end + add_index "users_groups", ["user_id"], name: "index_users_groups_on_user_id", using: :btree + create_table "users_projects", force: :cascade do |t| + t.integer "user_id", null: false + t.integer "project_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "project_access", default: 0, null: false + t.integer "notification_level", default: 3, null: false + end + add_index "users_projects", ["project_access"], name: "index_users_projects_on_project_access", using: :btree + add_index "users_projects", ["project_id"], name: "index_users_projects_on_project_id", using: :btree + add_index "users_projects", ["user_id"], name: "index_users_projects_on_user_id", using: :btree + create_table "web_hooks", force: :cascade do |t| + t.string "url" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type", default: "ProjectHook" + t.integer "service_id" + t.boolean "push_events", default: true, null: false + t.boolean "issues_events", default: false, null: false + t.boolean "merge_requests_events", default: false, null: false + t.boolean "tag_push_events", default: false + end + add_index "web_hooks", ["project_id"], name: "index_web_hooks_on_project_id", using: :btree + end + + def down + raise ActiveRecord::IrreversibleMigration, "The initial migration is not revertable" + end +end diff --git a/db/migrate/20140313092127_migrate_already_imported_projects.rb b/db/migrate/20140313092127_migrate_already_imported_projects.rb deleted file mode 100644 index 0afc26b8764..00000000000 --- a/db/migrate/20140313092127_migrate_already_imported_projects.rb +++ /dev/null @@ -1,15 +0,0 @@ -# rubocop:disable all -class MigrateAlreadyImportedProjects < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - def up - execute("UPDATE projects SET import_status = 'finished' WHERE imported = #{true_value}") - execute("UPDATE projects SET import_status = 'none' WHERE imported = #{false_value}") - remove_column :projects, :imported - end - - def down - add_column :projects, :imported, :boolean, default: false - execute("UPDATE projects SET imported = #{true_value} WHERE import_status = 'finished'") - end -end diff --git a/db/migrate/20180420010016_add_pipeline_build_foreign_key.rb b/db/migrate/20180420010016_add_pipeline_build_foreign_key.rb new file mode 100644 index 00000000000..6fabe07bc9c --- /dev/null +++ b/db/migrate/20180420010016_add_pipeline_build_foreign_key.rb @@ -0,0 +1,27 @@ +class AddPipelineBuildForeignKey < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + execute <<~SQL + DELETE FROM ci_builds WHERE project_id IS NULL OR commit_id IS NULL + SQL + + execute <<~SQL + DELETE FROM ci_builds WHERE NOT EXISTS + (SELECT true FROM ci_pipelines WHERE ci_pipelines.id = ci_builds.commit_id) + AND stage_id IS NULL + SQL + + add_concurrent_foreign_key(:ci_builds, :ci_pipelines, column: :commit_id) + end + + def down + return unless foreign_key_exists?(:ci_builds, :ci_pipelines, column: :commit_id) + + remove_foreign_key(:ci_builds, column: :commit_id) + end +end 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 6fd10785d77..95adccf0d5c 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" @@ -497,7 +497,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 @@ -1529,14 +1529,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| @@ -2148,6 +2148,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 3c77e99b8cf..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 @@ -18,6 +19,7 @@ comments: false - [Code review guidelines](code_review.md) for reviewing code and having code reviewed. - [Automatic CE->EE merge](automatic_ce_ee_merge.md) - [Guidelines for implementing Enterprise Edition features](ee_features.md) +- [Security process for developers](https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#security-releases-critical-non-critical-as-a-developer) ## UX and frontend 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/ff_merge_requests.feature b/features/project/ff_merge_requests.feature deleted file mode 100644 index 39035d551d1..00000000000 --- a/features/project/ff_merge_requests.feature +++ /dev/null @@ -1,41 +0,0 @@ -Feature: Project Ff Merge Requests - Background: - Given I sign in as a user - And I own project "Shop" - And project "Shop" have "Bug NS-05" open merge request with diffs inside - And merge request "Bug NS-05" is mergeable - - @javascript - Scenario: I do ff-only merge for rebased branch - Given ff merge enabled - And merge request "Bug NS-05" is rebased - When I visit merge request page "Bug NS-05" - Then I should see ff-only merge button - When I accept this merge request - Then I should see merged request - - @javascript - Scenario: I do ff-only merge for merged branch - Given ff merge enabled - And merge request "Bug NS-05" merged target - When I visit merge request page "Bug NS-05" - Then I should see ff-only merge button - When I accept this merge request - Then I should see merged request - - @javascript - Scenario: I do rebase before ff-only merge - Given ff merge enabled - And rebase before merge enabled - When I visit merge request page "Bug NS-05" - Then I should see rebase button - When I press rebase button - Then I should see rebase in progress message - - @javascript - Scenario: I do rebase before regular merge - Given rebase before merge enabled - When I visit merge request page "Bug NS-05" - Then I should see rebase button - When I press rebase button - Then I should see rebase in progress message diff --git a/features/steps/project/ff_merge_requests.rb b/features/steps/project/ff_merge_requests.rb deleted file mode 100644 index 27efcfd65b6..00000000000 --- a/features/steps/project/ff_merge_requests.rb +++ /dev/null @@ -1,87 +0,0 @@ -class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps - include SharedAuthentication - include SharedIssuable - include SharedProject - include SharedNote - include SharedPaths - include SharedMarkdown - include SharedDiffNote - include SharedUser - include WaitForRequests - - step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do - create(:merge_request_with_diffs, - title: "Bug NS-05", - source_project: project, - target_project: project, - author: project.users.first) - end - - step 'merge request is mergeable' do - expect(page).to have_button 'Merge' - end - - step 'I should see ff-only merge button' do - expect(page).to have_content "Fast-forward merge without a merge commit" - expect(page).to have_button 'Merge' - end - - step 'merge request "Bug NS-05" is mergeable' do - merge_request.mark_as_mergeable - end - - step 'I accept this merge request' do - page.within '.mr-state-widget' do - click_button "Merge" - end - end - - step 'I should see merged request' do - page.within '.status-box' do - expect(page).to have_content "Merged" - wait_for_requests - end - end - - step 'ff merge enabled' do - project = merge_request.target_project - project.merge_requests_ff_only_enabled = true - project.save! - end - - step 'I should see rebase button' do - expect(page).to have_button "Rebase" - end - - step 'merge request "Bug NS-05" is rebased' do - merge_request.source_branch = 'flatten-dir' - merge_request.target_branch = 'improve/awesome' - merge_request.reload_diff - merge_request.save! - end - - step 'merge request "Bug NS-05" merged target' do - merge_request.source_branch = 'merged-target' - merge_request.target_branch = 'improve/awesome' - merge_request.reload_diff - merge_request.save! - end - - step 'rebase before merge enabled' do - project = merge_request.target_project - project.merge_requests_rebase_enabled = true - project.save! - end - - step 'I press rebase button' do - click_button "Rebase" - end - - step "I should see rebase in progress message" do - expect(page).to have_content("Rebase in progress") - end - - def merge_request - @merge_request ||= MergeRequest.find_by!(title: "Bug NS-05") - end -end diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb index b6c648a707d..f2769f28fed 100644 --- a/features/steps/shared/paths.rb +++ b/features/steps/shared/paths.rb @@ -336,11 +336,6 @@ module SharedPaths wait_for_requests end - step 'I visit merge request page "Bug NS-05"' do - visit merge_request_path("Bug NS-05") - wait_for_requests - end - step 'I visit merge request page "Bug NS-07"' do visit merge_request_path("Bug NS-07") wait_for_requests 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/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index bc61834ff7d..b145001a024 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -30,6 +30,7 @@ module Gitlab EMPTY_REPOSITORY_CHECKSUM = '0000000000000000000000000000000000000000'.freeze NoRepository = Class.new(StandardError) + InvalidRepository = Class.new(StandardError) InvalidBlobName = Class.new(StandardError) InvalidRef = Class.new(StandardError) GitError = Class.new(StandardError) @@ -1584,7 +1585,7 @@ module Gitlab def checksum gitaly_migrate(:calculate_checksum, - status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) do |is_enabled| + status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) do |is_enabled| if is_enabled gitaly_repository_client.calculate_checksum else @@ -2533,10 +2534,12 @@ module Gitlab output, status = run_git(args) if status.nil? || !status.zero? - # Empty repositories return with a non-zero status and an empty output. - return EMPTY_REPOSITORY_CHECKSUM if output&.empty? + # Non-valid git repositories return 128 as the status code and an error output + raise InvalidRepository if status == 128 && output.to_s.downcase =~ /not a git repository/ + # Empty repositories returns with a non-zero status and an empty output. + raise ChecksumError, output unless output.blank? - raise ChecksumError, output + return EMPTY_REPOSITORY_CHECKSUM end refs = output.split("\n") diff --git a/lib/gitlab/gitaly_client/repository_service.rb b/lib/gitlab/gitaly_client/repository_service.rb index 662b3d6cd0c..132a5947f17 100644 --- a/lib/gitlab/gitaly_client/repository_service.rb +++ b/lib/gitlab/gitaly_client/repository_service.rb @@ -292,6 +292,8 @@ module Gitlab request = Gitaly::CalculateChecksumRequest.new(repository: @gitaly_repo) response = GitalyClient.call(@storage, :repository_service, :calculate_checksum, request) response.checksum.presence + rescue GRPC::DataLoss => e + raise Gitlab::Git::Repository::InvalidRepository.new(e) end def raw_changes_between(from, to) 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/factories/merge_requests.rb b/spec/factories/merge_requests.rb index d26cb0c3417..fab0ec22450 100644 --- a/spec/factories/merge_requests.rb +++ b/spec/factories/merge_requests.rb @@ -41,6 +41,11 @@ FactoryBot.define do state :merged end + trait :merged_target do + source_branch "merged-target" + target_branch "improve/awesome" + end + trait :closed do state :closed end diff --git a/spec/features/projects/merge_requests/user_merges_merge_request_spec.rb b/spec/features/projects/merge_requests/user_merges_merge_request_spec.rb new file mode 100644 index 00000000000..6539e6e9208 --- /dev/null +++ b/spec/features/projects/merge_requests/user_merges_merge_request_spec.rb @@ -0,0 +1,43 @@ +require "spec_helper" + +describe "User merges a merge request", :js do + let(:user) { project.owner } + + before do + sign_in(user) + end + + shared_examples "fast forward merge a merge request" do + it "merges a merge request" do + expect(page).to have_content("Fast-forward merge without a merge commit").and have_button("Merge") + + page.within(".mr-state-widget") do + click_button("Merge") + end + + page.within(".status-box") do + expect(page).to have_content("Merged") + end + end + end + + context "ff-only merge" do + let(:project) { create(:project, :public, :repository, merge_requests_ff_only_enabled: true) } + + before do + visit(merge_request_path(merge_request)) + end + + context "when branch is rebased" do + let!(:merge_request) { create(:merge_request, :rebased, source_project: project) } + + it_behaves_like "fast forward merge a merge request" + end + + context "when branch is merged" do + let!(:merge_request) { create(:merge_request, :merged_target, source_project: project) } + + it_behaves_like "fast forward merge a merge request" + end + end +end diff --git a/spec/features/projects/merge_requests/user_rebases_merge_request_spec.rb b/spec/features/projects/merge_requests/user_rebases_merge_request_spec.rb new file mode 100644 index 00000000000..92e1c9942b1 --- /dev/null +++ b/spec/features/projects/merge_requests/user_rebases_merge_request_spec.rb @@ -0,0 +1,34 @@ +require "spec_helper" + +describe "User rebases a merge request", :js do + let(:merge_request) { create(:merge_request, :simple, source_project: project) } + let(:user) { project.owner } + + before do + sign_in(user) + end + + shared_examples "rebases" do + it "rebases" do + visit(merge_request_path(merge_request)) + + expect(page).to have_button("Rebase") + + click_button("Rebase") + + expect(page).to have_content("Rebase in progress") + end + end + + context "when merge is regular" do + let(:project) { create(:project, :public, :repository, merge_requests_rebase_enabled: true) } + + it_behaves_like "rebases" + end + + context "when merge is ff-only" do + let(:project) { create(:project, :public, :repository, merge_requests_ff_only_enabled: true) } + + it_behaves_like "rebases" + 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/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index 9f091975959..cce84276fe3 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -2275,7 +2275,22 @@ describe Gitlab::Git::Repository, seed_helper: true do expect(empty_repo.checksum).to eq '0000000000000000000000000000000000000000' end - it 'raises a no repository exception when there is no repo' do + it 'raises Gitlab::Git::Repository::InvalidRepository error for non-valid git repo' do + FileUtils.rm_rf(File.join(storage_path, 'non-valid.git')) + + system(git_env, *%W(#{Gitlab.config.git.bin_path} clone --bare #{TEST_REPO_PATH} non-valid.git), + chdir: SEED_STORAGE_PATH, + out: '/dev/null', + err: '/dev/null') + + File.truncate(File.join(storage_path, 'non-valid.git/HEAD'), 0) + + non_valid = described_class.new('default', 'non-valid.git', '') + + expect { non_valid.checksum }.to raise_error(Gitlab::Git::Repository::InvalidRepository) + end + + it 'raises Gitlab::Git::Repository::NoRepository error when there is no repo' do broken_repo = described_class.new('default', 'a/path.git', '') expect { broken_repo.checksum }.to raise_error(Gitlab::Git::Repository::NoRepository) 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/migrations/add_pipeline_build_foreign_key_spec.rb b/spec/migrations/add_pipeline_build_foreign_key_spec.rb new file mode 100644 index 00000000000..e9413f52f19 --- /dev/null +++ b/spec/migrations/add_pipeline_build_foreign_key_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20180420010016_add_pipeline_build_foreign_key.rb') + +describe AddPipelineBuildForeignKey, :migration do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:pipelines) { table(:ci_pipelines) } + let(:builds) { table(:ci_builds) } + + before do + namespaces.create(id: 10, name: 'gitlab-org', path: 'gitlab-org') + projects.create!(id: 11, namespace_id: 10, name: 'gitlab', path: 'gitlab') + pipelines.create!(id: 12, project_id: 11, ref: 'master', sha: 'adf43c3a') + + builds.create!(id: 101, commit_id: 12, project_id: 11) + builds.create!(id: 102, commit_id: 222, project_id: 11) + builds.create!(id: 103, commit_id: 333, project_id: 11) + builds.create!(id: 104, commit_id: 12, project_id: 11) + builds.create!(id: 106, commit_id: nil, project_id: 11) + builds.create!(id: 107, commit_id: 12, project_id: nil) + end + + it 'adds foreign key after removing orphans' do + expect(builds.all.count).to eq 6 + expect(foreign_key_exists?(:ci_builds, :ci_pipelines, column: :commit_id)).to be_falsey + + migrate! + + expect(builds.all.pluck(:id)).to eq [101, 104] + expect(foreign_key_exists?(:ci_builds, :ci_pipelines, column: :commit_id)).to be_truthy + end +end diff --git a/spec/models/ci/runner_spec.rb b/spec/models/ci/runner_spec.rb index cc4d4e5e4ae..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 @@ -198,7 +199,7 @@ describe Ci::Runner do end describe '#assign_to' do - let!(:project) { FactoryBot.create :project } + let!(:project) { FactoryBot.create(:project) } let!(:shared_runner) { FactoryBot.create(:ci_runner, :shared) } before 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/project_spec.rb b/spec/models/project_spec.rb index 41622fbbb6f..5b452f17979 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -309,12 +309,12 @@ describe Project do describe 'project token' do it 'sets an random token if none provided' do - project = FactoryBot.create :project, runners_token: '' + project = FactoryBot.create(:project, runners_token: '') expect(project.runners_token).not_to eq('') end it 'does not set an random token if one provided' do - project = FactoryBot.create :project, runners_token: 'my-token' + project = FactoryBot.create(:project, runners_token: 'my-token') expect(project.runners_token).to eq('my-token') end end @@ -639,7 +639,7 @@ describe Project do describe '#to_param' do context 'with namespace' do before do - @group = create :group, name: 'gitlab' + @group = create(:group, name: 'gitlab') @project = create(:project, name: 'gitlabhq', namespace: @group) end @@ -866,8 +866,8 @@ describe Project do describe '#star_count' do it 'counts stars from multiple users' do - user1 = create :user - user2 = create :user + user1 = create(:user) + user2 = create(:user) project = create(:project, :public) expect(project.star_count).to eq(0) @@ -889,7 +889,7 @@ describe Project do end it 'counts stars on the right project' do - user = create :user + user = create(:user) project1 = create(:project, :public) project2 = create(:project, :public) @@ -1148,9 +1148,9 @@ describe Project do describe '#any_runners?' do context 'shared runners' do - let(:project) { create :project, shared_runners_enabled: shared_runners_enabled } - let(:specific_runner) { create :ci_runner } - let(:shared_runner) { create :ci_runner, :shared } + let(:project) { create(:project, shared_runners_enabled: shared_runners_enabled) } + let(:specific_runner) { create(:ci_runner) } + let(:shared_runner) { create(:ci_runner, :shared) } context 'for shared runners disabled' do let(:shared_runners_enabled) { false } @@ -1208,9 +1208,9 @@ describe Project do end context 'group runners' do - let(:project) { create :project, group_runners_enabled: group_runners_enabled } - let(:group) { create :group, projects: [project] } - let(:group_runner) { create :ci_runner, groups: [group] } + let(:project) { create(:project, group_runners_enabled: group_runners_enabled) } + let(:group) { create(:group, projects: [project]) } + let(:group_runner) { create(:ci_runner, groups: [group]) } context 'for group runners disabled' do let(:group_runners_enabled) { false } @@ -1292,7 +1292,7 @@ describe Project do end describe '#pages_deployed?' do - let(:project) { create :project } + let(:project) { create(:project) } subject { project.pages_deployed? } @@ -1310,8 +1310,8 @@ describe Project do end describe '#pages_url' do - let(:group) { create :group, name: group_name } - let(:project) { create :project, namespace: group, name: project_name } + let(:group) { create(:group, name: group_name) } + let(:project) { create(:project, namespace: group, name: project_name) } let(:domain) { 'Example.com' } subject { project.pages_url } @@ -1337,8 +1337,8 @@ describe Project do end describe '#pages_group_url' do - let(:group) { create :group, name: group_name } - let(:project) { create :project, namespace: group, name: project_name } + let(:group) { create(:group, name: group_name) } + let(:project) { create(:project, namespace: group, name: project_name) } let(:domain) { 'Example.com' } let(:port) { 1234 } @@ -1455,8 +1455,8 @@ describe Project do let(:private_group) { create(:group, visibility_level: 0) } let(:internal_group) { create(:group, visibility_level: 10) } - let(:private_project) { create :project, :private, group: private_group } - let(:internal_project) { create :project, :internal, group: internal_group } + let(:private_project) { create(:project, :private, group: private_group) } + let(:internal_project) { create(:project, :internal, group: internal_group) } context 'when group is private project can not be internal' do it { expect(private_project.visibility_level_allowed?(Gitlab::VisibilityLevel::INTERNAL)).to be_falsey } @@ -1885,8 +1885,6 @@ describe Project do update_remote_mirrors end - # TODO: study if remote_mirror_available_overridden is still a necessary attribute considering that - # it is no longer under any license it 'does nothing when remote mirror is disabled globally and not overridden' do stub_application_setting(mirror_available: false) project.remote_mirror_available_overridden = false @@ -2452,8 +2450,8 @@ describe Project do end describe '#pages_url' do - let(:group) { create :group, name: 'Group' } - let(:nested_group) { create :group, parent: group } + let(:group) { create(:group, name: 'Group') } + let(:nested_group) { create(:group, parent: group) } let(:domain) { 'Example.com' } subject { project.pages_url } @@ -2464,7 +2462,7 @@ describe Project do end context 'top-level group' do - let(:project) { create :project, namespace: group, name: project_name } + let(:project) { create(:project, namespace: group, name: project_name) } context 'group page' do let(:project_name) { 'group.example.com' } @@ -2480,7 +2478,7 @@ describe Project do end context 'nested group' do - let(:project) { create :project, namespace: nested_group, name: project_name } + let(:project) { create(:project, namespace: nested_group, name: project_name) } let(:expected_url) { "http://group.example.com/#{nested_group.path}/#{project.path}" } context 'group page' do @@ -2498,7 +2496,7 @@ describe Project do end describe '#http_url_to_repo' do - let(:project) { create :project } + let(:project) { create(:project) } it 'returns the url to the repo without a username' do expect(project.http_url_to_repo).to eq("#{project.web_url}.git") 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/spec/support/helpers/migrations_helpers.rb b/spec/support/helpers/migrations_helpers.rb index 5d6f662e8fe..84abec75c26 100644 --- a/spec/support/helpers/migrations_helpers.rb +++ b/spec/support/helpers/migrations_helpers.rb @@ -24,6 +24,16 @@ module MigrationsHelpers end end + def foreign_key_exists?(source, target = nil, column: nil) + ActiveRecord::Base.connection.foreign_keys(source).any? do |key| + if column + key.options[:column].to_s == column.to_s + else + key.to_table.to_s == target.to_s + end + end + end + def reset_column_in_all_models clear_schema_cache! diff --git a/spec/support/services/migrate_to_ghost_user_service_shared_examples.rb b/spec/support/services/migrate_to_ghost_user_service_shared_examples.rb index adfd256dff1..1478c6b5a47 100644 --- a/spec/support/services/migrate_to_ghost_user_service_shared_examples.rb +++ b/spec/support/services/migrate_to_ghost_user_service_shared_examples.rb @@ -86,7 +86,7 @@ shared_examples "migrating a deleted user's associated records to the ghost user end it "blocks the user before #{record_class_name} migration begins" do - expect(service).to receive("migrate_#{record_class_name.parameterize('_')}s".to_sym) do + expect(service).to receive("migrate_#{record_class_name.parameterize('_').pluralize}".to_sym) do expect(user.reload).to be_blocked end 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" |