VERSION merge=ours
Dangerfile gitlab-language=ruby Dangerfile gitlab-language=ruby
db/schema.rb merge=merge_db_schema db/schema.rb merge=merge_db_schema
...@@ -12,12 +12,6 @@ variables: ...@@ -12,12 +12,6 @@ variables:
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json
BUILD_ASSETS_IMAGE: "false" BUILD_ASSETS_IMAGE: "false"
## EE specific variables ##
# This hack is needed to make ES not that memory hungry
ES_JAVA_OPTS: "-Xms256m -Xmx256m"
ELASTIC_URL: "http://elastic:changeme@docker.elastic.co-elasticsearch-elasticsearch:9200"
EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master-ee.json
before_script: before_script:
- date - date
- source scripts/utils.sh - source scripts/utils.sh
...@@ -31,7 +25,6 @@ stages: ...@@ -31,7 +25,6 @@ stages:
- build - build
- prepare - prepare
- merge - merge
- quick-test
- test - test
- review - review
- qa - qa
... ...
......
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
variables: variables:
SETUP_DB: "false" SETUP_DB: "false"
script: script:
- git fetch https://gitlab.com/gitlab-org/gitlab-ee.git v11.11.0-ee - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v11.11.0
- git checkout -f FETCH_HEAD - git checkout -f FETCH_HEAD
- sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile - sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile
- sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile - sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile
...@@ -347,188 +347,3 @@ coverage: ...@@ -347,188 +347,3 @@ coverage:
except: except:
- /(^docs[\/-].*|.*-docs$)/ - /(^docs[\/-].*|.*-docs$)/
- /(^qa[\/-].*|.*-qa$)/ - /(^qa[\/-].*|.*-qa$)/
## EE-specific content
.use-pg-with-elasticsearch: &use-pg-with-elasticsearch
services:
- name: postgres:9.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:alpine
- name: docker.elastic.co/elasticsearch/elasticsearch:5.6.12
.use-mysql-with-elasticsearch: &use-mysql-with-elasticsearch
services:
- mysql:5.7.24
- redis:alpine
- docker.elastic.co/elasticsearch/elasticsearch:5.6.12
.rspec-metadata-ee: &rspec-metadata-ee
<<: *rspec-metadata
stage: test
script:
- JOB_NAME=( $CI_JOB_NAME )
- TEST_TOOL=${JOB_NAME[0]}
- TEST_LEVEL=${JOB_NAME[1]}
- DATABASE=${JOB_NAME[2]}
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_ee_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
- export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec
- export CACHE_CLASSES=true
- cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
- scripts/gitaly-test-spawn
- date
- 'export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new(%(ee/)).pattern(:${TEST_LEVEL})")'
- knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"
- date
.rspec-metadata-pg-ee: &rspec-metadata-pg-ee
<<: *rspec-metadata-ee
<<: *use-pg-with-elasticsearch
.rspec-metadata-mysql-ee: &rspec-metadata-mysql-ee
<<: *rspec-metadata-ee
<<: *use-mysql-with-elasticsearch
rspec unit pg ee:
<<: *rspec-metadata-pg-ee
parallel: 7
rspec integration pg ee:
<<: *rspec-metadata-pg-ee
parallel: 3
rspec system pg ee:
<<: *rspec-metadata-pg-ee
parallel: 5
rspec unit mysql ee:
<<: *rspec-metadata-mysql-ee
<<: *only-schedules-master
parallel: 7
rspec integration mysql ee:
<<: *rspec-metadata-mysql-ee
<<: *only-schedules-master
parallel: 3
rspec system mysql ee:
<<: *rspec-metadata-mysql-ee
<<: *only-schedules-master
parallel: 5
rspec unit mysql ee on-demand:
<<: *rspec-metadata-mysql-ee
<<: *rspec-mysql-on-demand
parallel: 7
rspec integration mysql ee on-demand:
<<: *rspec-metadata-mysql-ee
<<: *rspec-mysql-on-demand
parallel: 3
rspec system mysql ee on-demand:
<<: *rspec-metadata-mysql-ee
<<: *rspec-mysql-on-demand
parallel: 5
.rspec-metadata-pg-geo: &rspec-metadata-pg-geo
<<: *rspec-metadata
stage: test
script:
- JOB_NAME=( $CI_JOB_NAME )
- TEST_TOOL=${JOB_NAME[0]}
- export KNAPSACK_TEST_FILE_PATTERN="ee/spec/**{,/*/**}/*_spec.rb" KNAPSACK_GENERATE_REPORT=true CACHE_CLASSES=true
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
- cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
- source scripts/prepare_postgres_fdw.sh
- scripts/gitaly-test-spawn
- knapsack rspec "-Ispec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag geo"
rspec geo pg ee:
<<: *rspec-metadata-pg-geo
<<: *use-pg
parallel: 3
except:
- /(^geo[\/-].*|.*-geo$)/
- /(^docs[\/-].*|.*-docs$)/
- /(^qa[\/-].*|.*-qa$)/
rspec geo pg-10 ee:
<<: *rspec-metadata-pg-geo
<<: *use-pg-10
parallel: 3
except:
- /(^geo[\/-].*|.*-geo$)/
- /(^docs[\/-].*|.*-docs$)/
- /(^qa[\/-].*|.*-qa$)/
quick-rspec geo pg ee:
<<: *rspec-metadata-pg-geo
<<: *use-pg
stage: quick-test
only:
- /(^geo[\/-].*|.*-geo$)/
quick-rspec geo pg-10 ee:
<<: *rspec-metadata-pg-geo
<<: *use-pg-10
stage: quick-test
only:
- /(^geo[\/-].*|.*-geo$)/
.rspec-quarantine-ee: &rspec-quarantine-ee
<<: *only-schedules-master
allow_failure: true
script:
- export NO_KNAPSACK=1 CACHE_CLASSES=true
- scripts/gitaly-test-spawn
- bin/rspec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag quarantine -- ee/spec/
rspec quarantine pg ee:
<<: *rspec-quarantine-ee
<<: *rspec-metadata-pg
rspec quarantine mysql ee:
<<: *rspec-quarantine-ee
<<: *rspec-metadata-mysql
<<: *only-schedules-master
.migration-paths-upgrade-ce-to-ee: &migration-paths-upgrade-ce-to-ee
extends: .dedicated-no-docs-and-no-qa-pull-cache-job
variables:
SETUP_DB: "false"
script:
- ruby -r./scripts/ee_specific_check/ee_specific_check -e'EESpecificCheck.fetch_remote_ce_branch'
- git checkout -f FETCH_HEAD
- . scripts/utils.sh
- . scripts/prepare_build.sh
- date
- setup_db
- date
- git checkout -f $CI_COMMIT_SHA
- date
- . scripts/prepare_build.sh
- date
- bundle exec rake db:migrate
dependencies:
- setup-test-env
migration:upgrade-pg-ce-to-ee:
<<: *migration-paths-upgrade-ce-to-ee
<<: *use-pg
only:
- /^[\d-]+-stable(-ee)?$/
migration:upgrade-mysql-ce-to-ee:
<<: *migration-paths-upgrade-ce-to-ee
<<: *use-mysql
only:
- /^[\d-]+-stable(-ee)?$/
db:rollback-pg-geo:
<<: *db-rollback
<<: *use-pg
script:
- bundle exec rake geo:db:migrate VERSION=20170627195211
- bundle exec rake geo:db:migrate
## END of EE-specific content
...@@ -25,8 +25,6 @@ retrieve-tests-metadata: ...@@ -25,8 +25,6 @@ retrieve-tests-metadata:
- mkdir -p rspec_profiling/ - mkdir -p rspec_profiling/
- wget -O $FLAKY_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$FLAKY_RSPEC_SUITE_REPORT_PATH || rm $FLAKY_RSPEC_SUITE_REPORT_PATH - wget -O $FLAKY_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$FLAKY_RSPEC_SUITE_REPORT_PATH || rm $FLAKY_RSPEC_SUITE_REPORT_PATH
- '[[ -f $FLAKY_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_SUITE_REPORT_PATH}' - '[[ -f $FLAKY_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_SUITE_REPORT_PATH}'
- wget -O $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH
- '[[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
except: except:
- /(^docs[\/-].*|.*-docs$)/ - /(^docs[\/-].*|.*-docs$)/
- /(^qa[\/-].*|.*-qa$)/ - /(^qa[\/-].*|.*-qa$)/
...@@ -44,8 +42,6 @@ update-tests-metadata: ...@@ -44,8 +42,6 @@ update-tests-metadata:
- retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document - retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document
- scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json - scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH' - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH'
- scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH'
- rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json - rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json
- scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json - scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json
- FLAKY_RSPEC_GENERATE_REPORT=1 scripts/prune-old-flaky-specs ${FLAKY_RSPEC_SUITE_REPORT_PATH} - FLAKY_RSPEC_GENERATE_REPORT=1 scripts/prune-old-flaky-specs ${FLAKY_RSPEC_SUITE_REPORT_PATH}
...@@ -84,34 +80,3 @@ flaky-examples-check: ...@@ -84,34 +80,3 @@ flaky-examples-check:
- '[[ -f $NEW_FLAKY_SPECS_REPORT ]] || echo "{}" > ${NEW_FLAKY_SPECS_REPORT}' - '[[ -f $NEW_FLAKY_SPECS_REPORT ]] || echo "{}" > ${NEW_FLAKY_SPECS_REPORT}'
- scripts/merge-reports ${NEW_FLAKY_SPECS_REPORT} rspec_flaky/new_*_*.json - scripts/merge-reports ${NEW_FLAKY_SPECS_REPORT} rspec_flaky/new_*_*.json
- scripts/detect-new-flaky-examples $NEW_FLAKY_SPECS_REPORT - scripts/detect-new-flaky-examples $NEW_FLAKY_SPECS_REPORT
## EE-specific content
.ee-specific-check: &ee-specific-check
extends: .dedicated-runner
stage: test
dependencies: []
before_script: []
cache: {}
retry: 0
only:
- branches
- branches@gitlab-org/gitlab-ee
except:
- master
- tags
- /[\d-]+-stable(-ee)?/
- /^security-/
- /\bce\-to\-ee\b/
ee-files-location-check:
<<: *ee-specific-check
script:
- scripts/ee-files-location-check
ee-specific-lines-check:
<<: *ee-specific-check
script:
- scripts/ee-specific-lines-check
# END of EE-specific content
...@@ -32,10 +32,6 @@ Add all known Documentation Requirements here, per https://docs.gitlab.com/ee/de ...@@ -32,10 +32,6 @@ Add all known Documentation Requirements here, per https://docs.gitlab.com/ee/de
<!-- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this. --> <!-- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this. -->
### What is the type of buyer?
<!-- Which leads to: in which enterprise tier should this feature go? See https://about.gitlab.com/handbook/product/pricing/#four-tiers -->
### Links / references ### Links / references
/label ~feature /label ~feature
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Hxv3MkkZbMrKtIs6np9
ccP4OwGBkNhIvhPjcQP48hbbascv5RqsOquQGrYSD2ZrE/kbkRdkIcoHEeTZLif+
bDKFZFI7o5x0H92o9/GSvxHJhQ8mkmvwxD7lssGShwZEm8WG+U7BZqUV/gGmCDqe
9W8H8Fq2B0ck8IXjbQ4Zz+JlyV/NHZTZcs69plFiLKh4N6GYVftOVwSomh0bbypP
OB9WnLC7RC9a2LRrhtf8sqa2rRFmtyMMfgFFzLMzS+w+1K4+QLnWP1gKQVzaFnzk
pnwKPrqbGFYbRztIVEWbs8jPYlLkGb8ME4C84YVtQgbQcbyisU/VW3wUGkhT+J0k
xwIDAQAB
-----END PUBLIC KEY-----
...@@ -50,9 +50,7 @@ Style/FrozenStringLiteralComment: ...@@ -50,9 +50,7 @@ Style/FrozenStringLiteralComment:
- 'config/**/*' - 'config/**/*'
- 'danger/**/*' - 'danger/**/*'
- 'db/**/*' - 'db/**/*'
- 'ee/db/**/*' - 'ee/**/*'
- 'ee/spec/**/*'
- 'ee/lib/tasks/**/*'
- 'lib/tasks/**/*' - 'lib/tasks/**/*'
- 'qa/**/*' - 'qa/**/*'
- 'rubocop/**/*' - 'rubocop/**/*'
...@@ -93,7 +91,6 @@ Naming/FileName: ...@@ -93,7 +91,6 @@ Naming/FileName:
- JSON - JSON
- LDAP - LDAP
- SAML - SAML
- SSO
- IO - IO
- HMAC - HMAC
- QA - QA
... ...
......
This diff is collapsed.
...@@ -4,11 +4,11 @@ entry. ...@@ -4,11 +4,11 @@ entry.
## 12.0.11 ## 12.0.11
- Unreleased due to build failures. - Unreleased due to build failures
## 12.0.10 ## 12.0.10
- Unreleased due to build failures. - Unreleased due to build failures
## 12.0.9 ## 12.0.9
...@@ -44,11 +44,13 @@ entry. ...@@ -44,11 +44,13 @@ entry.
- Fix weak session management by clearing password reset tokens after login (username/email) are updated. - Fix weak session management by clearing password reset tokens after login (username/email) are updated.
- Fix SSRF via DNS rebinding in Kubernetes Integration. - Fix SSRF via DNS rebinding in Kubernetes Integration.
## 12.0.7 ## 12.0.7
- Unreleased due to QA failure. - Unreleased due to QA failure.
## 12.0.6 ## 12.0.6
### Security (2 changes) ### Security (2 changes)
- Upgrade Gitaly to 1.47.2 to prevent revision flag injection exploits. - Upgrade Gitaly to 1.47.2 to prevent revision flag injection exploits.
... ...
......
## Contributor license agreement ## Developer Certificate of Origin + License
By submitting code as an individual you agree to the By contributing to GitLab B.V., You accept and agree to the following terms and
[individual contributor license agreement](doc/legal/individual_contributor_license_agreement.md). conditions for Your present and future Contributions submitted to GitLab B.V.
By submitting code as an entity you agree to the Except for the license granted herein to GitLab B.V. and recipients of software
[corporate contributor license agreement](doc/legal/corporate_contributor_license_agreement.md). distributed by GitLab B.V., You reserve all right, title, and interest in and to
Your Contributions. All Contributions are subject to the following DCO + License
terms.
[DCO + License](https://gitlab.com/gitlab-org/dco/blob/master/README.md)
All Documentation content that resides under the [doc/ directory](/doc) of this All Documentation content that resides under the [doc/ directory](/doc) of this
repository is licensed under Creative Commons: repository is licensed under Creative Commons:
... ...
......
...@@ -47,9 +47,6 @@ gem 'omniauth-salesforce', '~> 1.0.5' ...@@ -47,9 +47,6 @@ gem 'omniauth-salesforce', '~> 1.0.5'
gem 'rack-oauth2', '~> 1.9.3' gem 'rack-oauth2', '~> 1.9.3'
gem 'jwt', '~> 2.1.0' gem 'jwt', '~> 2.1.0'
# Kerberos authentication. EE-only
gem 'gssapi', group: :kerberos
# Spam and anti-bot protection # Spam and anti-bot protection
gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails' gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
gem 'akismet', '~> 2.0' gem 'akismet', '~> 2.0'
...@@ -121,13 +118,6 @@ gem 'unf', '~> 0.1.4' ...@@ -121,13 +118,6 @@ gem 'unf', '~> 0.1.4'
# Seed data # Seed data
gem 'seed-fu', '~> 2.3.7' gem 'seed-fu', '~> 2.3.7'
# Search
gem 'elasticsearch-model', '~> 0.1.9'
gem 'elasticsearch-rails', '~> 0.1.9', require: 'elasticsearch/rails/instrumentation'
gem 'elasticsearch-api', '5.0.3'
gem 'aws-sdk'
gem 'faraday_middleware-aws-signers-v4'
# Markdown and HTML processing # Markdown and HTML processing
gem 'html-pipeline', '~> 2.8' gem 'html-pipeline', '~> 2.8'
gem 'deckar01-task_list', '2.2.0' gem 'deckar01-task_list', '2.2.0'
...@@ -285,8 +275,6 @@ gem 'request_store', '~> 1.3' ...@@ -285,8 +275,6 @@ gem 'request_store', '~> 1.3'
gem 'virtus', '~> 1.0.1' gem 'virtus', '~> 1.0.1'
gem 'base32', '~> 0.3.0' gem 'base32', '~> 0.3.0'
gem "gitlab-license", "~> 1.0"
# Sentry integration # Sentry integration
gem 'sentry-raven', '~> 2.9' gem 'sentry-raven', '~> 2.9'
...@@ -312,9 +300,6 @@ gem 'peek-pg', '~> 1.3.0', group: :postgres ...@@ -312,9 +300,6 @@ gem 'peek-pg', '~> 1.3.0', group: :postgres
gem 'peek-rblineprof', '~> 0.2.0' gem 'peek-rblineprof', '~> 0.2.0'
gem 'peek-redis', '~> 1.2.0' gem 'peek-redis', '~> 1.2.0'
# Snowplow events tracking
gem 'snowplow-tracker', '~> 0.6.1'
# Metrics # Metrics
group :metrics do group :metrics do
gem 'method_source', '~> 0.8', require: false gem 'method_source', '~> 0.8', require: false
...@@ -431,9 +416,6 @@ gem 'health_check', '~> 2.6.0' ...@@ -431,9 +416,6 @@ gem 'health_check', '~> 2.6.0'
gem 'vmstat', '~> 2.3.0' gem 'vmstat', '~> 2.3.0'
gem 'sys-filesystem', '~> 1.1.6' gem 'sys-filesystem', '~> 1.1.6'
# NTP client
gem 'net-ntp'
# SSH host key support # SSH host key support
gem 'net-ssh', '~> 5.0' gem 'net-ssh', '~> 5.0'
gem 'sshkey', '~> 2.0' gem 'sshkey', '~> 2.0'
...@@ -461,6 +443,3 @@ gem 'flipper-active_support_cache_store', '~> 0.13.0' ...@@ -461,6 +443,3 @@ gem 'flipper-active_support_cache_store', '~> 0.13.0'
# Structured logging # Structured logging
gem 'lograge', '~> 0.5' gem 'lograge', '~> 0.5'
gem 'grape_logging', '~> 1.7' gem 'grape_logging', '~> 1.7'
# DNS Lookup
gem 'net-dns', '~> 0.9.0'
...@@ -77,14 +77,6 @@ GEM ...@@ -77,14 +77,6 @@ GEM
encryptor (~> 3.0.0) encryptor (~> 3.0.0)
attr_required (1.0.1) attr_required (1.0.1)
awesome_print (1.8.0) awesome_print (1.8.0)
aws-sdk (2.9.32)
aws-sdk-resources (= 2.9.32)
aws-sdk-core (2.9.32)
aws-sigv4 (~> 1.0)
jmespath (~> 1.0)
aws-sdk-resources (2.9.32)
aws-sdk-core (= 2.9.32)
aws-sigv4 (1.0.0)
axiom-types (0.1.1) axiom-types (0.1.1)
descendants_tracker (~> 0.0.4) descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0) ice_nine (~> 0.11.0)
...@@ -157,7 +149,6 @@ GEM ...@@ -157,7 +149,6 @@ GEM
concurrent-ruby-ext (1.1.5) concurrent-ruby-ext (1.1.5)
concurrent-ruby (= 1.1.5) concurrent-ruby (= 1.1.5)
connection_pool (2.2.2) connection_pool (2.2.2)
contracts (0.11.0)
crack (0.4.3) crack (0.4.3)
safe_yaml (~> 1.0.0) safe_yaml (~> 1.0.0)
crass (1.0.4) crass (1.0.4)
...@@ -208,19 +199,6 @@ GEM ...@@ -208,19 +199,6 @@ GEM
doorkeeper (~> 4.3) doorkeeper (~> 4.3)
json-jwt (~> 1.6) json-jwt (~> 1.6)
ed25519 (1.2.4) ed25519 (1.2.4)
elasticsearch (5.0.3)
elasticsearch-api (= 5.0.3)
elasticsearch-transport (= 5.0.3)
elasticsearch-api (5.0.3)
multi_json
elasticsearch-model (0.1.9)
activesupport (> 3)
elasticsearch (> 0.4)
hashie
elasticsearch-rails (0.1.9)
elasticsearch-transport (5.0.3)
faraday
multi_json
email_reply_trimmer (0.1.6) email_reply_trimmer (0.1.6)
email_spec (2.2.0) email_spec (2.2.0)
htmlentities (~> 4.3.3) htmlentities (~> 4.3.3)
...@@ -245,9 +223,6 @@ GEM ...@@ -245,9 +223,6 @@ GEM
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
faraday_middleware (0.12.2) faraday_middleware (0.12.2)
faraday (>= 0.7.4, < 1.0) faraday (>= 0.7.4, < 1.0)
faraday_middleware-aws-signers-v4 (0.1.7)
aws-sdk-resources (~> 2)
faraday (~> 0.9)
faraday_middleware-multi_json (0.0.6) faraday_middleware-multi_json (0.0.6)
faraday_middleware faraday_middleware
multi_json multi_json
...@@ -337,7 +312,6 @@ GEM ...@@ -337,7 +312,6 @@ GEM
grpc (~> 1.19.0) grpc (~> 1.19.0)
jaeger-client (~> 0.10) jaeger-client (~> 0.10)
opentracing (~> 0.4) opentracing (~> 0.4)
gitlab-license (1.0.0)
gitlab-markup (1.7.0) gitlab-markup (1.7.0)
gitlab-sidekiq-fetcher (0.5.2) gitlab-sidekiq-fetcher (0.5.2)
sidekiq (~> 5) sidekiq (~> 5)
...@@ -399,8 +373,6 @@ GEM ...@@ -399,8 +373,6 @@ GEM
grpc (1.19.0) grpc (1.19.0)
google-protobuf (~> 3.1) google-protobuf (~> 3.1)
googleapis-common-protos-types (~> 1.0.0) googleapis-common-protos-types (~> 1.0.0)
gssapi (1.2.0)
ffi (>= 1.0.1)
haml (5.0.4) haml (5.0.4)
temple (>= 0.8.0) temple (>= 0.8.0)
tilt tilt
...@@ -460,7 +432,6 @@ GEM ...@@ -460,7 +432,6 @@ GEM
activesupport activesupport
multipart-post multipart-post
oauth (~> 0.5, >= 0.5.0) oauth (~> 0.5, >= 0.5.0)
jmespath (1.3.1)
js_regex (3.1.1) js_regex (3.1.1)
character_set (~> 1.1) character_set (~> 1.1)
regexp_parser (~> 1.1) regexp_parser (~> 1.1)
...@@ -543,9 +514,7 @@ GEM ...@@ -543,9 +514,7 @@ GEM
mustermann (~> 1.0.0) mustermann (~> 1.0.0)
mysql2 (0.4.10) mysql2 (0.4.10)
nakayoshi_fork (0.0.4) nakayoshi_fork (0.0.4)
net-dns (0.9.0)
net-ldap (0.16.0) net-ldap (0.16.0)
net-ntp (2.1.3)
net-ssh (5.0.1) net-ssh (5.0.1)
netrc (0.11.0) netrc (0.11.0)
nio4r (2.3.1) nio4r (2.3.1)
...@@ -929,8 +898,6 @@ GEM ...@@ -929,8 +898,6 @@ GEM
simplecov-html (~> 0.10.0) simplecov-html (~> 0.10.0)
simplecov-html (0.10.2) simplecov-html (0.10.2)
slack-notifier (1.5.1) slack-notifier (1.5.1)
snowplow-tracker (0.6.1)
contracts (~> 0.7, <= 0.11)
spring (2.0.2) spring (2.0.2)
activesupport (>= 4.2) activesupport (>= 4.2)
spring-commands-rspec (1.0.4) spring-commands-rspec (1.0.4)
...@@ -959,7 +926,7 @@ GEM ...@@ -959,7 +926,7 @@ GEM
sys-filesystem (1.1.6) sys-filesystem (1.1.6)
ffi ffi
sysexits (1.2.0) sysexits (1.2.0)
temple (0.8.1) temple (0.8.0)
test-prof (0.2.5) test-prof (0.2.5)
text (1.3.1) text (1.3.1)
thin (1.7.2) thin (1.7.2)
...@@ -969,7 +936,7 @@ GEM ...@@ -969,7 +936,7 @@ GEM
thor (0.19.4) thor (0.19.4)
thread_safe (0.3.6) thread_safe (0.3.6)
thrift (0.11.0.0) thrift (0.11.0.0)
tilt (2.0.9) tilt (2.0.8)
timecop (0.8.1) timecop (0.8.1)
timfel-krb5-auth (0.8.3) timfel-krb5-auth (0.8.3)
toml (0.2.0) toml (0.2.0)
...@@ -1063,7 +1030,6 @@ DEPENDENCIES ...@@ -1063,7 +1030,6 @@ DEPENDENCIES
asciidoctor-plantuml (= 0.0.8) asciidoctor-plantuml (= 0.0.8)
attr_encrypted (~> 3.1.0) attr_encrypted (~> 3.1.0)
awesome_print awesome_print
aws-sdk
babosa (~> 1.0.2) babosa (~> 1.0.2)
base32 (~> 0.3.0) base32 (~> 0.3.0)
batch-loader (~> 1.4.0) batch-loader (~> 1.4.0)
...@@ -1099,15 +1065,11 @@ DEPENDENCIES ...@@ -1099,15 +1065,11 @@ DEPENDENCIES
doorkeeper (~> 4.3) doorkeeper (~> 4.3)
doorkeeper-openid_connect (~> 1.5) doorkeeper-openid_connect (~> 1.5)
ed25519 (~> 1.2) ed25519 (~> 1.2)
elasticsearch-api (= 5.0.3)
elasticsearch-model (~> 0.1.9)
elasticsearch-rails (~> 0.1.9)
email_reply_trimmer (~> 0.1) email_reply_trimmer (~> 0.1)
email_spec (~> 2.2.0) email_spec (~> 2.2.0)
escape_utils (~> 1.1) escape_utils (~> 1.1)
factory_bot_rails (~> 4.8.2) factory_bot_rails (~> 4.8.2)
faraday (~> 0.12) faraday (~> 0.12)
faraday_middleware-aws-signers-v4
fast_blank fast_blank
ffaker (~> 2.10) ffaker (~> 2.10)
flipper (~> 0.13.0) flipper (~> 0.13.0)
...@@ -1133,7 +1095,6 @@ DEPENDENCIES ...@@ -1133,7 +1095,6 @@ DEPENDENCIES
github-markup (~> 1.7.0) github-markup (~> 1.7.0)
gitlab-default_value_for (~> 3.1.1) gitlab-default_value_for (~> 3.1.1)
gitlab-labkit (~> 0.3.0) gitlab-labkit (~> 0.3.0)
gitlab-license (~> 1.0)
gitlab-markup (~> 1.7.0) gitlab-markup (~> 1.7.0)
gitlab-sidekiq-fetcher (= 0.5.2) gitlab-sidekiq-fetcher (= 0.5.2)
gitlab-styles (~> 2.7) gitlab-styles (~> 2.7)
...@@ -1149,7 +1110,6 @@ DEPENDENCIES ...@@ -1149,7 +1110,6 @@ DEPENDENCIES
graphiql-rails (~> 1.4.10) graphiql-rails (~> 1.4.10)
graphql (~> 1.8.0) graphql (~> 1.8.0)
grpc (~> 1.19.0) grpc (~> 1.19.0)
gssapi
haml_lint (~> 0.31.0) haml_lint (~> 0.31.0)
hamlit (~> 2.8.8) hamlit (~> 2.8.8)
hangouts-chat (~> 0.0.5) hangouts-chat (~> 0.0.5)
...@@ -1181,9 +1141,7 @@ DEPENDENCIES ...@@ -1181,9 +1141,7 @@ DEPENDENCIES
minitest (~> 5.11.0) minitest (~> 5.11.0)
mysql2 (~> 0.4.10) mysql2 (~> 0.4.10)
nakayoshi_fork (~> 0.0.4) nakayoshi_fork (~> 0.0.4)
net-dns (~> 0.9.0)
net-ldap net-ldap
net-ntp
net-ssh (~> 5.0) net-ssh (~> 5.0)
nokogiri (~> 1.10.3) nokogiri (~> 1.10.3)
oauth2 (~> 1.4) oauth2 (~> 1.4)
...@@ -1272,7 +1230,6 @@ DEPENDENCIES ...@@ -1272,7 +1230,6 @@ DEPENDENCIES
simple_po_parser (~> 1.1.2) simple_po_parser (~> 1.1.2)
simplecov (~> 0.16.1) simplecov (~> 0.16.1)
slack-notifier (~> 1.5.1) slack-notifier (~> 1.5.1)
snowplow-tracker (~> 0.6.1)
spring (~> 2.0.0) spring (~> 2.0.0)
spring-commands-rspec (~> 1.0.4) spring-commands-rspec (~> 1.0.4)
sprockets (~> 3.7.0) sprockets (~> 3.7.0)
... ...
......
The GitLab Enterprise Edition (EE) license (the “EE License”) Copyright GitLab B.V.
Copyright (c) 2011-present GitLab B.V.
With regard to the GitLab Software: Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
This software and associated documentation files (the "Software") may only be The above copyright notice and this permission notice shall be included in all
used in production, if you (and any entity that you represent) have agreed to, copies or substantial portions of the Software.
and are in compliance with, the GitLab Subscription Terms of Service, available
at https://about.gitlab.com/terms/#subscription (the “EE Terms”), or other
agreement governing the use of the Software, as agreed by you and GitLab,
and otherwise have a valid GitLab Enterprise Edition subscription for the
correct number of user seats. Subject to the foregoing sentence, you are free to
modify this Software and publish patches to the Software. You agree that GitLab
and/or its licensors (as applicable) retain all right, title and interest in and
to all such modifications and/or patches, and all such modifications and/or
patches may only be used, copied, modified, displayed, distributed, or otherwise
exploited with a valid GitLab Enterprise Edition subscription for the correct
number of user seats. Notwithstanding the foregoing, you may copy and modify
the Software for development and testing purposes, without requiring a
subscription. You agree that GitLab and/or its licensors (as applicable) retain
all right, title and interest in and to all such modifications. You are not
granted any other rights beyond what is expressly stated herein. Subject to the
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
and/or sell the Software.
This EE License applies only to the part of this Software that is not
distributed as part of GitLab Community Edition (CE), and that is not a file
that produces client-side JavaScript, in whole or in part. Any part of this
Software distributed as part of GitLab CE or that is a file that produces
client-side JavaScript, in whole or in part, is copyrighted under the MIT Expat
license. The full text of this EE License shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
...@@ -38,7 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ...@@ -38,7 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
For all third party components incorporated into the GitLab Software, those
components are licensed under the original license provided by the owner of the
applicable component.
This document is intended to communicate the product philosophy GitLab uses in creating GitLab Enterprise Edition. The principles can be found in the [Product Section of the GitLab Handbook](https://about.gitlab.com/handbook/product/#product-at-gitlab). This document is intended to communicate the product philosophy GitLab uses in creating GitLab Community Edition. The principles can be found in the [Product Section of the GitLab Handbook](https://about.gitlab.com/handbook/product/#product-at-gitlab).
\ No newline at end of file
...@@ -84,14 +84,6 @@ star, smile, etc.). Some good tips about code reviews can be found in our ...@@ -84,14 +84,6 @@ star, smile, etc.). Some good tips about code reviews can be found in our
[Code Review Guidelines]: https://docs.gitlab.com/ce/development/code_review.html [Code Review Guidelines]: https://docs.gitlab.com/ce/development/code_review.html
## Feature proposals from the 22nd to the 1st
To allow the Product and Engineering teams time to discuss issues that will be placed into an upcoming milestone,
Product Managers must have their proposal for that milestone ready by the 22nd of each month.
This proposal will be shared with Engineering for discussion, feedback, and planning.
The plan for the upcoming milestone must be finalized by the 1st of the month, one week before kickoff on the 8th.
## Feature freeze on the 7th for the release on the 22nd ## Feature freeze on the 7th for the release on the 22nd
The feature freeze on the 7th has been discontinued. The [transition period overview](https://gitlab.com/gitlab-org/release/docs/blob/21cbd409dd5f157fe252f254f3e897f01908abe2/general/deploy/auto-deploy-transition.md#transition) The feature freeze on the 7th has been discontinued. The [transition period overview](https://gitlab.com/gitlab-org/release/docs/blob/21cbd409dd5f157fe252f254f3e897f01908abe2/general/deploy/auto-deploy-transition.md#transition)
... ...
......
...@@ -2,43 +2,13 @@ ...@@ -2,43 +2,13 @@
## Test coverage ## Test coverage
- [![Ruby coverage](https://gitlab.com/gitlab-org/gitlab-ee/badges/master/coverage.svg?job=coverage)](https://gitlab-org.gitlab.io/gitlab-ee/coverage-ruby) Ruby - [![Ruby coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby) Ruby
- [![JavaScript coverage](https://gitlab.com/gitlab-org/gitlab-ee/badges/master/coverage.svg?job=karma)](https://gitlab-org.gitlab.io/gitlab-ee/coverage-javascript) JavaScript - [![JavaScript coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=karma)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-javascript) JavaScript
## Canonical source ## Canonical source
The canonical source of GitLab Community Edition is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/). The canonical source of GitLab Community Edition is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/).
The source of GitLab Enterprise Edition is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ee).
# ![logo](https://about.gitlab.com/images/logo.png) GitLab
## Free trial
You can request a free trial of GitLab Ultimate [on our website](https://about.gitlab.com/free-trial/).
## Subscriber onboarding information
Thank you for purchasing a GitLab subscription!
For standard subscribers, please see **emergency contact info and other useful information** in [the Standard subscribers README](https://gitlab.com/standard/standard-subscriber-information/tree/master#README).
GitLab Enterprise Edition repository:
https://gitlab.com/gitlab-org/gitlab-ee
Download GitLab Enterprise Edition:
https://about.gitlab.com/downloads-ee
Documentation:
http://doc.gitlab.com/ee/
To upgrade from CE, just perform a normal upgrade, but use an EE package:
https://about.gitlab.com/upgrade/
If you need help with your GitLab installation and for any technical questions please see the [support page](https://about.gitlab.com/support/)
For all other questions, please see our [contact page](https://about.gitlab.com/contact/)
## Open source software to collaborate on code ## Open source software to collaborate on code
To see how GitLab looks please see the [features page on our website](https://about.gitlab.com/features/). To see how GitLab looks please see the [features page on our website](https://about.gitlab.com/features/).
...@@ -136,7 +106,7 @@ For upgrading information please see our [update page](https://about.gitlab.com/ ...@@ -136,7 +106,7 @@ For upgrading information please see our [update page](https://about.gitlab.com/
## Documentation ## Documentation
All documentation can be found on [doc.gitlab.com/ee/](http://doc.gitlab.com/ee/). All documentation can be found on [docs.gitlab.com/ce/](https://docs.gitlab.com/ce/).
## Getting help ## Getting help
... ...
......
12.0.9-ee 12.0.9
...@@ -2,23 +2,26 @@ import $ from 'jquery'; ...@@ -2,23 +2,26 @@ import $ from 'jquery';
import Vue from 'vue'; import Vue from 'vue';
import Flash from '~/flash'; import Flash from '~/flash';
import { s__, __ } from '~/locale'; import { __ } from '~/locale';
import './models/label'; import './models/label';
import './models/assignee'; import './models/assignee';
import FilteredSearchBoards from './filtered_search_boards'; import FilteredSearchBoards from './filtered_search_boards';
import eventHub from './eventhub'; import eventHub from './eventhub';
import sidebarEventHub from '~/sidebar/event_hub'; import sidebarEventHub from '~/sidebar/event_hub';
import './models/issue';
import './models/list';
import './models/milestone'; import './models/milestone';
import './models/project'; import './models/project';
import boardsStore from './stores/boards_store'; import boardsStore from './stores/boards_store';
import ModalStore from './stores/modal_store'; import ModalStore from './stores/modal_store';
import BoardService from './services/board_service';
import modalMixin from './mixins/modal_mixins'; import modalMixin from './mixins/modal_mixins';
import './filters/due_date_filters'; import './filters/due_date_filters';
import Board from 'ee/boards/components/board'; import Board from './components/board';
import BoardSidebar from 'ee/boards/components/board_sidebar'; import BoardSidebar from './components/board_sidebar';
import initNewListDropdown from './components/new_list_dropdown'; import initNewListDropdown from './components/new_list_dropdown';
import BoardAddIssuesModal from 'ee/boards/components/modal/index'; import BoardAddIssuesModal from './components/modal/index.vue';
import '~/vue_shared/vue_resource_interceptor'; import '~/vue_shared/vue_resource_interceptor';
import { import {
NavigationType, NavigationType,
...@@ -26,20 +29,10 @@ import { ...@@ -26,20 +29,10 @@ import {
parseBoolean, parseBoolean,
} from '~/lib/utils/common_utils'; } from '~/lib/utils/common_utils';
import 'ee/boards/models/list';
import 'ee/boards/models/issue';
import 'ee/boards/models/project';
import BoardService from 'ee/boards/services/board_service';
import BoardsSelector from 'ee/boards/components/boards_selector.vue';
import collapseIcon from 'ee/boards/icons/fullscreen_collapse.svg';
import expandIcon from 'ee/boards/icons/fullscreen_expand.svg';
import tooltip from '~/vue_shared/directives/tooltip';
let issueBoardsApp; let issueBoardsApp;
export default () => { export default () => {
const $boardApp = document.getElementById('board-app'); const $boardApp = document.getElementById('board-app');
const issueBoardsContent = document.querySelector('.content-wrapper > .js-focus-mode-board');
// check for browser back and trigger a hard reload to circumvent browser caching. // check for browser back and trigger a hard reload to circumvent browser caching.
window.addEventListener('pageshow', event => { window.addEventListener('pageshow', event => {
...@@ -131,7 +124,6 @@ export default () => { ...@@ -131,7 +124,6 @@ export default () => {
}); });
boardsStore.addBlankState(); boardsStore.addBlankState();
boardsStore.addPromotionState();
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
...@@ -146,8 +138,6 @@ export default () => { ...@@ -146,8 +138,6 @@ export default () => {
const { sidebarInfoEndpoint } = newIssue; const { sidebarInfoEndpoint } = newIssue;
if (sidebarInfoEndpoint && newIssue.subscribed === undefined) { if (sidebarInfoEndpoint && newIssue.subscribed === undefined) {
newIssue.setFetchingState('subscriptions', true); newIssue.setFetchingState('subscriptions', true);
newIssue.setFetchingState('weight', true);
newIssue.setFetchingState('epic', true);
BoardService.getIssueInfo(sidebarInfoEndpoint) BoardService.getIssueInfo(sidebarInfoEndpoint)
.then(res => res.data) .then(res => res.data)
.then(data => { .then(data => {
...@@ -162,8 +152,6 @@ export default () => { ...@@ -162,8 +152,6 @@ export default () => {
} = convertObjectPropsToCamelCase(data); } = convertObjectPropsToCamelCase(data);
newIssue.setFetchingState('subscriptions', false); newIssue.setFetchingState('subscriptions', false);
newIssue.setFetchingState('weight', false);
newIssue.setFetchingState('epic', false);
newIssue.updateData({ newIssue.updateData({
humanTimeSpent: humanTotalTimeSpent, humanTimeSpent: humanTotalTimeSpent,
timeSpent: totalTimeSpent, timeSpent: totalTimeSpent,
...@@ -176,7 +164,6 @@ export default () => { ...@@ -176,7 +164,6 @@ export default () => {
}) })
.catch(() => { .catch(() => {
newIssue.setFetchingState('subscriptions', false); newIssue.setFetchingState('subscriptions', false);
newIssue.setFetchingState('weight', false);
Flash(__('An error occurred while fetching sidebar data')); Flash(__('An error occurred while fetching sidebar data'));
}); });
} }
...@@ -211,56 +198,12 @@ export default () => { ...@@ -211,56 +198,12 @@ export default () => {
el: document.getElementById('js-add-list'), el: document.getElementById('js-add-list'),
data: { data: {
filters: boardsStore.state.filters, filters: boardsStore.state.filters,
milestoneTitle: $boardApp.dataset.boardMilestoneTitle,
}, },
mounted() { mounted() {
initNewListDropdown(); initNewListDropdown();
}, },
}); });
const configEl = document.querySelector('.js-board-config');
if (configEl) {
gl.boardConfigToggle = new Vue({
el: configEl,
directives: {
tooltip,
},
data() {
return {
canAdminList: this.$options.el.hasAttribute('data-can-admin-list'),
hasScope: this.$options.el.hasAttribute('data-has-scope'),
state: boardsStore.state,
};
},
computed: {
buttonText() {
return this.canAdminList ? s__('Boards|Edit board') : s__('Boards|View scope');
},
tooltipTitle() {
return this.hasScope ? __("This board's scope is reduced") : '';
},
},
methods: {
showPage: page => boardsStore.showPage(page),
},
template: `
<div class="prepend-left-10">
<button
v-tooltip
:title="tooltipTitle"
class="btn btn-inverted"
:class="{ 'dot-highlight': hasScope }"
type="button"
@click.prevent="showPage('edit')"
>
{{ buttonText }}
</button>
</div>
`,
});
}
const issueBoardsModal = document.getElementById('js-add-issues-btn'); const issueBoardsModal = document.getElementById('js-add-issues-btn');
if (issueBoardsModal) { if (issueBoardsModal) {
...@@ -272,8 +215,6 @@ export default () => { ...@@ -272,8 +215,6 @@ export default () => {
return { return {
modal: ModalStore.store, modal: ModalStore.store,
store: boardsStore.state, store: boardsStore.state,
isFullscreen: false,
focusModeAvailable: $boardApp.hasAttribute('data-focus-mode-available'),
canAdminList: this.$options.el.hasAttribute('data-can-admin-list'), canAdminList: this.$options.el.hasAttribute('data-can-admin-list'),
}; };
}, },
...@@ -336,78 +277,4 @@ export default () => { ...@@ -336,78 +277,4 @@ export default () => {
`, `,
}); });
} }
// eslint-disable-next-line no-new
new Vue({
el: document.getElementById('js-toggle-focus-btn'),
data: {
modal: ModalStore.store,
store: boardsStore.state,
isFullscreen: false,
focusModeAvailable: $boardApp.hasAttribute('data-focus-mode-available'),
},
methods: {
toggleFocusMode() {
if (!this.focusModeAvailable) {
return;
}
$(this.$refs.toggleFocusModeButton).tooltip('hide');
issueBoardsContent.classList.toggle('is-focused');
this.isFullscreen = !this.isFullscreen;
},
},
template: `
<div class="board-extra-actions">
<a
href="#"
class="btn btn-default has-tooltip prepend-left-10 js-focus-mode-btn"
role="button"
aria-label="Toggle focus mode"
title="Toggle focus mode"
ref="toggleFocusModeButton"
v-if="focusModeAvailable"
@click="toggleFocusMode">
<span v-show="isFullscreen">
${collapseIcon}
</span>
<span v-show="!isFullscreen">
${expandIcon}
</span>
</a>
</div>
`,
});
const boardsSwitcherElement = document.getElementById('js-multiple-boards-switcher');
// eslint-disable-next-line no-new
new Vue({
el: boardsSwitcherElement,
components: {
BoardsSelector,
},
data() {
const { dataset } = boardsSwitcherElement;
const boardsSelectorProps = {
...dataset,
currentBoard: JSON.parse(dataset.currentBoard),
hasMissingBoards: parseBoolean(dataset.hasMissingBoards),
canAdminBoard: parseBoolean(dataset.canAdminBoard),
multipleIssueBoardsAvailable: parseBoolean(dataset.multipleIssueBoardsAvailable),
projectId: Number(dataset.projectId),
groupId: Number(dataset.groupId),
scopedIssueBoardFeatureEnabled: parseBoolean(dataset.scopedIssueBoardFeatureEnabled),
weights: JSON.parse(dataset.weights),
};
return { boardsSelectorProps };
},
render(createElement) {
return createElement(BoardsSelector, {
props: this.boardsSelectorProps,
});
},
});
}; };
/* global DocumentTouch */ /* global DocumentTouch */
import $ from 'jquery'; import $ from 'jquery';
import sortableConfig from 'ee/sortable/sortable_config'; import sortableConfig from '../../sortable/sortable_config';
export function sortableStart() { export function sortableStart() {
$('.has-tooltip') $('.has-tooltip')
... ...
......
...@@ -52,7 +52,7 @@ class List { ...@@ -52,7 +52,7 @@ class List {
} else if (obj.user) { } else if (obj.user) {
this.assignee = new ListAssignee(obj.user); this.assignee = new ListAssignee(obj.user);
this.title = this.assignee.name; this.title = this.assignee.name;
} else if (obj.milestone) { } else if (isEE && obj.milestone) {
this.milestone = new ListMilestone(obj.milestone); this.milestone = new ListMilestone(obj.milestone);
this.title = this.milestone.title; this.title = this.milestone.title;
} }
... ...
......