Открыть боковую панель
nt_test121
nt_project_9da4a5yt9x4b
Коммиты
0abff16b
Коммит
0abff16b
создал
Июн 24, 2016
по автору
Alejandro Rodríguez
Просмотр файлов
Create (if necessary) and link the gitlab-shell secret file on the rake install task
владелец
b2e59813
Изменения
4
Скрыть пробелы
Построчно
Рядом
config/initializers/gitlab_shell_secret_token.rb
Просмотр файла @
0abff16b
# Be sure to restart your server when you modify this file.
require
'securerandom'
# Your secret key for verifying the gitlab_shell.
secret_file
=
Gitlab
.
config
.
gitlab_shell
.
secret_file
unless
File
.
exist?
secret_file
# Generate a new token of 16 random hexadecimal characters and store it in secret_file.
token
=
SecureRandom
.
hex
(
16
)
File
.
write
(
secret_file
,
token
)
end
link_path
=
File
.
join
(
Gitlab
.
config
.
gitlab_shell
.
path
,
'.gitlab_shell_secret'
)
if
File
.
exist?
(
Gitlab
.
config
.
gitlab_shell
.
path
)
&&
!
File
.
exist?
(
link_path
)
FileUtils
.
symlink
(
secret_file
,
link_path
)
end
Gitlab
::
Shell
.
new
.
generate_and_link_secret_token
lib/gitlab/backend/shell.rb
Просмотр файла @
0abff16b
require
'securerandom'
module
Gitlab
class
Shell
class
Error
<
StandardError
;
end
...
...
@@ -188,6 +190,21 @@ def exists?(storage, dir_name)
File
.
exist?
(
full_path
(
storage
,
dir_name
))
end
# Create (if necessary) and link the secret token file
def
generate_and_link_secret_token
secret_file
=
Gitlab
.
config
.
gitlab_shell
.
secret_file
unless
File
.
exist?
secret_file
# Generate a new token of 16 random hexadecimal characters and store it in secret_file.
token
=
SecureRandom
.
hex
(
16
)
File
.
write
(
secret_file
,
token
)
end
link_path
=
File
.
join
(
gitlab_shell_path
,
'.gitlab_shell_secret'
)
if
File
.
exist?
(
gitlab_shell_path
)
&&
!
File
.
exist?
(
link_path
)
FileUtils
.
symlink
(
secret_file
,
link_path
)
end
end
protected
def
gitlab_shell_path
...
...
lib/tasks/gitlab/shell.rake
Просмотр файла @
0abff16b
...
...
@@ -71,6 +71,8 @@ namespace :gitlab do
File
.
open
(
File
.
join
(
home_dir
,
".ssh"
,
"environment"
),
"w+"
)
do
|
f
|
f
.
puts
"PATH=
#{
ENV
[
'PATH'
]
}
"
end
Gitlab
::
Shell
.
new
.
generate_and_link_secret_token
end
desc
"GitLab | Setup gitlab-shell"
...
...
spec/lib/gitlab/backend/shell_spec.rb
Просмотр файла @
0abff16b
...
...
@@ -21,6 +21,29 @@
it
{
expect
(
gitlab_shell
.
url_to_repo
(
'diaspora'
)).
to
eq
(
Gitlab
.
config
.
gitlab_shell
.
ssh_path_prefix
+
"diaspora.git"
)
}
describe
'generate_and_link_secret_token'
do
let
(
:secret_file
)
{
'tmp/tests/.secret_shell_test'
}
let
(
:link_file
)
{
'tmp/tests/shell-secret-test/.gitlab_shell_secret'
}
before
do
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:path
).
and_return
(
'tmp/tests/shell-secret-test'
)
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:secret_file
).
and_return
(
secret_file
)
FileUtils
.
mkdir
(
'tmp/tests/shell-secret-test'
)
gitlab_shell
.
generate_and_link_secret_token
end
after
do
FileUtils
.
rm_rf
(
'tmp/tests/shell-secret-test'
)
FileUtils
.
rm_rf
(
secret_file
)
end
it
'creates and links the secret token file'
do
expect
(
File
.
exist?
(
secret_file
)).
to
be
(
true
)
expect
(
File
.
symlink?
(
link_file
)).
to
be
(
true
)
expect
(
File
.
readlink
(
link_file
)).
to
eq
(
secret_file
)
end
end
describe
Gitlab
::
Shell
::
KeyAdder
,
lib:
true
do
describe
'#add_key'
do
it
'normalizes space characters in the key'
do
...
...
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать