Skip to content
GitLab
Next
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
GitLab.org
GitLab FOSS
Commits
5231344d
Commit
5231344d
authored
Feb 11, 2021
by
🤖 GitLab Bot 🤖
Browse files
Add latest changes from gitlab-org/gitlab@master
parent
9f5ac379
Changes
161
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
75 changed files
with
1348 additions
and
557 deletions
+1348
-557
.haml-lint_todo.yml
.haml-lint_todo.yml
+0
-1
CHANGELOG.md
CHANGELOG.md
+43
-0
GITALY_SERVER_VERSION
GITALY_SERVER_VERSION
+1
-1
GITLAB_SHELL_VERSION
GITLAB_SHELL_VERSION
+1
-1
app/assets/javascripts/behaviors/shortcuts/shortcuts.js
app/assets/javascripts/behaviors/shortcuts/shortcuts.js
+30
-45
app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
...assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
+525
-0
app/assets/javascripts/notes/components/comment_form.vue
app/assets/javascripts/notes/components/comment_form.vue
+32
-18
app/assets/javascripts/notes/components/note_header.vue
app/assets/javascripts/notes/components/note_header.vue
+3
-3
app/assets/javascripts/pages/projects/security/configuration/index.js
...avascripts/pages/projects/security/configuration/index.js
+3
-0
app/assets/javascripts/pages/projects/serverless/index.js
app/assets/javascripts/pages/projects/serverless/index.js
+2
-4
app/assets/javascripts/registry/explorer/constants/list.js
app/assets/javascripts/registry/explorer/constants/list.js
+7
-3
app/assets/javascripts/registry/explorer/graphql/queries/get_container_repositories_details.query.graphql
.../queries/get_container_repositories_details.query.graphql
+17
-2
app/assets/javascripts/registry/explorer/pages/list.vue
app/assets/javascripts/registry/explorer/pages/list.vue
+31
-21
app/assets/javascripts/security_configuration/components/app.vue
...ets/javascripts/security_configuration/components/app.vue
+23
-0
app/assets/javascripts/security_configuration/components/configuration_table.vue
...security_configuration/components/configuration_table.vue
+97
-0
app/assets/javascripts/security_configuration/components/features_constants.js
...s/security_configuration/components/features_constants.js
+112
-0
app/assets/javascripts/security_configuration/components/manage_sast.vue
...scripts/security_configuration/components/manage_sast.vue
+57
-0
app/assets/javascripts/security_configuration/components/upgrade.vue
...javascripts/security_configuration/components/upgrade.vue
+26
-0
app/assets/javascripts/security_configuration/graphql/configure_sast.mutation.graphql
...ity_configuration/graphql/configure_sast.mutation.graphql
+6
-0
app/assets/javascripts/security_configuration/index.js
app/assets/javascripts/security_configuration/index.js
+29
-0
app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue
...idebar/components/reviewers/uncollapsed_reviewer_list.vue
+27
-39
app/assets/javascripts/sidebar/sidebar_mediator.js
app/assets/javascripts/sidebar/sidebar_mediator.js
+2
-2
app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
...merge_request_widget/components/states/ready_to_merge.vue
+4
-1
app/assets/javascripts/vue_merge_request_widget/queries/states/ready_to_merge.fragment.graphql
...est_widget/queries/states/ready_to_merge.fragment.graphql
+1
-0
app/assets/javascripts/vue_shared/security_reports/constants.js
...sets/javascripts/vue_shared/security_reports/constants.js
+6
-0
app/controllers/concerns/notes_actions.rb
app/controllers/concerns/notes_actions.rb
+2
-1
app/controllers/concerns/redis_tracking.rb
app/controllers/concerns/redis_tracking.rb
+4
-12
app/controllers/concerns/snippets_actions.rb
app/controllers/concerns/snippets_actions.rb
+1
-1
app/controllers/concerns/wiki_actions.rb
app/controllers/concerns/wiki_actions.rb
+1
-2
app/controllers/projects/blob_controller.rb
app/controllers/projects/blob_controller.rb
+1
-1
app/controllers/projects/issues_controller.rb
app/controllers/projects/issues_controller.rb
+1
-0
app/controllers/projects/pipelines_controller.rb
app/controllers/projects/pipelines_controller.rb
+1
-0
app/controllers/search_controller.rb
app/controllers/search_controller.rb
+1
-1
app/graphql/queries/container_registry/get_container_repositories.query.graphql
...ntainer_registry/get_container_repositories.query.graphql
+17
-2
app/graphql/types/user_type.rb
app/graphql/types/user_type.rb
+3
-0
app/models/ci/pipeline.rb
app/models/ci/pipeline.rb
+1
-0
app/models/commit_status.rb
app/models/commit_status.rb
+1
-0
app/models/member.rb
app/models/member.rb
+19
-0
app/models/project_services/prometheus_service.rb
app/models/project_services/prometheus_service.rb
+11
-1
app/models/project_statistics.rb
app/models/project_statistics.rb
+1
-0
app/policies/project_policy.rb
app/policies/project_policy.rb
+5
-0
app/services/ci/abort_project_pipelines_service.rb
app/services/ci/abort_project_pipelines_service.rb
+25
-0
app/services/ci/cancel_user_pipelines_service.rb
app/services/ci/cancel_user_pipelines_service.rb
+1
-0
app/services/design_management/save_designs_service.rb
app/services/design_management/save_designs_service.rb
+0
-1
app/services/members/create_service.rb
app/services/members/create_service.rb
+10
-3
app/services/projects/destroy_service.rb
app/services/projects/destroy_service.rb
+3
-0
app/views/groups/registry/repositories/index.html.haml
app/views/groups/registry/repositories/index.html.haml
+1
-1
app/views/help/_shortcuts.html.haml
app/views/help/_shortcuts.html.haml
+0
-353
app/views/help/shortcuts.js.haml
app/views/help/shortcuts.js.haml
+0
-3
app/views/projects/commit/_signature_badge.html.haml
app/views/projects/commit/_signature_badge.html.haml
+1
-1
app/views/projects/registry/repositories/index.html.haml
app/views/projects/registry/repositories/index.html.haml
+1
-1
app/views/projects/security/configuration/show.html.haml
app/views/projects/security/configuration/show.html.haml
+1
-1
changelogs/unreleased/207473-allow-set-confidential-note-attribute.yml
...released/207473-allow-set-confidential-note-attribute.yml
+5
-0
changelogs/unreleased/267140-add-user-bot-gql.yml
changelogs/unreleased/267140-add-user-bot-gql.yml
+5
-0
changelogs/unreleased/290302-update-the-default-sort-order-of-the-image-repository-list.yml
...e-the-default-sort-order-of-the-image-repository-list.yml
+5
-0
changelogs/unreleased/296754-followup-from-refactor-namespaceonboardingaction-model-to-onboardi.yml
...-refactor-namespaceonboardingaction-model-to-onboardi.yml
+5
-0
changelogs/unreleased/297346-flaky-spec-in-ee-spec-features-burnup_charts_spec-rb-burnup-charts.yml
...-ee-spec-features-burnup_charts_spec-rb-burnup-charts.yml
+5
-0
changelogs/unreleased/kassio-bulkimports-import-group-membership.yml
...unreleased/kassio-bulkimports-import-group-membership.yml
+5
-0
changelogs/unreleased/khanchi-designs-patch2.yml
changelogs/unreleased/khanchi-designs-patch2.yml
+0
-5
changelogs/unreleased/link-new-line-gpg.yml
changelogs/unreleased/link-new-line-gpg.yml
+5
-0
changelogs/unreleased/mc-backstage-reduce-db-updates-ci-minute-reset.yml
...leased/mc-backstage-reduce-db-updates-ci-minute-reset.yml
+5
-0
config/feature_flags/development/abort_deleted_project_pipelines.yml
...ure_flags/development/abort_deleted_project_pipelines.yml
+8
-0
config/feature_flags/development/confidential_notes.yml
config/feature_flags/development/confidential_notes.yml
+8
-0
config/known_invalid_graphql_queries.yml
config/known_invalid_graphql_queries.yml
+1
-0
db/migrate/20201007033527_add_daily_invites_to_plan_limits.rb
...igrate/20201007033527_add_daily_invites_to_plan_limits.rb
+9
-0
db/migrate/20201007033723_insert_daily_invites_plan_limits.rb
...igrate/20201007033723_insert_daily_invites_plan_limits.rb
+25
-0
db/migrate/20210205143926_remove_namespace_id_foreign_key_on_namespace_onboarding_actions.rb
...mespace_id_foreign_key_on_namespace_onboarding_actions.rb
+19
-0
db/post_migrate/20210205144537_remove_namespace_onboarding_actions_table.rb
...210205144537_remove_namespace_onboarding_actions_table.rb
+23
-0
db/schema_migrations/20201007033527
db/schema_migrations/20201007033527
+1
-0
db/schema_migrations/20201007033723
db/schema_migrations/20201007033723
+1
-0
db/schema_migrations/20210205143926
db/schema_migrations/20210205143926
+1
-0
db/schema_migrations/20210205144537
db/schema_migrations/20210205144537
+1
-0
db/structure.sql
db/structure.sql
+1
-26
doc/administration/instance_limits.md
doc/administration/instance_limits.md
+7
-0
doc/api/graphql/reference/gitlab_schema.graphql
doc/api/graphql/reference/gitlab_schema.graphql
+5
-0
No files found.
.haml-lint_todo.yml
View file @
5231344d
...
...
@@ -109,7 +109,6 @@ linters:
-
'
app/views/groups/runners/edit.html.haml'
-
'
app/views/groups/settings/_advanced.html.haml'
-
'
app/views/groups/settings/_lfs.html.haml'
-
'
app/views/help/_shortcuts.html.haml'
-
'
app/views/help/index.html.haml'
-
'
app/views/help/instance_configuration.html.haml'
-
'
app/views/help/instance_configuration/_gitlab_ci.html.haml'
...
...
CHANGELOG.md
View file @
5231344d
...
...
@@ -2,6 +2,21 @@
documentation
](
doc/development/changelog.md
)
for instructions on adding your own
entry.
## 13.8.4 (2021-02-11)
### Security (9 changes)
-
Cancel running and pending jobs when a project is deleted. !1220
-
Prevent Denial of Service Attack on gitlab-shell.
-
Prevent exposure of confidential issue titles in file browser.
-
Updates authorization for linting API.
-
Check user access on API merge request read actions.
-
Limit daily invitations to groups and projects.
-
Enforce the analytics enabled project setting for project-level analytics features.
-
Perform SSL verification for FortiTokenCloud Integration.
-
Prevent Server-side Request Forgery for Prometheus when secured by Google IAP.
## 13.8.3 (2021-02-05)
### Fixed (2 changes)
...
...
@@ -387,6 +402,21 @@ entry.
-
Add verbiage + link sast to show it's in core. !51935
## 13.7.7 (2021-02-11)
### Security (9 changes)
-
Cancel running and pending jobs when a project is deleted. !1220
-
Prevent Denial of Service Attack on gitlab-shell.
-
Prevent exposure of confidential issue titles in file browser.
-
Updates authorization for linting API.
-
Check user access on API merge request read actions.
-
Limit daily invitations to groups and projects.
-
Enforce the analytics enabled project setting for project-level analytics features.
-
Perform SSL verification for FortiTokenCloud Integration.
-
Prevent Server-side Request Forgery for Prometheus when secured by Google IAP.
## 13.7.6 (2021-02-01)
### Security (5 changes)
...
...
@@ -908,6 +938,19 @@ entry.
-
Update GitLab Workhorse to v8.57.0.
## 13.6.7 (2021-02-11)
### Security (7 changes)
-
Cancel running and pending jobs when a project is deleted. !1220
-
Updates authorization for linting API.
-
Prevent exposure of confidential issue titles in file browser.
-
Check user access on API merge request read actions.
-
Prevent Denial of Service Attack on gitlab-shell.
-
Limit daily invitations to groups and projects.
-
Prevent Server-side Request Forgery for Prometheus when secured by Google IAP.
## 13.6.6 (2021-02-01)
### Security (5 changes)
...
...
GITALY_SERVER_VERSION
View file @
5231344d
88ef3e7f64498ae3574f29b0705c29cf3b4e9311
d0a79053ba4fef55b59543b99327fc89aed64876
GITLAB_SHELL_VERSION
View file @
5231344d
13.16.
0
13.16.
1
app/assets/javascripts/behaviors/shortcuts/shortcuts.js
View file @
5231344d
...
...
@@ -3,12 +3,11 @@ import Cookies from 'js-cookie';
import
Mousetrap
from
'
mousetrap
'
;
import
Vue
from
'
vue
'
;
import
{
flatten
}
from
'
lodash
'
;
import
{
parseBoolean
,
getCspNonceValue
}
from
'
~/lib/utils/
common
_util
s
'
;
import
axios
from
'
../..
/lib/utils/
ax
io
s
_util
s
'
;
import
{
refreshCurrentPage
,
visitUrl
}
from
'
../..
/lib/utils/
url
_util
ity
'
;
import
findAndFollowLink
from
'
../../lib/utils/navigation_utility
'
;
import
{
refreshCurrentPage
,
visitUrl
}
from
'
~/lib/utils/
url
_util
ity
'
;
import
findAndFollowLink
from
'
~
/lib/utils/
navigat
io
n
_util
ity
'
;
import
{
parseBoolean
}
from
'
~
/lib/utils/
common
_util
s
'
;
import
{
disableShortcuts
,
shouldDisableShortcuts
}
from
'
./shortcuts_toggle
'
;
import
ShortcutsToggle
from
'
./shortcuts_toggle.vue
'
;
import
{
keysFor
,
TOGGLE_PERFORMANCE_BAR
,
TOGGLE_CANARY
}
from
'
./keybindings
'
;
const
defaultStopCallback
=
Mousetrap
.
prototype
.
stopCallback
;
...
...
@@ -20,15 +19,6 @@ Mousetrap.prototype.stopCallback = function customStopCallback(e, element, combo
return
defaultStopCallback
.
call
(
this
,
e
,
element
,
combo
);
};
function
initToggleButton
()
{
return
new
Vue
({
el
:
document
.
querySelector
(
'
.js-toggle-shortcuts
'
),
render
(
createElement
)
{
return
createElement
(
ShortcutsToggle
);
},
});
}
/**
* The key used to save and fetch the local Mousetrap instance
* attached to a `<textarea>` element using `jQuery.data`
...
...
@@ -65,7 +55,8 @@ function getToolbarBtnToShortcutsMap($textarea) {
export
default
class
Shortcuts
{
constructor
()
{
this
.
onToggleHelp
=
this
.
onToggleHelp
.
bind
(
this
);
this
.
enabledHelp
=
[];
this
.
helpModalElement
=
null
;
this
.
helpModalVueInstance
=
null
;
Mousetrap
.
bind
(
'
?
'
,
this
.
onToggleHelp
);
Mousetrap
.
bind
(
'
s
'
,
Shortcuts
.
focusSearch
);
...
...
@@ -107,11 +98,33 @@ export default class Shortcuts {
}
onToggleHelp
(
e
)
{
if
(
e
.
preventDefault
)
{
if
(
e
?
.
preventDefault
)
{
e
.
preventDefault
();
}
Shortcuts
.
toggleHelp
(
this
.
enabledHelp
);
if
(
this
.
helpModalElement
&&
this
.
helpModalVueInstance
)
{
this
.
helpModalVueInstance
.
$destroy
();
this
.
helpModalElement
.
remove
();
this
.
helpModalElement
=
null
;
this
.
helpModalVueInstance
=
null
;
}
else
{
this
.
helpModalElement
=
document
.
createElement
(
'
div
'
);
document
.
body
.
append
(
this
.
helpModalElement
);
this
.
helpModalVueInstance
=
new
Vue
({
el
:
this
.
helpModalElement
,
components
:
{
ShortcutsHelp
:
()
=>
import
(
'
./shortcuts_help.vue
'
),
},
render
:
(
createElement
)
=>
{
return
createElement
(
'
shortcuts-help
'
,
{
on
:
{
hidden
:
this
.
onToggleHelp
,
},
});
},
});
}
}
static
onTogglePerfBar
(
e
)
{
...
...
@@ -144,34 +157,6 @@ export default class Shortcuts {
$
(
document
).
triggerHandler
(
'
markdown-preview:toggle
'
,
[
e
]);
}
static
toggleHelp
(
location
)
{
const
$modal
=
$
(
'
#modal-shortcuts
'
);
if
(
$modal
.
length
)
{
$modal
.
modal
(
'
toggle
'
);
return
null
;
}
return
axios
.
get
(
gon
.
shortcuts_path
,
{
responseType
:
'
text
'
,
})
.
then
(({
data
})
=>
{
$
.
globalEval
(
data
,
{
nonce
:
getCspNonceValue
()
});
if
(
location
&&
location
.
length
>
0
)
{
const
results
=
[];
for
(
let
i
=
0
,
len
=
location
.
length
;
i
<
len
;
i
+=
1
)
{
results
.
push
(
$
(
location
[
i
]).
show
());
}
return
results
;
}
return
$
(
'
.js-more-help-button
'
).
remove
();
})
.
then
(
initToggleButton
);
}
focusFilter
(
e
)
{
if
(
!
this
.
filterInput
)
{
this
.
filterInput
=
$
(
'
input[type=search]
'
,
'
.nav-controls
'
);
...
...
app/assets/javascripts/behaviors/shortcuts/shortcuts_help.vue
0 → 100644
View file @
5231344d
<
script
>
/* eslint-disable @gitlab/vue-require-i18n-strings */
import
{
GlIcon
,
GlModal
}
from
'
@gitlab/ui
'
;
import
ShortcutsToggle
from
'
./shortcuts_toggle.vue
'
;
export
default
{
components
:
{
GlIcon
,
GlModal
,
ShortcutsToggle
,
},
computed
:
{
ctrlCharacter
()
{
return
window
.
gl
.
client
.
isMac
?
'
⌘
'
:
'
ctrl
'
;
},
onDotCom
()
{
return
window
.
gon
.
dot_com
;
},
},
};
</
script
>
<
template
>
<gl-modal
modal-id=
"keyboard-shortcut-modal"
size=
"lg"
data-testid=
"modal-shortcuts"
:visible=
"true"
:hide-footer=
"true"
@
hidden=
"$emit('hidden')"
>
<template
#modal-title
>
<shortcuts-toggle
/>
</
template
>
<div
class=
"row"
>
<div
class=
"col-lg-4"
>
<table
class=
"shortcut-mappings text-2"
>
<tbody>
<tr>
<th></th>
<th>
{{ __('Global Shortcuts') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
?
</kbd>
</td>
<td>
{{ __('Toggle this dialog') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift p
</kbd>
</td>
<td>
{{ __('Go to your projects') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift g
</kbd>
</td>
<td>
{{ __('Go to your groups') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift a
</kbd>
</td>
<td>
{{ __('Go to the activity feed') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift l
</kbd>
</td>
<td>
{{ __('Go to the milestone list') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift s
</kbd>
</td>
<td>
{{ __('Go to your snippets') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
s
</kbd>
/
<kbd>
/
</kbd>
</td>
<td>
{{ __('Start search') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift i
</kbd>
</td>
<td>
{{ __('Go to your issues') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift m
</kbd>
</td>
<td>
{{ __('Go to your merge requests') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift t
</kbd>
</td>
<td>
{{ __('Go to your To-Do list') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
p
</kbd>
<kbd>
b
</kbd>
</td>
<td>
{{ __('Toggle the Performance Bar') }}
</td>
</tr>
<tr
v-if=
"onDotCom"
>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
x
</kbd>
</td>
<td>
{{ __('Toggle GitLab Next') }}
</td>
</tr>
</tbody>
<tbody>
<tr>
<th></th>
<th>
{{ __('Editing') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
{{ ctrlCharacter }} shift p
</kbd>
</td>
<td>
{{ __('Toggle Markdown preview') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-up"
/>
</kbd>
</td>
<td>
{{ __('Edit your most recent comment in a thread (from an empty textarea)') }}
</td>
</tr>
</tbody>
<tbody>
<tr>
<th></th>
<th>
{{ __('Wiki') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
e
</kbd>
</td>
<td>
{{ __('Edit wiki page') }}
</td>
</tr>
</tbody>
<tbody>
<tr>
<th></th>
<th>
{{ __('Repository Graph') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-left"
/>
</kbd>
/
<kbd>
h
</kbd>
</td>
<td>
{{ __('Scroll left') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-right"
/>
</kbd>
/
<kbd>
l
</kbd>
</td>
<td>
{{ __('Scroll right') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-up"
/>
</kbd>
/
<kbd>
k
</kbd>
</td>
<td>
{{ __('Scroll up') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-down"
/>
</kbd>
/
<kbd>
j
</kbd>
</td>
<td>
{{ __('Scroll down') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift
<gl-icon
name=
"arrow-up"
/>
/ k
</kbd>
</td>
<td>
{{ __('Scroll to top') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
shift
<gl-icon
name=
"arrow-down"
/>
/ j
</kbd>
</td>
<td>
{{ __('Scroll to bottom') }}
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"col-lg-4"
>
<table
class=
"shortcut-mappings text-2"
>
<tbody>
<tr>
<th></th>
<th>
{{ __('Project') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
p
</kbd>
</td>
<td>
{{ __("Go to the project's overview page") }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
v
</kbd>
</td>
<td>
{{ __("Go to the project's activity feed") }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
r
</kbd>
</td>
<td>
{{ __('Go to releases') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
f
</kbd>
</td>
<td>
{{ __('Go to files') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
t
</kbd>
</td>
<td>
{{ __('Go to find file') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
c
</kbd>
</td>
<td>
{{ __('Go to commits') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
n
</kbd>
</td>
<td>
{{ __('Go to repository graph') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
d
</kbd>
</td>
<td>
{{ __('Go to repository charts') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
i
</kbd>
</td>
<td>
{{ __('Go to issues') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
i
</kbd>
</td>
<td>
{{ __('New issue') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
b
</kbd>
</td>
<td>
{{ __('Go to issue boards') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
m
</kbd>
</td>
<td>
{{ __('Go to merge requests') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
j
</kbd>
</td>
<td>
{{ __('Go to jobs') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
l
</kbd>
</td>
<td>
{{ __('Go to metrics') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
e
</kbd>
</td>
<td>
{{ __('Go to environments') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
k
</kbd>
</td>
<td>
{{ __('Go to kubernetes') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
s
</kbd>
</td>
<td>
{{ __('Go to snippets') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
g
</kbd>
<kbd>
w
</kbd>
</td>
<td>
{{ __('Go to wiki') }}
</td>
</tr>
</tbody>
<tbody>
<tr>
<th></th>
<th>
{{ __('Project Files') }}
</th>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-up"
/>
</kbd>
</td>
<td>
{{ __('Move selection up') }}
</td>
</tr>
<tr>
<td
class=
"shortcut"
>
<kbd>
<gl-icon
name=
"arrow-down"
/>
</kbd>
</td>
<td>
{{ __('Move selection down') }}
</td>
</tr>
<tr>