Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Compare Revisions
v11.11.8-nxd...token_auth
Source
token_auth
Select Git revision
...
Target
v11.11.8-nxd
Select Git revision
Compare
Commits (216)
ba92981f
Update VERSION to 8.17.0-rc1
Feb 08, 2017
1bfa7425
Added help box where backlog list used to be
Feb 09, 2017
86b2f90d
Updated design
Feb 10, 2017
846cf06d
Added specs
Feb 10, 2017
74a3b917
Hides help block for boards spec
Feb 10, 2017
6df65983
Fixed new issue in boards spec
Feb 10, 2017
3c4ff902
Obly hides the help box if the close button is clicked or if issues are added
Feb 13, 2017
78e3ff13
Fixed up specs
Feb 13, 2017
44a45369
Merge branch 'asciidoctor-xss-patch' into 'security'
Feb 13, 2017
abb87f4a
Merge branch 'fix-rdoc-xss' into 'security'
Feb 13, 2017
38be71b9
Merge branch 'fix-github-import-MR-wrong-project' into 'security'
Feb 13, 2017
211c006b
Merge branch 'svg-xss-fix' into 'security'
Feb 13, 2017
e7c0d6dd
Fix migration with missing DOWNTIME entry
Feb 14, 2017
95cc6436
Fixed modal specs
Feb 14, 2017
e6f51265
Merge branch 'no-backlog-help' into '8-17-stable'
Feb 14, 2017
79b56c8a
Update VERSION to 8.17.0-rc2
Feb 14, 2017
b9e59d89
Merge branch 'lfs-noauth-public-repo' into 'master'
Feb 14, 2017
1659c79c
Merge branch 'pages-0.3.0' into 'master'
Feb 14, 2017
e77b72bd
Merge branch 'backport-ee-build-fixes' into 'master'
Feb 14, 2017
3eb7fe19
Merge branch 'widget-spec-failure' into 'master'
Feb 14, 2017
05e46a2f
Merge branch '27880-pipelines-table-not-showing-commit-branch' into 'master'
Feb 14, 2017
50d66b63
Merge branch 'mr-widget-pipelines' into 'master'
Feb 14, 2017
a4fda9f8
Merge branch 'dm-copy-as-gfm-anchor-link' into 'master'
Feb 14, 2017
8f4ad1da
Merge branch 'diff-notes-refactor' into 'master'
Feb 14, 2017
42cce7d1
Merge branch 'upgrade-babel-v6' into 'master'
Feb 14, 2017
d3496c45
Merge branch 'build-notification-null' into 'master'
Feb 14, 2017
e0d8c9d4
Merge branch '27943-contribution-list-on-profile-page-is-aligned-right' into 'master'
Feb 14, 2017
934cb7d2
Merge branch 'upgrade-webpack-v2.2' into 'master'
Feb 14, 2017
1104ac1d
Merge branch '27955-mr-notification-use-pipeline-language' into 'master'
Feb 14, 2017
8b011af4
Merge branch 'issue_27855' into 'master'
Feb 14, 2017
5dc200ed
Merge branch 'user-dropdown-settings' into 'master'
Feb 14, 2017
49213b02
Merge branch '27991-success-with-warnings-caret' into 'master'
Feb 14, 2017
8c9eea04
Merge branch 'sh-add-index-to-ci-trigger-requests' into 'master'
Feb 14, 2017
091d4efc
Merge branch 'rs-warden-blocked-users' into 'master'
Feb 14, 2017
307c7dc3
Merge branch 'fix-job-to-pipeline-renaming' into 'master'
Feb 14, 2017
c976a7c3
Merge branch 'replace-teaspoon-references' into 'master'
Feb 14, 2017
dbb530d1
Merge branch '27987-skipped-pipeline-mr-graph' into 'master'
Feb 14, 2017
a3b438c9
Merge branch '28029-improve-blockquote-formatting-on-emails' into 'master'
Feb 14, 2017
29d60620
Merge branch 'docs/merge_requests_index' into 'master'
Feb 14, 2017
26f9b823
Merge branch...
Feb 14, 2017
20f9a1c5
Merge branch '28034-icon-in-issue-search-dropdown-still-animates' into 'master'
Feb 14, 2017
e0b9743e
Merge branch '28032-tooltips-file-name' into 'master'
Feb 14, 2017
126dfc72
Merge branch 'issue-boards-docs-update' into 'master'
Feb 14, 2017
0410ac53
Merge branch '27939-fix-current-build-arrow' into 'master'
Feb 14, 2017
50020499
Merge branch 'sh-add-labels-index' into 'master'
Feb 14, 2017
e1a238c3
Merge branch 'dm-quick-fix-web-edit-new-lines' into 'master'
Feb 14, 2017
d9b2a3a8
Merge branch '27395-reduce-group-activity-sql-queries' into 'master'
Feb 14, 2017
3e84053c
Merge branch '27966-branch-ref-switcher-input-filter-broken' into 'master'
Feb 14, 2017
e40f055f
Merge branch 'fix-ar-connection-leaks' into 'master'
Feb 14, 2017
613fe2a3
Merge branch '27656-doc-ci-enable-ci' into 'master'
Feb 14, 2017
93ac8db8
Merge branch '27755-pipeline-docs' into 'master'
Feb 14, 2017
84203916
Merge branch 'issue_27317' into 'master'
Feb 14, 2017
872a530b
Remove extra CRLF at the end of the line
Feb 14, 2017
52ade20e
Merge 'dev/8-17-stable' into 8-17-stable
Feb 14, 2017
1ae19e1e
Merge remote-tracking branch 'origin/8-17-stable' into 8-17-stable
Feb 15, 2017
6e8e2dac
Merge branch '27480_deploy_keys_should_not_show_up_in_users_keys_list' into 'master'
Feb 15, 2017
7b53c263
Merge branch '27756-fix-json-404-response' into 'master'
Feb 15, 2017
f947ed54
Update VERSION to 8.17.0-rc3
Feb 15, 2017
4e2167a7
Merge branch 'issue_26714' into 'master'
Feb 17, 2017
c824e37f
Merge branch 'docs/pages-admin' into 'master'
Feb 17, 2017
3990ee4f
Merge branch '27986-text-spacing' into 'master'
Feb 17, 2017
a7b32ded
Revert "Merge branch 'docs/pages-admin' into 'master'
Feb 17, 2017
5ae32ae3
Merge branch 'docs/pages-admin' into 'master'
Feb 17, 2017
1f12aaf2
Merge branch 'sh-namespace-cleanup-deleted-projects' into 'master'
Feb 17, 2017
862141a0
Merge branch 'fix-8.17-upgrade-process' into 'master'
Feb 17, 2017
c900aa63
Merge branch 'fix-rubocop-master' into 'master'
Feb 17, 2017
8b786ede
Merge branch...
Feb 17, 2017
8f142a7a
Merge branch 'snippets-search-performance' into 'master'
Feb 17, 2017
b53c9a0a
Merge branch '28059-add-pagination-to-admin-abuse-reports' into 'master'
Feb 17, 2017
324fd44e
Merge branch '28124-mrs-don-t-show-all-merge-errors' into 'master'
Feb 17, 2017
84bffd61
Merge branch 'zj-fix-url-new-issue-presenter' into 'master'
Feb 17, 2017
f0035f89
Merge branch 'zj-remove-deprecated-ci-service' into 'master'
Feb 17, 2017
29734090
Merge branch '27925-fix-mr-stray-pipelines-api-request' into 'master'
Feb 17, 2017
621faeed
Merge branch 'docs/builds-to-jobs-massacre' into 'master'
Feb 17, 2017
f4521b99
Merge branch 'fix/import-hooks' into 'master'
Feb 17, 2017
d0d5dc8f
Merge branch '27963-tooltips-jobs' into 'master'
Feb 17, 2017
755745e8
Merge branch...
Feb 17, 2017
772b37af
Merge branch '27922-cmd-click-todo-doesn-t-work' into 'master'
Feb 17, 2017
69e0c3c5
Merge branch '27932-merge-request-pipelines-displays-json' into 'master'
Feb 17, 2017
97ea49c6
Merge branch 'add-issues-button-disable' into 'master'
Feb 17, 2017
18b8f5cb
Merge branch '27886_rebasing_fix' into 'master'
Feb 17, 2017
b0846741
Merge branch...
Feb 17, 2017
05ad6c32
Merge branch 'fix_sidekiq_concurrency_warning_message_in_admin_background_job_page' into 'master'
Feb 20, 2017
f780eddc
Merge branch 'fix-merge-service-with-no-source' into 'master'
Feb 20, 2017
6daa89fa
Merge branch 'remove-issue-and-mr-counts-from-labels-page' into 'master'
Feb 20, 2017
76583114
Merge branch 'change_queue_weight' into 'master'
Feb 20, 2017
dcd90c28
Merge branch '28313-words' into 'master'
Feb 20, 2017
adbf8b98
Merge branch 'docs/service-templates' into 'master'
Feb 20, 2017
51f82b3b
Revert "Merge branch 'fix-rubocop-master' into 'master'"
Feb 20, 2017
46152c2c
Revert "Merge branch 'sh-namespace-cleanup-deleted-projects' into 'master'"
Feb 20, 2017
0fbdb5a1
Merge branch 'merge-request-tabs-fixture' into 'master'
Feb 20, 2017
8ec7bb38
Merge branch 'dynamic-todos-fixture' into 'master'
Feb 20, 2017
cd52a3cc
Update VERSION to 8.17.0-rc4
Feb 21, 2017
88eab515
Merge branch 'updated-pages-0.3.1' into 'master'
Feb 22, 2017
cadea9ca
Merge branch '26881-backup-fails-if-data-changes' into 'master'
Feb 22, 2017
b307833f
Merge branch 'dropdown-loading-class-add' into 'master'
Feb 22, 2017
fc1855d7
Update VERSION to 8.17.0-rc5
Feb 22, 2017
15fb8475
Update CHANGELOG.md for 8.17.0
Feb 22, 2017
77254ab7
Update VERSION to 8.17.0
Feb 22, 2017
09ffa984
Merge branch 'fix-vue-production-build' into 'master'
Feb 28, 2017
116 additional commits have been omitted to prevent performance issues.
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
594 changed files
with
11975 additions
and
3788 deletions
+11975
-3788
CHANGELOG.md
CHANGELOG.md
+242
-0
GITLAB_PAGES_VERSION
GITLAB_PAGES_VERSION
+1
-1
Gemfile.lock
Gemfile.lock
+2
-2
VERSION
VERSION
+1
-1
boards_bundle.js.es6
app/assets/javascripts/boards/boards_bundle.js.es6
+47
-4
boards_backlog_help.js.es6
.../javascripts/boards/components/boards_backlog_help.js.es6
+51
-0
footer.js.es6
app/assets/javascripts/boards/components/modal/footer.js.es6
+1
-1
header.js.es6
app/assets/javascripts/boards/components/modal/header.js.es6
+1
-1
due_date_filters.js.es6
...assets/javascripts/boards/filters/due_date_filters.js.es6
+2
-1
checkmark.js
app/assets/javascripts/boards/icons/checkmark.js
+1
-0
modal_mixins.js.es6
app/assets/javascripts/boards/mixins/modal_mixins.js.es6
+9
-2
boards_store.js.es6
app/assets/javascripts/boards/stores/boards_store.js.es6
+1
-0
build.js
app/assets/javascripts/build.js
+20
-13
pipelines_bundle.js.es6
...sets/javascripts/commit/pipelines/pipelines_bundle.js.es6
+6
-3
pipelines_service.js.es6
...ets/javascripts/commit/pipelines/pipelines_service.js.es6
+16
-1
pipelines_store.js.es6
...ssets/javascripts/commit/pipelines/pipelines_store.js.es6
+1
-1
pipelines_table.js.es6
...ssets/javascripts/commit/pipelines/pipelines_table.js.es6
+2
-3
copy_as_gfm.js.es6
app/assets/javascripts/copy_as_gfm.js.es6
+6
-0
cycle_analytics_bundle.js.es6
...javascripts/cycle_analytics/cycle_analytics_bundle.js.es6
+2
-2
cycle_analytics_store.js.es6
.../javascripts/cycle_analytics/cycle_analytics_store.js.es6
+30
-20
default_event_objects.js.es6
.../javascripts/cycle_analytics/default_event_objects.js.es6
+98
-0
comment_resolve_btn.js.es6
...ascripts/diff_notes/components/comment_resolve_btn.js.es6
+6
-5
jump_to_discussion.js.es6
...vascripts/diff_notes/components/jump_to_discussion.js.es6
+6
-5
resolve_btn.js.es6
...sets/javascripts/diff_notes/components/resolve_btn.js.es6
+7
-12
resolve_count.js.es6
...ts/javascripts/diff_notes/components/resolve_count.js.es6
+1
-1
resolve_discussion_btn.js.es6
...ripts/diff_notes/components/resolve_discussion_btn.js.es6
+6
-7
diff_notes_bundle.js.es6
app/assets/javascripts/diff_notes/diff_notes_bundle.js.es6
+4
-0
resolve.js.es6
app/assets/javascripts/diff_notes/services/resolve.js.es6
+18
-30
environment_external_url.js.es6
...s/environments/components/environment_external_url.js.es6
+1
-1
filtered_search_dropdown.js.es6
...vascripts/filtered_search/filtered_search_dropdown.js.es6
+1
-1
filtered_search_dropdown_manager.js.es6
...s/filtered_search/filtered_search_dropdown_manager.js.es6
+4
-3
filtered_search_manager.js.es6
...avascripts/filtered_search/filtered_search_manager.js.es6
+2
-2
filtered_search_tokenizer.js.es6
...ascripts/filtered_search/filtered_search_tokenizer.js.es6
+4
-1
gfm_auto_complete.js.es6
app/assets/javascripts/gfm_auto_complete.js.es6
+3
-0
gl_dropdown.js
app/assets/javascripts/gl_dropdown.js
+6
-1
text_utility.js
app/assets/javascripts/lib/utils/text_utility.js
+9
-1
merge_request_tabs.js.es6
app/assets/javascripts/merge_request_tabs.js.es6
+11
-2
merge_request_widget.js.es6
app/assets/javascripts/merge_request_widget.js.es6
+4
-4
notes.js
app/assets/javascripts/notes.js
+1
-1
todos.js.es6
app/assets/javascripts/todos.js.es6
+7
-10
index.js.es6
app/assets/javascripts/vue_realtime_listener/index.js.es6
+11
-0
pipelines_table_row.js.es6
...ascripts/vue_shared/components/pipelines_table_row.js.es6
+3
-3
wikis.js.es6
app/assets/javascripts/wikis.js.es6
+1
-5
animations.scss
app/assets/stylesheets/framework/animations.scss
+1
-2
avatar.scss
app/assets/stylesheets/framework/avatar.scss
+2
-0
calendar.scss
app/assets/stylesheets/framework/calendar.scss
+2
-0
header.scss
app/assets/stylesheets/framework/header.scss
+1
-1
mobile.scss
app/assets/stylesheets/framework/mobile.scss
+1
-0
sidebar.scss
app/assets/stylesheets/framework/sidebar.scss
+13
-0
highlighted_diff_email.scss
app/assets/stylesheets/mailers/highlighted_diff_email.scss
+7
-0
boards.scss
app/assets/stylesheets/pages/boards.scss
+36
-0
merge_requests.scss
app/assets/stylesheets/pages/merge_requests.scss
+18
-9
pipelines.scss
app/assets/stylesheets/pages/pipelines.scss
+10
-4
background_jobs_controller.rb
app/controllers/admin/background_jobs_controller.rb
+1
-0
application_controller.rb
app/controllers/application_controller.rb
+1
-37
continue_params.rb
app/controllers/concerns/continue_params.rb
+1
-0
creates_commit.rb
app/controllers/concerns/creates_commit.rb
+21
-42
spammable_actions.rb
app/controllers/concerns/spammable_actions.rb
+24
-6
projects_controller.rb
app/controllers/dashboard/projects_controller.rb
+11
-12
snippets_controller.rb
app/controllers/dashboard/snippets_controller.rb
+3
-4
todos_controller.rb
app/controllers/dashboard/todos_controller.rb
+13
-1
application_controller.rb
app/controllers/explore/application_controller.rb
+1
-1
snippets_controller.rb
app/controllers/explore/snippets_controller.rb
+1
-1
help_controller.rb
app/controllers/help_controller.rb
+1
-1
jwt_controller.rb
app/controllers/jwt_controller.rb
+3
-1
koding_controller.rb
app/controllers/koding_controller.rb
+1
-1
blob_controller.rb
app/controllers/projects/blob_controller.rb
+3
-3
commit_controller.rb
app/controllers/projects/commit_controller.rb
+20
-12
git_http_client_controller.rb
app/controllers/projects/git_http_client_controller.rb
+2
-1
issues_controller.rb
app/controllers/projects/issues_controller.rb
+11
-27
lfs_api_controller.rb
app/controllers/projects/lfs_api_controller.rb
+4
-0
merge_requests_controller.rb
app/controllers/projects/merge_requests_controller.rb
+3
-3
snippets_controller.rb
app/controllers/projects/snippets_controller.rb
+10
-16
uploads_controller.rb
app/controllers/projects/uploads_controller.rb
+2
-2
root_controller.rb
app/controllers/root_controller.rb
+27
-10
search_controller.rb
app/controllers/search_controller.rb
+1
-1
snippets_controller.rb
app/controllers/snippets_controller.rb
+19
-19
users_controller.rb
app/controllers/users_controller.rb
+3
-4
notes_finder.rb
app/finders/notes_finder.rb
+1
-1
snippets_finder.rb
app/finders/snippets_finder.rb
+55
-47
appearances_helper.rb
app/helpers/appearances_helper.rb
+2
-1
builds_helper.rb
app/helpers/builds_helper.rb
+1
-1
commits_helper.rb
app/helpers/commits_helper.rb
+1
-1
import_helper.rb
app/helpers/import_helper.rb
+1
-1
milestones_helper.rb
app/helpers/milestones_helper.rb
+1
-1
page_layout_helper.rb
app/helpers/page_layout_helper.rb
+9
-0
projects_helper.rb
app/helpers/projects_helper.rb
+8
-2
submodule_helper.rb
app/helpers/submodule_helper.rb
+30
-16
issuable.rb
app/models/concerns/issuable.rb
+2
-0
routable.rb
app/models/concerns/routable.rb
+1
-1
spammable.rb
app/models/concerns/spammable.rb
+5
-1
event.rb
app/models/event.rb
+3
-3
issue.rb
app/models/issue.rb
+0
-2
merge_request.rb
app/models/merge_request.rb
+8
-3
project.rb
app/models/project.rb
+2
-2
gitlab_ci_service.rb
app/models/project_services/gitlab_ci_service.rb
+0
-8
project_snippet.rb
app/models/project_snippet.rb
+0
-4
project_wiki.rb
app/models/project_wiki.rb
+4
-0
repository.rb
app/models/repository.rb
+71
-16
service.rb
app/models/service.rb
+1
-1
snippet.rb
app/models/snippet.rb
+0
-13
user.rb
app/models/user.rb
+15
-1
project_snippet_policy.rb
app/policies/project_snippet_policy.rb
+1
-1
analytics_stage_entity.rb
app/serializers/analytics_stage_entity.rb
+1
-0
access_token_validation_service.rb
app/services/access_token_validation_service.rb
+7
-1
register_build_service.rb
app/services/ci/register_build_service.rb
+24
-12
change_service.rb
app/services/commits/change_service.rb
+20
-32
create_snippet_service.rb
app/services/create_snippet_service.rb
+6
-4
base_service.rb
app/services/files/base_service.rb
+6
-10
git_operation_service.rb
app/services/git_operation_service.rb
+7
-30
issuable_base_service.rb
app/services/issuable_base_service.rb
+18
-14
create_service.rb
app/services/issues/create_service.rb
+5
-16
update_service.rb
app/services/issues/update_service.rb
+8
-0
build_service.rb
app/services/merge_requests/build_service.rb
+18
-12
merge_service.rb
app/services/merge_requests/merge_service.rb
+29
-11
refresh_service.rb
app/services/merge_requests/refresh_service.rb
+5
-1
import_service.rb
app/services/projects/import_service.rb
+2
-1
snippet_service.rb
app/services/search/snippet_service.rb
+1
-1
spam_check_service.rb
app/services/spam_check_service.rb
+24
-0
spam_service.rb
app/services/spam_service.rb
+22
-9
system_note_service.rb
app/services/system_note_service.rb
+0
-1
update_snippet_service.rb
app/services/update_snippet_service.rb
+8
-2
file_uploader.rb
app/uploaders/file_uploader.rb
+1
-1
uploader_helper.rb
app/uploaders/uploader_helper.rb
+8
-1
importable_url_validator.rb
app/validators/importable_url_validator.rb
+11
-0
index.html.haml
app/views/admin/abuse_reports/index.html.haml
+1
-0
_form.html.haml
app/views/admin/appearances/_form.html.haml
+1
-1
_form.html.haml
app/views/admin/application_settings/_form.html.haml
+1
-1
show.html.haml
app/views/admin/background_jobs/show.html.haml
+1
-1
_resolve_all.html.haml
app/views/discussions/_resolve_all.html.haml
+1
-2
_event.atom.builder
app/views/events/_event.atom.builder
+1
-1
_note.html.haml
app/views/events/event/_note.html.haml
+1
-1
index.html.haml
app/views/help/index.html.haml
+1
-1
create.js.haml
app/views/import/base/create.js.haml
+1
-1
status.html.haml
app/views/import/bitbucket/status.html.haml
+3
-3
status.html.haml
app/views/import/gitlab/status.html.haml
+1
-1
new.html.haml
app/views/import/google_code/new.html.haml
+1
-1
status.html.haml
app/views/import/google_code/status.html.haml
+3
-3
_issue.atom.builder
app/views/issues/_issue.atom.builder
+2
-2
index.html.haml
app/views/koding/index.html.haml
+1
-1
_page.html.haml
app/views/layouts/_page.html.haml
+9
-0
_recaptcha_verification.html.haml
app/views/layouts/_recaptcha_verification.html.haml
+23
-0
devise.html.haml
app/views/layouts/devise.html.haml
+3
-0
show.html.haml
app/views/profiles/show.html.haml
+1
-1
_image.html.haml
app/views/projects/blob/_image.html.haml
+1
-1
_text.html.haml
app/views/projects/blob/_text.html.haml
+1
-1
diff.html.haml
app/views/projects/blob/diff.html.haml
+1
-1
edit.html.haml
app/views/projects/blob/edit.html.haml
+1
-1
_show.html.haml
app/views/projects/boards/_show.html.haml
+1
-0
_koding.html.haml
app/views/projects/buttons/_koding.html.haml
+1
-1
_pipeline.html.haml
app/views/projects/ci/pipelines/_pipeline.html.haml
+2
-2
_change.html.haml
app/views/projects/commit/_change.html.haml
+5
-5
_pipelines_list.haml
app/views/projects/commit/_pipelines_list.haml
+4
-1
_overview.html.haml
app/views/projects/cycle_analytics/_overview.html.haml
+1
-1
_content.html.haml
app/views/projects/diffs/_content.html.haml
+5
-2
_file_header.html.haml
app/views/projects/diffs/_file_header.html.haml
+3
-3
_parallel_view.html.haml
app/views/projects/diffs/_parallel_view.html.haml
+4
-3
_text_file.html.haml
app/views/projects/diffs/_text_file.html.haml
+4
-3
_external_url.html.haml
app/views/projects/environments/_external_url.html.haml
+1
-1
new.html.haml
app/views/projects/imports/new.html.haml
+1
-1
show.html.haml
app/views/projects/issues/show.html.haml
+4
-4
verify.html.haml
app/views/projects/issues/verify.html.haml
+3
-19
_show.html.haml
app/views/projects/merge_requests/_show.html.haml
+3
-4
_how_to_merge.html.haml
...iews/projects/merge_requests/show/_how_to_merge.html.haml
+1
-1
_heading.html.haml
app/views/projects/merge_requests/widget/_heading.html.haml
+4
-3
_show.html.haml
app/views/projects/merge_requests/widget/_show.html.haml
+4
-4
_accept.html.haml
...ews/projects/merge_requests/widget/open/_accept.html.haml
+26
-3
_build_failed.html.haml
...ojects/merge_requests/widget/open/_build_failed.html.haml
+1
-1
show.html.haml
app/views/projects/milestones/show.html.haml
+2
-3
_note.html.haml
app/views/projects/notes/_note.html.haml
+1
-2
_use.html.haml
app/views/projects/pages/_use.html.haml
+3
-1
_detailed_help.html.haml
...rvices/mattermost_slash_commands/_detailed_help.html.haml
+2
-2
_help.html.haml
...ojects/services/mattermost_slash_commands/_help.html.haml
+1
-1
_help.html.haml
...ws/projects/services/slack_slash_commands/_help.html.haml
+2
-2
_actions.html.haml
app/views/projects/snippets/_actions.html.haml
+2
-2
show.html.haml
app/views/projects/snippets/show.html.haml
+1
-1
verify.html.haml
app/views/projects/snippets/verify.html.haml
+4
-0
_index.html.haml
app/views/projects/triggers/_index.html.haml
+2
-2
git_access.html.haml
app/views/projects/wikis/git_access.html.haml
+1
-1
_results.html.haml
app/views/search/_results.html.haml
+1
-1
_snippet_blob.html.haml
app/views/search/results/_snippet_blob.html.haml
+1
-1
_snippet_title.html.haml
app/views/search/results/_snippet_title.html.haml
+1
-1
_clone_panel.html.haml
app/views/shared/_clone_panel.html.haml
+2
-1
_commit_message_container.html.haml
app/views/shared/_commit_message_container.html.haml
+1
-1
_label.html.haml
app/views/shared/_label.html.haml
+4
-6
_no_ssh.html.haml
app/views/shared/_no_ssh.html.haml
+2
-1
_form.html.haml
app/views/shared/issuable/_form.html.haml
+1
-1
_search_bar.html.haml
app/views/shared/issuable/_search_bar.html.haml
+1
-1
_actions.html.haml
app/views/snippets/_actions.html.haml
+2
-2
show.html.haml
app/views/snippets/show.html.haml
+1
-1
verify.html.haml
app/views/snippets/verify.html.haml
+4
-0
show.html.haml
app/views/users/show.html.haml
+1
-1
17662-rename-builds.yml
changelogs/unreleased/17662-rename-builds.yml
+0
-4
20452-remove-require-from-request_profiler-initializer.yml
...0452-remove-require-from-request_profiler-initializer.yml
+0
-4
20852-getting-started-project-better-blank-state-for-labels-view.yml
...ng-started-project-better-blank-state-for-labels-view.yml
+0
-4
21518_recaptcha_spam_issues.yml
changelogs/unreleased/21518_recaptcha_spam_issues.yml
+0
-4
22007-unify-projects-search.yml
changelogs/unreleased/22007-unify-projects-search.yml
+0
-4
22638-creating-a-branch-matching-a-wildcard-fails.yml
...sed/22638-creating-a-branch-matching-a-wildcard-fails.yml
+0
-4
22974-trigger-service-events-through-api.yml
...s/unreleased/22974-trigger-service-events-through-api.yml
+0
-4
23524-notify-automerge-user-of-failed-build.yml
...nreleased/23524-notify-automerge-user-of-failed-build.yml
+0
-4
23634-remove-project-grouping.yml
changelogs/unreleased/23634-remove-project-grouping.yml
+0
-4
23767-disable-storing-of-sensitive-information.yml
...leased/23767-disable-storing-of-sensitive-information.yml
+0
-4
24147-delete-env-button.yml
changelogs/unreleased/24147-delete-env-button.yml
+0
-4
24462-reduce_ldap_queries_for_lfs.yml
changelogs/unreleased/24462-reduce_ldap_queries_for_lfs.yml
+0
-4
24606-force-password-reset-on-next-login.yml
...s/unreleased/24606-force-password-reset-on-next-login.yml
+0
-4
24716-fix-ctrl-click-links.yml
changelogs/unreleased/24716-fix-ctrl-click-links.yml
+0
-4
24795_refactor_merge_request_build_service.yml
...unreleased/24795_refactor_merge_request_build_service.yml
+0
-4
24833-Allow-to-search-by-commit-hash-within-project.yml
...d/24833-Allow-to-search-by-commit-hash-within-project.yml
+0
-4
24923_nested_tasks.yml
changelogs/unreleased/24923_nested_tasks.yml
+0
-4
25134-mobile-issue-view-doesn-t-show-organization-membership.yml
...obile-issue-view-doesn-t-show-organization-membership.yml
+0
-4
25312-search-input-cmd-click-issue.yml
changelogs/unreleased/25312-search-input-cmd-click-issue.yml
+0
-4
25360-remove-flash-warning-from-login-page.yml
...unreleased/25360-remove-flash-warning-from-login-page.yml
+0
-4
25460-replace-word-users-with-members.yml
...logs/unreleased/25460-replace-word-users-with-members.yml
+0
-4
25624-anticipate-obstacles-to-removing-turbolinks.yml
...sed/25624-anticipate-obstacles-to-removing-turbolinks.yml
+0
-4
25811-pipeline-number-and-url-do-not-update-when-new-pipeline-is-triggered.yml
...-and-url-do-not-update-when-new-pipeline-is-triggered.yml
+0
-4
25910-convert-manual-action-icons-to-svg-to-propperly-position-them.yml
...manual-action-icons-to-svg-to-propperly-position-them.yml
+0
-4
25989-fix-rogue-scrollbars-on-comments.yml
...ogs/unreleased/25989-fix-rogue-scrollbars-on-comments.yml
+0
-4
26059-segoe-ui-vertical.yml
changelogs/unreleased/26059-segoe-ui-vertical.yml
+0
-4
26068_tasklist_issue.yml
changelogs/unreleased/26068_tasklist_issue.yml
+0
-4
26117-sort-pipeline-for-commit.yml
changelogs/unreleased/26117-sort-pipeline-for-commit.yml
+0
-4
26186-diff-view-plus-and-minus-signs-as-part-of-line-number.yml
...diff-view-plus-and-minus-signs-as-part-of-line-number.yml
+0
-4
26445-accessible-piplelines-buttons.yml
...gelogs/unreleased/26445-accessible-piplelines-buttons.yml
+0
-4
26447-fix-tab-list-order.yml
changelogs/unreleased/26447-fix-tab-list-order.yml
+0
-4
26468-fix-users-sort-in-admin-area.yml
changelogs/unreleased/26468-fix-users-sort-in-admin-area.yml
+0
-4
26787-add-copy-icon-hover-state.yml
changelogs/unreleased/26787-add-copy-icon-hover-state.yml
+0
-4
26852-fix-slug-for-openshift.yml
changelogs/unreleased/26852-fix-slug-for-openshift.yml
+0
-4
26863-Remove-hover-animation-from-row-elements.yml
...leased/26863-Remove-hover-animation-from-row-elements.yml
+0
-4
26920-hover-cursor-on-pagination-element.yml
...s/unreleased/26920-hover-cursor-on-pagination-element.yml
+0
-4
26947-build-status-self-link.yml
changelogs/unreleased/26947-build-status-self-link.yml
+0
-4
26982-improve-pipeline-status-icon-linking-in-widgets.yml
...26982-improve-pipeline-status-icon-linking-in-widgets.yml
+0
-4
27013-regression-in-commit-title-bar.yml
...elogs/unreleased/27013-regression-in-commit-title-bar.yml
+0
-4
27014-fix-pipeline-tooltip-wrapping.yml
...gelogs/unreleased/27014-fix-pipeline-tooltip-wrapping.yml
+0
-4
27021-line-numbers-now-in-copy-pasta-data.yml
.../unreleased/27021-line-numbers-now-in-copy-pasta-data.yml
+0
-4
27178-update-builds-link-in-project-settings.yml
...released/27178-update-builds-link-in-project-settings.yml
+0
-4
27240-make-progress-bars-consistent.yml
...gelogs/unreleased/27240-make-progress-bars-consistent.yml
+0
-4
27267-unnecessary-queries-from-projects-dashboard-atom-and-json.yml
...cessary-queries-from-projects-dashboard-atom-and-json.yml
+0
-4
27277-small-mini-pipeline-graph-glitch-upon-hover.yml
...sed/27277-small-mini-pipeline-graph-glitch-upon-hover.yml
+0
-4
27291-unify-mr-diff-file-buttons.yml
changelogs/unreleased/27291-unify-mr-diff-file-buttons.yml
+0
-4
27321-double-separator-line-in-edit-projects-settings.yml
...27321-double-separator-line-in-edit-projects-settings.yml
+0
-4
27332-mini-pipeline-graph-with-many-stages-has-no-line-spacing-in-firefox-and-safari.yml
...many-stages-has-no-line-spacing-in-firefox-and-safari.yml
+0
-4
27343-autocomplete-post-to-wrong-url-when-not-hosting-in-root.yml
...tocomplete-post-to-wrong-url-when-not-hosting-in-root.yml
+0
-5
27352-search-label-filter-header.yml
changelogs/unreleased/27352-search-label-filter-header.yml
+0
-4
27484-environment-show-name.yml
changelogs/unreleased/27484-environment-show-name.yml
+0
-4
27488-fix-jwt-version.yml
changelogs/unreleased/27488-fix-jwt-version.yml
+0
-4
27494-environment-list-column-headers.yml
...logs/unreleased/27494-environment-list-column-headers.yml
+0
-4
27516-fix-wrong-call-to-project_cache_worker-method.yml
...d/27516-fix-wrong-call-to-project_cache_worker-method.yml
+0
-4
27602-fix-avatar-border-flicker-mention-dropdown.yml
...ased/27602-fix-avatar-border-flicker-mention-dropdown.yml
+0
-4
27632_fix_mr_widget_url.yml
changelogs/unreleased/27632_fix_mr_widget_url.yml
+0
-4
27639-emoji-panel-under-the-side-panel-in-the-merge-request.yml
...emoji-panel-under-the-side-panel-in-the-merge-request.yml
+0
-4
27774-text-color-contrast-is-barely-readable-for-pipelines-visualization-graph-page-with-roboto-fonts.yml
...-pipelines-visualization-graph-page-with-roboto-fonts.yml
+0
-4
27822-default-bulk-assign-labels.yml
changelogs/unreleased/27822-default-bulk-assign-labels.yml
+0
-4
395-fix-notification-when-group-set-to-watch.yml
...released/395-fix-notification-when-group-set-to-watch.yml
+0
-4
8-15-stable.yml
changelogs/unreleased/8-15-stable.yml
+0
-4
8082-permalink-to-file.yml
changelogs/unreleased/8082-permalink-to-file.yml
+0
-4
9-0-api-changes.yml
changelogs/unreleased/9-0-api-changes.yml
+0
-4
Add-a-shash-command-for-target-merge-request-branch.yml
...d/Add-a-shash-command-for-target-merge-request-branch.yml
+0
-4
add_project_update_hook.yml
changelogs/unreleased/add_project_update_hook.yml
+0
-4
api-fix-files.yml
changelogs/unreleased/api-fix-files.yml
+0
-4
api-remove-snippets-expires-at.yml
changelogs/unreleased/api-remove-snippets-expires-at.yml
+0
-4
babel-all-the-things.yml
changelogs/unreleased/babel-all-the-things.yml
+0
-5
broken_iamge_when_doing_offline_update_check-help_page-.yml
...oken_iamge_when_doing_offline_update_check-help_page-.yml
+0
-4
clipboard-button-commit-sha.yml
changelogs/unreleased/clipboard-button-commit-sha.yml
+0
-3
contribution-calendar-scroll.yml
changelogs/unreleased/contribution-calendar-scroll.yml
+0
-4
cop-gem-fetcher.yml
changelogs/unreleased/cop-gem-fetcher.yml
+0
-4
copy-as-md.yml
changelogs/unreleased/copy-as-md.yml
+0
-4
disable-autologin-on-email-confirmation-links.yml
...eleased/disable-autologin-on-email-confirmation-links.yml
+0
-4
display-project-id.yml
changelogs/unreleased/display-project-id.yml
+0
-4
document-how-to-vue.yml
changelogs/unreleased/document-how-to-vue.yml
+0
-4
dont-delete-assigned-issuables.yml
changelogs/unreleased/dont-delete-assigned-issuables.yml
+0
-4
dz-nested-groups-improvements-2.yml
changelogs/unreleased/dz-nested-groups-improvements-2.yml
+0
-4
empty-selection-reply-shortcut.yml
changelogs/unreleased/empty-selection-reply-shortcut.yml
+0
-4
fe-commit-mr-pipelines.yml
changelogs/unreleased/fe-commit-mr-pipelines.yml
+0
-4
feature-success-warning-icons-in-stages-builds.yml
...leased/feature-success-warning-icons-in-stages-builds.yml
+0
-4
fix-27479.yml
changelogs/unreleased/fix-27479.yml
+0
-4
fix-anchor-scrolling.yml
changelogs/unreleased/fix-anchor-scrolling.yml
+0
-4
fix-api-mr-permissions.yml
changelogs/unreleased/fix-api-mr-permissions.yml
+0
-4
fix-ci-build-policy.yml
changelogs/unreleased/fix-ci-build-policy.yml
+0
-4
fix-deleting-project-again.yml
changelogs/unreleased/fix-deleting-project-again.yml
+0
-4
fix-depr-warn.yml
changelogs/unreleased/fix-depr-warn.yml
+0
-4
fix-gb-backwards-compatibility-coverage-ci-yml.yml
...leased/fix-gb-backwards-compatibility-coverage-ci-yml.yml
+0
-4
fix-guest-access-posting-to-notes.yml
changelogs/unreleased/fix-guest-access-posting-to-notes.yml
+0
-4
fix-import-encrypt-atts.yml
changelogs/unreleased/fix-import-encrypt-atts.yml
+0
-4
fix-import-group-members.yml
changelogs/unreleased/fix-import-group-members.yml
+0
-4
fix-references-header-parsing.yml
changelogs/unreleased/fix-references-header-parsing.yml
+0
-5
fix-scroll-test.yml
changelogs/unreleased/fix-scroll-test.yml
+0
-4
fix-users-deleting-public-deployment-keys.yml
.../unreleased/fix-users-deleting-public-deployment-keys.yml
+0
-4
fix_broken_diff_discussions.yml
changelogs/unreleased/fix_broken_diff_discussions.yml
+0
-4
fwn-to-find-by-full-path.yml
changelogs/unreleased/fwn-to-find-by-full-path.yml
+0
-4
get-rid-of-water-from-notification_service_spec-to-make-it-DRY.yml
...f-water-from-notification_service_spec-to-make-it-DRY.yml
+0
-4
git_to_html_redirection.yml
changelogs/unreleased/git_to_html_redirection.yml
+0
-4
go-go-gadget-webpack.yml
changelogs/unreleased/go-go-gadget-webpack.yml
+0
-4
group-label-sidebar-link.yml
changelogs/unreleased/group-label-sidebar-link.yml
+0
-4
hardcode-title-system-note.yml
changelogs/unreleased/hardcode-title-system-note.yml
+0
-4
improve-ci-example-php-doc.yml
changelogs/unreleased/improve-ci-example-php-doc.yml
+0
-4
improve-handleLocationHash-tests.yml
changelogs/unreleased/improve-handleLocationHash-tests.yml
+0
-4
issuable-sidebar-bug.yml
changelogs/unreleased/issuable-sidebar-bug.yml
+0
-4
issue-20428.yml
changelogs/unreleased/issue-20428.yml
+0
-4
issue-sidebar-empty-assignee.yml
changelogs/unreleased/issue-sidebar-empty-assignee.yml
+0
-4
issue_19262.yml
changelogs/unreleased/issue_19262.yml
+0
-4
issue_27211.yml
changelogs/unreleased/issue_27211.yml
+0
-4
jej-pages-picked-from-ee.yml
changelogs/unreleased/jej-pages-picked-from-ee.yml
+0
-4
label-promotion.yml
changelogs/unreleased/label-promotion.yml
+0
-4
markdown-plantuml.yml
changelogs/unreleased/markdown-plantuml.yml
+0
-4
misalinged-discussion-with-no-avatar-26854.yml
...unreleased/misalinged-discussion-with-no-avatar-26854.yml
+0
-4
mr-tabs-container-offset.yml
changelogs/unreleased/mr-tabs-container-offset.yml
+0
-4
newline-eslint-rule.yml
changelogs/unreleased/newline-eslint-rule.yml
+0
-4
no-sidebar-on-action-btn-click.yml
changelogs/unreleased/no-sidebar-on-action-btn-click.yml
+0
-4
no_project_notes.yml
changelogs/unreleased/no_project_notes.yml
+0
-4
pms-lowercase-system-notes.yml
changelogs/unreleased/pms-lowercase-system-notes.yml
+0
-4
redesign-searchbar-admin-project-26794.yml
...ogs/unreleased/redesign-searchbar-admin-project-26794.yml
+0
-4
redirect-to-commit-when-only-commit-found.yml
.../unreleased/redirect-to-commit-when-only-commit-found.yml
+0
-5
refresh-permissions-when-moving-projects.yml
...s/unreleased/refresh-permissions-when-moving-projects.yml
+0
-4
relative-url-assets.yml
changelogs/unreleased/relative-url-assets.yml
+0
-4
remove-deploy-key-endpoint.yml
changelogs/unreleased/remove-deploy-key-endpoint.yml
+0
-4
remove-sidekiq-backup-ar-threads.yml
changelogs/unreleased/remove-sidekiq-backup-ar-threads.yml
+0
-4
route-map.yml
changelogs/unreleased/route-map.yml
+0
-4
slash-commands-typo.yml
changelogs/unreleased/slash-commands-typo.yml
+0
-4
small-screen-fullscreen-button.yml
changelogs/unreleased/small-screen-fullscreen-button.yml
+0
-4
tc-only-mr-button-if-allowed.yml
changelogs/unreleased/tc-only-mr-button-if-allowed.yml
+0
-4
terminal-max-session-time.yml
changelogs/unreleased/terminal-max-session-time.yml
+0
-4
upgrade-omniauth.yml
changelogs/unreleased/upgrade-omniauth.yml
+0
-4
wip-mr-from-commits.yml
changelogs/unreleased/wip-mr-from-commits.yml
+0
-4
zj-format-chat-messages.yml
changelogs/unreleased/zj-format-chat-messages.yml
+0
-4
zj-requeue-pending-delete.yml
changelogs/unreleased/zj-requeue-pending-delete.yml
+0
-4
dependency_decisions.yml
config/dependency_decisions.yml
+25
-0
gitlab.yml.example
config/gitlab.yml.example
+3
-0
acts_as_taggable.rb
config/initializers/acts_as_taggable.rb
+5
-0
sidekiq_queues.yml
config/sidekiq_queues.yml
+1
-1
webpack.config.js
config/webpack.config.js
+17
-19
20130218141258_convert_closed_to_state_in_issue.rb
...igrate/20130218141258_convert_closed_to_state_in_issue.rb
+2
-0
20160519203051_add_developers_can_merge_to_protected_branches.rb
...9203051_add_developers_can_merge_to_protected_branches.rb
+2
-0
20160610201627_migrate_users_notification_level.rb
...igrate/20160610201627_migrate_users_notification_level.rb
+2
-0
20160615142710_add_index_on_requested_at_to_members.rb
...te/20160615142710_add_index_on_requested_at_to_members.rb
+7
-1
20160620115026_add_index_on_runners_locked.rb
db/migrate/20160620115026_add_index_on_runners_locked.rb
+7
-1
20160715134306_add_index_for_pipeline_user_id.rb
db/migrate/20160715134306_add_index_for_pipeline_user_id.rb
+7
-1
20170210062829_add_index_to_labels_for_title_and_project.rb
...170210062829_add_index_to_labels_for_title_and_project.rb
+12
-0
20170210075922_add_index_to_ci_trigger_requests_for_commit_id.rb
...0075922_add_index_to_ci_trigger_requests_for_commit_id.rb
+11
-0
20170210103609_add_index_to_user_agent_detail.rb
db/migrate/20170210103609_add_index_to_user_agent_detail.rb
+14
-0
20170211073944_disable_invalid_service_templates.rb
...grate/20170211073944_disable_invalid_service_templates.rb
+13
-0
20170214111112_delete_deprecated_gitlab_ci_service.rb
...ate/20170214111112_delete_deprecated_gitlab_ci_service.rb
+15
-0
schema.rb
db/schema.rb
+7
-1
build_artifacts.md
doc/administration/build_artifacts.md
+1
-96
job_artifacts.md
doc/administration/job_artifacts.md
+114
-0
index.md
doc/administration/pages/index.md
+88
-65
source.md
doc/administration/pages/source.md
+160
-91
README.md
doc/ci/README.md
+9
-9
README.md
doc/ci/build_artifacts/README.md
+1
-4
README.md
doc/ci/docker/README.md
+2
-2
using_docker_build.md
doc/ci/docker/using_docker_build.md
+41
-31
using_docker_images.md
doc/ci/docker/using_docker_images.md
+11
-11
enable_or_disable_ci.md
doc/ci/enable_or_disable_ci.md
+9
-9
environments.md
doc/ci/environments.md
+5
-5
README.md
doc/ci/examples/deployment/README.md
+1
-1
composer-npm-deploy.md
doc/ci/examples/deployment/composer-npm-deploy.md
+2
-2
php.md
doc/ci/examples/php.md
+6
-6
test-scala-application.md
doc/ci/examples/test-scala-application.md
+4
-4
git_submodules.md
doc/ci/git_submodules.md
+9
-9
features_settings.png
doc/ci/img/features_settings.png
+0
-0
permissions_settings.png
doc/ci/img/permissions_settings.png
+0
-0
pipelines-goal.svg
doc/ci/img/pipelines-goal.svg
+4
-0
types-of-pipelines.svg
doc/ci/img/types-of-pipelines.svg
+4
-0
pipelines.md
doc/ci/pipelines.md
+36
-14
README.md
doc/ci/quick_start/README.md
+37
-41
build_log.png
doc/ci/quick_start/img/build_log.png
+0
-0
builds_status.png
doc/ci/quick_start/img/builds_status.png
+0
-0
new_commit.png
doc/ci/quick_start/img/new_commit.png
+0
-0
pipelines_status.png
doc/ci/quick_start/img/pipelines_status.png
+0
-0
runners_activated.png
doc/ci/quick_start/img/runners_activated.png
+0
-0
single_commit_status_pending.png
doc/ci/quick_start/img/single_commit_status_pending.png
+0
-0
status_pending.png
doc/ci/quick_start/img/status_pending.png
+0
-0
README.md
doc/ci/runners/README.md
+70
-69
mysql.md
doc/ci/services/mysql.md
+2
-2
postgres.md
doc/ci/services/postgres.md
+2
-2
redis.md
doc/ci/services/redis.md
+1
-1
README.md
doc/ci/ssh_keys/README.md
+3
-3
README.md
doc/ci/triggers/README.md
+30
-29
builds_page.png
doc/ci/triggers/img/builds_page.png
+0
-0
trigger_single_build.png
doc/ci/triggers/img/trigger_single_build.png
+0
-0
trigger_variables.png
doc/ci/triggers/img/trigger_variables.png
+0
-0
triggers_page.png
doc/ci/triggers/img/triggers_page.png
+0
-0
README.md
doc/ci/variables/README.md
+30
-30
README.md
doc/ci/yaml/README.md
+152
-143
code_review.md
doc/development/code_review.md
+1
-1
frontend.md
doc/development/frontend.md
+6
-12
rake_tasks.md
doc/development/rake_tasks.md
+5
-5
testing.md
doc/development/testing.md
+3
-4
installation.md
doc/install/installation.md
+23
-8
README.md
doc/pages/README.md
+1
-1
getting_started_part_one.md
doc/pages/getting_started_part_one.md
+1
-0
getting_started_part_three.md
doc/pages/getting_started_part_three.md
+1
-0
getting_started_part_two.md
doc/pages/getting_started_part_two.md
+1
-0
backup_restore.md
doc/raketasks/backup_restore.md
+24
-2
README.md
doc/university/glossary/README.md
+37
-37
8.16-to-8.17.md
doc/update/8.16-to-8.17.md
+38
-9
continuous_integration.md
doc/user/admin_area/settings/continuous_integration.md
+3
-3
permissions.md
doc/user/permissions.md
+11
-11
artifacts.md
doc/user/project/builds/artifacts.md
+1
-136
build_artifacts_browser.png
doc/user/project/builds/img/build_artifacts_browser.png
+0
-0
build_artifacts_browser_button.png
...ser/project/builds/img/build_artifacts_browser_button.png
+0
-0
build_artifacts_builds_page.png
doc/user/project/builds/img/build_artifacts_builds_page.png
+0
-0
build_artifacts_pipelines_page.png
...ser/project/builds/img/build_artifacts_pipelines_page.png
+0
-0
issue_board.png
doc/user/project/img/issue_board.png
+0
-0
issue_board_search_backlog.png
doc/user/project/img/issue_board_search_backlog.png
+0
-0
issue_board_welcome_message.png
doc/user/project/img/issue_board_welcome_message.png
+0
-0
issue_boards_add_issues_modal.png
doc/user/project/img/issue_boards_add_issues_modal.png
+0
-0
issue_boards_remove_issue.png
doc/user/project/img/issue_boards_remove_issue.png
+0
-0
services_templates_redmine_example.png
...t/integrations/img/services_templates_redmine_example.png
+0
-0
services_templates.md
doc/user/project/integrations/services_templates.md
+10
-9
webhooks.md
doc/user/project/integrations/webhooks.md
+1
-1
issue_board.md
doc/user/project/issue_board.md
+27
-24
merge_requests.md
doc/user/project/merge_requests.md
+1
-169
index.md
doc/user/project/merge_requests/index.md
+169
-0
merge_when_pipeline_succeeds.md
...er/project/merge_requests/merge_when_pipeline_succeeds.md
+6
-6
versions.md
doc/user/project/merge_requests/versions.md
+7
-10
new_ci_build_permissions_model.md
doc/user/project/new_ci_build_permissions_model.md
+41
-41
getting_started_part_four.md
doc/user/project/pages/getting_started_part_four.md
+382
-0
getting_started_part_one.md
doc/user/project/pages/getting_started_part_one.md
+106
-0
getting_started_part_three.md
doc/user/project/pages/getting_started_part_three.md
+190
-0
getting_started_part_two.md
doc/user/project/pages/getting_started_part_two.md
+154
-0
add_certificate_to_pages.png
doc/user/project/pages/img/add_certificate_to_pages.png
+0
-0
choose_ci_template.png
doc/user/project/pages/img/choose_ci_template.png
+0
-0
dns_add_new_a_record_example_updated.png
...roject/pages/img/dns_add_new_a_record_example_updated.png
+0
-0
dns_cname_record_example.png
doc/user/project/pages/img/dns_cname_record_example.png
+0
-0
pages_create_project.png
doc/user/project/pages/img/pages_create_project.png
+0
-0
pages_create_user_page.png
doc/user/project/pages/img/pages_create_user_page.png
+0
-0
pages_dns_details.png
doc/user/project/pages/img/pages_dns_details.png
+0
-0
pages_multiple_domains.png
doc/user/project/pages/img/pages_multiple_domains.png
+0
-0
pages_new_domain_button.png
doc/user/project/pages/img/pages_new_domain_button.png
+0
-0
pages_remove.png
doc/user/project/pages/img/pages_remove.png
+0
-0
pages_upload_cert.png
doc/user/project/pages/img/pages_upload_cert.png
+0
-0
remove_fork_relashionship.png
doc/user/project/pages/img/remove_fork_relashionship.png
+0
-0
setup_ci.png
doc/user/project/pages/img/setup_ci.png
+0
-0
index.md
doc/user/project/pages/index.md
+49
-435
introduction.md
doc/user/project/pages/introduction.md
+447
-0
job_artifacts_browser.png
doc/user/project/pipelines/img/job_artifacts_browser.png
+0
-0
job_artifacts_browser_button.png
...er/project/pipelines/img/job_artifacts_browser_button.png
+0
-0
job_artifacts_builds_page.png
doc/user/project/pipelines/img/job_artifacts_builds_page.png
+0
-0
job_artifacts_pipelines_page.png
...er/project/pipelines/img/job_artifacts_pipelines_page.png
+0
-0
job_latest_artifacts_browser.png
...er/project/pipelines/img/job_latest_artifacts_browser.png
+0
-0
pipelines_settings_test_coverage.png
...roject/pipelines/img/pipelines_settings_test_coverage.png
+0
-0
pipelines_test_coverage_mr_widget.png
...oject/pipelines/img/pipelines_test_coverage_mr_widget.png
+0
-0
job_artifacts.md
doc/user/project/pipelines/job_artifacts.md
+118
-0
settings.md
doc/user/project/pipelines/settings.md
+8
-8
slash_commands.md
doc/user/project/slash_commands.md
+1
-1
README.md
doc/workflow/README.md
+1
-1
shortcuts.md
doc/workflow/shortcuts.md
+2
-2
todos.md
doc/workflow/todos.md
+2
-2
revert.rb
features/steps/project/commits/revert.rb
+1
-0
commits.rb
lib/api/commits.rb
+2
-2
helpers.rb
lib/api/helpers.rb
+4
-0
issues.rb
lib/api/issues.rb
+5
-1
project_snippets.rb
lib/api/project_snippets.rb
+8
-3
snippets.rb
lib/api/snippets.rb
+8
-3
commits.rb
lib/api/v3/commits.rb
+196
-0
issues.rb
lib/api/v3/issues.rb
+6
-4
project_snippets.rb
lib/api/v3/project_snippets.rb
+8
-3
files.rb
lib/backup/files.rb
+16
-1
external_link_filter.rb
lib/banzai/filter/external_link_filter.rb
+18
-18
image_link_filter.rb
lib/banzai/filter/image_link_filter.rb
+2
-2
markdown_filter.rb
lib/banzai/filter/markdown_filter.rb
+1
-1
sanitization_filter.rb
lib/banzai/filter/sanitization_filter.rb
+0
-22
syntax_highlight_filter.rb
lib/banzai/filter/syntax_highlight_filter.rb
+1
-1
video_link_filter.rb
lib/banzai/filter/video_link_filter.rb
+1
-0
gfm_pipeline.rb
lib/banzai/pipeline/gfm_pipeline.rb
+1
-1
markup_pipeline.rb
lib/banzai/pipeline/markup_pipeline.rb
+13
-0
html.rb
lib/banzai/renderer/html.rb
+13
-0
asciidoc.rb
lib/gitlab/asciidoc.rb
+3
-1
auth.rb
lib/gitlab/auth.rb
+22
-12
issuable.rb
lib/gitlab/chat_commands/presenters/issuable.rb
+1
-1
issue_new.rb
lib/gitlab/chat_commands/presenters/issue_new.rb
+2
-2
code_stage.rb
lib/gitlab/cycle_analytics/code_stage.rb
+4
-0
issue_stage.rb
lib/gitlab/cycle_analytics/issue_stage.rb
+4
-0
plan_stage.rb
lib/gitlab/cycle_analytics/plan_stage.rb
+4
-0
production_stage.rb
lib/gitlab/cycle_analytics/production_stage.rb
+4
-0
review_stage.rb
lib/gitlab/cycle_analytics/review_stage.rb
+4
-0
staging_stage.rb
lib/gitlab/cycle_analytics/staging_stage.rb
+4
-0
test_stage.rb
lib/gitlab/cycle_analytics/test_stage.rb
+4
-0
database.rb
lib/gitlab/database.rb
+1
-1
migration_helpers.rb
lib/gitlab/database/migration_helpers.rb
+58
-1
importer.rb
lib/gitlab/github_import/importer.rb
+7
-3
gon_helper.rb
lib/gitlab/gon_helper.rb
+2
-2
command_line_util.rb
lib/gitlab/import_export/command_line_util.rb
+0
-12
file_importer.rb
lib/gitlab/import_export/file_importer.rb
+5
-1
repo_restorer.rb
lib/gitlab/import_export/repo_restorer.rb
+2
-19
other_markup.rb
lib/gitlab/other_markup.rb
+2
-0
project_search_results.rb
lib/gitlab/project_search_results.rb
+4
-0
shell.rb
lib/gitlab/shell.rb
+3
-1
snippet_search_results.rb
lib/gitlab/snippet_search_results.rb
+2
-2
upgrader.rb
lib/gitlab/upgrader.rb
+1
-0
url_blocker.rb
lib/gitlab/url_blocker.rb
+67
-0
url_sanitizer.rb
lib/gitlab/url_sanitizer.rb
+2
-0
check.rake
lib/tasks/gitlab/check.rake
+27
-2
db.rake
lib/tasks/gitlab/db.rake
+4
-3
package.json
package.json
+9
-10
todos_controller_spec.rb
spec/controllers/dashboard/todos_controller_spec.rb
+31
-0
keys_controller_spec.rb
spec/controllers/profiles/keys_controller_spec.rb
+9
-10
blob_controller_spec.rb
spec/controllers/projects/blob_controller_spec.rb
+40
-25
commit_controller_spec.rb
spec/controllers/projects/commit_controller_spec.rb
+18
-18
imports_controller_spec.rb
spec/controllers/projects/imports_controller_spec.rb
+8
-1
issues_controller_spec.rb
spec/controllers/projects/issues_controller_spec.rb
+143
-2
merge_requests_controller_spec.rb
spec/controllers/projects/merge_requests_controller_spec.rb
+30
-0
snippets_controller_spec.rb
spec/controllers/projects/snippets_controller_spec.rb
+165
-21
uploads_controller_spec.rb
spec/controllers/projects/uploads_controller_spec.rb
+10
-54
root_controller_spec.rb
spec/controllers/root_controller_spec.rb
+31
-5
snippets_controller_spec.rb
spec/controllers/snippets_controller_spec.rb
+270
-174
uploads_controller_spec.rb
spec/controllers/uploads_controller_spec.rb
+22
-0
keys.rb
spec/factories/keys.rb
+5
-2
notes.rb
spec/factories/notes.rb
+5
-1
projects.rb
spec/factories/projects.rb
+4
-0
users.rb
spec/factories/users.rb
+8
-0
admin_abuse_reports_spec.rb
spec/features/admin/admin_abuse_reports_spec.rb
+19
-0
admin_labels_spec.rb
spec/features/admin/admin_labels_spec.rb
+6
-5
dashboard_issues_spec.rb
spec/features/atom/dashboard_issues_spec.rb
+8
-7
issues_spec.rb
spec/features/atom/issues_spec.rb
+7
-4
add_issues_modal_spec.rb
spec/features/boards/add_issues_modal_spec.rb
+17
-5
backlog_help_spec.rb
spec/features/boards/backlog_help_spec.rb
+47
-0
boards_spec.rb
spec/features/boards/boards_spec.rb
+10
-0
modal_filter_spec.rb
spec/features/boards/modal_filter_spec.rb
+4
-0
new_issue_spec.rb
spec/features/boards/new_issue_spec.rb
+4
-0
copy_as_gfm_spec.rb
spec/features/copy_as_gfm_spec.rb
+2
-0
snippets_spec.rb
spec/features/dashboard/snippets_spec.rb
+47
-0
filter_issues_spec.rb
spec/features/issues/filtered_search/filter_issues_spec.rb
+22
-0
gfm_autocomplete_spec.rb
spec/features/issues/gfm_autocomplete_spec.rb
+14
-0
issues_spec.rb
spec/features/issues_spec.rb
+3
-1
login_spec.rb
spec/features/login_spec.rb
+16
-0
create_new_mr_spec.rb
spec/features/merge_requests/create_new_mr_spec.rb
+15
-0
mini_pipeline_graph_spec.rb
spec/features/merge_requests/mini_pipeline_graph_spec.rb
+1
-1
widget_spec.rb
spec/features/merge_requests/widget_spec.rb
+15
-2
milestone_spec.rb
spec/features/milestone_spec.rb
+1
-1
builds_spec.rb
spec/features/projects/builds_spec.rb
+4
-0
cherry_pick_spec.rb
spec/features/projects/commit/cherry_pick_spec.rb
+1
-0
pipelines_spec.rb
spec/features/projects/pipelines/pipelines_spec.rb
+4
-0
ref_switcher_spec.rb
spec/features/projects/ref_switcher_spec.rb
+5
-3
snippets_spec.rb
spec/features/projects/snippets_spec.rb
+20
-4
explore_spec.rb
spec/features/snippets/explore_spec.rb
+21
-4
internal_snippet_spec.rb
spec/features/snippets/internal_snippet_spec.rb
+23
-0
snippets_spec.rb
spec/features/users/snippets_spec.rb
+39
-7
snippets_finder_spec.rb
spec/finders/snippets_finder_spec.rb
+90
-27
events_helper_spec.rb
spec/helpers/events_helper_spec.rb
+19
-1
milestones_helper_spec.rb
spec/helpers/milestones_helper_spec.rb
+1
-1
projects_helper_spec.rb
spec/helpers/projects_helper_spec.rb
+8
-0
submodule_helper_spec.rb
spec/helpers/submodule_helper_spec.rb
+12
-0
quick_submit_spec.js
spec/javascripts/behaviors/quick_submit_spec.js
+1
-1
pipelines_store_spec.js.es6
.../javascripts/commit/pipelines/pipelines_store_spec.js.es6
+3
-0
dropdown_user_spec.js.es6
spec/javascripts/filtered_search/dropdown_user_spec.js.es6
+2
-2
filtered_search_tokenizer_spec.js.es6
...pts/filtered_search/filtered_search_tokenizer_spec.js.es6
+23
-0
.gitignore
spec/javascripts/fixtures/.gitignore
+1
-0
merge_request_tabs.html.haml
spec/javascripts/fixtures/merge_request_tabs.html.haml
+0
-22
merge_requests.rb
spec/javascripts/fixtures/merge_requests.rb
+36
-0
todos.json
spec/javascripts/fixtures/todos.json
+0
-4
todos.rb
spec/javascripts/fixtures/todos.rb
+52
-0
gl_dropdown_spec.js.es6
spec/javascripts/gl_dropdown_spec.js.es6
+22
-6
merge_request_tabs_spec.js
spec/javascripts/merge_request_tabs_spec.js
+36
-8
right_sidebar_spec.js
spec/javascripts/right_sidebar_spec.js
+2
-2
todos_spec.js
spec/javascripts/todos_spec.js
+63
-0
external_link_filter_spec.rb
spec/lib/banzai/filter/external_link_filter_spec.rb
+48
-37
markdown_filter_spec.rb
spec/lib/banzai/filter/markdown_filter_spec.rb
+19
-0
sanitization_filter_spec.rb
spec/lib/banzai/filter/sanitization_filter_spec.rb
+4
-3
syntax_highlight_filter_spec.rb
spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
+3
-3
asciidoc_spec.rb
spec/lib/gitlab/asciidoc_spec.rb
+31
-0
issue_show_spec.rb
spec/lib/gitlab/chat_commands/presenters/issue_show_spec.rb
+15
-0
migration_helpers_spec.rb
spec/lib/gitlab/database/migration_helpers_spec.rb
+75
-0
database_spec.rb
spec/lib/gitlab/database_spec.rb
+6
-0
file_importer_spec.rb
spec/lib/gitlab/import_export/file_importer_spec.rb
+5
-0
repo_restorer_spec.rb
spec/lib/gitlab/import_export/repo_restorer_spec.rb
+40
-0
other_markup_spec.rb
spec/lib/gitlab/other_markup_spec.rb
+27
-0
project_search_results_spec.rb
spec/lib/gitlab/project_search_results_spec.rb
+72
-3
url_blocker_spec.rb
spec/lib/gitlab/url_blocker_spec.rb
+65
-0
spammable_spec.rb
spec/models/concerns/spammable_spec.rb
+18
-1
merge_request_spec.rb
spec/models/merge_request_spec.rb
+44
-0
project_spec.rb
spec/models/project_spec.rb
+14
-0
repository_spec.rb
spec/models/repository_spec.rb
+19
-8
snippet_spec.rb
spec/models/snippet_spec.rb
+0
-40
user_spec.rb
spec/models/user_spec.rb
+29
-0
project_snippet_policy_spec.rb
spec/policies/project_snippet_policy_spec.rb
+65
-15
commits_spec.rb
spec/requests/api/commits_spec.rb
+14
-0
files_spec.rb
spec/requests/api/files_spec.rb
+14
-0
issues_spec.rb
spec/requests/api/issues_spec.rb
+27
-0
project_snippets_spec.rb
spec/requests/api/project_snippets_spec.rb
+66
-26
snippets_spec.rb
spec/requests/api/snippets_spec.rb
+61
-5
issues_spec.rb
spec/requests/api/v3/issues_spec.rb
+27
-0
project_snippets_spec.rb
spec/requests/api/v3/project_snippets_spec.rb
+66
-26
lfs_http_spec.rb
spec/requests/lfs_http_spec.rb
+1
-0
register_build_service_spec.rb
spec/services/ci/register_build_service_spec.rb
+45
-0
create_service_spec.rb
spec/services/issues/create_service_spec.rb
+0
-10
build_service_spec.rb
spec/services/merge_requests/build_service_spec.rb
+47
-8
merge_service_spec.rb
spec/services/merge_requests/merge_service_spec.rb
+20
-9
refresh_service_spec.rb
spec/services/merge_requests/refresh_service_spec.rb
+32
-9
import_service_spec.rb
spec/services/projects/import_service_spec.rb
+20
-0
spam_service_spec.rb
spec/services/spam_service_spec.rb
+43
-28
system_note_service_spec.rb
spec/services/system_note_service_spec.rb
+0
-39
refresh_authorized_projects_service_spec.rb
...ervices/users/refresh_authorized_projects_service_spec.rb
+30
-0
new.html.haml_spec.rb
spec/views/projects/imports/new.html.haml_spec.rb
+22
-0
yarn.lock
yarn.lock
+4310
-0
No files found.
CHANGELOG.md
View file @
8d441c81
This diff is collapsed.
Click to expand it.
GITLAB_PAGES_VERSION
View file @
8d441c81
0.
2.4
0.
3.2
Gemfile.lock
View file @
8d441c81
...
...
@@ -661,7 +661,7 @@ GEM
sexp_processor (~> 4.1)
rubyntlm (0.5.2)
rubypants (0.2.0)
rubyzip (1.2.
0
)
rubyzip (1.2.
1
)
rufus-scheduler (3.1.10)
rugged (0.24.0)
safe_yaml (1.0.4)
...
...
@@ -1011,4 +1011,4 @@ DEPENDENCIES
wikicloth (= 0.8.1)
BUNDLED WITH
1.14.
2
1.14.
5
VERSION
View file @
8d441c81
8.17.
0-pre
8.17.
8
app/assets/javascripts/boards/boards_bundle.js.es6
View file @
8d441c81
...
...
@@ -16,6 +16,7 @@ require('./components/board');
require('./components/board_sidebar');
require('./components/new_list_dropdown');
require('./components/modal/index');
const backlogHelp = require('./components/boards_backlog_help');
require('../vue_shared/vue_resource_interceptor');
$(() => {
...
...
@@ -37,6 +38,7 @@ $(() => {
'board': gl.issueBoards.Board,
'board-sidebar': gl.issueBoards.BoardSidebar,
'board-add-issues-modal': gl.issueBoards.IssuesModal,
backlogHelp,
},
data: {
state: Store.state,
...
...
@@ -53,6 +55,11 @@ $(() => {
detailIssueVisible () {
return Object.keys(this.detailIssue.issue).length;
},
hideHelp() {
if (this.loading) return false;
return !this.state.helpHidden;
},
},
created () {
gl.boardService = new BoardService(this.endpoint, this.bulkUpdatePath, this.boardId);
...
...
@@ -94,17 +101,53 @@ $(() => {
modal: ModalStore.store,
store: Store.state,
},
watch: {
disabled() {
this.updateTooltip();
},
},
computed: {
disabled() {
return Store.shouldAddBlankState();
return !this.store.lists.filter(list => list.type !== 'blank' && list.type !== 'done').length;
},
tooltipTitle() {
if (this.disabled) {
return 'Please add a list to your board first';
}
return '';
},
},
methods: {
updateTooltip() {
const $tooltip = $(this.$el);
this.$nextTick(() => {
if (this.disabled) {
$tooltip.tooltip();
} else {
$tooltip.tooltip('destroy');
}
});
},
openModal() {
if (!this.disabled) {
this.toggleModal(true);
}
},
},
mounted() {
this.updateTooltip();
},
template: `
<button
class="btn btn-create pull-right prepend-left-10
has-tooltip
"
class="btn btn-create pull-right prepend-left-10"
type="button"
:disabled="disabled"
@click="toggleModal(true)">
data-placement="bottom"
:class="{ 'disabled': disabled }"
:title="tooltipTitle"
:aria-disabled="disabled"
@click="openModal">
Add issues
</button>
`,
...
...
app/assets/javascripts/boards/components/boards_backlog_help.js.es6
0 → 100644
View file @
8d441c81
const Vue = require('vue');
const checkmarkIcon = require('../icons/checkmark');
const Store = gl.issueBoards.BoardsStore;
const ModalStore = gl.issueBoards.ModalStore;
module.exports = Vue.extend({
mixins: [gl.issueBoards.ModalMixins],
data() {
return ModalStore.store;
},
computed: {
disabled() {
return !Store.state.lists
.filter(list => list.type !== 'blank' && list.type !== 'done').length;
},
},
template: `
<div class="boards-backlog-help text-center">
<h4>
We moved the Backlog
<button
type="button"
class="close"
aria-label="Close backlog help"
@click="toggleModal(false)">
<i
class="fa fa-times"
aria-hidden="true">
</i>
</button>
</h4>
<div class="backlog-help-icon">${checkmarkIcon}</div>
<p>
<a href="http://docs.gitlab.com/ce/user/project/issue_board.html">Read the docs</a> for more details
</p>
<p>
Populate the board using this button
</p>
<div class="text-center">
<button
class="btn btn-success"
type="button"
:disabled="disabled"
@click="toggleModal(true, false)">
Add issues
</button>
</div>
</div>
`,
});
app/assets/javascripts/boards/components/modal/footer.js.es6
View file @
8d441c81
...
...
@@ -74,7 +74,7 @@ require('./lists_dropdown');
<button
class="btn btn-default pull-right"
type="button"
@click="toggleModal(false)">
@click="toggleModal(false
, false
)">
Cancel
</button>
</footer>
...
...
app/assets/javascripts/boards/components/modal/header.js.es6
View file @
8d441c81
...
...
@@ -57,7 +57,7 @@ const modalFilters = require('./filters');
class="close"
data-dismiss="modal"
aria-label="Close"
@click="toggleModal(false)">
@click="toggleModal(false
, false
)">
<span aria-hidden="true">×</span>
</button>
</h2>
...
...
app/assets/javascripts/boards/filters/due_date_filters.js.es6
View file @
8d441c81
/* global Vue */
/* global dateFormat */
Vue.filter('due-date', (value) => {
const date = new Date(value);
return
$.datepicker.formatDate('M d, yy', dat
e);
return
dateFormat(date, 'mmm d, yyyy', tru
e);
});
app/assets/javascripts/boards/icons/checkmark.js
0 → 100644
View file @
8d441c81
module
.
exports
=
'<svg viewBox="0 0 28 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="a" d="m45.4978994 24.9892046c0 .4726429-.1654225.8743833-.4962726 1.2052333l-15.2426565 15.2426565c-.33085.33085-.7325904.4962725-1.2052333.4962725-.4726428 0-.8743833-.1654225-1.2052333-.4962725l-8.8265615-8.8265616c-.33085-.33085-.4962726-.7325904-.4962726-1.2052333 0-.4726428.1654226-.8743833.4962726-1.2052333l2.4104666-2.4104666c.33085-.33085.7325904-.4962725 1.2052333-.4962725s.8743833.1654225 1.2052333.4962725l5.2108616 5.2285857 11.6269566-11.6446806c.33085-.33085.7325905-.4962726 1.2052333-.4962726.4726429 0 .8743833.1654226 1.2052333.4962726l2.4104666 2.4104666c.3308501.33085.4962726.7325904.4962726 1.2052333z"/><mask id="b" fill="#fff" height="21.0561348" width="27.4722297" x="0" y="0"><use xlink:href="#a"/></mask></defs><use fill="none" mask="url(#b)" stroke="#1a97d5" stroke-width="2" transform="translate(-18 -20)" xlink:href="#a"/></svg>'
;
app/assets/javascripts/boards/mixins/modal_mixins.js.es6
View file @
8d441c81
/* global Cookies */
(() => {
const Store = gl.issueBoards.BoardsStore;
const ModalStore = gl.issueBoards.ModalStore;
gl.issueBoards.ModalMixins = {
methods: {
toggleModal(toggle) {
ModalStore.store.showAddIssuesModal = toggle;
toggleModal(toggleModal, setCookie = true) {
if (setCookie) {
Cookies.set('boards_backlog_help_hidden', true);
Store.state.helpHidden = true;
}
ModalStore.store.showAddIssuesModal = toggleModal;
},
changeTab(tab) {
ModalStore.store.activeTab = tab;
...
...
app/assets/javascripts/boards/stores/boards_store.js.es6
View file @
8d441c81
...
...
@@ -25,6 +25,7 @@
label_name: gl.utils.getParameterValues('label_name[]'),
search: ''
};
this.state.helpHidden = Cookies.get('boards_backlog_help_hidden') === 'true';
},
addList (listObj) {
const list = new List(listObj);
...
...
app/assets/javascripts/build.js
View file @
8d441c81
...
...
@@ -7,7 +7,7 @@
var
DOWN_BUILD_TRACE
=
'#down-build-trace'
;
this
.
Build
=
(
function
()
{
Build
.
interval
=
null
;
Build
.
timeout
=
null
;
Build
.
state
=
null
;
...
...
@@ -31,7 +31,7 @@
this
.
$scrollBottomBtn
=
$
(
'#scroll-bottom'
);
this
.
$buildRefreshAnimation
=
$
(
'.js-build-refresh'
);
clear
Interval
(
Build
.
interval
);
clear
Timeout
(
Build
.
timeout
);
// Init breakpoint checker
this
.
bp
=
Breakpoints
.
get
();
...
...
@@ -52,17 +52,7 @@
this
.
getInitialBuildTrace
();
this
.
initScrollButtonAffix
();
}
if
(
this
.
buildStatus
===
"running"
||
this
.
buildStatus
===
"pending"
)
{
Build
.
interval
=
setInterval
((
function
(
_this
)
{
// Check for new build output if user still watching build page
// Only valid for runnig build when output changes during time
return
function
()
{
if
(
_this
.
location
()
===
_this
.
pageUrl
)
{
return
_this
.
getBuildTrace
();
}
};
})(
this
),
4000
);
}
this
.
invokeBuildTrace
();
}
Build
.
prototype
.
initSidebar
=
function
()
{
...
...
@@ -83,6 +73,22 @@
return
window
.
location
.
href
.
split
(
"#"
)[
0
];
};
Build
.
prototype
.
invokeBuildTrace
=
function
()
{
var
continueRefreshStatuses
=
[
'running'
,
'pending'
];
// Continue to update build trace when build is running or pending
if
(
continueRefreshStatuses
.
indexOf
(
this
.
buildStatus
)
!==
-
1
)
{
// Check for new build output if user still watching build page
// Only valid for runnig build when output changes during time
Build
.
timeout
=
setTimeout
((
function
(
_this
)
{
return
function
()
{
if
(
_this
.
location
()
===
_this
.
pageUrl
)
{
return
_this
.
getBuildTrace
();
}
};
})(
this
),
4000
);
}
};
Build
.
prototype
.
getInitialBuildTrace
=
function
()
{
var
removeRefreshStatuses
=
[
'success'
,
'failed'
,
'canceled'
,
'skipped'
];
...
...
@@ -113,6 +119,7 @@
if
(
log
.
state
)
{
_this
.
state
=
log
.
state
;
}
_this
.
invokeBuildTrace
();
if
(
log
.
status
===
"running"
)
{
if
(
log
.
append
)
{
$
(
'.js-build-output'
).
append
(
log
.
html
);
...
...
app/assets/javascripts/commit/pipelines/pipelines_bundle.js.es6
View file @
8d441c81
...
...
@@ -20,7 +20,10 @@ $(() => {
gl.commits.PipelinesTableBundle.$destroy(true);
}
gl.commits.pipelines.PipelinesTableBundle = new gl.commits.pipelines.PipelinesTableView({
el: document.querySelector('#commit-pipeline-table-view'),
});
const pipelineTableViewEl = document.querySelector('#commit-pipeline-table-view');
gl.commits.pipelines.PipelinesTableBundle = new gl.commits.pipelines.PipelinesTableView();
if (pipelineTableViewEl && pipelineTableViewEl.dataset.disableInitialization === undefined) {
gl.commits.pipelines.PipelinesTableBundle.$mount(pipelineTableViewEl);
}
});
app/assets/javascripts/commit/pipelines/pipelines_service.js.es6
View file @
8d441c81
...
...
@@ -8,7 +8,22 @@
* Uses Vue.Resource
*/
class PipelinesService {
constructor(endpoint) {
/**
* FIXME: The url provided to request the pipelines in the new merge request
* page already has `.json`.
* This should be fixed when the endpoint is improved.
*
* @param {String} root
*/
constructor(root) {
let endpoint;
if (root.indexOf('.json') === -1) {
endpoint = `${root}.json`;
} else {
endpoint = root;
}
this.pipelines = Vue.resource(endpoint);
}
...
...
app/assets/javascripts/commit/pipelines/pipelines_store.js.es6
View file @
8d441c81
...
...
@@ -26,7 +26,7 @@ class PipelinesStore {
*/
startTimeAgoLoops() {
const startTimeLoops = () => {
this.timeLoopInterval = setInterval(
function timeloopInterval()
{
this.timeLoopInterval = setInterval(
() =>
{
this.$children[0].$children.reduce((acc, component) => {
const timeAgoComponent = component.$children.filter(el => el.$options._componentTag === 'time-ago')[0];
acc.push(timeAgoComponent);
...
...
app/assets/javascripts/commit/pipelines/pipelines_table.js.es6
View file @
8d441c81
...
...
@@ -56,15 +56,14 @@ require('./pipelines_store');
},
/**
* When the component is created the service to fetch the data will be
* initialized with the correct endpoint.
* When the component is about to be mounted, tell the service to fetch the data
*
* A request to fetch the pipelines will be made.
* In case of a successfull response we will store the data in the provided
* store, in case of a failed response we need to warn the user.
*
*/
created
() {
beforeMount
() {
const pipelinesService = new gl.commits.pipelines.PipelinesService(this.endpoint);
this.isLoading = true;
...
...
app/assets/javascripts/copy_as_gfm.js.es6
View file @
8d441c81
...
...
@@ -25,6 +25,9 @@ require('./lib/utils/common_utils');
},
},
ReferenceFilter: {
'.tooltip'(el, text) {
return '';
},
'a.gfm:not([data-link=true])'(el, text) {
return el.dataset.original || text;
},
...
...
@@ -91,6 +94,9 @@ require('./lib/utils/common_utils');
},
},
SanitizationFilter: {
'a[name]:not([href]):empty'(el, text) {
return el.outerHTML;
},
'dl'(el, text) {
let lines = text.trim().split('\n');
// Add two spaces to the front of subsequent list items lines,
...
...
app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js.es6
View file @
8d441c81
...
...
@@ -97,7 +97,7 @@ $(() => {
}
this.isLoadingStage = true;
cycleAnalyticsStore.setStageEvents([]);
cycleAnalyticsStore.setStageEvents([]
, stage
);
cycleAnalyticsStore.setActiveStage(stage);
cycleAnalyticsService
...
...
@@ -107,7 +107,7 @@ $(() => {
})
.done((response) => {
this.isEmptyStage = !response.events.length;
cycleAnalyticsStore.setStageEvents(response.events);
cycleAnalyticsStore.setStageEvents(response.events
, stage
);
})
.error(() => {
this.isEmptyStage = true;
...
...
app/assets/javascripts/cycle_analytics/cycle_analytics_store.js.es6
View file @
8d441c81
/* eslint-disable no-param-reassign */
require('../lib/utils/text_utility');
const DEFAULT_EVENT_OBJECTS = require('./default_event_objects');
((global) => {
global.cycleAnalytics = global.cycleAnalytics || {};
...
...
@@ -34,11 +38,12 @@
});
newData.stages.forEach((item) => {
const stage
Name = item.title.toLowerCase(
);
const stage
Slug = gl.text.dasherize(item.title.toLowerCase()
);
item.active = false;
item.isUserAllowed = data.permissions[stageName];
item.emptyStageText = EMPTY_STAGE_TEXTS[stageName];
item.component = `stage-${stageName}-component`;
item.isUserAllowed = data.permissions[stageSlug];
item.emptyStageText = EMPTY_STAGE_TEXTS[stageSlug];
item.component = `stage-${stageSlug}-component`;
item.slug = stageSlug;
});
newData.analytics = data;
return newData;
...
...
@@ -58,31 +63,36 @@
this.deactivateAllStages();
stage.active = true;
},
setStageEvents(events) {
this.state.events = this.decorateEvents(events);
setStageEvents(events
, stage
) {
this.state.events = this.decorateEvents(events
, stage
);
},
decorateEvents(events) {
decorateEvents(events
, stage
) {
const newEvents = [];
events.forEach((item) => {
if (!item) return;
item.totalTime = item.total_time;
item.author.webUrl = item.author.web_url;
item.author.avatarUrl = item.author.avatar_url;
const eventItem = Object.assign({}, DEFAULT_EVENT_OBJECTS[stage.slug], item);
eventItem.totalTime = eventItem.total_time;
if (eventItem.author) {
eventItem.author.webUrl = eventItem.author.web_url;
eventItem.author.avatarUrl = eventItem.author.avatar_url;
}
if (
item.created_at) item.createdAt = i
tem.created_at;
if (
item.short_sha) item.shortSha = i
tem.short_sha;
if (
item.commit_url) item.commitUrl = i
tem.commit_url;
if (
eventItem.created_at) eventItem.createdAt = eventI
tem.created_at;
if (
eventItem.short_sha) eventItem.shortSha = eventI
tem.short_sha;
if (
eventItem.commit_url) eventItem.commitUrl = eventI
tem.commit_url;
delete
i
tem.author.web_url;
delete
i
tem.author.avatar_url;
delete
i
tem.total_time;
delete
i
tem.created_at;
delete
i
tem.short_sha;
delete
i
tem.commit_url;
delete
eventI
tem.author.web_url;
delete
eventI
tem.author.avatar_url;
delete
eventI
tem.total_time;
delete
eventI
tem.created_at;
delete
eventI
tem.short_sha;
delete
eventI
tem.commit_url;
newEvents.push(
i
tem);
newEvents.push(
eventI
tem);
});
return newEvents;
...
...
app/assets/javascripts/cycle_analytics/default_event_objects.js.es6
0 → 100644
View file @
8d441c81
module.exports = {
issue: {
created_at: '',
url: '',
iid: '',
title: '',
total_time: {},
author: {
avatar_url: '',
id: '',
name: '',
web_url: '',
},
},
plan: {
title: '',
commit_url: '',
short_sha: '',
total_time: {},
author: {
name: '',
id: '',
avatar_url: '',
web_url: '',
},
},
code: {
title: '',
iid: '',
created_at: '',
url: '',
total_time: {},
author: {
name: '',
id: '',
avatar_url: '',
web_url: '',
},
},
test: {
name: '',
id: '',
date: '',
url: '',
short_sha: '',
commit_url: '',
total_time: {},
branch: {
name: '',
url: '',
},
},
review: {
title: '',
iid: '',
created_at: '',
url: '',
state: '',
total_time: {},
author: {
name: '',
id: '',
avatar_url: '',
web_url: '',
},
},
staging: {
id: '',
short_sha: '',
date: '',
url: '',
commit_url: '',
total_time: {},
author: {
name: '',
id: '',
avatar_url: '',
web_url: '',
},
branch: {
name: '',
url: '',
},
},
production: {
title: '',
created_at: '',
url: '',
iid: '',
total_time: {},
author: {
name: '',
id: '',
avatar_url: '',
web_url: '',
},
},
};
app/assets/javascripts/diff_notes/components/comment_resolve_btn.js.es6
View file @
8d441c81
/* eslint-disable comma-dangle, object-shorthand, func-names, no-else-return, quotes, no-lonely-if, max-len */
/* global Vue */
/* global CommentsStore */
const Vue = require('vue');
(() => {
const CommentAndResolveBtn = Vue.extend({
...
...
@@ -9,13 +9,11 @@
},
data() {
return {
textareaIsEmpty: true
textareaIsEmpty: true,
discussion: {},
};
},
computed: {
discussion: function () {
return CommentsStore.state[this.discussionId];
},
showButton: function () {
if (this.discussion) {
return this.discussion.isResolvable();
...
...
@@ -42,6 +40,9 @@
}
}
},
created() {
this.discussion = CommentsStore.state[this.discussionId];
},
mounted: function () {
const $textarea = $(`#new-discussion-note-form-${this.discussionId} .note-textarea`);
this.textareaIsEmpty = $textarea.val() === '';
...
...
app/assets/javascripts/diff_notes/components/jump_to_discussion.js.es6
View file @
8d441c81
/* eslint-disable comma-dangle, object-shorthand, func-names, no-else-return, guard-for-in, no-restricted-syntax, one-var, space-before-function-paren, no-lonely-if, no-continue, brace-style, max-len, quotes */
/* global Vue */
/* global DiscussionMixins */
/* global CommentsStore */
const Vue = require('vue');
(() => {
const JumpToDiscussion = Vue.extend({
...
...
@@ -12,12 +12,10 @@
data: function () {
return {
discussions: CommentsStore.state,
discussion: {},
};
},
computed: {
discussion: function () {
return this.discussions[this.discussionId];
},
allResolved: function () {
return this.unresolvedDiscussionCount === 0;
},
...
...
@@ -186,7 +184,10 @@
offset: -($('.navbar-gitlab').outerHeight() + $('.layout-nav').outerHeight())
});
}
}
},
created() {
this.discussion = this.discussions[this.discussionId];
},
});
Vue.component('jump-to-discussion', JumpToDiscussion);
...
...
app/assets/javascripts/diff_notes/components/resolve_btn.js.es6
View file @
8d441c81
/* eslint-disable comma-dangle, object-shorthand, func-names, quote-props, no-else-return, camelcase, no-new, max-len */
/* global Vue */
/* global CommentsStore */
/* global ResolveService */
/* global Flash */
const Vue = require('vue');
(() => {
const ResolveBtn = Vue.extend({
...
...
@@ -10,14 +10,14 @@
noteId: Number,
discussionId: String,
resolved: Boolean,
projectPath: String,
canResolve: Boolean,
resolvedBy: String
},
data: function () {
return {
discussions: CommentsStore.state,
loading: false
loading: false,
note: {},
};
},
watch: {
...
...
@@ -30,13 +30,6 @@
discussion: function () {
return this.discussions[this.discussionId];
},
note: function () {
if (this.discussion) {
return this.discussion.getNote(this.noteId);
} else {
return undefined;
}
},
buttonText: function () {
if (this.isResolved) {
return `Resolved by ${this.resolvedByName}`;
...
...
@@ -73,10 +66,10 @@
if (this.isResolved) {
promise = ResolveService
.unresolve(this.
projectPath, this.
noteId);
.unresolve(this.noteId);
} else {
promise = ResolveService
.resolve(this.
projectPath, this.
noteId);
.resolve(this.noteId);
}
promise.then((response) => {
...
...
@@ -106,6 +99,8 @@
},
created: function () {
CommentsStore.create(this.discussionId, this.noteId, this.canResolve, this.resolved, this.resolvedBy);
this.note = this.discussion.getNote(this.noteId);
}
});
...
...
app/assets/javascripts/diff_notes/components/resolve_count.js.es6
View file @
8d441c81
/* eslint-disable comma-dangle, object-shorthand, func-names, no-param-reassign */
/* global Vue */
/* global DiscussionMixins */
/* global CommentsStore */
const Vue = require('vue');
((w) => {
w.ResolveCount = Vue.extend({
...
...
app/assets/javascripts/diff_notes/components/resolve_discussion_btn.js.es6
View file @
8d441c81
/* eslint-disable object-shorthand, func-names, space-before-function-paren, comma-dangle, no-else-return, quotes, max-len */
/* global Vue */
/* global CommentsStore */
/* global ResolveService */
const Vue = require('vue');
(() => {
const ResolveDiscussionBtn = Vue.extend({
props: {
discussionId: String,
mergeRequestId: Number,
projectPath: String,
canResolve: Boolean,
},
data: function() {
return {
discussion
s: CommentsStore.state
discussion
: {},
};
},
computed: {
discussion: function () {
return this.discussions[this.discussionId];
},
showButton: function () {
if (this.discussion) {
return this.discussion.isResolvable();
...
...
@@ -51,11 +48,13 @@
},
methods: {
resolve: function () {
ResolveService.toggleResolveForDiscussion(this.
projectPath, this.
mergeRequestId, this.discussionId);
ResolveService.toggleResolveForDiscussion(this.mergeRequestId, this.discussionId);
}
},
created: function () {
CommentsStore.createDiscussion(this.discussionId, this.canResolve);
this.discussion = CommentsStore.state[this.discussionId];
}
});
...
...
app/assets/javascripts/diff_notes/diff_notes_bundle.js.es6
View file @
8d441c81
...
...
@@ -3,6 +3,7 @@
/* global ResolveCount */
function requireAll(context) { return context.keys().map(context); }
const Vue = require('vue');
requireAll(require.context('./models', false, /^\.\/.*\.(js|es6)$/));
requireAll(require.context('./stores', false, /^\.\/.*\.(js|es6)$/));
requireAll(require.context('./services', false, /^\.\/.*\.(js|es6)$/));
...
...
@@ -10,11 +11,14 @@ requireAll(require.context('./mixins', false, /^\.\/.*\.(js|es6)$/));
requireAll(require.context('./components', false, /^\.\/.*\.(js|es6)$/));
$(() => {
const projectPath = document.querySelector('.merge-request').dataset.projectPath;
const COMPONENT_SELECTOR = 'resolve-btn, resolve-discussion-btn, jump-to-discussion, comment-and-resolve-btn';
window.gl = window.gl || {};
window.gl.diffNoteApps = {};
window.ResolveService = new gl.DiffNotesResolveServiceClass(projectPath);
gl.diffNotesCompileComponents = () => {
const $components = $(COMPONENT_SELECTOR).filter(function () {
return $(this).closest('resolve-count').length !== 1;
...
...
app/assets/javascripts/diff_notes/services/resolve.js.es6
View file @
8d441c81
/* eslint-disable class-methods-use-this, one-var, camelcase, no-new, comma-dangle, no-param-reassign, max-len */
/* global Vue */
/* global Flash */
/* global CommentsStore */
((w) => {
class ResolveServiceClass {
constructor() {
this.noteResource = Vue.resource('notes{/noteId}/resolve');
this.discussionResource = Vue.resource('merge_requests{/mergeRequestId}/discussions{/discussionId}/resolve');
}
const Vue = window.Vue = require('vue');
window.Vue.use(require('vue-resource'));
require('../../vue_shared/vue_resource_interceptor');
setCSRF() {
Vue.http.headers.common['X-CSRF-Token'] = $.rails.csrfToken();
}
(() => {
window.gl = window.gl || {};
prepareRequest(root) {
this.setCSRF();
Vue.http.options.root = root;
class ResolveServiceClass {
constructor(root) {
this.noteResource = Vue.resource(`${root}/notes{/noteId}/resolve`);
this.discussionResource = Vue.resource(`${root}/merge_requests{/mergeRequestId}/discussions{/discussionId}/resolve`);
}
resolve(projectPath, noteId) {
this.prepareRequest(projectPath);
resolve(noteId) {
return this.noteResource.save({ noteId }, {});
}
unresolve(projectPath, noteId) {
this.prepareRequest(projectPath);
unresolve(noteId) {
return this.noteResource.delete({ noteId }, {});
}
toggleResolveForDiscussion(
projectPath,
mergeRequestId, discussionId) {
toggleResolveForDiscussion(mergeRequestId, discussionId) {
const discussion = CommentsStore.state[discussionId];
const isResolved = discussion.isResolved();
let promise;
if (isResolved) {
promise = this.unResolveAll(
projectPath,
mergeRequestId, discussionId);
promise = this.unResolveAll(mergeRequestId, discussionId);
} else {
promise = this.resolveAll(
projectPath,
mergeRequestId, discussionId);
promise = this.resolveAll(mergeRequestId, discussionId);
}
promise.then((response) => {
...
...
@@ -62,11 +54,9 @@
});
}
resolveAll(
projectPath,
mergeRequestId, discussionId) {
resolveAll(mergeRequestId, discussionId) {
const discussion = CommentsStore.state[discussionId];
this.prepareRequest(projectPath);
discussion.loading = true;
return this.discussionResource.save({
...
...
@@ -75,11 +65,9 @@
}, {});
}
unResolveAll(
projectPath,
mergeRequestId, discussionId) {
unResolveAll(mergeRequestId, discussionId) {
const discussion = CommentsStore.state[discussionId];
this.prepareRequest(projectPath);
discussion.loading = true;
return this.discussionResource.delete({
...
...
@@ -89,5 +77,5 @@
}
}
w.ResolveService = new ResolveServiceClass()
;
})(
window
);
gl.DiffNotesResolveServiceClass = ResolveServiceClass
;
})();
app/assets/javascripts/environments/components/environment_external_url.js.es6
View file @
8d441c81
...
...
@@ -15,7 +15,7 @@ window.Vue = require('vue');
},
template: `
<a class="btn external_url" :href="externalUrl" target="_blank">
<a class="btn external_url" :href="externalUrl" target="_blank"
rel="noopener noreferrer"
>
<i class="fa fa-external-link"></i>
</a>
`,
...
...
app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es6
View file @
8d441c81
...
...
@@ -4,7 +4,7 @@
class FilteredSearchDropdown {
constructor(droplab, dropdown, input, filter) {
this.droplab = droplab;
this.hookId = input.getAttribute('data-id');
this.hookId = input
&& input
.getAttribute('data-id');
this.input = input;
this.filter = filter;
this.dropdown = dropdown;
...
...
app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es6
View file @
8d441c81
...
...
@@ -2,7 +2,8 @@
(() => {
class FilteredSearchDropdownManager {
constructor() {
constructor(baseEndpoint = '') {
this.baseEndpoint = baseEndpoint.replace(/\/$/, '');
this.tokenizer = gl.FilteredSearchTokenizer;
this.filteredSearchInput = document.querySelector('.filtered-search');
...
...
@@ -38,13 +39,13 @@
milestone: {
reference: null,
gl: 'DropdownNonUser',
extraArguments: [
'milestones.json'
, '%'],
extraArguments: [
`${this.baseEndpoint}/milestones.json`
, '%'],
element: document.querySelector('#js-dropdown-milestone'),
},
label: {
reference: null,
gl: 'DropdownNonUser',
extraArguments: [
'labels.json'
, '~'],
extraArguments: [
`${this.baseEndpoint}/labels.json`
, '~'],
element: document.querySelector('#js-dropdown-label'),
},
hint: {
...
...
app/assets/javascripts/filtered_search/filtered_search_manager.js.es6
View file @
8d441c81
...
...
@@ -6,7 +6,7 @@
if (this.filteredSearchInput) {
this.tokenizer = gl.FilteredSearchTokenizer;
this.dropdownManager = new gl.FilteredSearchDropdownManager();
this.dropdownManager = new gl.FilteredSearchDropdownManager(
this.filteredSearchInput.getAttribute('data-base-endpoint') || ''
);
this.bindEvents();
this.loadSearchParamsFromURL();
...
...
@@ -173,7 +173,7 @@
tokens.forEach((token) => {
const condition = gl.FilteredSearchTokenKeys
.searchByConditionKeyValue(token.key, token.value.toLowerCase());
const { param } = gl.FilteredSearchTokenKeys.searchByKey(token.key);
const { param } = gl.FilteredSearchTokenKeys.searchByKey(token.key)
|| {}
;
const keyParam = param ? `${token.key}_${param}` : token.key;
let tokenPath = '';
...
...
app/assets/javascripts/filtered_search/filtered_search_tokenizer.js.es6
View file @
8d441c81
require('./filtered_search_token_keys');
(() => {
class FilteredSearchTokenizer {
static processTokens(input) {
const allowedKeys = gl.FilteredSearchTokenKeys.get().map(i => i.key);
// Regex extracts `(token):(symbol)(value)`
// Values that start with a double quote must end in a double quote (same for single)
const tokenRegex =
/(\w+):([~%@]?)(?:('[^']*'{0,1})|("[^"]*"{0,1})|(\S+))/g
;
const tokenRegex =
new RegExp(`(${allowedKeys.join('|')}):([~%@]?)(?:('[^']*'{0,1})|("[^"]*"{0,1})|(\\S+))`, 'g')
;
const tokens = [];
let lastToken = null;
const searchToken = input.replace(tokenRegex, (match, key, symbol, v1, v2, v3) => {
...
...
app/assets/javascripts/gfm_auto_complete.js.es6