diff --git a/.gitattributes b/.gitattributes index 7282c9e61b1..0b87a97df9c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ +VERSION merge=ours Dangerfile gitlab-language=ruby db/schema.rb merge=merge_db_schema diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3b6beb1068..0d573a4c214 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,4 +42,3 @@ include: - local: .gitlab/ci/setup.gitlab-ci.yml - local: .gitlab/ci/test-metadata.gitlab-ci.yml - local: .gitlab/ci/yaml.gitlab-ci.yml - - local: .gitlab/ci/ee-specific-checks.gitlab-ci.yml diff --git a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml b/.gitlab/ci/ee-specific-checks.gitlab-ci.yml deleted file mode 100644 index babb89b4606..00000000000 --- a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml +++ /dev/null @@ -1,22 +0,0 @@ -.ee-specific-check: - extends: .default-tags - dependencies: [] - only: - - branches@gitlab-org/gitlab-ee - except: - - master - - tags - - /[\d-]+-stable(-ee)?/ - - /[\d-]+-auto-deploy-\d{7}/ - - /^security-/ - - /\bce\-to\-ee\b/ - -ee-files-location-check: - extends: .ee-specific-check - script: - - scripts/ee-files-location-check - -ee-specific-lines-check: - extends: .ee-specific-check - script: - - scripts/ee-specific-lines-check diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 878be25c39b..a1ed0b102c9 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -8,6 +8,11 @@ - master@gitlab/gitlabhq - master@gitlab/gitlab-ee +.only-gitlab-ee: + only: + - branches@gitlab-org/gitlab-ee + - tags@gitlab-org/gitlab-ee + .rake-exec: extends: - .default-tags @@ -231,7 +236,7 @@ db:migrate-from-v11.11.0: variables: SETUP_DB: "false" script: - - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v11.11.0 + - git fetch https://gitlab.com/gitlab-org/gitlab-ee.git v11.11.0-ee - git checkout -f FETCH_HEAD - sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile - sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile @@ -314,3 +319,135 @@ coverage: - coverage/index.html - coverage/assets/ - tmp/memory_test/ + +## EE-specific content +.rspec-base-ee: + extends: + - .rspec-base + - .only-gitlab-ee + 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})")' + - mkdir -p tmp/memory_test + - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv" + - knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo" + - date + +.rspec-base-pg-ee: + extends: .rspec-base-ee + 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 + +rspec unit pg ee: + extends: .rspec-base-pg-ee + parallel: 7 + +rspec integration pg ee: + extends: .rspec-base-pg-ee + parallel: 3 + +rspec system pg ee: + extends: .rspec-base-pg-ee + parallel: 5 + +.rspec-base-pg-geo: + extends: + - .rspec-base + - .only-gitlab-ee + script: + - JOB_NAME=( $CI_JOB_NAME ) + - TEST_TOOL=${JOB_NAME[0]} + - TEST_LEVEL=${JOB_NAME[1]} + - DATABASE=${JOB_NAME[2]} + - 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 + - mkdir -p tmp/memory_test + - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv" + - knapsack rspec "-Ispec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag geo" + +rspec geo pg ee: + extends: + - .rspec-base-pg-geo + - .use-pg + - .except-docs-qa-geo + parallel: 3 + +rspec geo pg-10 ee: + extends: + - .rspec-base-pg-geo + - .use-pg-10 + - .except-docs-qa-geo + parallel: 3 + +quick-rspec geo pg ee: + extends: + - .rspec-base-pg-geo + - .use-pg + stage: quick-test + only: + - /(^geo[\/-].*|.*-geo$)/ + +quick-rspec geo pg-10 ee: + extends: + - .rspec-base-pg-geo + - .use-pg-10 + stage: quick-test + only: + - /(^geo[\/-].*|.*-geo$)/ + +rspec quarantine pg ee: + extends: rspec quarantine pg + 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/ + +migration:upgrade-pg-ce-to-ee: + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + dependencies: ["setup-test-env"] + 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 + +db:rollback geo: + extends: + - db:rollback + - .only-gitlab-ee + script: + - bundle exec rake geo:db:migrate VERSION=20170627195211 + - bundle exec rake geo:db:migrate + +## END of EE-specific content diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index b9dac64957e..a04f67e4c43 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -26,6 +26,8 @@ retrieve-tests-metadata: - 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 - '[[ -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}' update-tests-metadata: extends: .tests-metadata-state @@ -41,6 +43,9 @@ update-tests-metadata: - echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} - 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' + - echo "{}" > ${EE_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 - 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} diff --git a/.gitlab/issue_templates/Feature proposal.md b/.gitlab/issue_templates/Feature proposal.md index 68f60cb52d4..2d6d03c313c 100644 --- a/.gitlab/issue_templates/Feature proposal.md +++ b/.gitlab/issue_templates/Feature proposal.md @@ -43,6 +43,10 @@ If this feature requires changing permissions, this document https://docs.gitlab +### What is the type of buyer? + + + ### Links / references /label ~feature diff --git a/.license_encryption_key.pub b/.license_encryption_key.pub new file mode 100644 index 00000000000..68f241b9741 --- /dev/null +++ b/.license_encryption_key.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Hxv3MkkZbMrKtIs6np9 +ccP4OwGBkNhIvhPjcQP48hbbascv5RqsOquQGrYSD2ZrE/kbkRdkIcoHEeTZLif+ +bDKFZFI7o5x0H92o9/GSvxHJhQ8mkmvwxD7lssGShwZEm8WG+U7BZqUV/gGmCDqe +9W8H8Fq2B0ck8IXjbQ4Zz+JlyV/NHZTZcs69plFiLKh4N6GYVftOVwSomh0bbypP +OB9WnLC7RC9a2LRrhtf8sqa2rRFmtyMMfgFFzLMzS+w+1K4+QLnWP1gKQVzaFnzk +pnwKPrqbGFYbRztIVEWbs8jPYlLkGb8ME4C84YVtQgbQcbyisU/VW3wUGkhT+J0k +xwIDAQAB +-----END PUBLIC KEY----- diff --git a/.rubocop.yml b/.rubocop.yml index 73743ebf9a2..693ee0ae847 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -275,8 +275,15 @@ RSpec/BeSuccessMatcher: - 'ee/spec/support/shared_examples/controllers/**/*' - 'spec/support/controllers/**/*' - 'ee/spec/support/controllers/**/*' + Scalability/FileUploads: Enabled: true Include: - 'lib/api/**/*.rb' - 'ee/lib/api/**/*.rb' + +Graphql/Descriptions: + Enabled: true + Include: + - 'app/graphql/**/*' + - 'ee/app/graphql/**/*' diff --git a/CHANGELOG-EE.md b/CHANGELOG-EE.md new file mode 100644 index 00000000000..544033aea1e --- /dev/null +++ b/CHANGELOG-EE.md @@ -0,0 +1,5092 @@ +Please view this file on the master branch, on stable branches it's out of date. + +## 12.2.5 + +### Security (1 change) + +- Do not allow creation of projects from group templates if project is not descendant of that group. + + +## 12.2.4 + +### Fixed (1 change) + +- Fix group hooks not firing in PostReceive. !15598 + + +## 12.2.3 + +### Security (2 changes) + +- Limit number of jobs in running pipelines for the past hour on per plan basis. !1182 +- Filter out old system notes for epics in notes api endpoint response. + + +## 12.2.2 + +### Security (2 changes) + +- Limit number of jobs in running pipelines for the past hour on per plan basis. !1182 +- Filter out old system notes for epics in notes api endpoint response. + + +## 12.2.1 + +- No changes. + +## 12.2.0 + +### Security (5 changes) + +- Gate MR head_pipeline behind read_pipeline ability. +- Queries for Upload should be scoped by model. +- Grant admin note permissions in epics for maintainers and owners. +- Fix bypass email verification when SCIM user is created via API. +- Do not allow localhost urls in GitHub Integration. + +### Removed (1 change) + +- Removes support for matching on app label for Kubernetes deploy boards, terminals, and pod logs. !14020 + +### Fixed (67 changes, 2 of them are from the community) + +- Fix error when creating issues in scoped boards. !11080 +- Resolve Snowplow tracking for notes does not work in Firefox. !12578 +- Fix License App user count for ultimate. !14055 +- Enable incremental elasticsearch index updates for wikis. !14057 +- Ensure U2F javascript runs on GroupSAML callback. !14262 +- Fix to allow adding multiple instance-level clusters. !14270 +- Initialize chart data in same order as config. !14283 +- Make side-nav expanded when on dependency list. !14314 +- Add anchor to learn-more-button on the dependency list page so it links to the right location in the docs. !14316 +- Un-block UI interactions while Code Quality MR widget is loading. !14323 +- Enforce SSO on subgroups and projects. !14364 +- Fix race condition on merge train that it cannot process merge request sometimes. !14386 +- Fix MWPS/ADMTWPS system notes shows wrong sha. !14397 +- Show position of merge trains in system notes. !14398 +- Respect limited indexing when importing projects. !14413 +- replace dropdown in project cards in Operations Dashboards with a remove icon. !14419 +- Allow blank values for IP restriction setting. !14427 +- Fix weight quick action to support 0 value. !14432 +- Fix cluster health charts on instance level. !14440 +- Fix on_environment scope to not re-order whole query. !14481 +- Tick instance runner after customer purchases additional CI minutes. !14494 +- Fix race condition of `refs/merge` competing overwrite. !14495 +- Fix 'learn more'-link on dependency page. !14496 +- Allow subgroups to use their parent group's custom project templates. !14499 +- Support creating/publishing drafts with commit ID. !14520 +- Do not include milestone attribute when promoting issue to epic. !14532 +- Include Subgroups in Contribution Analytics calcualtions. !14536 +- Fix GeoNode#name backward compatibility. !14564 +- Starting a new discussion only on line without Draft note created on it. !14569 +- Fix reply to discussion on promoted epic. !14576 +- Fix UI breaking on forms on Bootstrap Grid system. !14581 (Takuya Noguchi) +- Geo - Show why node is unhealthy in the rake task to check the health of the secondary node. !14615 +- Fix displaying feature flag names in the audit log. !14621 +- Support emails as ID in SCIM. !14625 +- Fix negative values in burndown charts. !14632 +- Fixes #12780 by avoiding incorrect cached values. !14651 +- Avoid Design Management thumbnails from being distorted/stretched. !14670 +- Support 0 weight in issue sidebar. !14683 +- Adds a downard chevron to Dashboards icon in the header. !14711 +- Handling use case for repeat trial. !14714 +- Fix suggested namespace in deploy boards help text. !14739 +- Fix duplicated issues while sorting by weight. !14750 (Vasiliy Yaklushin) +- Resolve Make sure not to redirect to the onboarding welcome page on mobile devices. !14842 +- Fix Jira DVCS integration not working when project name has dots. !14855 +- Fix the Epics filter bar alignment. !14857 +- Fix max attachment size used in CSV export email messages. !14884 +- Fix issue that caused the "Merge Immediately" option not to be available when merge trains were enabled. !14894 +- Fix error fetching project security dashboard data for maintainers with access to a project but not to its group & fix routing error for project security dashboard for projects not in a group. !14896 +- fix: operation dashboard delete icon tooltip title. !14899 +- Improve help text and docs about custom metrics. !14912 +- Geo - Disable built-in Sidekiq retry for verification workers. !14946 +- Remove visual review app feature flag. !14958 +- Geo - Warn when reusing an existing tracking database. !14981 +- Fix min approvals required for new MR rules. !14988 +- Fix admin notes internationalization text. !15001 +- Batching minutes reset queries to avoid query timeouts. !15002 +- Only show a pull mirror if mirroring is actually enabled. !15049 +- Update epic dates when creating an issue that adds the epic using commands. !15062 +- Show correct historic max user count for a license. !15107 +- Fix job scheduling when extra CI minutes purchased and minutes usage is above application shared Runners minutes limit. !15120 +- Skip ES commit results for deleted projects. !15236 +- Align "New metric" page title correctly to the rest of the page. !15259 +- Bypass push rules for merge to ref service. +- Ensure LDAP Group Sync by Filter normalizes DNs. +- Add support for partial approval in chat message merge request event handler. +- Insights: Only display page config with valid values. +- Shrink empty/loading states for cluster health charts. + +### Changed (33 changes, 2 of them are from the community) + +- Update merge requests section description text on project settings page. !11098 +- First pass at auto remediation changes. !12010 +- Create incident issues by default for alerts. !12814 +- Resolve Move approval user password input from inline to a modal. !14123 +- Add Copy to Clipboard Button to Review App Modal. !14290 +- Remove "Allow merge trains" option from project settings page. !14429 +- Change epics reordering to not update timestamps. !14441 +- Remove feature flag behind MR's multiple assignees. !14506 +- Prioritize mirrors for CI over other mirrors. !14575 +- Move external authorization service API management to EE. !14598 +- Improve default title and description of issues opened from managed Prometheus alerts. !14614 +- Add 'Security & Compliance' as top-level navigation item to the project-sidebar. !14628 +- Add "Security" as nav-item to group-view sidebar. !14639 +- MVC: Group and User Billing Page Improvement - Avatar and Name. !14660 (Ammar Alakkad) +- Geo: Increase HTTP read timeout of proxy requests to 60 s. !14671 +- Show threshold in incident title for gitlab alerts. !14688 +- Expose licence management reports comparison. !14723 +- Move metrics alerts form to modal. !14760 +- Add new documentation and link for automating Visual Review feedback. !14789 +- Expose licence management report for pipeline. !14796 +- Present container scanning report comparison via API. !14898 +- Allow approvals_required to be lower than project. !14902 +- Rename snowplow_collector_uri to snowplow_collector_hostname. !14963 +- Remove duplicated 'New metric' button in prometheus configuration. !14964 +- Remove validation of MR level approval rules in merge requests. !14968 +- Add missing merge request committer approval setting to API. !15019 (jramsay) +- Move dependency scanning comparision logic to backend. !15023 +- Update permissions for Dependency List. !15044 +- Dependency List Job Failed Alert - Hide link to job if payload from API does not include 'job_path'. !15068 +- Use vulnerability message on Dependency list. !15125 +- Rename License Management to License Compliance. !15163 +- Elasticsearch: index snippet content only up to 1 MB. !15215 +- Add note count, updated timestamp, and closed tag to epics list view. + +### Performance (9 changes) + +- Remove support for checking legacy security reports. !14291 +- Cache Geo checks for a certain time period instead of per request. !14513 +- Cache vulnerability history per project. !14619 +- Fix N+1 queries in vulnerabilities API. !14638 +- Improve Elasticsearch database import by retrying only failed cases first. !14657 +- Refactor feature flag scopes for_unleash_client. !14768 +- Split MR widget into cached and non-cached serializers. !15045 +- Geo: Don't wait when exiting the log cursor. !15070 +- Geo: Improve performance of clean up worker for selective sync. + +### Added (60 changes, 1 of them is from the community) + +- Enabled setting the Security Dashboard as a default view for groups. !7889 +- Paginate license management. !10983 +- Allows any user to comment on a dismissed vulnerability. !12067 +- Enable security gates for merge requests. !13109 +- Enable deployment boards and pod logs for instance and group clusters. !13307 +- Support for blocking merge requests. !13506 +- Add the ability to publish and install NPM packages from groups and subgroups. !13986 +- Expose saml_provider_id in the users API. !14045 +- Allow adding groups to CODEOWNERS file. !14071 +- Add group packages page. !14089 +- Add merge train helper text to merge request widget. !14097 +- Support remapping of Git repos via SSH with project aliases. !14108 +- Allow bulk editing group issues. !14141 +- Expose reject_unsigned_commits option via the API. !14165 +- Add instance level analytics. !14173 +- Show design boards at previous versions. !14292 +- Build cascading train refs for parallel execution of Pipelines for merge trains. !14296 +- Add notifications for CI Minutes quota limit approaching. !14328 +- Require session with smartcard login for Git access. !14368 +- Add analytics top navigation link. !14377 +- Add Quick Actions for adding/removing epic parent relations. !14451 +- Geo: Validate file transfers (attachments, LFS objects, artifacts). !14477 +- Create system notes for scoped labels. !14487 +- Show deploy boards for group cluster deployments. !14504 +- Support feature flag gradualRolloutUserId strategy on backend. !14515 +- Add percentage rollout support to feature flag UI. !14538 +- Added new Design Management feature for GitLab Premium. With Design Management, you can upload design assets to issues and view them all together to easily share and collaborate with your team. !14582 +- Add Ability to Enable Feature Flags by User ID. !14596 +- Add ability to view different design versions. !14601 +- Allow bulk editing group merge request milestones. !14616 +- Add cycle analytics on group level. !14627 +- Resolve Add point of interest discussions to designs. !14648 +- Limit creation of the Alert Bot in usage ping. !14649 +- Audit strategies for feature flag scopes. !14652 +- Read and write User Admin notes via API. !14662 +- Add date range dropdown for Analytics. !14681 +- Allow auditors to see the group and project security dashboards. !14695 +- Add `Incident` label to issues created by the Alert Bot. !14705 +- Merge vulnerabilities data into Dependency List report. !14706 +- Support an alert template field to allow for incident customization. !14710 +- Add a rake task to run a LDAP group sync. !14735 (Harish Ramachandran and Cindy Pallares) +- Log impersonation actions in audit log. !14740 +- Support feature flag userWithId strategy on backend. !14752 +- Add vulnerabilities to dependency list. !14761 +- Add project download & project export audit events. !14775 +- Count design usage, in order to meet SMAU OKR. !14779 +- Support multiple sites in DAST reports. !14787 +- Allow adding email domain to group to limit users to ones with email in this particular domain. !14800 +- Allow global search on comments. !14818 +- Add filtering by vulnerabilities to Dependency List. !14825 +- Support for bulk editing labels at a group level. !14827 +- Add an Upgrade button to Group's billings page. !14849 +- Add authorization to the dependency list. !14867 +- Add cycle analytics on a group level - FE. !14891 +- Add Dependency Scanning information to the Dependency List. !14955 +- Tweak Geo node form text. !14957 +- Geo: Make Object Storage synchronization in Geo Nodes configurable via Admin UI. !15000 +- Enable security report approvals by default. !15087 +- Add Collapse buttons to Operations settings. !15117 +- Geo: Support replication for Docker container registries. !15135 + +### Other (19 changes, 2 of them are from the community) + +- Update License Management section information under CI/CD settings. !4295 +- Adds a popover to vulnerability-check approvals. !14038 +- Show warning for deploy boards if legacy app label is used. !14103 +- Change spelling of wildcare to wildcard on feature flag new and edit forms. !14171 +- Rename `TOKEN_TYPES` to `USER_TOKEN_TYPES`. !14209 (Arun Kumar Mohan) +- Improved dependency proxy page with some small UI enhancements. !14448 +- Replace 'JIRA' with 'Jira' for EE-specific code comments. !14479 (Takuya Noguchi) +- Remove unused EE::GitPushService. !14483 +- Improved project level navigation for package features. !14492 +- Add Ability to Remove Projects From the Envivonment Dashboard. !14563 +- Increase rate at which UpdateAllMirrorsWorker schedules jobs and reschedules itself. !14573 +- Cleaned up package list icons to improve consistency inside package section. !14607 +- Limit width for onboarding popovers. !14641 +- Updates the security dashboard documentation link. !14669 +- Add counter columns to geo_node_statuses database table. !14943 +- Geo - Rename recheck actions to reverify. !14979 +- Remove deprecated name sast_container from licensed features. !14980 +- Remove default relative_position from epic_issues. !15008 +- Fix alignment of activity dropdown in epic tabs; add counter to discussion tab. + + +## 12.1.5 + +- No changes. + +## 12.1.4 + +### Fixed (3 changes) + +- Don't send CI usage email notifications when quota is unlimited. !14810 +- Fix variable mismatch in code quality widget. !14829 +- Change package validation scope to fix Maven package naming functionality. !14922 + + +## 12.1.3 + +### Fixed (3 changes) + +- Allow bulk editing group issues for reporter access level and higher. !14744 +- Initialize Application Table on Instance-wide Cluster Details. !14749 +- Hide "Buy additional minutes" button for self-managed installs. !14826 + +### Added (4 changes) + +- Add Vulnerabilities API scoping: pipeline. !14376 +- Add policy for accessing dependencies. !14561 +- Add filtering by package manager for dependencies. !14562 +- Add dependency list public endpoint. !14612 + + +## 12.1.2 + +### Security (1 change) + +- Ensure the Insights configuration project is part of the group and is accessible to the current user. + +### Security (6 changes) + +- Don't override approval rules if not allowed. +- Grant admin note permissions in epics for maintainers and owners. +- Queries for Upload should be scoped by model. +- Fix bypass email verification when SCIM user is created via API. +- Prevent an XSS vector in the add approver email. +- Make vulnerability feedback invisible if limited access to repo. + + +## 12.1.1 + +### Fixed (1 change) + +- Don't send CI usage email notifications for self-hosted instances. !14809 + + +## 12.0.7 + +### Security (3 changes) + +- Limit number of jobs in running pipelines for the past hour on per plan basis. !1182 +- Queries for Upload should be scoped by model. +- Filter out old system notes for epics in notes api endpoint response. + + +## 12.0.6 + +- No changes. + +## 12.0.2 (2019-06-25) + +### Fixed (1 change) + +- Take into account events created before milestone start. !14184 + + +## 12.0.1 (2019-06-24) + +- No changes. + +## 12.0.0 (2019-06-22) + +### Security (2 changes) + +- Filter relative links in wiki for XSS. +- Fix XSS in Ancestor tooltip title. + +### Removed (2 changes) + +- Remove old approver system in favor of new approval rule system. !12436 +- Geo: Remove deprecated wikis_count and repositories_count fields from the public API. !13025 + +### Fixed (36 changes, 1 of them is from the community) + +- Group SAML identities cleaned up when leaving a group. !5817 +- Make root relative URLs clickable in vulnerability modal. !9767 +- Make burndown chart timezone aware. !10328 +- Prevent files paths from overflowing in vulnerability info modal. !10606 +- Fixed a bug where removing related issues could get stuck. !12316 +- Fix anchor link in UI. !12737 +- Add feature flag to group_scim javascript. !13078 +- Geo - Enable Cron job to perform repository checks on a Geo secondary node. !13103 +- Restrict child_epic and remove_child_epic quick actions when using mysql. !13152 +- Disable licenses_app feature flag by default. !13291 +- Fix security dashboard errors on IE11. !13319 +- Respect limited indexing settings in rake tasks. !13437 +- Geo - Does not redirect user to the custom home page URL on a Geo secondary. !13447 +- Use quarantine size to check push size against repository size limit. !13460 +- Fix SSO Enforcement when used with 2FA. !13473 +- Fix Git over HTTP when using SAML SSO Enforcement. !13485 +- Only use elasticsearch when it is enabled. !13495 +- Add referenced-commands in no overflow list. !13550 +- Hide action buttons while security dashboard is loading. !13576 +- Fix alignment of label for admin notes on admin. !13592 (Takuya Noguchi) +- Use elasticsearch go indexer for wikis. !13743 +- Handle case where site property is an array in DAST report. !13775 +- Fix dast report parsing regression caused by change in zaproxy. !13789 +- Fix port validation in .gitlab-webide.yml. !13846 +- Fix "rule_type does not exist" error during consume_remaining_migrate_approver_to_approval_rules_in_batch_jobs migration. !13947 +- Hide operations nav icon for small screens. !13960 +- Remove free user info from non-ultimate license. !14010 +- Use fallback approval rule if no eligible rules exist. !14042 +- Fix 'Group > Usage Quota' menu item. !14043 +- Fix incorrect epic ancestor links. !14092 +- Show Usage Quotas regardless of namespace subscription. !14135 +- Fix calculation of used extra CI minutes. !14217 +- Remove class hiding spinner in board switcher. +- Fix broken filter by approvers. +- Remove extra spaces in MR list view approval counts. +- Remove extra border on tracing empty state page. + +### Changed (18 changes) + +- Allow merge requests to be merged even when it does not have up-to-date pipeline when merge request pipeline is enabled. !12309 +- Migrate code_owners to rule_type enum on approval_merge_request_rules. !13036 +- Avoid failing pull mirroring if LFS import fails. !13133 +- Updates Pipeline Quota page to accomodate for Storage Quotas. !13139 +- Align group and project level security dashboard UX. !13180 +- Remove shared_runner_minutes_on_root_namespace feature flag. !13208 +- Enable dependency proxy per group by default. !13574 +- Move dependencies API endpoint to "security" namespace. !13897 +- Allow developers to configure dependency proxy. !13899 +- Use real data in `:project/security/dependencies` endpoint. !13906 +- Use bulk-indexing API for project associations. !13917 +- Update response schema for DependencyList endpoint and add status. !13918 +- Geo - Make foreign data wrapper a hard requirement. !13940 +- Polish SAML SSO configuration page. !13982 +- Make Insights Generally Available. !14067 +- Automatically index wikis in elasticsearch. !14095 +- Require Hashed Storage to be enabled to create new Geo Nodes. !14102 +- Changes to default insights charts. + +### Performance (7 changes) + +- Omit page counts in admin audit logs. !1306 +- Improve scheduling of mirror updates to reduce frequency of database queries. !11217 +- Limit count to improve query performance. !12231 +- Avoid loading database objects for Elasticsearch results. !12691 +- Avoid hitting Elasticsearch more than once on search. !13120 +- Add index to count pending mirror updates. !13901 +- Performance improvement when loading epics list. !13904 + +### Added (34 changes, 1 of them is from the community) + +- Provide application-wide LDAP membership lock setting. !4354 +- Added a "Require user password to approve" option on projects for merge request approvals to enable compliance in FDA regulated fields". !10364 (James Davila, Paul Knopf, Greg Smethells) +- Add "Allow merge trains" option to project settings page. !10803 +- Add optional reason when dismissing vulnerabilities. !11226 +- System notes for adding and removing epic relationships. !11416 +- Show if user is using a license seat on admin user page. !11449 +- Allow merge requests to block other MRs from being merged. !11600 +- SSO enforement redirects to group sign in when not using SAML. !12246 +- When a merge request is blocked by other unmerged merge requests, display them on the show page of a merge request. !12357 +- Group SAML can be used to sign into a GitLab instance. !12660 +- IP address restriction for groups. !12669 +- Make the number of Elasticsearch shards and replicas configurable. !12713 +- Add quick actions for adding and removing child epic relations to epic. !12772 +- Adds a confidence filter to the Group Security Dashboard. !12805 +- Expose Design blobs through GraphQL. !13037 +- Expand pipeline variables passed downstream. !13197 +- Add support for querying epics with GraphQL. !13248 +- Add Merge Train auto merge strategy. !13278 +- Adds Storage Counter. !13294 +- Allow design blobs to be stored in Git LFS. !13389 +- JIT users provisioning for group SAML. !13552 +- Add Ability for Maintainers to Rotate Instance Id in Feature Flags. !13722 +- Notify users when their CI minutes quota has run out. !13735 +- Use Flipper as an A/B testing framework. !13755 +- [New Auto Merge Strategy] Add To Merge Train When Pipeline Succeeds. !13767 +- Add `dependency_list` report. !13900 +- Add admin form to enforce a pipeline on an instance. !13923 +- Count usage of DependencyList endpoint. !13962 +- Add preliminary Dependency List frontend implementation. !13968 +- Add Admin settings to disable project deletion. !14002 +- Usage ping: Track amount of incident issues. !14013 +- Sync file changes from Web IDE to Web Terminal. !14035 +- Add report_approver to approval_merge_request_rules. !14050 +- Add merge train position message under pipeline in merge request widget. !14064 + +### Other (9 changes, 2 of them are from the community) + +- New user flow for SSOing into a GitLab.com group. !10338 +- Improve vulnerability API. !12760 (Robert Schilling) +- Add action popover component for user onboarding. !13346 +- Add help content popover component for user onboarding. !13363 +- Expose services in the web ide terminal entity. !13665 +- Rename boards spec name. !13725 (George Tsiolis) +- Fix typos in i18n strings for onboarding tour. !14153 +- Externalize strings of chat page in user profile. !28632 +- Remove commit count from storage quotass. + + +## 11.11.8 + +- No changes. + +## 11.11.7 + +### Security (5 changes) + +- Don't override approval rules if not allowed. +- Grant admin note permissions in epics for maintainers and owners. +- Prevent an XSS vector in the add approver email. +- Ensure the Insights configuration project is part of the group and is accessible to the current user. +- Make vulnerability feedback invisible if limited access to repo. + + +## 11.11.4 (2019-06-26) + +### Fixed (1 change) + +- Use quarantine size to check push size against repository size limit. !14269 + + +## 11.11.3 (2019-06-10) + +### Fixed (1 change) + +- Fix create mr from vuln modal regression. !13524 + + +## 11.11.2 (2019-06-04) + +### Performance (1 change) + +- Geo - Does not apply selective sync restrictions while counting registries on the tracking database. !13257 + + +## 11.11.0 (2019-05-22) + +### Security (1 change) + +- Destroy project remote pull mirrors instead of disabling. !10355 + +### Fixed (26 changes) + +- Add missing endpoint for user information to GitHub API. !10482 +- Remove slack slash commands double up. !10555 +- Display Scoped Labels on Issue Board. !10669 +- Ensure custom group template feature is available only for groups on gold and silver. !10678 +- Fix removing and updating insights config, and foreign key constraints. !11030 +- Geo: Fix broken button to delete orphaned upload registries through Admin. !11156 +- Resolve: Epic labels in system notes point to the epic itself. !11234 +- Geo: Fix: Project sync failures usually double-increment *_retry_count. !11381 +- Fix unauthenticated GET of public Epics API. !11485 +- Hide ScopedBadge overflow notes. !11548 +- Fixes a CI failure in jest. !11586 +- Fix error when reordering/deleting subgroup epics. !11837 +- Fix some filter bar tokens not showing up when multiple assignees are enabled. !11939 +- Geo: Fix OAuth authentication with relative URLs. !11976 +- Fix for not being able to remove the last namespace/project from elasticsearch limited namespaces/projects. !11989 +- Fix approvals project settings section when merge requests disabled. !12070 +- Enable alert bot to use quick actions. !12127 +- Geo: Remove counts over geo_event_log table. !12146 +- Geo: Prevent RegistryFinder calls on the primary. !12183 +- Fix placement of LDAP icon in members list. !12304 +- Use path instead of a URL for accessing approval settings. !12414 +- Remove non-semantic use of `.row` in member listing controls. !12466 +- Force tag overwrite on mirror update. !12491 +- Fixes the feedback paths on the project security dashboard. !12849 +- Fixed starting a review on images. +- Fix updating board attributes through API. + +### Changed (13 changes) + +- Group SAML enforcement requires active SSO session for group access. !10034 +- Geo: Rename "Disable" to "Pause|Resume" (Admin > Geo Nodes). !10297 +- Upgrade group security dashboard to use gitlab-ui line chart. !10479 +- Geo - Implement selective sync support for the LFS objects FDW queries. !10757 +- Documentation : Improve selective sync documentation. !11072 +- Geo: Implement selective sync support for the FDW queries to count the number of attachments to sync. !11107 +- Allowing Elasticsearch indexing gap recovering. !11408 +- Geo - Implement selective sync support for the FDW queries to count attachments. !11518 +- Geo - Implement selective sync support for the FDW queries to find attachments. !11544 +- Geo - Add selective sync support for the job artifacts FDW queries. !11892 +- Fetch all available groups when creating MR approval rule. !12096 +- SSO enforcement requires active SAML session for web access to project resources. !12109 +- Perform LDAP group sync on sign in only for new users. + +### Performance (3 changes) + +- Swap conditions to reduce frequency of database query. !11217 +- Add index for mirror_user_id to projects table. !11422 +- Geo - Improve performance of the selective sync cleanup worker. !11998 + +### Added (27 changes, 2 of them are from the community) + +- Proxy websocket requests to build services. !9723 +- Add dependency proxy for containers. !9750 +- Added gitlab:elastic:projects_not_indexed rake task. !9854 (Jason Colyer) +- Added Snowplow tracking to notes. !10104 +- Support multiple assignees for merge requests. !10161 +- Add UI to enable/disable a dependency proxy on a group level. !10386 +- Let the GitLab Alert bot open incident issues. !10460 +- Remove feature flag `:incident_management`. !10569 +- Allow multiple secondary nodes behind a load balancer. !10755 +- Copy LFS objects from pull mirror. !10779 +- Geo: Inform users about current replication lag in the UI on secondaries. !10807 +- Autosave description in epics. !10844 +- Keep track of packages_file in ProjectStatistics. !11020 +- Adds a dismissal item to the vulnerability modal. !11028 +- Add project level config for merge train. !11065 +- Support pie charts in Insights. !11186 +- Create ActiveRecordModel and table for Merge Train feature. !11204 +- Allow adding GitLab license at installation time. !11244 +- Added ZAP Full Scan support for DAST. !11269 +- Add created_at and updated_at filters to Epics API. !11315 (jramsay) +- Add API to retrieve security vulnerabilities. !11539 +- Basic Rails implementation for BOM. !11613 +- Add Frontend Store and UI For Environments Dashboard MVC. !11702 +- Track clicks on uninstall button for kubernetes implementation. !12048 +- Add Vulnerabilities API scoping: severity, confidence, and dismissal. !12076 +- Alert users that protected environments affects feature flags. !12168 +- Support creating a new child epic from the API. + +### Other (8 changes, 1 of them is from the community) + +- Improve project settings page layout and UX. !10388 +- Uses the more explicit vulnerability feedback endpoints on the front end. !10461 +- Automatically enable multiple MR assignees feature flag. !10558 +- Move geo_log_cursor binary to the ee folder. !10821 +- Move sidekiq-cluster to ee/bin. !11001 +- Move ee-specific code from boards/components/issue_card_inner.vue. !11032 (Roman Rodionov) +- Make all billing cards fit in view. !11602 +- Extracted EE specific lines for spec/javascripts/vue_mr_widget/mock_data.js. !11847 + + +## 11.10.8 (2019-06-27) + +- No changes. +### Security (2 changes) + +- Gate MR head_pipeline behind read_pipeline ability. +- Do not allow localhost urls in GitHub Integration. + + +## 11.10.7 (2019-06-26) + +### Fixed (1 change) + +- Use quarantine size to check push size against repository size limit. !14271 + + +## 11.10.6 (2019-06-04) + +### Fixed (5 changes, 1 of them is from the community) + +- Fix removing and updating insights config, and foreign key constraints. !11030 +- Fix the group's epic page. The Paste issue link placeholder shown as 'undefinedundefinedundefined' in Chinese environment. And the error message showed nothing. !11312 (wdmcheng) +- Fix approvals project settings section when merge requests disabled. !12070 +- Use path instead of a URL for accessing approval settings. !12414 +- Fix relative url root issues with license management. !12488 + + +## 11.10.4 (2019-05-01) + +### Fixed (1 change, 1 of them is from the community) + +- Fix error retrieving licenses when relative URL in use. !11717 (Hiroyuki Sato) + +### Changed (1 change) + +- [Insights] Change the default weeks period limit to 12. !11498 + + +## 11.10.3 (2019-04-30) + +- No changes. + +## 11.10.2 (2019-04-25) + +### Security (1 change) + +- Handle race condition when creating an MR approval. + + +## 11.10.1 (2019-04-23) + +### Fixed (4 changes) + +- Fix approval rules when used with relative url root. !10819 +- Fix add/remove pipeline dashboard issue. !11029 +- Fix JWT token check when repository does not exist. !11033 +- Fix preventing approval of merge requests by an author. !11263 + +### Changed (2 changes) + +- Improve SAML settings with validation, design, and help text. !10450 +- Use a single color for the Insights time series bar charts. !11076 + + +## 11.10.0 (2019-04-22) + +### Security (3 changes) + +- Check label_ids parent when updating issue board. +- Geo - Improve security while redirecting user back to the secondary after a logout & re-login via the primary. +- Expose only basic group attributes in boards API. + +### Fixed (25 changes) + +- User Statistics in Admin Dashboard now a button. !8807 +- Fix misalignment of dropdowns in edit board modal of issue boards. !9909 +- Geo: Support archive recovery or streaming replication types in health check. !9935 +- Geo: Only display Geo-specific clone instructions button on a Geo Secondary node. !10007 +- Resolve Deletion of vulnerability-associated issuables prevents security report from loading. !10016 +- Elasticsearch API: Fix project_id showing as 0 for all blobs. A reindex will be required. !10020 +- Make editing the filters in the Group Security Dashboard easier. !10138 +- Geo - Reset the verification checksum after deployment refs are created. !10160 +- Search snippets via elasticsearch. !10325 +- Fixed bug preventing users from adding child epics with multiple children. !10331 +- Fix merge requests being added to Jira Development Panel. !10342 +- Fix authors of merge commits being excluded from approving an MR. !10359 +- Fix ChatOps Slack responder for gitlab.com. !10416 +- Fix sorting by priority with filtering by approvers. !10446 +- Make UpdateRepositoryStorageService idempotent. !10457 +- Fix broken links to protected environments on the CI/CD settings page. !10470 +- Notify owner that group is invalid when LDAP "Sync now" fails. !10509 +- Fix user agent string for Hosted Jira. !10545 +- Fix query used to calculate number of users over license. !10556 +- Fix pipeline bridge serialization error. !10565 +- Correct path to cluster health partial. !10638 +- Ensure Insights charts show all periods even if there are no data. !10733 +- Hide scoped labels help text without corresponding license. !10737 +- Fix merge request operation failure (e.g. assigning user) when project approvers required increases. !10766 +- Include subgroups when finding Insights issuables. !10801 + +### Changed (27 changes) + +- Move project search bar into modal dialog on Operations Dashboard page. !9260 +- Geo - Add selective sync support for the FDW queries to count synced registries. !9445 +- Geo - Add selective sync support for the FDW queries to count failed registries. !9527 +- Convert enable group authentication checkbox to toggle button. !9816 +- Geo: Limit max backoff time by 1 hour, instead of 7 days. !9893 +- Documented Guide to using Geo in HA with RDS cross-region replicas. !9985 +- Dynamically resize security group dashboard vuln graph. !10028 +- Add self approval of merge requests setting to merge requests approvals API. !10050 +- elasticsearch: Switch from LZ4 to DEFLATE compression. !10072 +- Geo - Store the invalid checksum when we have a mismatch. !10101 +- Add requested resources to cluster health metrics. !10135 +- Allow self-approvals in fallback approval rules. !10218 +- Geo - Add selective sync support for FDW queries to find verified registries. !10255 +- Add file line number to vuln modal. !10265 +- Geo - Add selective sync support for FDW queries to find registries where verification has failed. !10266 +- Enforce Geo JWT tokens scope for repository sync. !10303 +- Display link to review note in text email, similar to HTML email. !10401 +- Geo - Add selective sync support for the FDW queries to find mismatch registries. !10434 +- Geo - Add selective sync support for queries to find registries retrying verification. !10436 +- Geo - Add selective sync support for the FDW queries to find registries to verify. !10438 +- Improve DAST location fingerprints. !10487 +- Change order in dast location fingerprint. !10487 +- Geo: Add selective sync support for the FDW queries to find unsynced projects. !10522 +- Enrich container scanning with more data on the frontend. !10526 +- [Geo] Don't mark sync as successful if repo does not exist because of some problems. !10578 +- Move operations dashboard from Ultimate to Premium. !10586 +- Support multiple chart per page for Insights. + +### Performance (3 changes) + +- Avoid a Gitaly N+1 when loading commits for Elasticsearch search results. !9760 +- Geo: Optimize repository and wiki verification counts. !9939 +- Avoid N+1 when loading Code search results with Elasticsearch enabled. !10394 + +### Added (31 changes, 1 of them is from the community) + +- Add approval and unapproval webhooks. !8742 +- Adding pipelines to the operations dashboard. !9197 +- Add operations dashboard usage counts to usage data. !9291 +- Automatically deprovision and update users from a configured identity via SCIM. !9388 +- Add SCIM Token section to SAML SSO Settings. !9619 +- Use merge request MERGE ref for attached merge request pipelines. !9622 +- Geo: Support syncing over non-publicly accessible URLs. !9634 +- Prevent merge if the merge request pipeline is stale. !9643 +- Block possibility to change email for users with group managed account. !9712 +- Geo admin panel for upload verification. !9720 +- Geo: Create separate models for different registries. !9755 +- Add ability to purchase extra CI minutes. !9815 +- Update Web IDE config to accept ports. !9818 +- Allow per-project and per-group enabling of Elasticsearch indexing. !9861 +- Geo: Help admins diagnose configuration problems. !9988 +- Added MAVEN_CLI_OPTS env var support to License Management CI job. !10012 +- Show DAST vulnerabilities in the Group Security Dashboard. !10271 +- Show DAST in Group Security Dashboard Back-End. !10277 +- Removing pipeline dashboard feature flag. !10302 +- Update user name upon LDAP sync. !10316 (@icode1) +- Collect usage of pod logs feature. !10370 +- Added metrics reports widget to merge request page. !10380 +- IP whitelisting for Geo-enabling functionality in the primary. !10383 +- Persist in the URL the page and day range of vulnerabilities viewed in the Group Security Dashboard. !10402 +- Add 'Metrics' job artifact report type. !10452 +- Create a user via SCIM. !10456 +- Geo: Display secondary replication lag on console (if lag > 0 seconds). !10471 +- Add Roadmap to Epic page. !10488 +- Expose merge request pipeline parameters for MR widget. !10502 +- Allow instance admins to link all projects to Jira DVCS. !10541 +- Added mutually exclusive key value labels. + +### Other (4 changes) + +- Simplify admin instance licenses page. !9785 +- Extract EE specific files and externalize strings in admin application settings. !9930 +- Add specs for coerced labels parameter in Epics API. !9932 +- Improve project service desk settings. !10381 + + +## 11.9.12 (2019-05-30) + +### Security (3 changes, 1 of them is from the community) + +- Filter relative links in wiki for XSS. (kerrizor) +- Fix XSS in Ancestor tooltip title. +- Ignore out of range epic IDs. + + +## 11.9.10 (2019-04-26) + +### Security (1 change) + +- Handle race condition when creating an MR approval. + +### Fixed (1 change, 1 of them is from the community) + +- Fix the group's epic page. The Paste issue link placeholder shown as 'undefinedundefinedundefined' in Chinese environment. And the error message showed nothing. !11312 (wdmcheng) + + +## 11.9.9 (2019-04-23) + +### Fixed (1 change) + +- Fix approval rules when used with relative url root. !10819 + + +## 11.9.8 (2019-04-11) + +### Fixed (1 change) + +- Fix sorting by priority with filtering by approvers. !10446 + + +## 11.9.7 (2019-04-09) + +### Security (1 change) + +- Expose only basic group attributes in boards API. + + +## 11.9.6 (2019-04-04) + +### Fixed (3 changes) + +- Fix project approval rule with only private group being considered as approved when override is allowed. !10356 +- Fix approval rule sourcing from forked MR. !10474 +- Guard against ldap_sync_last_sync_at being nil. !10505 + +### Added (1 change) + +- Add Insights frontend to retrieve and render chart. !9856 + + +## 11.9.5 (2019-04-03) + +### Fixed (3 changes) + +- Fix project approval rule with only private group being considered as approved when override is allowed. !10356 +- Fix approval rule sourcing from forked MR. !10474 +- Guard against ldap_sync_last_sync_at being nil. !10505 + +### Added (1 change) + +- Add Insights frontend to retrieve and render chart. !9856 + + +## 11.9.3 (2019-03-27) + +### Security (1 change) + +- Check label_ids parent when updating issue board. + + +## 11.9.2 (2019-03-26) + +### Security (2 changes) + +- Geo - Improve security while redirecting user back to the secondary after a logout & re-login via the primary. +- Check label_ids parent when updating issue board. + + +## 11.9.1 (2019-03-25) + +### Fixed (1 change) + +- Fix date save for Epic to reflect on UI immediately after save. !10321 + + +## 11.9.0 (2019-03-22) + +### Security (4 changes) + +- Prevent Group SAML authorizing sign in without prior user approval. +- Respect group membership lock when importing a member from another group. +- Remove the possibility to share a project with a group that a user is not a member of. +- Prevent SAML access when disabled by group admin on GitLab.com. + +### Fixed (22 changes) + +- Allow assigning Prometheus alerts to multiple environments. !7361 +- Fix repo pushes while initial Elasticsearch indexing not permitting initial indexing to complete. !9478 +- Fix vulnerability occurrence scope to trailing 30 days. !9494 +- Skip whitelisted vulnerabilities in Container Scanning reports. !9528 +- Fix npm registry for yarn. !9599 +- Renders inline downstream & upstream pipelines. !9627 +- Prunes whole Geo event when there's only a primary. !9630 +- Fix alert notifications for non-public projects. !9636 +- Fix 500 error when visiting merged merge request. !9648 +- Allow plus symbol in maven package version. !9657 +- Show commands applied message when promoting issues to epics. !9669 +- Ensure comments from merge request review is displayed in the same order as user commenting order. !9684 +- Geo - Fix selective sync by namespace. !9732 +- Fix bridge jobs than can be hidden keys too. !9796 +- Fix approval-related UI showing up in free plan. !9819 +- Add 'No approvals required' view to approval rules (behind feature flag). !9899 +- Fix npm package install with a dot in the name. !9900 +- GroupSAML for GitLab.com prevents blank NameID. !9907 +- Fix protected environment initializer. !10150 +- Fix SSH pull mirrors not working. !10272 +- Fix HTML spew in Locked Files page. +- Fixes Broken new/edit feature flag form. + +### Changed (9 changes, 1 of them is from the community) + +- Remove authorization from /managed_licenses. !8541 +- Consider dismissed items in security reports summary. !9275 +- Add backend for cross-project pipeline dashboard MVC. !9396 +- Create merge request approval rule for each code owner entry. !9455 +- Split severity and confidence values for vulnerabilities. !9495 +- Enforce Geo JWT tokens scope for file uploads and Geo API. !9502 +- Update cluster health empty state. !9540 (George Tsiolis) +- Add extra graph spacing on the Security Dashboard Group Vulnerability Chart. !9780 +- Add Kerberos URL back to clone panel. !9840 + +### Performance (1 change) + +- Eliminate N+1 queries in Epics API. !9897 + +### Added (23 changes, 1 of them is from the community) + +- Enabled setting the Security Dashboard as a default view for groups. !7889 +- Add reordering of child epics. !9283 +- Create MR from Vulnerability Solution. !9326 +- Create pool repositories on Geo secondaries. !9428 +- Add date range for security dashboard graph. !9446 +- Add filtering merge requests by approvers. !9468 +- Add audit log for managing feature flags. !9487 +- Add DELETE package API endpoint. !9623 +- Enrich container scanning report. !9641 +- Adapt feedback for Container Scanning vulnerabilities. !9655 +- Enforce merge request approvals from code owners. !9656 +- Added vendored CI/CD template for Dependency Scanning job. !9660 +- Add Insights config behind the "group_insights" feature flag. !9665 +- Add single package API endpoint. !9667 +- Added GET /licenses and DELETE /license/:id endpoints. !9733 +- Add container scanning results to group security dashboard. !9736 +- Add an incident management settings form and create issues from alertmanager alerts. !9773 +- Add API for reordering child epics. !9781 +- Allow guests to comment on epics. !9783 +- Display Recent Boards in Board switcher. !9808 +- Add Ancestors in Epic Sidebar. !9817 +- Add vendored templates for SAST, DAST, Container Scanning and License Management job definitions. !9921 +- Add realtime validation for user fullname and username on validation. !25017 (Ehsan Abdulqader @EhsanZ) + +### Other (12 changes, 1 of them is from the community) + +- Use export-import svg from gitlab-svgs. !9453 +- Renames 'revert dismissal' to 'undo dismiss' on the Group security dashboard. !9500 +- Using positional arguments in request specs have been deprecated. !9506 (Jasper Maes) +- Splits the severity and confidence constants in the group security dashboard frontend. !9535 +- Add Gitlab.com gold trial callout to /billings. !9611 +- Update project settings section titles and info. !9614 +- Improve visual consistency of values in vulnerability modal. !9616 +- Limit Group Security Dashboard to selected types of report. !9626 +- Make related issues components reusable. !9730 +- sidekiq-cluster: put each sidekiq in a new pgroup. !9775 +- License Management: Load up to a 100 licenses per default. !9913 +- Adds documentation for autoremediation. !10054 + + +## 11.8.10 (2019-04-30) + +- No changes. + +## 11.8.3 (2019-03-19) + +- No changes. + +## 11.8.2 (2019-03-13) + +### Fixed (4 changes) + +- Fix 500 error when visiting merged merge request. !9648 +- Fix bridge jobs than can be hidden keys too. !9796 +- Fix approval-related UI showing up in free plan. !9819 +- Add 'No approvals required' view to approval rules (behind feature flag). !9899 + + +## 11.8.0 (2019-02-22) + +### Security (2 changes) + +- Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs. !790 +- Hide personal access tokens from other maintainers. + +### Fixed (28 changes, 1 of them is from the community) + +- Add keyboard navigation to issue board switcher and remove duplicate scroll bar. !8591 +- Geo: Always update the default branch on the secondary. !9064 +- Fix public group milestones not shown in epics autocomplete. !9068 +- Check hosts file for nameserver IP. !9071 +- Fixes the icon for fixed vulnerability in Container Scanning report. !9120 +- Return 400 error instead of 500 when upload maven package with invalid version. !9125 +- Fix mirrors that have invalid SSH public auth mode set. !9135 +- Hide packages without version from UI. !9151 +- Remove duplicate "Operations Dashboard" header/breadcrumb. !9152 (Nathan Friend) +- Create UTC date in subscription table. !9166 +- Display epic icon in related epics list. !9166 +- Don't validate Jenkins username if password is blank. !9198 +- Don't show Alert widget for non-licensed users. !9224 +- Group security dashboard: Fix overflow for Vulnerabilities with long titles. !9271 +- Geo - Respect shard restriction while loading new resources to verify on the Geo secondary node. !9343 +- When cleaning up repositories, ensure orphaned entries do not remain in the tracking database. !9344 +- Geo - Make sure project does not meet selective sync rule before deleting it. !9345 +- Fix alert notification emails are not being sent. !9393 +- Fix alert notifications for managed Prometheus. !9402 +- Replacing old blob methods in ElasticSerach module. !9418 +- Add checks to prevent cycling hierarchy in epics structure. !9438 +- Fix bug where users could not be added in protected branch rules. !9474 +- Avoid SAML required_groups indiscriminately unblocking users on login. !9489 +- Resolve Cannot scroll forwards in time for roadmap view. !9530 +- Fix unleash server side cannot return feature flags. !9532 +- Show alerts settings only for manual configuration. !9538 +- Fix access to constant Gitlab::RepositorySizeError. !9579 +- Clear our import data credentials when adding new mirrors. !24339 + +### Deprecated (1 change) + +- Geo: Show hashed storage warnings on geo nodes page. !8433 + +### Changed (14 changes) + +- Prevent commit authors from self approvaling merge requests. !9007 +- Add docs link to explain legacy and new email format. !9020 +- Recursively expands upstream and downstream pipelines. !9073 +- Geo: Don't show external link icon on current node. !9130 +- Issues created from vulnerabilities are now confidential by default. !9157 +- Validate custom metrics. !9178 +- Change paginate number to 20. !9213 +- Convert buttons to button group on Group Security Dashboard. !9220 +- Make it possible to edit Geo primary through API. !9328 +- Geo: Handle repository and wiki sync separately in Geo::ProjectSyncWorker. !9360 +- Geo: Add settings page empty state. !9415 +- Renders New and Edit forms for feature flag in Vue and allow to define scopes. +- Improves title in feature flags empty states. +- Adds environment column to the feature flags page. + +### Performance (5 changes) + +- Solve a N+1 issue in Groups::AnalyticsController. !4508 +- Refactored Epic app in Vuex for better performance and maintenance. !9361 +- Optimize slow pipelines.js response. !9387 +- Disable commit checks when no push rules are active. !9569 +- Enable some frozen string in ee/lib. + +### Added (22 changes, 1 of them is from the community) + +- Elasticsearch: Support for Gitaly. !7434 +- Canary deployment callout on the environments page. !8457 +- Allow to filter notes in epics. !8978 +- Multiple blocking merge request approval rules (behind feature flag). !9001 +- Add support for auto-expanding Roadmap timeline on horizontal scroll. !9018 +- Added Snowplow tracking to issues import. !9067 +- Persist Group Level Security Dashboard state in URL. !9108 +- Multiple environments support for feature flags (Unleash API standpoint). !9110 +- Shows the approval given/required counts and its status for each MR when viewing the Merge Requests page. !9142 (Glavin Wiechert, Andy Steele) +- Support CURD operation for feature flag scopes. !9182 +- Add epic links API endpoints. !9188 +- Store DAST scan results in the database. !9192 +- Add LDAP integration to smartcard authentication. !9235 +- Allow SSO enforcement in group settings for GitLab.com. !9240 +- Add API endpoint for project packages. !9259 +- Add upvote/downvote information to epics API. !9264 +- Resolve Implement access controls when SSO enforcement enabled. !9270 +- Add package files API endpoint. !9305 +- Support alerts from external Prometheus servers. !9334 +- Cross-project pipelines support in .gitlab-ci.yml. !9374 +- Enable mails for external alerts. !9457 +- Moving repository across shards leaves the pool. + +### Other (13 changes, 7 of them are from the community) + +- Gather JIRA DVCS integration usage data. !8949 +- ActiveRecord::Migration -> ActiveRecord::Migration[5.0] for AddAlertManagerTokenToClustersApplicationPrometheus and EnqueuePrometheusUpdates. !9049 (Jasper Maes) +- Track navbar links in Snowplow. !9059 +- Adds snowplough tracking for the group security dashboard filters. !9119 +- Support Ajax endpoints for FeatureFlagsController. !9127 +- Fix deprecation: Passing an argument to force an association to reload is now deprecated. !9140 (Jasper Maes) +- Fix deprecation: #original_exception is deprecated. Use #cause instead. !9141 (Jasper Maes) +- Uses GLDropdown for licence management. !9237 +- Replace deprecated render text. !9346 (Jasper Maes) +- Fix several ActionController::Parameters deprecations. !9347 (Jasper Maes) +- Fix deprecation: uniq is deprecated and will be removed from Rails 5.1. !9348 (Jasper Maes) +- Turn on rubocop for frozen string in ee/. (gfyoung) +- Creates an EE component for the pipeline graph. + + +## 11.7.12 (2019-04-23) + +- No changes. + +## 11.7.11 (2019-04-09) + +### Security (1 change) + +- Expose only basic group attributes in boards API. + + +## 11.7.10 (2019-03-28) + +### Security (1 change) + +- Check label_ids parent when updating issue board. + + +## 11.7.8 (2019-03-26) + +### Security (2 changes) + +- Geo - Improve security while redirecting user back to the secondary after a logout & re-login via the primary. +- Check label_ids parent when updating issue board. + + +## 11.7.7 (2019-03-19) + +- No changes. + +## 11.7.5 (2019-02-05) + +### Fixed (2 changes) + +- Fix Kerberos authentication. !9390 +- Fix background migration error when project repository is missing. !9392 + + +## 11.7.2 (2019-01-29) + +### Security (6 changes) + +- Avoid leaking unauthorized approver group members. !766 +- Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs. !791 +- Check access rights when creating/updating ProtectedRefs. +- Fix locked file visibility issue for private repositories. +- Filter out non-project member approvers. +- Remove HTTP POST in JIRA OAuth access_token endpoint. + + +## 11.7.1 (2019-01-28) + +### Security (6 changes) + +- Avoid leaking unauthorized approver group members. !766 +- Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs. !791 +- Check access rights when creating/updating ProtectedRefs. +- Fix locked file visibility issue for private repositories. +- Filter out non-project member approvers. +- Remove HTTP POST in JIRA OAuth access_token endpoint. + + +## 11.7.0 (2019-01-22) + +### Security (1 change) + +- Add a shared secret to prevent abuse of the alert endpoint. + +### Fixed (27 changes, 2 of them are from the community) + +- Defaults to feature flags link for Operations entry. !8622 +- Fix error on explore page when logged out due to gold trial callout. !8674 +- Prevents the empty state from showing when the dashboard errors. !8703 +- Allow matching only the repo-root for CODEOWNERS. !8708 +- Fix adding labels to epics using quick actions. !8772 +- Geo: Keep the minimum cursor last event. !8832 +- Reinstate sorting issuable by weight. !8834 +- Geo - Show the proper label for the last repository check run on Geo projects page. !8844 +- Resolve Reorder gitlab:elastic:index rake tasks to ensure wikis and database are completed even if projects error out. !8852 +- Remove dash on issue weight for unauthorized users. !8882 (George Tsiolis) +- Dismiss epic promotion and persist it across reloads. !8885 +- Fix JIRA Development Panel links with subgroups. !8908 +- Remove epic field in sidebar for projects without groups. !8919 +- Remove duplicate padding from issue board switcher. !8928 +- Resolve Ctrl+Enter immediately adds MR comment. !8932 +- Geo: Ignore invalid attributes when updating Geo node status. !8957 +- Fix border-radius for related issues. !8958 (Johann Hubert Sonntagbauer) +- Fix Security Dashboard Header font size. !9011 +- Fix title and description for issue created from a vulnerability. !9022 +- Pseudonymizer: Gracefully handle empty pseudo entries. !9044 +- Fix permission check when creating an issue from a vulnerability. !9055 +- Docfix - broken doc links for Secure/Autodevops features. !9058 +- Fix Error 500 when deleting a pipeline via the API. !9104 +- Uses project_id instead of project on the group security dashboard. !9109 +- Recursively get all of a groups projects. !9205 +- Fix data migration failure if approvals_before_merge is set to too high. !9217 +- Don't remove milestones when moving issues to board backlog from non-milestone list. + +### Changed (5 changes, 1 of them is from the community) + +- Update Geo nodes empty state. !8576 (George Tsiolis) +- Add search field to issue board switcher. !8862 +- Allow downloading package files from UI. !8888 +- Changes to the data model for counts on the Group Security Dashboard. !9035 +- Fix packages UI mentioned only Maven packages support. !9132 + +### Performance (2 changes, 1 of them is from the community) + +- Fix timeout loading Open list when board contains assignee lists. +- Enable some frozen string in ee/lib. (gfyoung) + +### Added (17 changes) + +- Add an instance-level endpoint for downloading maven packages. !8274 +- Add NPM registry support to GitLab packages. !8673 +- Store container scanning CI jobs results into the database. !8797 +- Add a group-level endpoint for downloading maven packages. !8798 +- Add Filtering vulnerabilities in the Group Security Dashboard. !8817 +- Allow to filter Feature Flags. !8821 +- Geo - Show last verification time on Geo projects page. !8845 +- Adds basic filtering to the Group Security Dashboard frontend. !8886 +- Autocomplete issues and MRs in epics. !8936 +- Adds project filtering to the GSD. !8944 +- Allow using TCP for DB load balancing DNS lookups. !8961 +- Add filtering for summary and history on security dashboard. !8972 +- Add solution card to the vulnerability modal. !9030 +- Allows the Group Security Dashboard to select multiple filters. !9031 +- Added Snowplow tracking to issues export. !9045 +- Add support for relationship between epics. !9051 +- Added pagination to epics API endpoint. + +### Other (13 changes, 3 of them are from the community) + +- Promote starting a GitLab.com Gold trial on the dashboard. !6947 +- Adds event tracking to navbar. !7787 +- Update tracing settings to match error tracking settings. !8786 +- Adapt subscriptions page for free plans and trials. !8838 +- Support for new SAST and dependency scanning report format. !8869 +- Remove deprecated ActionDispatch::ParamsParser. !8897 (Jasper Maes) +- Fix deprecation: Comparing equality between ActionController::Parameters and a Hash is deprecated. !8914 (Jasper Maes) +- Removes Notes from GitLab Pseudonymizer config. !8923 +- Add count of projects with tracing enabled to usage ping data. !8940 +- Adds dependency scanning to the report type filters on GSD. !9034 +- Fix deprecation: Using positional arguments in specs for EE spes in spec/. !9040 (Jasper Maes) +- Pass issuable-type in AddIssuableForm. !9111 +- Gather deepest epic relationship data. + + +## 11.6.11 (2019-04-23) + +- No changes. + +## 11.6.10 (2019-02-28) + +### Security (5 changes) + +- Remove the possibility to share a project with a group that a user is not a member of. +- Prevent Group SAML authorizing sign in without prior user approval. +- Prevent SAML access when disabled by group admin on GitLab.com. +- Respect group membership lock when importing a member from another group. +- Ignore out of range epic IDs. + + +## 11.6.9 (2019-02-04) + +- No changes. + +## 11.6.8 (2019-01-30) + +- No changes. + +## 11.6.5 (2019-01-17) + +### Fixed (1 change) + +- Fix Error 500 when deleting a pipeline via the API. !9104 + + +## 11.6.4 (2019-01-15) + +- No changes. + +## 11.6.3 (2019-01-04) + +### Fixed (1 change) + +- Fix instance project templates no longer working. !9019 + + +## 11.6.2 (2019-01-02) + +### Fixed (1 change) + +- Fix issue ID wrapping and avatar counter shrinking in Related Issues list. !8854 + + +## 11.6.1 (2018-12-28) + +### Security (1 change) + +- Add a shared secret to prevent abuse of the alert endpoint. + + +## 11.6.0 (2018-12-22) + +### Security (7 changes) + +- Switch from CBC to GCM for Geo logout tokens. !8518 +- Prevent reporter roles from viewing the Jaeger tracing settings page. +- Sanitize tracing external_urls before saving to DB and when displaying the URL to prevent XSS issues. +- Fix IDOR at /drafts/publish. +- Authorize users when listing board users and milestones. +- Resolve: Guest can set weight of a new issue. +- Fixes XSS with merge request approvers selection. + +### Fixed (27 changes, 2 of them are from the community) + +- Ensure that avatars in approvals have correct tooltip. !6269 +- Geo: Fix push to secondary over SSH for LFS. !8044 +- Don't show packages tab and settings for starter license. !8270 +- Makes the vulnerability name on the Group Security Dashboard a button for better A11y. !8341 +- Used the iid instead of the id for linked issues on the Group Security Dashboard. !8357 +- Show navigation line separator when instance etrics is disabled. !8379 (George Tsiolis) +- Fix project deploy key creation and deletion as admin. !8432 +- Changes initial state for disabled prometheus integrations. !8434 +- Fix a typo in Admin: intergration -> integration. !8444 (Vincent AUBERT) +- Geo: Moving registry deletion into the job that deletes the files and project record. !8480 +- Parameterize alerting rules with variables. !8481 +- Fix PostReceive failing for project mirrors missing local branch. !8495 +- Rails 5: Fix the check whether the database is in read-only mode. !8594 +- Raisl 5: Fix Gitlab::Database::LoadBalancing#caught_up? check. !8595 +- Renders upstream and downstream pipelines in the main pipeline graph. !8607 +- Fix issue board api with special milestones. !8653 +- fix pod dropdown not switching pod logs. !8660 +- Geo - Respect the next retry time when re-verifying failed repositories. !8661 +- Update elasticsearch system check to check for new supported versions. !8683 +- Handle null start or due dates for dates sourcing milestone in Epics. !8689 +- Fixed license managment path in MR widget for fork cases. !8700 +- Fix gitlab:geo:check rake task. !8714 +- Fix ability to choose shards for selective sync. !8717 +- Add Rails.version to the Geo cache keys. !8775 +- Support older NGINX version forwarding the client certificate for smartcard auth. !8784 +- Remove duplicated smartcard login button. !8793 +- Disable password autocomplete in mirror form fill. + +### Deprecated (1 change) + +- Deprecate non-hashed repository storage for Geo installations. !8739 + +### Changed (17 changes, 1 of them is from the community) + +- Adds Group SAML metadata endpoint. !5782 +- Group SAML SSO page warns when linking account. !8295 +- Change the delete custom metric alert. !8430 +- Replace weight icon. !8448 (George Tsiolis) +- Switch snowplows stateStorageStrategy to cookie. !8461 +- Move merge request approval settings. !8493 +- Geo: Constantly reverify repositories. !8550 +- Add file and line numbers to issues created from SAST vulnerabilities. !8578 +- Redesign MR header sections and approvals (EE). !8593 +- Add packages_enabled attribute to Projects API. !8604 +- Run geo check task from gitlab check. !8616 +- Change issue create weight dropdown to an input. !8648 +- Add epics state filtering in roadmap view. !8658 +- Users can unlink Group SAML from accounts page. !8682 +- Update casing in Built-in on project templates tab. !8688 +- Epic issue list and related issue list re-design. +- Add sort direction button with sort dropdown for Epics and Roadmap. + +### Performance (5 changes, 3 of them are from the community) + +- Remove partial index for projects on mirror and mirror_last_update_at. !8585 +- Enable some frozen string in ee/app. !8667 (gfyoung) +- Remove redundant indices for is_sample on push_rules and next_execution_timestamp on project_mirror_data. !8695 +- Enable some frozen string in ee/app. (gfyoung) +- Enable some frozen string in ee/app. (gfyoung) + +### Added (10 changes) + +- Add support for Group-level project templates. !6878 +- Added web terminals to Web IDE. !7386 +- Promote an Issue to an Epic using quick action. !8051 +- Smartcard authentication. !8120 +- Adds Security dashboard empty state. !8443 +- Add vulnerability history at group level. !8603 +- Adds group security dashboard metrics chart. !8631 +- Add milestones autocomplete for epics. !8632 +- Parse and store dependency scanning reports in database. !8642 +- Adds EE store to handle upstream & downstream pipelines. + +### Other (13 changes, 4 of them are from the community) + +- Add subscription table to GitLab.com billing areas. !7885 +- UX improvements for the group security dashboard. !8217 +- Restyles the dismissed vulnerabilities. !8401 +- Adds PHILOSOPHY.md and references GitLab Product Handbook. !8515 +- Make sidekiq-cluster play well with Sidekiq 5.2.2+. !8522 +- Rails5: Passing a class as a value in an Active Record query is deprecated. !8540 (Jasper Maes) +- render :nothing option is deprecated, Use head method to respond with empty response body. !8560 (Jasper Maes) +- Add help page link for licence management in CI/CD settings. !8561 (George Tsiolis) +- Re-orders the Group Security Dashboard. !8624 +- Move EE only differences for finders. !8629 (George Tsiolis) +- Add count of projects with at least one package to a usage ping data. !8641 +- Added recommendations for handling deleted documents in Elasticsearch. +- Use new information-o icon for Security Dashboard. + + +## 11.5.11 (2019-04-23) + +### Security (1 change) + +- Respect group membership lock when importing a member from another group. + + +## 11.5.8 (2019-01-28) + +### Security (6 changes) + +- Avoid leaking unauthorized approver group members. !766 +- Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs. !793 +- Check access rights when creating/updating ProtectedRefs. +- Fix locked file visibility issue for private repositories. +- Filter out non-project member approvers. +- Remove HTTP POST in JIRA OAuth access_token endpoint. + + +## 11.5.5 (2018-12-20) + +- No changes. + +## 11.5.3 (2018-12-06) + +- No changes. + +## 11.5.2 (2018-12-03) + +### Fixed (2 changes) + +- Fix inability to scroll dashboard. !8459 +- Fix issues analytics query when ordering issues by priority. !8509 + + +## 11.5.1 (2018-11-26) + +### Security (6 changes) + +- Sanitize tracing external_urls before saving to DB and when displaying the URL to prevent XSS issues. +- Prevent reporter roles from viewing the Jaeger tracing settings page. +- Fix IDOR at /drafts/publish. +- Authorize users when listing board users and milestones. +- Resolve: Guest can set weight of a new issue. +- Fixes XSS with merge request approvers selection. + + +## 11.5.0 (2018-11-22) + +### Security (2 changes) + +- Escape entity title while autocomplete template rendering to prevent XSS. !696 +- Prevent templated services from being imported. + +### Removed (1 change) + +- Remove security report summary from pipelines view. !7844 + +### Fixed (25 changes, 3 of them are from the community) + +- Geo: Remove connectivity check from primary to secondary from gitlab:geo:check rake task. !7821 +- Include (closed) for closed epics in parsed text. !7946 +- Add new state to the cluster application vue app. !7954 +- Do not allow to assign an issue to an epic twice. !8004 +- [Geo] Fix: Deleting a project leaves orphaned LFS objects and CI Job artifacts around. !8031 +- Support `/client/features` Unleash endpoint. !8045 +- Fix button rendering in license management in FF. !8046 +- Geo: Handle orphaned Uploads records. !8054 +- Geo - Redirect user back to the secondary after a logout & re-login via the primary. !8157 +- Fix approver removal still being conducted even when "Cancel" is clicked in confirmation prompt. !8178 +- Link project short SHA to commit url. !8214 +- Update ops dashboard remove dropdown button. !8236 (George Tsiolis) +- Clear ops dashboard project search input on submit. !8239 (George Tsiolis) +- Fixes a dismissed vulnerability bug on the group security dashboard. !8343 +- Fixes missing fields on the group security dashboard. !8360 +- Fixes the view issue button in the Group Security Dashboard. !8385 +- Ops Dashboard should be available for public projects on GitLab.com. !8399 +- Update draft comments design to match new design. !8405 +- Change issues analytics breadcrumb. !8414 (George Tsiolis) +- Include classification label in project API. !8426 +- Fix Pod Log topbar position when perf bar is disabled. +- Always proxy reports downloads. +- Removes extra rigth margin from job page. +- Geo: Rails console message display primary/secondary state incorrectly. +- Disable Feature Flags and Packages if repository is disabled. + +### Changed (13 changes, 1 of them is from the community) + +- Add test button to Group SAML settings. !5622 +- Group SAML status badges on members page. !5807 +- Update related issues list styling to be more space efficient. !7784 +- Refactor test reports to use new artifact architecture. !7827 +- Add timeline icon for issue weights. !7847 (George Tsiolis) +- Added a search bar to `Admin > Geo > Projects`. !8079 +- Geo: Deprecate source installations instructions. !8134 +- Does not synchronize default branch for pull mirrors. !8138 +- Adds split error states for the group security dashboard. !8208 +- Geo: Improve read-only message in secondary nodes for actionable screens. !8238 +- Improve error messages for operations dashboard. !8244 +- Add documentation link to ops dashboard. !8296 +- Issue board card design. !21229 + +### Added (24 changes, 1 of them is from the community) + +- Group-level file templates. !7391 +- Adds group-level Security Dashboard counts. !7564 +- Parse SAST reports and store vulnerabilities in database. !7578 +- elasticsearch 6 support - migrate from parent/child relationships to join. !7618 +- Geo: Admin > Geo > Projects support for batch operations. !7806 +- Create system notes for epic close and reopen. !7850 +- Add Tracing landing and settings page. !7903 +- Add modals and actions to the vulnerabilities in the Group security dashboard. !7910 +- Assign code owner as approver. !7933 +- Enable previewing of draft review comments. !7936 +- Audit log: Add logging for project feature changes. !7962 +- Add project operations dashboard. !7973 +- Audit log: Add audit events for group setting changes. !7987 +- Add approve quick action. !7989 +- Show actual Milestone dates within tooltips for Milestones in Epics sidebar. !8048 +- Allow filtering by weight in issues API. !8140 (Heinrich Lee Yu) +- Filter epics by state in API. !8179 +- Support epics autocomplete for project objects. !8180 +- Add 'l', 'r' and 'e' keyboard shortcuts support in Epic. !8203 +- Configurable GitHub static context for statuses integration. !8235 +- Send notifications for epic status change. !8247 +- Support license management and performance using new reports syntax. +- Support reports: for project security dashboard. +- Add chart of issues created per month. + +### Other (17 changes, 11 of them are from the community) + +- Update boards list selector specs. !6266 (George Tsiolis) +- Write some Geo development documentation. !7452 +- Connects the Group Security Dashboard API and Frontend. !7793 +- Rails5: Fix epics finder count_key method In Rails5, the state enum value is passed instead of the database integer. !7822 (Jasper Maes) +- Rails 5: fix presence message validation for prometheus_alert. !7823 (Jasper Maes) +- Rails 5: fix mysql milliseconds problem in prometheus alert event spec. !7828 (Jasper Maes) +- Rails5: fix VulnerabilitySummaryEntity. !7893 (Jasper Maes) +- Update feature flags empty state. !7967 (George Tsiolis) +- Adds the security dashboard link. !7974 +- Remove tooltip on sidebar text buttons. !8021 (George Tsiolis) +- Add a metric to the usage ping data to track the number of projects with at least one alert. !8058 +- Remove unneeded permission checks from the mirror repositories partial. !8077 +- Rails5: fix flaky mysql reset pipeline minutes spec. !8122 (Jasper Maes) +- Move `prepend` outside the `class` block for finders. !8192 (George Tsiolis) +- Rails5: fix operations controller spec nil parameter. !8209 (Jasper Maes) +- Update related issues title typography. !8267 (George Tsiolis) +- Geo: Clarify Geo HA documentation. + + +## 11.4.9 (2018-12-03) + +- No changes. + +## 11.4.8 (2018-11-27) + +### Security (5 changes) + +- Escape entity title while autocomplete template rendering to prevent XSS. !707 +- Authorize users when listing board users and milestones. +- Fix IDOR at /drafts/publish. +- Resolve: Guest can set weight of a new issue. +- Fixes XSS with merge request approvers selection. + + +## 11.4.7 (2018-11-20) + +### Fixed (1 change) + +- Fix code owner as merge request suggestion not available under Starter plan. !8248 + + +## 11.4.6 (2018-11-18) + +### Security (1 change) + +- Prevent templated services from being imported. + + +## 11.4.5 (2018-11-04) + +### Fixed (1 change) + +- Stops showing review actions on commit discussions in merge requests. !8007 + +### Performance (1 change) + +- Add indexes to all geo event foreign keys. !7990 + + +## 11.4.4 (2018-10-30) + +- No changes. + +## 11.4.3 (2018-10-26) + +- No changes. + +## 11.4.2 (2018-10-25) + +### Security (1 change) + +- Escape entity title while autocomplete template rendering to prevent XSS. !707 + + +## 11.4.1 (2018-10-23) + +- No changes. + +## 11.4.0 (2018-10-22) + +### Security (3 changes) + +- Properly filter private references from system notes. +- Project groups approvers no longer leak private groups info. +- Protect against CSRF attacks when adding Slack app. + +### Removed (1 change) + +- remove unnecessary help text from container scanning results. !7304 + +### Fixed (18 changes, 1 of them is from the community) + +- Prune all the Geo event log tables correctly. !6175 +- Synchronize the default branch when updating a pull mirror. !7242 +- Pushing to a merge request clears the approvals list even if the respective project setting is enabled and there is no fixed required number of approvals configured. !7328 +- Align epics and roadmap empty state buttons to the center. !7358 (George Tsiolis) +- Add link to issue on epic. !7407 +- Check for force env var when rebuilding auth_keys. !7419 +- Update popover URL to point to help page of same domain. !7446 +- Geo - Does not raise error 500 on Geo projects list page for orphaned entries. !7565 +- Show promotion for epics on issues. !7602 +- Fix Epic subscription toggle behaviour. !7723 +- Geo - Send a cache invalidation event via the log cursor whenever features are changed on the primary. !7738 +- Fix epic milestone dates incorrect after issue is linked to another epic. !7809 +- Fixes warning for used minutes in runner showing when user still has minutes. !7843 +- Fix disappearing weight input in Firefox. !7869 +- Don't synchronize default branch when updating a SSH mirror. !7891 +- Fix broken tokenization for filtered search bar in Epics. !7972 +- Fix bug when resolving a discussion via a batch comment published right away. +- Fix wrong color in resolve/unresolve checkbox when using MR reviews. + +### Changed (14 changes) + +- Geo: Decrease frequency of project shard schedulers when few projects to schedule. !7287 +- Added placeholder to weight input for issue sidebar. !7346 +- updated icons used in filtered search dropdowns. !7356 +- Geo: Display helpful feedback when proxying an SSH git push to secondary request. !7357 +- Geo - Include keep-around and other Gitlab-specific references in the checksum calculation. !7367 +- Polish security report externalizations. !7373 +- Listen for resolved Prometheus alerts. !7382 +- Rename date related labels for Epics. !7447 +- Add reports CI syntax for Code Quality reports. !7465 +- Support short reference to epics from project entities. !7475 +- Geo: Downgrade Exclusive Lease warnings from Log Cursor to debug. !7476 +- Geo: Allow nodes to be editable in more scenarios. !7832 +- Account for issues created in the middle of a milestone in burndown chart. +- [Geo] Add CI job artifact numbers to rake geo:status. + +### Performance (1 change) + +- Update DB model for security reports. + +### Added (20 changes, 1 of them is from the community) + +- Batch comments on merge requests. !4213 +- Use Geo log to remove files when migrated to object storage. !5966 +- Add support for closing epics. !7302 +- Add `auditor_groups` configuration so Audit users can be specified using SAML groups. !7340 (St. John Johnson) +- Geo - Add an event to reset checksums on Geo secondary nodes. !7394 +- Starts adding the dashboard page view. !7400 +- Add `Manage licenses` button to MR widget and pipelines view. !7411 +- Add Open/Closed epics tabs in list view. !7424 +- Add Feature Flags MVC. !7433 +- Suggest approvers based on code owners. !7437 +- Geo: Add a backoff time to few Geo workers to save resources. !7470 +- Persist Prometheus alert events. !7493 +- Geo: Added a button to Admin UI > Geo Nodes to open Geo Projects screen of any secondary node. !7512 +- Show Alert Thresholds on monitoring dashboards. !7538 +- Support autocomplete for commands in epics. !7588 +- Add form to enter licenses manually. !7603 +- Geo: Added `All` tab in Geo Nodes > Projects. !7745 +- Geo: Add a Geo Status Widget to Admin > Projects. !7789 +- Add data model and migration for vulnerabilities. +- Adds Batch Comments to Merge Requests [EEP]. + +### Other (8 changes, 1 of them is from the community) + +- Add runner quota information to job API. !7233 +- Resolve "ee:geo QA specs are failing as of !7210". !7315 +- remove readme checkbox from "create project" page. !7332 +- Create a generic JS function that we can apply to being able to track arbitrary events. !7403 +- Rename Admin Area Geo Nodes nav item to Geo. !7466 +- Group weight icon and text on issue list and issue boards. !7484 (George Tsiolis) +- Adds expandable/collapsable section for Snowplow. !7798 +- API: Allow issue weight parameter to be greater than or equal to zero. + + +## 11.3.14 (2018-12-20) + +- No changes. + +## 11.3.13 (2018-12-13) + +- No changes. + +## 11.3.11 (2018-11-26) + +### Security (7 changes) + +- Escape entity title while autocomplete template rendering to prevent XSS. !697 +- Properly filter private references from system notes. +- Authorize users when listing board users and milestones. +- Project groups approvers no longer leak private groups info. +- Resolve: Guest can set weight of a new issue. +- Fixes XSS with merge request approvers selection. +- Protect against CSRF attacks when adding Slack app. + + +## 11.3.10 (2018-11-18) + +- No changes. + +## 11.3.9 (2018-10-31) + +- No changes. + +## 11.3.8 (2018-10-27) + +- No changes. + +## 11.3.7 (2018-10-26) + +### Security (1 change) + +- Escape entity title while autocomplete template rendering to prevent XSS. !697 + + +## 11.3.6 (2018-10-17) + +### Fixed (1 change) + +- Don't reset the default branch when repository mirroring is enabled. !7944 + + +## 11.3.5 (2018-10-15) + +### Fixed (1 change) + +- Fix epic milestone dates incorrect after issue is linked to another epic. !7809 + + +## 11.3.4 (2018-10-05) + +### Security (1 change) + +- Properly filter private references from system notes. + + +## 11.3.3 (2018-10-04) + +- No changes. + +## 11.3.2 (2018-10-03) + +### Fixed (1 change) + +- Geo: repository shard verification job should have unique lease keys per shard name. !7474 + + +## 11.3.1 (2018-09-26) + +### Security (2 changes) + +- Project groups approvers no longer leak private groups info. +- Protect against CSRF attacks when adding Slack app. + + +## 11.3.0 (2018-09-22) + +### Security (1 change) + +- Prevent regular users from moving projects to different storage shards. + +### Fixed (29 changes, 11 of them are from the community) + +- don't add empty query params to boards. !4441 +- Geo: sync disabled wikis. !6420 +- Rails 5 fix alerts controller spec for post json parameters. !6795 (Jasper Maes) +- Fixes 500 error on user creation from admin panel with spaced username. !6804 (Jacopo Beschi @jacopo-beschi) +- Don't show search results for projects that have been deleted when using elastic search. !6830 +- Geo: Use database-cached status if redis-cached status is unavailable. !6854 +- [Geo] Fix: Custom favicons not being replicated by Geo. !6860 +- Rails5 fix AddMilestoneToLists migration rollback deleting wrong foreign key. !6865 (Jasper Maes) +- Rails5 fix passing Group objects array into for_projects_and_groups milestone scope. !6873 (Jasper Maes) +- Rails5: fix mysql milliseconds problem in project_import_state_spec. !6874 (Jasper Maes) +- Fix Jira integration duplicating branches and MRs. !6876 +- Rails5: fix mysql milliseconds problem in project_spec. !6880 (Jasper Maes) +- Remove https from Snowplow Collector URI placeholder in Admin Areawq. !6886 +- Geo: Replicate keep around refs. !6922 +- Fixes bug that prevented a user from seeing the system header and footer settings on the admin dashboard. !6926 +- Rails5 fix duplicate gpg signature in path lock spec. !6939 (Jasper Maes) +- Rails5: Fix audit event spec. !6940 (Jasper Maes) +- Rails5: fix mysql milliseconds problem in project registry spec. !6943 (Jasper Maes) +- LDAP - Does not update permissions on a read-only database. !6965 +- Rails5 fix project import spec. !6981 (Jasper Maes) +- Geo: Resolve sticky failures when attachments are missing on primary. !6991 +- Geo: LFS batch downloads are OK to be handled by secondary. !7209 +- Geo - Synchronize the default branch in secondary nodes. !7218 +- Handle fixed dates seperately from selected dates in Epics. !7227 +- Fix tooltip string to support dynamic date type in Epic sidebar. !7243 +- Fix an error in docs about fetching artifacts using API. !7244 +- Return proper status code when creation of an alert fails. !7360 (Peter Leitzen) +- Geo - Find the remote root ref using a JWT header for authentication. !7405 +- Add weight to issue hook. + +### Changed (3 changes, 1 of them is from the community) + +- Allow push_code when auth'd via Geo JWT. !6455 +- Prefer From address over Sender for Service Desk emails. !7006 (Andreas Josephson) +- Add CI Job token support to Maven packages API. !7249 + +### Performance (3 changes) + +- Reduce queries needed for CI artifacts on merge request widget. !6978 +- Use limited count approach on Protected Environments view. !6987 +- Limit sidekiq-cluster concurrency to a maximum of 50. !7025 + +### Added (15 changes, 2 of them are from the community) + +- Allow custom notification for new epic event. !5863 +- Geo: SSH git push to secondary -> proxy to Primary. !6456 +- Allow epic start/due dates to be sourceable from issue milestones. !6470 +- Add ability to upload and download maven packages from/to GitLab. !6607 +- Added an instance-level license template project. !6631 (Dan Barker) +- Add backend structure for ProtectedEnvironments. !6672 +- Add UI for GitLab private Maven repository feature. !6781 +- Add support for sorting epics. !6885 +- Allow specifying code owners in a CODEOWNERS file. !6916 +- Quick action for adding/removing epic to issues. !6934 +- Show total and completed instances deployed on deploy boards. !6955 +- Show security analysis status on the environments page. !6987 +- Add Instance Review for Core users. !6995 +- Introduce custom instance-level templates for Dockerfile, .gitignore, and .gitlab-ci.yml files. !7000 +- Adds Rubocop rule to enforce class_methods over module ClassMethods. !7044 (Jacopo Beschi @jacopo-beschi) + +### Other (4 changes) + +- Removes feature flag code surrounding Protected Environments feature. !7338 +- Creates vue component for shared runner limit. +- Allow MR authors to approve their MRs. +- Remove differences between CE and EE settings panel component. + + +## 11.2.8 (2018-10-31) + +- No changes. + +## 11.2.7 (2018-10-27) + +- No changes. + +## 11.2.6 (2018-10-26) + +### Security (1 change) + +- Escape entity title while autocomplete template rendering to prevent XSS. !698 + + +## 11.2.5 (2018-10-05) + +### Security (1 change) + +- Properly filter private references from system notes. + + +## 11.2.4 (2018-09-26) + +### Security (2 changes) + +- Project groups approvers no longer leak private groups info. +- Protect against CSRF attacks when adding Slack app. + + +## 11.2.3 (2018-08-28) + +- No changes. + +## 11.2.2 (2018-08-27) + +### Security (1 change) + +- Prevent regular users from moving projects to different storage shards. + + +## 11.2.1 (2018-08-22) + +- No changes. + +## 11.2.0 (2018-08-22) + +### Security (1 change) + +- Don't expose project names in EE counters. + +### Fixed (32 changes, 11 of them are from the community) + +- Allow Geo node to be edited once the database is failed over. !6248 +- Fix a bug where user was unable to delete a branch when repo size was above the limit. !6373 +- Rails5 fix AttachmentRegistryFinder arel queries. !6396 (Jasper Maes) +- Add Premium license checks for system messages. !6460 +- Fixes arrow-icon color and alignment in linked pipeline in merge request widget. !6479 +- Rails 5 fix the matcher expected the ApplicationSetting to be invalid, but it was valid instead. !6488 (Jasper Maes) +- Geo: Gracefully handle deleted events from Geo event log. !6506 +- Rails5 fix NoMethodError: undefined method 'message' for nil:NilClass. !6507 (Jasper Maes) +- Fix billing card title colors. !6563 +- Rails5 fix undefined method 'namespace_project_settings_repository_path'. !6581 (Jasper Maes) +- Rails5 fix no implicit conversion of Symbol into Integer. !6582 (Jasper Maes) +- Rails 5 fix NoMethodError: undefined method 'message' for nil:NilClass in host_spec.rb. !6589 (Jasper Maes) +- Fix mobile view of pod logs. !6597 +- Add left-padding to diverged-from-upstream label. !6647 +- List groups with developer maintainer access on project creation. !6678 +- no longer fail when setting up Geo database with GDK. !6680 +- Allow Pseudonymizer to write to a bucket without having permissions to see all buckets. !6682 +- Hide Expand button on empty MR widget Performance section. !6685 +- Ensure that Create issue button is shown in vulnerability dialog. !6708 +- Use same gem versions for Rails 5 as for Rails 4. !6712 (Jasper Maes) +- Rails5 correct wrong geo job name. !6713 (Jasper Maes) +- Elasticsearch: Fix a bug causing some types of note to miss being indexed. !6736 +- Rails 5 fix product array method delagation by manually calling .to_a in NotificationService. !6753 (Jasper Maes) +- Adjust self-hosted Jira development panel integration. !6756 +- Ensure that push size checks only count the size of newly-pushed files. !6767 +- Fix the UI for listing system-level labels. !6805 +- Rails5: fix slice in burndown fixture. !6813 (Jasper Maes) +- Rails5: fix Arel::UpdateManager in MigrateOldElasticsearchSettings migration. !6815 (Jasper Maes) +- Corrected URL for snowplow client side JS. !6899 +- [Geo] Fix the Storage config parameter in Geo nodes admin page. +- Fix exporting issues to CSV when sorting by label priority is used. +- Fix handling of annotated tags when Gitaly is not in use. + +### Changed (9 changes, 2 of them are from the community) + +- Add related issues loading icon top margin. !6527 (George Tsiolis) +- Add security products to usage ping. !6602 +- Changed copy for "Approved" state in merge request widget. !6635 (Constance Okoghenun) +- Track the Geo event log gaps in redis and handle them later. !6640 +- Replace clipboard icon in Service Desk settings. !6643 +- Removes "show all" on security reports and adds a button to take you to the pipeline page. !6675 +- Shows license reports when there are no reports in the source branch. !6720 +- Removes status text from licence reports. !6802 +- Opens "view full report" links in a new window. !6806 + +### Performance (2 changes) + +- Geo: Improve Geo Status API performance with cached counters in SiteStatistic. !6328 +- Geo: Improve performance in Log Cursor gap tracking. !6754 + +### Added (19 changes) + +- Geo: Add repository verification failures to API. !6137 +- Add support for todos on epics. !6142 +- Summed issue weights in board columns. !6218 +- Add an API endpoint for managed licenses of a project. !6246 +- Implement custom project templates. !6436 +- Projects page under Admin > Geo Nodes to display detailed synchronization information. !6452 +- Enables configuration of pull mirroring through API. !6485 +- Adds SLI alerts to custom prometheus metrics. !6590 +- Add support for milestones lists on the issue boards. !6615 +- Persist Epic Roadmap timescale choice. !6637 +- Add license management frontend. !6638 +- Add Snowplow integration. !6642 +- Add Security Dashboard to project quick links. !6652 +- Show License Management at pipeline level. !6688 +- Add Frontend for Instance-level project templates. !6740 +- Geo - Actively try to correct verification failures on the secondary. !6759 +- Add Prometheus metrics to track Geo autocorrect numbers. !6778 +- Link the License Management report in the MR widget with the pipeline level one. !6800 +- Allow creating assignee lists via API. + +### Other (8 changes, 1 of them is from the community) + +- Move merge requests EE helper methods. !6461 (George Tsiolis) +- Add additional logging for Geo Log Cursor. !6513 +- Ensure no weight change system notes end with a superfluous comma. !6571 +- Track registries marked as synced when repository does not found. !6694 +- Removes EE specific CSS that was moved to CE. !6723 +- Geo: Add rake task to resync projects where verification has failed. !6727 +- updates column sizes in licence and security modals. !6808 +- Geo: Log to geo.log when the Log Cursor skips an event. + + +## 11.1.7 (2018-09-26) + +### Security (2 changes) + +- Project groups approvers no longer leak private groups info. +- Protect against CSRF attacks when adding Slack app. + + +## 11.1.6 (2018-08-28) + +- No changes. + +## 11.1.5 (2018-08-27) + +- No changes. +### Security (1 change) + +- Prevent regular users from moving projects to different storage shards. + + +## 11.1.4 (2018-07-30) + +- No changes. + +## 11.1.3 (2018-07-27) + +### Fixed (1 change) + +- Resolve Environments dropdown is showing on the cluster health page. !6528 + + +## 11.1.2 (2018-07-26) + +### Security (1 change) + +- Don't expose project names in EE counters. + + +## 11.1.1 (2018-07-23) + +### Fixed (2 changes) + +- Fix geo download service ImportExportDownloader unitialized constant. !6567 +- Geo - Allow repository verification to be disabled on a secondary node. !6599 + + +## 11.1.0 (2018-07-22) + +### Removed (1 change) + +- Drop ignored Geo repository_storage_path columns. !5468 + +### Fixed (19 changes, 7 of them are from the community) + +- Log audit and Geo events within a project destroy transaction. !6059 +- Do not pre-select previous user(s) when creating protected branches. !6112 +- Group SAML settings link hidden when unlicensed. !6147 +- Geo: Fix repository/wiki sync race condition with multiple updates, especially in quick succession. !6161 +- [Rails5] Fix error on missed :authenticate_user callback. !6257 (@blackst0ne) +- Rails5 fix expected: ({...}) got: ( to clipboard. !1048 + +## 8.15.8 (2017-03-19) + +- No changes. +- No changes. +- Elastic security fix: Respect feature visibility level. + +## 8.15.7 (2017-02-15) + +- No changes. + +## 8.15.6 (2017-02-14) + +- No changes. + +## 8.15.5 (2017-01-20) + +- No changes. + +## 8.15.4 (2017-01-09) + +- No changes. + +## 8.15.3 (2017-01-06) + +- Disable LDAP permission override in project members edit list. +- Perform only one fetch per push on Geo secondary nodes. + +## 8.15.2 (2016-12-27) + +- No changes. +- Fix ES search for non-default branches. + +## 8.15.1 (2016-12-23) + +- Fix 404/500 error while navigating to the 'show/destroy' pages. !993 + +## 8.15.0 (2016-12-22) + +- Adds a check ensure only active, ie. non-blocked users can be emailed from the admin panel. +- Add user activities API. +- Add milestone total weight to the milestone summary. +- Allow master/owner to change permission levels when LDAP group sync is enabled. !822 +- Geo: Improve project view UI to teach users how to clone from a secondary Geo node and push to a primary. !905 +- Technical debt follow-up from restricting pushes / merges by group. !927 +- Geo: Enables nodes to be removed even without proper license. !978 +- Update validates_hostname to 1.0.6 to fix a bug in parsing hexadecimal-looking domain names. !982 + +## 8.14.10 (2017-02-15) + +- No changes. + +## 8.14.9 (2017-02-14) + +- No changes. + +## 8.14.8 (2017-01-25) + +- No changes. + +## 8.14.7 (2017-01-21) + +- No changes. + +## 8.14.6 (2017-01-10) + +- No changes. + +## 8.14.5 (2016-12-14) + +- Add milestone total weight to the milestone summary. + +## 8.14.4 (2016-12-08) + +- No changes. + +## 8.14.3 (2016-12-02) + +- No changes. + +## 8.14.2 (2016-12-01) + +- No changes. + +## 8.14.1 (2016-11-28) + +- Fix: MergeRequestSerializer breaks on MergeRequest#rebase_dir_path when source_project doesn't exist anymore. + +## 8.14.0 (2016-11-22) + +- Added Backfill service for Geo. !861 +- Fix for autosuggested approvers(https://gitlab.com/gitlab-org/gitlab-ee/issues/1273). +- Gracefully recover from previously failed rebase. +- Disable retries for remote mirror update worker. !848 +- Fix Approvals API documentation. +- Add ability to set approvals_before_merge for project through the API. +- gitlab:check rake task checks ES version according to requirements +- Convert ASCII-8BIT LDAP DNs to UTF-8 to avoid unnecessary user deletions +- [Fix] Only owner can see "Projects" button in group edit menu + +## 8.13.12 (2017-01-21) + +- No changes. + +## 8.13.11 (2017-01-10) + +- No changes. + +## 8.13.10 (2016-12-14) + +- No changes. + +## 8.13.9 (2016-12-08) + +- No changes. + +## 8.13.8 (2016-12-02) + +- No changes. + +## 8.13.7 (2016-11-28) + +- No changes. + +## 8.13.6 (2016-11-17) + +- Disable retries for remote mirror update worker. !848 +- Fixed cache clearing on secondary Geo nodes. !869 +- Geo: fix a problem that prevented git cloning from secondary node. !873 + +## 8.13.5 (2016-11-08) + +- No changes + +## 8.13.4 (2016-11-07) + +- Weight dropdown in issue filter form does not stay selected. !826 + +## 8.13.3 (2016-11-02) + +- No changes + +## 8.13.2 (2016-10-31) + +- Don't pass a current user to Member#add_user in LDAP group sync. !830 + +## 8.13.1 (2016-10-25) + +- Hide multiple board actions if user doesnt have permissions. !816 +- Fix Elasticsearch::Transport::Transport::Errors::BadRequest when ES is enabled. !818 + +## 8.13.0 (2016-10-22) + +- Cache the last usage data to avoid unicorn timeouts +- Add user activity table and service to query for active users +- Fix 500 error updating mirror URLs for projects +- Restrict protected branch access to specific groups !645 +- Fix validations related to mirroring settings form. !773 +- Add multiple issue boards. !782 +- Fix Git access panel for Wikis when Kerberos authentication is enabled (Borja Aparicio) +- Decrease maximum time that GitLab waits for a mirror to finish !791 (Borja Aparicio) +- User groups (that can be assigned as approvers) +- Fix a search for non-default branches when ES is enabled +- Re-organized the Sidekiq queues for EE specific workers + +## 8.12.12 (2016-12-08) + +- No changes. + +## 8.12.11 (2016-12-02) + +- No changes. + +## 8.12.10 (2016-11-28) + +- No changes. + +## 8.12.9 (2016-11-07) + +- No changes + +## 8.12.8 (2016-11-02) + +- No changes + +## 8.12.7 + + - No EE-specific changes + +## 8.12.6 + + - No EE-specific changes + +## 8.12.5 + + - No EE-specific changes + +## 8.12.4 + + - [ES] Indexer works with smaller batches of repositories to not exceed NOFILE limit. !774 + +## 8.12.3 + + - Fix prevent_secrets checkbox on admin view + +## 8.12.2 + + - Fix bug when protecting a branch due to missing url paramenter in request !760 + - Ignore unknown project ID in RepositoryUpdateMirrorWorker + +## 8.12.1 + + - Prevent secrets to be pushed to the repository + - Prevent secrets to be pushed to the repository + +## 8.12.0 (2016-09-22) + + - Include more data in EE usage ping + - Reduce UPDATE queries when moving between import states on projects + - [ES] Instrument Elasticsearch::Git::Repository + - Request only the LDAP attributes we need + - Add 'Sync now' to group members page !704 + - Add repository size limits and enforce them !740 + - [ES] Instrument other Gitlab::Elastic classes + - [ES] Fix: Elasticsearch does not find partial matches in project names + - Faster Active Directory group membership resolution !719 + - [ES] Global code search + - [ES] Improve logging + - Fix projects with remote mirrors asynchronously destruction + +## 8.11.11 (2016-11-07) + +- No changes + +## 8.11.10 (2016-11-02) + +- No changes + +## 8.11.9 + + - No EE-specific changes + +## 8.11.8 + + - No EE-specific changes + +## 8.11.7 + + - Refactor Protected Branches dropdown. !687 + - Fix mirrored projects allowing empty import urls. !700 + +## 8.11.6 + + - Exclude blocked users from potential MR approvers. + +## 8.11.5 + + - API: Restore backward-compatibility for POST /projects/:id/members when membership is locked + +## 8.11.4 + + - No EE-specific changes + +## 8.11.3 + + - [ES] Add logging to indexer + - Fix missing EE-specific service parameters for Jenkins CI + - Set the correct `GL_PROTOCOL` when rebasing !691 + - [ES] Elasticsearch workers checks ES settings before running + +## 8.11.2 + + - Additional documentation on protected branches for EE + - Change slash commands docs location + +## 8.11.1 + + - Pulled due to packaging error. + +## 8.11.0 (2016-08-22) + + - Allow projects to be moved between repository storages + - Add rake task to remove old repository copies from repositories moved to another storage + - Performance improvement of push rules + - Temporary fix for #825 - LDAP sync converts access requests to members. !655 + - Optimize commit and diff changes access check to reduce git operations + - Allow syncing a group against all providers at once + - Change LdapGroupSyncWorker to use new LDAP group sync classes + - Allow LDAP `sync_ssh_keys` setting to be set to `true` + - Removed unused GitLab GEO database index + - Restrict protected branch access to specific users !581 + - Enable monitoring for ES classes + - [Elastic] Improve code search + - [Elastic] Significant improvement of global search performance + - [Fix] Push rules check existing commits in some cases + - [ES] Limit amount of retries for sidekiq jobs + - Fix Projects::UpdateMirrorService to allow tags pointing to blob objects + +## 8.10.12 + + - No EE-specific changes + +## 8.10.11 + + - No EE-specific changes + +## 8.10.10 + + - No EE-specific changes + +## 8.10.9 + + - Exclude blocked users from potential MR approvers. + +## 8.10.8 + + - No EE-specific changes + +## 8.10.7 + + - No EE-specific changes + +## 8.10.6 + + - Fix race condition with UpdateMirrorWorker Lease. !641 + +## 8.10.5 + + - Used cached value of project count in `Elastic::RepositoriesSearch` to reduce DB load. !637 + +## 8.10.4 + + - Fix available users in userselect dropdown when there is more than one userselect on the page. !604 (Rik de Groot) + - Fix updating skipped approvers in search list on removal. !604 (Rik de Groot) + +## 8.10.3 + + - Fix regression in Git Annex permission check. !599 + - [Elastic] Fix commit search for some URLs. !605 + - [Elastic][Fix] Commit search breaks for some URLs on gitlab-ce project + +## 8.10.2 + + - Fix pagination on search result page when ES search is enabled. !592 + - Decouple an ES index update from `RepositoryUpdateMirrorWorker`. !593 + - Fix broken `user_allowed?` check in Git Annex push. !597 + +## 8.10.1 + + - No EE-specific changes + +## 8.10.0 (2016-07-22) + + - Add EE license usage ping !557 + - Rename Git Hooks to Push Rules + - Fix EE keys fingerprint add index migration if came from CE + - Add todos for MR approvers !547 + - Replace LDAP group sync exclusive lease with state machine + - Prevent the author of an MR from being on the approvers list + - Isolate EE LDAP library code in EE module (Part 1) !511 + - Make Elasticsearch indexer run as an async task + - Fix of removing wiki data from index when project is deleted + - Ticket-based Kerberos authentication (SPNEGO) + - [Elastic] Suppress ActiveRecord::RecordNotFound error in ElasticIndexWorker + +## 8.9.10 + + - No EE-specific changes + +## 8.9.9 + + - No EE-specific changes + +## 8.9.8 + + - No EE-specific changes + +## 8.9.7 + + - No EE-specific changes + +## 8.9.6 + + - Avoid adding index for key fingerprint if it already exists. !539 + +## 8.9.5 + + - Fix of quoted text in lock tooltip. !518 + +## 8.9.4 + + - Improve how File Lock feature works with nested items. !497 + +## 8.9.3 + + - Fix encrypted data backwards compatibility after upgrading attr_encrypted gem. !502 + - Fix creating MRs on forks of deleted projects. !503 + - Roll back Grack::Auth to fix Git HTTP SPNEGO. !504 + +## 8.9.2 + + - [Elastic] Fix visibility of snippets when searching. + +## 8.9.1 + + - Improve Geo documentation. !431 + - Fix remote mirror stuck on started issue. !491 + - Fix MR creation from forks where target project has approvals enabled. !496 + - Fix MR edit where target project has approvals enabled. !496 + - Fix vertical alignment of git-hooks page. !499 + +## 8.9.0 (2016-06-22) + + - Fix JenkinsService test button + - Fix nil user handling in UpdateMirrorService + - Allow overriding the number of approvers for a merge request + - Allow LDAP to mark users as external based on their group membership. !432 + - Instrument instance methods of Gitlab::InsecureKeyFingerprint class + - Add API endpoint for Merge Request Approvals !449 + - Send notification email when merge request is approved + - Distribute RepositoryUpdateMirror jobs in time and add exclusive lease on them by project_id + - [Elastic] Move ES settings to application settings + - Always allow merging a merge request whenever fast-forward is possible. !454 + - Disable mirror flag for projects without import_url + - UpdateMirror service return an error status when no mirror + - Don't reset approvals when rebasing an MR from the UI + - Show flash notice when Git Hooks are updated successfully + - Remove explicit Gitlab::Metrics.action assignments, are already automatic. + - [Elastic] Project members with guest role can't access confidential issues + - Ability to lock file or folder in the repository + - Fix: Git hooks don't fire when committing from the UI + +## 8.8.9 + + - No EE-specific changes + +## 8.8.8 + + - No EE-specific changes + +## 8.8.7 + + - No EE-specific changes + +## 8.8.6 + + - [Elastic] Fix visibility of snippets when searching. + +## 8.8.5 + + - Make sure OAuth routes that we generate for Geo matches with the ones in Rails routes !444 + +## 8.8.4 + + - Remove license overusage message + +## 8.8.3 + + - Add standard web hook headers to Jenkins CI post. !374 + - Gracefully handle malformed DNs in LDAP group sync. !392 + - Reduce load on DB for license upgrade check. !421 + - Make it clear the license overusage message is visible only to admins. !423 + - Fix Git hook validations for fast-forward merges. !427 + - [Elastic] In search results, only show notes on confidential issues that the user has access to. + +## 8.8.2 + + - Fix repository mirror updates for new imports stuck in started + - [Elastic] Search through the filenames. !409 + - Fix repository mirror updates for new imports stuck in "started" state. !416 + +## 8.8.1 + + - No EE-specific changes + +## 8.8.0 (2016-05-22) + + - [Elastic] Database indexer prints its status + - [Elastic][Fix] Database indexer skips projects with invalid HEAD reference + - Fix skipping pages when restoring backups + - Add EE license via API !400 + - [Elastic] More efficient snippets search + - [Elastic] Add rake task for removing all indexes + - [Elastic] Add rake task for clearing indexing status + - [Elastic] Improve code search + - [Elastic] Fix encoding issues during indexing + - Warn admin if current active count exceeds license + - [Elastic] Search through the filenames + - Set KRB5 as default clone protocol when Kerberos is enabled and user is logged in (Borja Aparicio) + - Add support for Admin Groups to SAML + - Reduce emails-on-push HTML size by using a simple monospace font + - API requests to /internal/authorized_keys are now tagged properly + - Geo: Single Sign Out support !380 + +## 8.7.9 + + - No EE-specific changes + +## 8.7.8 + + - [Elastic] Fix visibility of snippets when searching. + +## 8.7.7 + + - No EE-specific changes + +## 8.7.6 + + - Bump GitLab Pages to 0.2.4 to fix Content-Type for predefined 404 + +## 8.7.5 + + - No EE-specific changes + +## 8.7.4 + + - Delete ProjectImportData record only if Project is not a mirror !370 + - Fixed typo in GitLab GEO license check alert !379 + - Fix LDAP access level spillover bug !499 + +## 8.7.3 + + - No EE-specific changes + +## 8.7.2 + + - Fix MR notifications for slack and hipchat when approvals are fullfiled. !325 + - GitLab Geo: Merge requests on Secondary should not check mergeable status + +## 8.7.1 + + - No EE-specific changes + +## 8.7.0 (2016-04-22) + + - Update GitLab Pages to 0.2.1: support user-defined 404 pages + - Refactor group sync to pull access level logic to its own class. !306 + - [Elastic] Stabilize database indexer if database is inconsistent + - Add ability to sync to remote mirrors. !249 + - GitLab Geo: Many replication improvements and fixes !354 + +## 8.6.9 + + - No EE-specific changes + +## 8.6.8 + + - No EE-specific changes + +## 8.6.7 + + - No EE-specific changes + +## 8.6.6 + + - Concat AD group recursive member results with regular member results. !333 + - Fix LDAP group sync regression for groups with member value `uid=`. !335 + - Don't attempt to include too large diffs in e-mail-on-push messages (Stan Hu). !338 + +## 8.6.5 + + - No EE-specific changes + +## 8.6.4 + + - No EE-specific changes + +## 8.6.3 + + - Fix other cases where git hooks would fail due to old commits. !310 + - Exit ElasticIndexerWorker's job happily if record cannot be found. !311 + - Fix "Reload with full diff" button not working (Stan Hu). !313 + +## 8.6.2 + + - Fix old commits triggering git hooks on new branches branched off another branch. !281 + - Fix issue with deleted user in audit event (Stan Hu). !284 + - Mark pending todos as done when approving a merge request. !292 + - GitLab Geo: Display Attachments from Primary node. !302 + +## 8.6.1 + + - Only rename the `light_logo` column in the `appearances` table if its not there yet. !290 + - Fix diffs in text part of email-on-push messages (Stan Hu). !293 + - Fix an issue with methods not accessible in some controllers. !295 + - Ensure Projects::ApproversController inherits from Projects::ApplicationController. !296 + +## 8.6.0 (2016-03-22) + + - Handle duplicate appearances table creation issue with upgrade from CE to EE + - Add confidential issues + - Improve weight filter for issues + - Update settings and documentation for per-install LDAP sync time + - Fire merge request webhooks when a merge request is approved + - Add full diff highlighting to Email on push + - Clear "stuck" mirror updates before periodically updating all mirrors + - LDAP: Don't render Linked LDAP groups forms when LDAP is disabled + - [Elastic] Add elastic checker to gitlab:check + - [Elastic] Added UPDATE_INDEX option to rake task + - [Elastic] Removing repository and wiki index after removing project + - [Elastic] Update index on push to wiki + - [Elastic] Use subprocesses for ElasticSearch index jobs + - [Elastic] More accurate as_indexed_json (More stable database indexer) + - [Elastic] Fix: Don't index newly created system messages and awards + - [Elastic] Fixed exception on branch removing + - [Elastic] Fix bin/elastic_repo_indexer to follow config + - GitLab Geo: OAuth authentication + - GitLab Geo: Wiki synchronization + - GitLab Geo: ReadOnly Middleware improvements + - GitLab Geo: SSH Keys synchronization + - Allow SSL verification to be configurable when importing GitHub projects + - Disable git-hooks for git annex commits + +## 8.5.13 + + - No EE-specific changes + +## 8.5.12 + + - No EE-specific changes + +## 8.5.11 + + - Fix vulnerability that made it possible to enumerate private projects belonging to group + +## 8.5.10 + + - No EE-specific changes + +## 8.5.9 + + - No EE-specific changes + +## 8.5.8 + + - GitLab Geo: Documentation + +## 8.5.7 + + - No EE-specific changes + +## 8.5.6 + + - No EE-specific changes + +## 8.5.5 + + - GitLab Geo: Repository synchronization between primary and secondary nodes + - Add documentation for GitLab Pages + - Fix importing projects from GitHub Enterprise Edition + - Fix syntax error in init file + - Only show group member roles if explicitly requested + - GitLab Geo: Improve GeoNodes Admin screen + - GitLab Geo: Avoid locking yourself out when adding a GeoNode + +## 8.5.4 + + - [Elastic][Security] Notes exposure + +## 8.5.3 + + - Prevent LDAP from downgrading a group's last owner + - Update gitlab-elastic-search gem to 0.0.11 + +## 8.5.2 + + - Update LDAP groups asynchronously + - Fix an issue when weight text was displayed in Issuable collapsed sidebar +## 8.5.2 + + - Fix importing projects from GitHub Enterprise Edition. + +## 8.5.1 + + - Fix adding pages domain to projects in groups + +## 8.5.0 (2016-02-22) + + - Fix Elasticsearch blob results linking to the wrong reference ID (Stan Hu) + - Show warning when mirror repository default branch could not be updated because it has diverged from upstream. + - More reliable wiki indexer + - GitLab Pages gets support for custom domain and custom certificate + - Fix of Elastic indexer. It should not trigger record validation for projects + - Fix of Elastic indexer. Stabilze indexer when serialized data is corrupted + - [Elastic] Don't index unnecessary data into elastic + +## 8.4.11 + + - No EE-specific changes + +## 8.4.10 + + - No EE-specific changes + +## 8.4.9 + + - Fix vulnerability that made it possible to enumerate private projects belonging to group + +## 8.4.8 + + - No EE-specific changes + +## 8.4.7 + + - No EE-specific changes + +## 8.4.6 + + - No EE-specific changes + +## 8.4.5 + + - Update LDAP groups asynchronously + +## 8.4.4 + + - Re-introduce "Send email to users" link in Admin area + - Fix category values for Jenkins and JenkinsDeprecated services + - Fix Elasticsearch indexing for newly added snippets + - Make Elasticsearch indexer more stable + - Update gitlab-elasticsearch-git to 0.0.10 which contain a few important fixes + +## 8.4.3 + + - Elasticsearch: fix partial blob indexing on push + - Elasticsearch: added advanced indexer for repositories + - Fix Mirror User dropdown + +## 8.4.2 + + - Elasticsearch indexer performance improvements + - Don't redirect away from Mirror Repository settings when repo is empty + - Fix updating of branches in mirrored repository + - Fix a 500 error preventing LDAP users with 2FA enabled from logging in + - Rake task gitlab:elastic:index_repositories handles errors and shows progress + - Partial indexing of repo on push (indexing changes only) + +## 8.4.1 + + - No EE-specific changes + +## 8.4.0 (2016-01-22) + + - Add ability to create a note for user by admin + - Fix "Commit was rejected by git hook", when max_file_size was set null in project's Git hooks + - Fix "Approvals are not reset after a new push is made if the request is coming from a fork" + - Fix "User is not automatically removed from suggested approvers list if user is deleted" + - Add option to enforce a semi-linear history by only allowing merge requests to be merged that have been rebased + - Add option to trigger builds when branches or tags are updated from a mirrored upstream repository + - Ability to use Elasticsearch as a search engine + +## 8.3.10 + + - No EE-specific changes + +## 8.3.9 + + - No EE-specific changes + +## 8.3.8 + + - Fix vulnerability that made it possible to enumerate private projects belonging to group + +## 8.3.7 + + - No EE-specific changes + +## 8.3.6 + + - No EE-specific changes + +## 8.3.5 + + - No EE-specific changes + +## 8.3.4 + + - No EE-specific changes + +## 8.3.3 + + - Fix undefined method call in Jenkins integration service + +## 8.3.2 + + - No EE-specific changes + +## 8.3.1 + + - Rename "Group Statistics" to "Contribution Analytics" + +## 8.3.0 (2015-12-22) + + - License information can now be retrieved via the API + - Show Kerberos clone url when Kerberos enabled and url different than HTTP url (Borja Aparicio) + - Fix bug with negative approvals required + - Add group contribution analytics page + - Add GitLab Pages + - Add group contribution statistics page + - Automatically import Kerberos identities from Active Directory when Kerberos is enabled (Alex Lossent) + - Canonicalization of Kerberos identities to always include realm (Alex Lossent) + +## 8.2.6 + + - No EE-specific changes + +## 8.2.5 + + - No EE-specific changes + +## 8.2.4 + + - No EE-specific changes + +## 8.2.3 + + - No EE-specific changes + +## 8.2.2 + + - Fix 404 in redirection after removing a project (Stan Hu) + - Ensure cached application settings are refreshed at startup (Stan Hu) + - Fix Error 500 when viewing user's personal projects from admin page (Stan Hu) + - Fix: Raw private snippets access workflow + - Prevent "413 Request entity too large" errors when pushing large files with LFS + - Ensure GitLab fires custom update hooks after commit via UI + +## 8.2.1 + + - Forcefully update builds that didn't want to update with state machine + - Fix: saving GitLabCiService as Admin Template + +## 8.2.0 (2015-11-22) + + - Invalidate stored jira password if the endpoint URL is changed + - Fix: Page is not reloaded periodically to check if rebase is finished + - When someone as marked as a required approver for a merge request, an email should be sent + - Allow configuring the Jira API path (Alex Lossent) + - Fix "Rebase onto master" + - Ensure a comment is properly recorded in JIRA when a merge request is accepted + - Allow groups to appear in the `Share with group` share if the group owner allows it + - Add option to mirror an upstream repository. + +## 8.1.4 + + - Fix bug in JIRA integration which prevented merge requests from being accepted when using issue closing pattern + +## 8.1.3 + + - Fix "Rebase onto master" + +## 8.1.2 + + - Prevent a 500 error related to the JIRA external issue tracker service + +## 8.1.1 + + - Removed, see 8.1.2 + +## 8.1.0 (2015-10-22) + + - Add documentation for "Share project with group" API call + - Added an issues template (Hannes Rosenögger) + - Add documentation for "Share project with group" API call + - Ability to disable 'Share with Group' feature (via UI and API) + +## 8.0.6 + + - No EE-specific changes + +## 8.0.5 + + - "Multi-project" and "Treat unstable builds as passing" parameters for + the Jenkins CI service are now correctly persisted. + - Correct the build URL when "Multi-project" is enabled for the Jenkins CI + service. + +## 8.0.4 + + - Fix multi-project setup for Jenkins + +## 8.0.3 + + - No EE-specific changes + +## 8.0.2 + + - No EE-specific changes + +## 8.0.1 + + - Correct gem dependency versions + - Re-add the "Help Text" feature that was inadvertently removed + +## 8.0.0 (2015-09-22) + + - Fix navigation issue when viewing Group Settings pages + - Guests and Reporters can approve merge request as well + - Add fast-forward merge option in project settings + - Separate rebase & fast-forward merge features + +## 7.14.3 + + - No changes + +## 7.14.2 + + - Fix the rebase before merge feature + +## 7.14.1 + + - Fix sign in form when just Kerberos is enabled + +## 7.14.0 (2015-08-22) + + - Disable adding, updating and removing members from a group that is synced with LDAP + - Don't send "Added to group" notifications when group is LDAP synched + - Fix importing projects from GitHub Enterprise Edition. + - Automatic approver suggestions (based on an authority of the code) + - Add support for Jenkins unstable status + - Automatic approver suggestions (based on an authority of the code) + - Support Kerberos ticket-based authentication for Git HTTP access + +## 7.13.3 + + - Merge community edition changes for version 7.13.3 + - Improved validation for an approver + - Don't resend admin email to everyone if one delivery fails + - Added migration for removing of invalid approvers + +## 7.13.2 + + - Fix group web hook + - Don't resend admin email to everyone if one delivery fails + +## 7.13.1 + + - Merge community edition changes for version 7.13.1 + - Fix: "Rebase before merge" doesn't work when source branch is in the same project + +## 7.13.0 (2015-07-22) + + - Fix git hook validation on initial push to master branch. + - Reset approvals on push + - Fix 500 error when the source project of an MR is deleted + - Ability to define merge request approvers + +## 7.12.2 + + - Fixed the alignment of project settings icons + +## 7.12.1 + + - No changes specific to EE + +## 7.12.0 (2015-06-22) + + - Fix error when viewing merge request with a commit that includes "Closes #". + - Enhance LDAP group synchronization to check also for member attributes that only contain "uid=" + - Enhance LDAP group synchronization to check also for submember attributes + - Prevent LDAP group sync from removing a group's last owner + - Add Git hook to validate maximum file size. + - Project setting: approve merge request by N users before accept + - Support automatic branch jobs created by Jenkins in CI Status + - Add API support for adding and removing LDAP group links + +## 7.11.4 + + - no changes specific to EE + +## 7.11.3 + + - Fixed an issue with git annex + +## 7.11.2 + + - Fixed license upload and verification mechanism + +## 7.11.0 (2015-05-22) + + - Skip git hooks commit validation when pushing new tag. + - Add Two-factor authentication (2FA) for LDAP logins + +## 7.10.1 + + - Check if comment exists in Jira before sending a reference + +## 7.10.0 (2015-04-22) + + - Improve UI for next pages: Group LDAP sync, Project git hooks, Project share with groups, Admin -> Appearance settigns + - Default git hooks for new projects + - Fix LDAP group links page by using new group members route. + - Skip email confirmation when updated via LDAP. + +## 7.9.0 (2015-03-22) + + - Strip prefixes and suffixes from synced SSH keys: + `SSHKey:ssh-rsa keykeykey` and `ssh-rsa keykeykey (SSH key)` will now work + - Check if LDAP admin group exists before querying for user membership + - Use one custom header logo for all GitLab themes in appearance settings + - Escape wildcards when searching LDAP by group name. + - Group level Web Hooks + - Don't allow project to be shared with the group it is already in. + +## 7.8.0 (2015-02-22) + + - Improved Jira issue closing integration + - Improved message logging for Jira integration + - Added option of referencing JIRA issues from GitLab + - Update Sidetiq to 0.6.3 + - Added Github Enterprise importer + - When project has MR rebase enabled, MR will have rebase checkbox selected by default + - Minor UI fixes for sidebar navigation + - Manage large binaries with git annex + +## 7.7.0 (2015-01-22) + + - Added custom header logo support (Drew Blessing) + - Fixed preview appearance bug + - Improve performance for selectboxes: project share page, admin email users page + +## 7.6.2 + + - Fix failing migrations for MySQL, LDAP + +## 7.6.1 + + - No changes + +## 7.6.0 (2014-12-22) + + - Added Audit events related to membership changes for groups and projects + - Added option to attempt a rebase before merging merge request + - Dont show LDAP groups settings if LDAP disabled + - Added member lock for groups to disallow membership additions on project level + - Rebase on merge request. Introduced merge request option to rebase before merging + - Better message for failed pushes because of git hooks + - Kerberos support for web interface and git HTTP + +## 7.5.3 + + - Only set up Sidetiq from a Sidekiq server process (fixes Redis::InheritedError) + +## 7.5.0 (2014-11-22) + + - Added an ability to check each author commit's email by regex + - Added an ability to restrict commit authors to existing GitLab users + - Add an option for automatic daily LDAP user sync + - Added git hook for preventing tag removal to API + - Added git hook for setting commit message regex to API + - Added an ability to block commits with certain filenames by regex expression + - Improved a jenkins parser + +## 7.4.4 + + - Fix broken ldap migration + +## 7.4.0 (2014-10-22) + + - Support for multiple LDAP servers + - Skip AD specific LDAP checks + - Do not show ldap users in dropdowns for groups with enabled ldap-sync + - Update the JIRA integration documentation + - Reset the homepage to show the GitLab logo by deleting the custom logo. + +## 7.3.0 (2014-09-22) + + - Add an option to change the LDAP sync time from default 1 hour + - User will receive an email when unsubscribed from admin notifications + - Show group sharing members on /my/project/team + - Improve explanation of the LDAP permission reset + - Fix some navigation issues + - Added support for multiple LDAP groups per GitLab group + +## 7.2.0 (2014-08-22) + + - Improve Redmine integration + - Better logging for the JIRA issue closing service + - Administrators can now send email to all users through the admin interface + - JIRA issue transition ID is now customizable + - LDAP group settings are now visible in admin group show page and group members page + +## 7.1.0 (2014-07-22) + + - Synchronize LDAP-enabled GitLab administrators with an LDAP group (Marvin Frick, sponsored by SinnerSchrader) + - Synchronize SSH keys with LDAP (Oleg Girko (Jolla) and Marvin Frick (SinnerSchrader)) + - Support Jenkins jobs with multiple modules (Marvin Frick, sponsored by SinnerSchrader) + +## 7.0.0 (2014-06-22) + + - Fix: empty brand images are displayed as empty image_tag on login page (Marvin Frick, sponsored by SinnerSchrader) + +## 6.9.4 + + - Fix bug in JIRA Issue closing triggered by commit messages + - Fix JIRA issue reference bug + +## 6.9.3 + + - Fix check CI status only when CI service is enabled(Daniel Aquino) + +## 6.9.2 + + - Merge community edition changes for version 6.9.2 + +## 6.9.1 + + - Merge community edition changes for version 6.9.1 + +## 6.9.0 (2014-05-22) + + - Add support for closing Jira tickets with commits and MR + - Template for Merge Request description can be added in project settings + - Jenkins CI service + - Fix LDAP email upper case bug + +## 6.8.0 (2014-04-22) + + - Customise sign-in page with custom text and logo + +## 6.7.1 + + - Handle LDAP errors in Adapter#dn_matches_filter? + +## 6.7.0 (2014-03-22) + + - Improve LDAP sign-in speed by reusing connections + - Add support for Active Directory nested LDAP groups + - Git hooks: Commit message regex + - Git hooks: Deny git tag removal + - Fix group edit in admin area + +## 6.6.0 (2014-02-22) + + - Permission reset button for LDAP groups + - Better performance with large numbers of users with access to one project + +## 6.5.0 (2014-01-22) + + - Add reset permissions button to Group#members page + +## 6.4.0 (2013-12-22) + + - Respect existing group permissions during sync with LDAP group (d3844662ec7ce816b0a85c8b40f66ee6c5ae90a1) + +## 6.3.0 (2013-11-22) + + - When looking up a user by DN, use single scope (bc8a875df1609728f1c7674abef46c01168a0d20) + - Try sAMAccountName if omniauth nickname is nil (9b7174c333fa07c44cc53b80459a115ef1856e38) + +## 6.2.0 (2013-10-22) + + - API: expose ldap_cn and ldap_access group attributes + - Use omniauth-ldap nickname attribute as GitLab username + - Improve group sharing UI for installation with many groups + - Fix empty LDAP group raises exception + - Respect LDAP user filter for git access diff --git a/CHANGELOG.md b/CHANGELOG.md index e379c23ee3c..6b446b3533b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,10 @@ entry. ## 12.2.3 +- No changes. + +## 12.2.2 + ### Security (22 changes) - Ensure only authorised users can create notes on Merge Requests and Issues. @@ -54,12 +58,17 @@ entry. - Fix SSRF via DNS rebinding in Kubernetes Integration. -## 12.2.2 - -- Unreleased due to QA failure. - ## 12.2.1 +### Fixed (2 changes) + +- Fix for embedded metrics undefined params. !31975 +- Fix "ERR value is not an integer or out of range" errors. !32126 + +### Performance (1 change) + +- Fix Gitaly N+1 calls with listing issues/MRs via API. !31938 + ### Fixed (3 changes) - Fix for embedded metrics undefined params. !31975 @@ -721,16 +730,16 @@ entry. ### Security (10 changes) +- Prevent bypass of restriction disabling web password sign in. - Hide confidential issue title on unsubscribe for anonymous users. +- Resolve: Milestones leaked via search API. - Fix url redaction for issue links. +- Add extra fields for handling basic auth on import by url page. - Fix confidential issue label disclosure on milestone view. - Filter relative links in wiki for XSS. -- Prevent XSS injection in note imports. -- Resolve: Milestones leaked via search API. -- Prevent bypass of restriction disabling web password sign in. -- Add extra fields for handling basic auth on import by url page. -- Protect Gitlab::HTTP against DNS rebinding attack. - Prevent invalid branch for merge request. +- Prevent XSS injection in note imports. +- Protect Gitlab::HTTP against DNS rebinding attack. ### Removed (5 changes, 1 of them is from the community) @@ -740,7 +749,7 @@ entry. - Make Kubernetes service templates readonly. !29044 - Remove Content-Type override for Mattermost OAuth login. (Harrison Healey) -### Fixed (116 changes, 28 of them are from the community) +### Fixed (115 changes, 28 of them are from the community) - Fix col-sm-* in forms to keep layout. !24885 (Takuya Noguchi) - Avoid 500 when rendering users ATOM data. !25408 @@ -753,7 +762,6 @@ entry. - Bring secondary button styles up to design standard. !27920 - Use FindOrCreateService to create labels and check for existing ones. !27987 (Matt Duren) - Fix "too many loops" error by handling gracefully cron schedules for non existent days. !28002 -- Handle errors in successful notes reply. !28082 - Fix 500 error when accessing charts with an anonymous user. !28091 (Diego Silva) - Allow user to set primary email first when 2FA is required. !28097 (Kartikey Tanna) - Auto-DevOps: allow to disable rollout status check. !28130 (Sergej Nikolaev ) @@ -850,14 +858,14 @@ entry. - Move Dropdown to Stick to MR View App Button. !29767 - Fix IDE commit using latest ref in branch and overriding contents. !29769 - Revert concurrent pipeline creation for pipeline schedules. !29794 -- Fix layout of group milestone header. -- Fix remote mirrors not updating after tag push. +- Fix border radii on diff files and repo files. - Fix padding of unclickable pipeline dropdown items to match links. +- Fix pipeline schedules when owner is nil. +- Fix remote mirrors not updating after tag push. +- Fix layout of group milestone header. +- Fixed show whitespace button not refetching diff content. - Change resolve button text to mark comment as resolved. - Align system note within discussion with other notes. -- Fix border radii on diff files and repo files. -- Fixed show whitespace button not refetching diff content. -- Fix pipeline schedules when owner is nil. ### Changed (35 changes, 13 of them are from the community) @@ -957,9 +965,9 @@ entry. - Link to an external dashboard from metrics dashboard. !29369 - Add labels to note event payload. !29384 (Sujay Patel) - Add Join meeting button to issues with Zoom links. !29454 -- Make task completion status available via GraphQL. - Add backtraces to Peek performance bar for SQL calls. - Added diff suggestion feature discovery popover. +- Make task completion status available via GraphQL. ### Other (62 changes, 14 of them are from the community) @@ -1014,17 +1022,17 @@ entry. - Changed the 'Created' label to 'Last Updated' on the container registry table to more accurately reflect what the date represents. !29464 - Update GitLab Pages to v1.6.1. !29559 - Indent collapsible sections. !29804 -- Group download buttons into a .btn-group. -- Change default color of award emoji button. -- Use blue for activity stream links; use monospace font for commit sha. -- Remove fixed height from MR diff headers. -- Moves the table pagination shared component. -- Add warning that gitlab-secrets isn't included in backup. -- Update merge request tabs so they no longer scroll. -- Reduce height of issue board input to align with buttons. -- Increase height of move issue dropdown. - Use grid and correct border radius for status badge. +- Remove fixed height from MR diff headers. +- Use blue for activity stream links; use monospace font for commit sha. - Moves snowplow to CE repo. +- Reduce height of issue board input to align with buttons. +- Change default color of award emoji button. +- Group download buttons into a .btn-group. +- Add warning that gitlab-secrets isn't included in backup. +- Increase height of move issue dropdown. +- Update merge request tabs so they no longer scroll. +- Moves the table pagination shared component. ## 11.11.8 @@ -1093,7 +1101,7 @@ entry. - Destroy project remote mirrors instead of disabling. !27087 -### Fixed (74 changes, 19 of them are from the community) +### Fixed (75 changes, 19 of them are from the community) - Don't create a temp reference for branch comparisons within project. !24038 - Fix some label links not appearing on group labels page and label title being a link on project labels page. !24060 (Tanya Pazitny) @@ -1154,6 +1162,7 @@ entry. - Fix uploading of LFS tracked file through UI. !28052 - Render Next badge only for gitlab.com. !28056 - Fix update head pipeline process of Pipelines for merge requests. !28057 +- Handle errors in successful notes reply. !28082 - Fix visual issues in set status modal. !28147 - Use a path for the related merge requests endpoint. !28171 - disable SSH key validation in key details view. !28180 (Roger Meier) @@ -1164,10 +1173,10 @@ entry. - Fix project visibility level validation. !28305 (Peter Marko) - Fix incorrect prefix used in new uploads for personal snippets. !28337 - Fix Rugged get_tree_entries recursive flag not working. !28494 -- Fixes next badge being always visible. - Next badge must visible when canary flag is true. -- Adds arrow icons to select option in CI/CD settings. - Vertically aligns the play button for stages. +- Fixes next badge being always visible. +- Adds arrow icons to select option in CI/CD settings. - Allow replying to individual notes from API. ### Changed (19 changes, 3 of them are from the community) @@ -1234,10 +1243,10 @@ entry. - Leave project/group from access granted email. !27892 - Allow Sentry client-side DSN to be passed on gitlab.yml. !27967 - GraphQL: improve evaluation of query complexity based on arguments and query limits. !28017 -- Adds badge for Canary environment and help link. - Support negative matches. -- Show category icons in user popover. - Added Omniauth UltraAuth strategy to GitLab. (Kartikey Tanna) +- Adds badge for Canary environment and help link. +- Show category icons in user popover. ### Other (29 changes, 8 of them are from the community) @@ -1267,9 +1276,22 @@ entry. - Remove the note in the docs that multi-line suggestions are not yet available. !28119 (hardysim) - Update gitlab-shell to v9.1.0. !28184 - Add EE fixtures to SeedFu list. !28241 +- Add some frozen string to spec/**/*.rb. (gfyoung) - Replaces CSS with BS4 utility class for pipeline schedules. - Creates a vendors folder for external CSS. -- Add some frozen string to spec/**/*.rb. (gfyoung) + +### Performance (1 change) + +- Add improvements to global search of issues and merge requests. !27817 + + +## 11.10.7 (2019-06-26) + +### Fixed (3 changes) + +- Remove a default git depth in Pipelines for merge requests. !28926 +- Fix label click scrolling to top. !29202 +- Fix scrolling to top on assignee change. !29500 ## 11.10.8 (2019-06-27) @@ -1309,7 +1331,6 @@ entry. - Fix input group height. - ## 11.10.4 (2019-05-01) ### Fixed (12 changes) @@ -1685,31 +1706,11 @@ entry. ## 11.9.3 (2019-03-27) -### Security (8 changes) - -- Disallow guest users from accessing Releases. -- Fix PDF.js vulnerability. -- Hide "related branches" when user does not have permission. -- Fix XSS in resolve conflicts form. -- Added rake task for removing EXIF data from existing uploads. -- Return cached languages if they've been detected before. -- Disallow updating namespace when updating a project. -- Use UntrustedRegexp for matching refs policy. - +- No changes. ## 11.9.2 (2019-03-26) -### Security (8 changes) - -- Disallow guest users from accessing Releases. -- Fix PDF.js vulnerability. -- Hide "related branches" when user does not have permission. -- Fix XSS in resolve conflicts form. -- Added rake task for removing EXIF data from existing uploads. -- Return cached languages if they've been detected before. -- Disallow updating namespace when updating a project. -- Use UntrustedRegexp for matching refs policy. - +- No changes. ## 11.9.1 (2019-03-25) @@ -2324,16 +2325,7 @@ entry. ## 11.7.8 (2019-03-26) -### Security (7 changes) - -- Disallow guest users from accessing Releases. -- Fix PDF.js vulnerability. -- Hide "related branches" when user does not have permission. -- Fix XSS in resolve conflicts form. -- Added rake task for removing EXIF data from existing uploads. -- Disallow updating namespace when updating a project. -- Use UntrustedRegexp for matching refs policy. - +- No changes. ## 11.7.7 (2019-03-19) @@ -2343,7 +2335,7 @@ entry. - Fixed ability to see private groups by users not belonging to given group. -## 11.7.5 (2019-02-06) +## 11.7.5 (2019-02-05) ### Fixed (8 changes) @@ -2582,10 +2574,9 @@ entry. ## 11.6.11 (2019-04-23) -### Security (2 changes) +### Security (1 change) - Fixed ability to see private groups by users not belonging to given group. -- Fix XSS in resolve conflicts form. ### Fixed (2 changes) @@ -2631,6 +2622,13 @@ entry. - Fix leaking private repository information in API. +## 11.6.9 (2019-02-04) + +### Security (1 change) + +- Use sanitized user status message for user popover. + + ## 11.6.8 (2019-01-30) - No changes. @@ -3155,7 +3153,6 @@ entry. - Fix a race condition intermittently breaking GitLab startup. !23028 - Adds margin after a deleted branch name in the activity feed. !23038 - Ignore environment validation failure. !23100 -- Fixes broken borders for reports section in MR widget. - Adds CI favicon back to jobs page. - Redirect to the pipeline builds page when a build is canceled. (Eva Kadlecova) - Fixed diff stats not showing when performance bar is enabled. @@ -3164,12 +3161,13 @@ entry. - Fix bug causing not all emails to show up in commit email selectbox. - Remove duplicate escape in job sidebar. - Fixing styling issues on the scheduled pipelines page. +- Fixes broken test in master. - Renders stuck block when runners are stuck. - Removes extra border from test reports in the merge request widget. +- Fixes broken borders for reports section in MR widget. - Only render link to branch when branch still exists in pipeline page. - Fixed source project not filtering in merge request creation compare form. - Do not reload self on hooks when creating deployment. -- Fixes broken test in master. ### Changed (38 changes, 12 of them are from the community) @@ -9627,4 +9625,3 @@ entry. ## 8.15.8 through 0.8.0 - See [changelogs/archive.md](changelogs/archive.md) - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e4c954448a5..030624b8df9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,9 @@ -## Developer Certificate of Origin + License +## Contributor license agreement -By contributing to GitLab B.V., You accept and agree to the following terms and -conditions for Your present and future Contributions submitted to GitLab B.V. -Except for the license granted herein to GitLab B.V. and recipients of software -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) +By submitting code as an individual you agree to the +[individual contributor license agreement](doc/legal/individual_contributor_license_agreement.md). +By submitting code as an entity you agree to the +[corporate contributor license agreement](doc/legal/corporate_contributor_license_agreement.md). All Documentation content that resides under the [doc/ directory](/doc) of this repository is licensed under Creative Commons: diff --git a/Gemfile b/Gemfile index 7fb9838b8b0..a5c5addf76d 100644 --- a/Gemfile +++ b/Gemfile @@ -48,6 +48,9 @@ gem 'omniauth-salesforce', '~> 1.0.5' gem 'rack-oauth2', '~> 1.9.3' gem 'jwt', '~> 2.1.0' +# Kerberos authentication. EE-only +gem 'gssapi', group: :kerberos + # Spam and anti-bot protection gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails' gem 'akismet', '~> 2.0' @@ -124,6 +127,13 @@ gem 'unf', '~> 0.1.4' # Seed data 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 gem 'html-pipeline', '~> 2.8' gem 'deckar01-task_list', '2.2.0' @@ -281,6 +291,8 @@ gem 'gon', '~> 6.2' gem 'request_store', '~> 1.3' gem 'base32', '~> 0.3.0' +gem "gitlab-license", "~> 1.0" + # Sentry integration gem 'sentry-raven', '~> 2.9' @@ -420,6 +432,9 @@ gem 'health_check', '~> 2.6.0' gem 'vmstat', '~> 2.3.0' gem 'sys-filesystem', '~> 1.1.6' +# NTP client +gem 'net-ntp' + # SSH host key support gem 'net-ssh', '~> 5.2' gem 'sshkey', '~> 2.0' @@ -449,5 +464,8 @@ gem 'unleash', '~> 0.1.5' gem 'lograge', '~> 0.5' gem 'grape_logging', '~> 1.7' +# DNS Lookup +gem 'net-dns', '~> 0.9.0' + # Countries list gem 'countries', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 3952d068678..581730b208c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,6 +80,14 @@ GEM encryptor (~> 3.0.0) attr_required (1.0.1) 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) descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) @@ -226,6 +234,19 @@ GEM doorkeeper (~> 4.3) json-jwt (~> 1.6) 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_spec (2.2.0) htmlentities (~> 4.3.3) @@ -254,6 +275,9 @@ GEM faraday (~> 0.8) faraday_middleware (0.12.2) 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 @@ -344,6 +368,7 @@ GEM jaeger-client (~> 0.10) opentracing (~> 0.4) redis (> 3.0.0, < 5.0.0) + gitlab-license (1.0.0) gitlab-markup (1.7.0) gitlab-peek (0.0.1) railties (>= 4.0.0) @@ -417,6 +442,8 @@ GEM grpc (1.19.0) google-protobuf (~> 3.1) googleapis-common-protos-types (~> 1.0.0) + gssapi (1.2.0) + ffi (>= 1.0.1) haml (5.0.4) temple (>= 0.8.0) tilt @@ -480,6 +507,7 @@ GEM atlassian-jwt multipart-post oauth (~> 0.5, >= 0.5.0) + jmespath (1.3.1) js_regex (3.1.1) character_set (~> 1.1) regexp_parser (~> 1.1) @@ -568,7 +596,9 @@ GEM mustermann (~> 1.0.0) nakayoshi_fork (0.0.4) nap (1.1.0) + net-dns (0.9.0) net-ldap (0.16.0) + net-ntp (2.1.3) net-ssh (5.2.0) netrc (0.11.0) nio4r (2.3.1) @@ -961,7 +991,7 @@ GEM sys-filesystem (1.1.6) ffi sysexits (1.2.0) - temple (0.8.0) + temple (0.8.1) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) test-prof (0.2.5) @@ -973,7 +1003,7 @@ GEM thor (0.19.4) thread_safe (0.3.6) thrift (0.11.0.0) - tilt (2.0.8) + tilt (2.0.9) timecop (0.8.1) timfel-krb5-auth (0.8.3) toml (0.2.0) @@ -1070,6 +1100,7 @@ DEPENDENCIES atlassian-jwt (~> 0.2.0) attr_encrypted (~> 3.1.0) awesome_print + aws-sdk babosa (~> 1.0.2) base32 (~> 0.3.0) batch-loader (~> 1.4.0) @@ -1107,11 +1138,15 @@ DEPENDENCIES doorkeeper (~> 4.3) doorkeeper-openid_connect (~> 1.5) ed25519 (~> 1.2) + elasticsearch-api (= 5.0.3) + elasticsearch-model (~> 0.1.9) + elasticsearch-rails (~> 0.1.9) email_reply_trimmer (~> 0.1) email_spec (~> 2.2.0) escape_utils (~> 1.1) factory_bot_rails (~> 4.8.2) faraday (~> 0.12) + faraday_middleware-aws-signers-v4 fast_blank ffaker (~> 2.10) flipper (~> 0.13.0) @@ -1136,6 +1171,7 @@ DEPENDENCIES gitaly (~> 1.58.0) github-markup (~> 1.7.0) gitlab-labkit (~> 0.5) + gitlab-license (~> 1.0) gitlab-markup (~> 1.7.0) gitlab-peek (~> 0.0.1) gitlab-sidekiq-fetcher (= 0.5.2) @@ -1154,6 +1190,7 @@ DEPENDENCIES graphql (~> 1.9.11) graphql-docs (~> 1.6.0) grpc (~> 1.19.0) + gssapi haml_lint (~> 0.31.0) hamlit (~> 2.8.8) hangouts-chat (~> 0.0.5) @@ -1185,7 +1222,9 @@ DEPENDENCIES mini_magick minitest (~> 5.11.0) nakayoshi_fork (~> 0.0.4) + net-dns (~> 0.9.0) net-ldap + net-ntp net-ssh (~> 5.2) nokogiri (~> 1.10.4) oauth2 (~> 1.4) diff --git a/app/assets/javascripts/boards/models/list.js b/app/assets/javascripts/boards/models/list.js index 080841ee82b..1edaf971afd 100644 --- a/app/assets/javascripts/boards/models/list.js +++ b/app/assets/javascripts/boards/models/list.js @@ -3,7 +3,7 @@ import { __ } from '~/locale'; import ListLabel from './label'; import ListAssignee from './assignee'; -import ListIssue from './issue'; +import ListIssue from 'ee_else_ce/boards/models/issue'; import { urlParamsToObject } from '~/lib/utils/common_utils'; import boardsStore from '../stores/boards_store'; import ListMilestone from './milestone'; diff --git a/app/assets/javascripts/clusters/clusters_bundle.js b/app/assets/javascripts/clusters/clusters_bundle.js index 1f213d5aaf2..28850710f80 100644 --- a/app/assets/javascripts/clusters/clusters_bundle.js +++ b/app/assets/javascripts/clusters/clusters_bundle.js @@ -39,6 +39,7 @@ export default class Clusters { updateKnativePath, installPrometheusPath, managePrometheusPath, + clusterEnvironmentsPath, hasRbac, clusterType, clusterStatus, @@ -79,6 +80,7 @@ export default class Clusters { installJupyterEndpoint: installJupyterPath, installKnativeEndpoint: installKnativePath, updateKnativeEndpoint: updateKnativePath, + clusterEnvironmentsEndpoint: clusterEnvironmentsPath, }); this.installApplication = this.installApplication.bind(this); @@ -109,6 +111,10 @@ export default class Clusters { this.initApplications(clusterType); this.initEnvironments(); + if (clusterEnvironmentsPath) { + this.fetchEnvironments(); + } + this.updateContainer(null, this.store.state.status, this.store.state.statusReason); this.addListeners(); @@ -162,6 +168,7 @@ export default class Clusters { render(createElement) { return createElement(Environments, { props: { + isFetching: this.state.fetchingEnvironments, environments: this.state.environments, environmentsHelpPath: this.state.environmentsHelpPath, clustersHelpPath: this.state.clustersHelpPath, @@ -172,6 +179,18 @@ export default class Clusters { }); } + fetchEnvironments() { + this.store.toggleFetchEnvironments(true); + + this.service + .fetchClusterEnvironments() + .then(data => { + this.store.toggleFetchEnvironments(false); + this.store.updateEnvironments(data.data); + }) + .catch(() => Clusters.handleError()); + } + static initDismissableCallout() { const callout = document.querySelector('.js-cluster-security-warning'); PersistentUserCallout.factory(callout); diff --git a/app/assets/javascripts/clusters/services/clusters_service.js b/app/assets/javascripts/clusters/services/clusters_service.js index 01f3732de7e..9139e0beafb 100644 --- a/app/assets/javascripts/clusters/services/clusters_service.js +++ b/app/assets/javascripts/clusters/services/clusters_service.js @@ -33,6 +33,10 @@ export default class ClusterService { return axios.delete(this.appInstallEndpointMap[appId], params); } + fetchClusterEnvironments() { + return axios.get(this.options.clusterEnvironmentsEndpoint); + } + static updateCluster(endpoint, data) { return axios.put(endpoint, data); } diff --git a/app/assets/javascripts/clusters/stores/clusters_store.js b/app/assets/javascripts/clusters/stores/clusters_store.js index 83533c88f69..a032f589ee4 100644 --- a/app/assets/javascripts/clusters/stores/clusters_store.js +++ b/app/assets/javascripts/clusters/stores/clusters_store.js @@ -84,6 +84,7 @@ export default class ClusterStore { }, }, environments: [], + fetchingEnvironments: false, }; } @@ -206,6 +207,10 @@ export default class ClusterStore { }); } + toggleFetchEnvironments(isFetching) { + this.state.fetchingEnvironments = isFetching; + } + updateEnvironments(environments = []) { this.state.environments = environments.map(environment => ({ name: environment.name, @@ -215,7 +220,7 @@ export default class ClusterStore { rolloutStatus: { instances: environment.rollout_status ? environment.rollout_status.instances : [], }, - updatedAt: environment.updatedAt, + updatedAt: environment.updated_at, })); } } diff --git a/app/assets/javascripts/gl_dropdown.js b/app/assets/javascripts/gl_dropdown.js index bdb50606a53..515402fc506 100644 --- a/app/assets/javascripts/gl_dropdown.js +++ b/app/assets/javascripts/gl_dropdown.js @@ -7,6 +7,7 @@ import fuzzaldrinPlus from 'fuzzaldrin-plus'; import axios from './lib/utils/axios_utils'; import { visitUrl } from './lib/utils/url_utility'; import { isObject } from './lib/utils/type_utility'; +import renderItem from './gl_dropdown/render'; var GitLabDropdown, GitLabDropdownFilter, GitLabDropdownRemote, GitLabDropdownInput; @@ -521,8 +522,8 @@ GitLabDropdown = (function() { html.push( this.renderItem( { - header: name, - // Add header for each group + content: name, + type: 'header', }, name, ), @@ -542,16 +543,7 @@ GitLabDropdown = (function() { }; GitLabDropdown.prototype.renderData = function(data, group) { - if (group == null) { - group = false; - } - return data.map( - (function(_this) { - return function(obj, index) { - return _this.renderItem(obj, group, index); - }; - })(this), - ); + return data.map((obj, index) => this.renderItem(obj, group || false, index)); }; GitLabDropdown.prototype.shouldPropagate = function(e) { @@ -688,104 +680,25 @@ GitLabDropdown = (function() { }; GitLabDropdown.prototype.renderItem = function(data, group, index) { - var field, html, selected, text, url, value, rowHidden; + let parent; - if (!this.options.renderRow) { - value = this.options.id ? this.options.id(data) : data.id; - - if (value) { - value = value.toString().replace(/'/g, "\\'"); - } + if (this.dropdown && this.dropdown[0]) { + parent = this.dropdown[0].parentNode; } - // Hide element - if (this.options.hideRow && this.options.hideRow(value)) { - rowHidden = true; - } - if (group == null) { - group = false; - } - if (index == null) { - // Render the row - index = false; - } - html = document.createElement('li'); - - if (rowHidden) { - html.style.display = 'none'; - } - - if (data === 'divider' || data === 'separator') { - html.className = data; - return html; - } - // Header - if (data.header != null) { - html.className = 'dropdown-header'; - html.innerHTML = data.header; - return html; - } - if (this.options.renderRow) { - // Call the render function - html = this.options.renderRow.call(this.options, data, this); - } else { - if (!selected) { - const { fieldName } = this.options; - - if (value) { - field = this.dropdown.parent().find(`input[name='${fieldName}'][value='${value}']`); - if (field.length) { - selected = true; - } - } else { - field = this.dropdown.parent().find(`input[name='${fieldName}']`); - selected = !field.length; - } - } - // Set URL - if (this.options.url != null) { - url = this.options.url(data); - } else { - url = data.url != null ? data.url : '#'; - } - // Set Text - if (this.options.text != null) { - text = this.options.text(data); - } else { - text = data.text != null ? data.text : ''; - } - if (this.highlight) { - text = data.template - ? this.highlightTemplate(text, data.template) - : this.highlightTextMatches(text, this.filterInput.val()); - } - // Create the list item & the link - var link = document.createElement('a'); - - link.href = url; - - if (this.icon) { - text = `${text}`; - link.classList.add('d-flex', 'align-items-center'); - link.innerHTML = data.icon ? data.icon + text : text; - } else if (this.highlight) { - link.innerHTML = text; - } else { - link.textContent = text; - } - - if (selected) { - link.classList.add('is-active'); - } - - if (group) { - link.dataset.group = group; - link.dataset.index = index; - } - - html.appendChild(link); - } - return html; + return renderItem({ + instance: this, + options: Object.assign({}, this.options, { + icon: this.icon, + highlight: this.highlight, + highlightText: text => this.highlightTextMatches(text, this.filterInput.val()), + highlightTemplate: this.highlightTemplate.bind(this), + parent, + }), + data, + group, + index, + }); }; GitLabDropdown.prototype.highlightTemplate = function(text, template) { @@ -809,7 +722,6 @@ GitLabDropdown = (function() { }; GitLabDropdown.prototype.noResults = function() { - var html; return ''; }; diff --git a/app/assets/javascripts/gl_dropdown/render.js b/app/assets/javascripts/gl_dropdown/render.js new file mode 100644 index 00000000000..66546aa834f --- /dev/null +++ b/app/assets/javascripts/gl_dropdown/render.js @@ -0,0 +1,158 @@ +const renderersByType = { + divider(element) { + element.classList.add('divider'); + + return element; + }, + separator(element) { + element.classList.add('separator'); + + return element; + }, + header(element, data) { + element.classList.add('dropdown-header'); + element.innerHTML = data.content; + + return element; + }, +}; + +function getPropertyWithDefault(data, options, property, defaultValue = '') { + let result; + + if (options[property] != null) { + result = options[property](data); + } else { + result = data[property] != null ? data[property] : defaultValue; + } + + return result; +} + +function getHighlightTextBuilder(text, data, options) { + if (options.highlight) { + return data.template + ? options.highlightTemplate(text, data.template) + : options.highlightText(text); + } + + return text; +} + +function getIconTextBuilder(text, data, options) { + if (options.icon) { + const wrappedText = `${text}`; + return data.icon ? `${data.icon}${wrappedText}` : wrappedText; + } + + return text; +} + +function getLinkText(data, options) { + const text = getPropertyWithDefault(data, options, 'text'); + + return [getHighlightTextBuilder, getIconTextBuilder].reduce( + (acc, fn) => fn(acc, data, options), + text, + ); +} + +function escape(text) { + return text ? String(text).replace(/'/g, "\\'") : text; +} + +function getOptionValue(data, options) { + if (options.renderRow) { + return undefined; + } + + return escape(options.id ? options.id(data) : data.id); +} + +function shouldHide(data, { options }) { + const value = getOptionValue(data, options); + + return options.hideRow && options.hideRow(value); +} + +function hideElement(element) { + element.style.display = 'none'; + + return element; +} + +function checkSelected(data, options) { + const value = getOptionValue(data, options); + + if (!options.parent) { + return !data.id; + } else if (value) { + return ( + options.parent.querySelector(`input[name='${options.fieldName}'][value='${value}']`) != null + ); + } + + return options.parent.querySelector(`input[name='${options.fieldName}']`) == null; +} + +function createLink(url, selected, options) { + const link = document.createElement('a'); + + link.href = url; + + if (options.icon) { + link.classList.add('d-flex', 'align-items-center'); + } + + link.classList.toggle('is-active', selected); + + return link; +} + +function assignTextToLink(el, data, options) { + const text = getLinkText(data, options); + + if (options.icon || options.highlight) { + el.innerHTML = text; + } else { + el.textContent = text; + } + + return el; +} + +function renderLink(row, data, { options, group, index }) { + const selected = checkSelected(data, options); + const url = getPropertyWithDefault(data, options, 'url', '#'); + const link = createLink(url, selected, options); + + assignTextToLink(link, data, options); + + if (group) { + link.dataset.group = group; + link.dataset.index = index; + } + + row.appendChild(link); + + return row; +} + +function getOptionRenderer({ options, instance }) { + return options.renderRow && ((li, data) => options.renderRow(data, instance)); +} + +function getRenderer(data, params) { + return renderersByType[data.type] || getOptionRenderer(params) || renderLink; +} + +export default function item({ data, ...params }) { + const renderer = getRenderer(data, params); + const li = document.createElement('li'); + + if (shouldHide(data, params)) { + hideElement(li); + } + + return renderer(li, data, params); +} diff --git a/app/assets/javascripts/groups/transfer_dropdown.js b/app/assets/javascripts/groups/transfer_dropdown.js index cec824a529c..e94b163dfb1 100644 --- a/app/assets/javascripts/groups/transfer_dropdown.js +++ b/app/assets/javascripts/groups/transfer_dropdown.js @@ -14,7 +14,7 @@ export default class TransferDropdown { } buildDropdown() { - const extraOptions = [{ id: '-1', text: __('No parent group') }, 'divider']; + const extraOptions = [{ id: '-1', text: __('No parent group') }, { type: 'divider' }]; this.groupDropdown.glDropdown({ selectable: true, diff --git a/app/assets/javascripts/jobs/components/environments_block.vue b/app/assets/javascripts/jobs/components/environments_block.vue index 132e50e5715..8cda7dac51f 100644 --- a/app/assets/javascripts/jobs/components/environments_block.vue +++ b/app/assets/javascripts/jobs/components/environments_block.vue @@ -79,7 +79,9 @@ export default { default: break; } - return environmentText; + return environmentText && this.hasCluster + ? `${environmentText} ${this.clusterText}` + : environmentText; }, environmentLink() { if (this.hasEnvironment) { @@ -109,6 +111,37 @@ export default { ? this.lastDeployment.deployable.build_path : ''; }, + hasCluster() { + return this.hasLastDeployment && this.lastDeployment.cluster; + }, + clusterNameOrLink() { + if (!this.hasCluster) { + return ''; + } + + const { name, path } = this.lastDeployment.cluster; + const escapedName = _.escape(name); + const escapedPath = _.escape(path); + + if (!escapedPath) { + return escapedName; + } + + return sprintf( + '%{startLink}%{name}%{endLink}', + { + startLink: ``, + name: escapedName, + endLink: '', + }, + false, + ); + }, + clusterText() { + return this.hasCluster + ? sprintf(__('Cluster %{cluster} was used.'), { cluster: this.clusterNameOrLink }, false) + : ''; + }, }, methods: { deploymentLink(name) { diff --git a/app/assets/javascripts/labels_select.js b/app/assets/javascripts/labels_select.js index f50a6e3b19d..177aa02b8e0 100644 --- a/app/assets/javascripts/labels_select.js +++ b/app/assets/javascripts/labels_select.js @@ -231,7 +231,7 @@ export default class LabelsSelect { }); } if (extraData.length) { - extraData.push('divider'); + extraData.push({ type: 'divider' }); data = extraData.concat(data); } } @@ -243,7 +243,7 @@ export default class LabelsSelect { }) .catch(() => flash(__('Error fetching labels.'))); }, - renderRow: function(label, instance) { + renderRow: function(label) { var linkEl, listItemEl, color, diff --git a/app/assets/javascripts/milestone_select.js b/app/assets/javascripts/milestone_select.js index 43949d5cc86..8f077685b07 100644 --- a/app/assets/javascripts/milestone_select.js +++ b/app/assets/javascripts/milestone_select.js @@ -100,7 +100,7 @@ export default class MilestoneSelect { }); } if (extraOptions.length) { - extraOptions.push('divider'); + extraOptions.push({ type: 'divider' }); } callback(extraOptions.concat(data)); diff --git a/app/assets/javascripts/namespace_select.js b/app/assets/javascripts/namespace_select.js index 03d349ac714..2ef081837e6 100644 --- a/app/assets/javascripts/namespace_select.js +++ b/app/assets/javascripts/namespace_select.js @@ -34,7 +34,7 @@ export default class NamespaceSelect { id: null, }; namespaces.unshift(anyNamespace); - namespaces.splice(1, 0, 'divider'); + namespaces.splice(1, 0, { type: 'divider' }); } return dataCallback(namespaces); }); diff --git a/app/assets/javascripts/pages/profiles/two_factor_auths/index.js b/app/assets/javascripts/pages/profiles/two_factor_auths/index.js index 0d377eb9c68..95936c2d1db 100644 --- a/app/assets/javascripts/pages/profiles/two_factor_auths/index.js +++ b/app/assets/javascripts/pages/profiles/two_factor_auths/index.js @@ -7,7 +7,7 @@ document.addEventListener('DOMContentLoaded', () => { const skippable = parseBoolean(twoFactorNode.dataset.twoFactorSkippable); if (skippable) { - const button = `Configure it later`; + const button = `Configure it later`; const flashAlert = document.querySelector('.flash-alert'); if (flashAlert) flashAlert.insertAdjacentHTML('beforeend', button); } diff --git a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue index ea867d30ce8..89cac42abae 100644 --- a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue +++ b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue @@ -215,6 +215,7 @@ export default { :disabled="!canChangeVisibilityLevel" name="project[visibility_level]" class="form-control select-control" + data-qa-selector="project_visibility_dropdown" >