Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
6d6f7536
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6d6f7536
编写于
1月 23, 2018
作者:
J
Jacob Vosmaer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Look for rugged with static analysis
上级
1f5af51b
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
75 addition
and
73 deletion
+75
-73
app/models/ci/pipeline.rb
app/models/ci/pipeline.rb
+1
-1
app/models/deployment.rb
app/models/deployment.rb
+1
-8
app/workers/repository_check/single_repository_worker.rb
app/workers/repository_check/single_repository_worker.rb
+1
-4
config/initializers/rugged_use_gitlab_git_attributes.rb
config/initializers/rugged_use_gitlab_git_attributes.rb
+0
-28
lib/gitlab/bare_repository_import/repository.rb
lib/gitlab/bare_repository_import/repository.rb
+2
-0
lib/gitlab/git/repository.rb
lib/gitlab/git/repository.rb
+2
-0
lib/gitlab/gitaly_client/commit_service.rb
lib/gitlab/gitaly_client/commit_service.rb
+14
-6
lib/gitlab/github_import/importer/pull_requests_importer.rb
lib/gitlab/github_import/importer/pull_requests_importer.rb
+1
-4
lib/tasks/gitlab/cleanup.rake
lib/tasks/gitlab/cleanup.rake
+2
-0
scripts/lint-rugged
scripts/lint-rugged
+36
-0
scripts/static-analysis
scripts/static-analysis
+2
-1
spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb
...lab/github_import/importer/pull_requests_importer_spec.rb
+3
-3
spec/models/repository_spec.rb
spec/models/repository_spec.rb
+10
-18
未找到文件。
app/models/ci/pipeline.rb
浏览文件 @
6d6f7536
...
...
@@ -524,7 +524,7 @@ module Ci
return
unless
sha
project
.
repository
.
gitlab_ci_yml_for
(
sha
,
ci_yaml_file_path
)
rescue
GRPC
::
NotFound
,
Rugged
::
ReferenceError
,
GRPC
::
Internal
rescue
GRPC
::
NotFound
,
GRPC
::
Internal
nil
end
...
...
app/models/deployment.rb
浏览文件 @
6d6f7536
...
...
@@ -45,14 +45,7 @@ class Deployment < ActiveRecord::Base
def
includes_commit?
(
commit
)
return
false
unless
commit
# Before 8.10, deployments didn't have keep-around refs. Any deployment
# created before then could have a `sha` referring to a commit that no
# longer exists in the repository, so just ignore those.
begin
project
.
repository
.
ancestor?
(
commit
.
id
,
sha
)
rescue
Rugged
::
OdbError
false
end
project
.
repository
.
ancestor?
(
commit
.
id
,
sha
)
end
def
update_merge_request_metrics!
...
...
app/workers/repository_check/single_repository_worker.rb
浏览文件 @
6d6f7536
...
...
@@ -20,10 +20,7 @@ module RepositoryCheck
# Historically some projects never had their wiki repos initialized;
# this happens on project creation now. Let's initialize an empty repo
# if it is not already there.
begin
project
.
create_wiki
rescue
Rugged
::
RepositoryError
end
project
.
create_wiki
git_fsck
(
project
.
wiki
.
repository
)
else
...
...
config/initializers/rugged_use_gitlab_git_attributes.rb
已删除
100644 → 0
浏览文件 @
1f5af51b
# We don't want to ever call Rugged::Repository#fetch_attributes, because it has
# a lot of I/O overhead:
# <https://gitlab.com/gitlab-org/gitlab_git/commit/340e111e040ae847b614d35b4d3173ec48329015>
#
# While we don't do this from within the GitLab source itself, the Linguist gem
# has a dependency on Rugged and uses the gitattributes file when calculating
# repository-wide language statistics:
# <https://github.com/github/linguist/blob/v4.7.0/lib/linguist/lazy_blob.rb#L33-L36>
#
# The options passed by Linguist are those assumed by Gitlab::Git::InfoAttributes
# anyway, and there is no great efficiency gain from just fetching the listed
# attributes with our implementation, so we ignore the additional arguments.
#
module
Rugged
class
Repository
module
UseGitlabGitAttributes
def
fetch_attributes
(
name
,
*
)
attributes
.
attributes
(
name
)
end
def
attributes
@attributes
||=
Gitlab
::
Git
::
InfoAttributes
.
new
(
path
)
end
end
prepend
UseGitlabGitAttributes
end
end
lib/gitlab/bare_repository_import/repository.rb
浏览文件 @
6d6f7536
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/953
#
module
Gitlab
module
BareRepositoryImport
class
Repository
...
...
lib/gitlab/git/repository.rb
浏览文件 @
6d6f7536
...
...
@@ -563,6 +563,8 @@ module Gitlab
return
false
if
ancestor_id
.
nil?
||
descendant_id
.
nil?
merge_base_commit
(
ancestor_id
,
descendant_id
)
==
ancestor_id
rescue
Rugged
::
OdbError
false
end
# Returns true is +from+ is direct ancestor to +to+, otherwise false
...
...
lib/gitlab/gitaly_client/commit_service.rb
浏览文件 @
6d6f7536
...
...
@@ -38,19 +38,27 @@ module Gitlab
from_id
=
case
from
when
NilClass
EMPTY_TREE_ID
when
Rugged
::
Commit
from
.
oid
else
from
if
from
.
respond_to?
(
:oid
)
# This is meant to match a Rugged::Commit. This should be impossible in
# the future.
from
.
oid
else
from
end
end
to_id
=
case
to
when
NilClass
EMPTY_TREE_ID
when
Rugged
::
Commit
to
.
oid
else
to
if
to
.
respond_to?
(
:oid
)
# This is meant to match a Rugged::Commit. This should be impossible in
# the future.
to
.
oid
else
to
end
end
request_params
=
diff_between_commits_request_params
(
from_id
,
to_id
,
options
)
...
...
lib/gitlab/github_import/importer/pull_requests_importer.rb
浏览文件 @
6d6f7536
...
...
@@ -57,10 +57,7 @@ module Gitlab
end
def
commit_exists?
(
sha
)
project
.
repository
.
lookup
(
sha
)
true
rescue
Rugged
::
Error
false
project
.
repository
.
commit
(
sha
).
present?
end
def
collection_method
...
...
lib/tasks/gitlab/cleanup.rake
浏览文件 @
6d6f7536
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/954
#
namespace
:gitlab
do
namespace
:cleanup
do
HASHED_REPOSITORY_NAME
=
'@hashed'
.
freeze
...
...
scripts/lint-rugged
0 → 100755
浏览文件 @
6d6f7536
#!/usr/bin/env ruby
ALLOWED
=
[
# Can be deleted (?) once rugged is no longer used in production. Doesn't make Rugged calls.
'config/initializers/8_metrics.rb'
,
# Can be deleted once wiki's are fully (mandatory) migrated
'config/initializers/gollum.rb'
,
# Needs to be migrated, https://gitlab.com/gitlab-org/gitaly/issues/953
'lib/gitlab/bare_repository_import/repository.rb'
,
# Needs to be migrated, https://gitlab.com/gitlab-org/gitaly/issues/954
'lib/tasks/gitlab/cleanup.rake'
,
# https://gitlab.com/gitlab-org/gitaly/issues/961
'app/models/repository.rb'
,
# The only place where Rugged code is still allowed in production
'lib/gitlab/git/'
].
freeze
rugged_lines
=
IO
.
popen
(
%w[git grep -i -n rugged -- app config lib]
,
&
:read
).
lines
rugged_lines
=
rugged_lines
.
reject
{
|
l
|
l
.
start_with?
(
*
ALLOWED
)
}
rugged_lines
=
rugged_lines
.
reject
do
|
line
|
code
,
_comment
=
line
.
split
(
'# '
,
2
)
code
!~
/rugged/i
end
exit
if
rugged_lines
.
empty?
puts
"Using Rugged is only allowed in test and
#{
ALLOWED
}
\n\n
"
puts
rugged_lines
exit
(
false
)
scripts/static-analysis
浏览文件 @
6d6f7536
...
...
@@ -13,7 +13,8 @@ tasks = [
%w[bundle exec rake gettext:lint]
,
%w[bundle exec rake lint:static_verification]
,
%w[scripts/lint-changelog-yaml]
,
%w[scripts/lint-conflicts.sh]
%w[scripts/lint-conflicts.sh]
,
%w[scripts/lint-rugged]
]
failed_tasks
=
tasks
.
reduce
({})
do
|
failures
,
task
|
...
...
spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb
浏览文件 @
6d6f7536
...
...
@@ -244,7 +244,7 @@ describe Gitlab::GithubImport::Importer::PullRequestsImporter do
it
'returns true when a commit exists'
do
expect
(
project
.
repository
)
.
to
receive
(
:
lookup
)
.
to
receive
(
:
commit
)
.
with
(
'123'
)
.
and_return
(
double
(
:commit
))
...
...
@@ -253,9 +253,9 @@ describe Gitlab::GithubImport::Importer::PullRequestsImporter do
it
'returns false when a commit does not exist'
do
expect
(
project
.
repository
)
.
to
receive
(
:
lookup
)
.
to
receive
(
:
commit
)
.
with
(
'123'
)
.
and_r
aise
(
Rugged
::
OdbError
)
.
and_r
eturn
(
nil
)
expect
(
importer
.
commit_exists?
(
'123'
)).
to
eq
(
false
)
end
...
...
spec/models/repository_spec.rb
浏览文件 @
6d6f7536
...
...
@@ -2356,7 +2356,7 @@ describe Repository do
let
(
:commit
)
{
repository
.
commit
}
let
(
:ancestor
)
{
commit
.
parents
.
first
}
context
'with Gitaly enabled
'
do
shared_examples
'#ancestor?
'
do
it
'it is an ancestor'
do
expect
(
repository
.
ancestor?
(
ancestor
.
id
,
commit
.
id
)).
to
eq
(
true
)
end
...
...
@@ -2370,27 +2370,19 @@ describe Repository do
expect
(
repository
.
ancestor?
(
ancestor
.
id
,
nil
)).
to
eq
(
false
)
expect
(
repository
.
ancestor?
(
nil
,
nil
)).
to
eq
(
false
)
end
end
context
'with Gitaly disabled'
do
before
do
allow
(
Gitlab
::
GitalyClient
).
to
receive
(
:enabled?
).
and_return
(
false
)
allow
(
Gitlab
::
GitalyClient
).
to
receive
(
:feature_enabled?
).
with
(
:is_ancestor
).
and_return
(
false
)
end
it
'it is an ancestor'
do
expect
(
repository
.
ancestor?
(
ancestor
.
id
,
commit
.
id
)).
to
eq
(
true
)
it
'returns false for invalid commit IDs'
do
expect
(
repository
.
ancestor?
(
commit
.
id
,
Gitlab
::
Git
::
BLANK_SHA
)).
to
eq
(
false
)
expect
(
repository
.
ancestor?
(
Gitlab
::
Git
::
BLANK_SHA
,
commit
.
id
)).
to
eq
(
false
)
end
end
it
'it is not an ancestor
'
do
expect
(
repository
.
ancestor?
(
commit
.
id
,
ancestor
.
id
)).
to
eq
(
false
)
end
context
'with Gitaly enabled
'
do
it_behaves_like
(
'#ancestor?'
)
end
it
'returns false on nil-values'
do
expect
(
repository
.
ancestor?
(
nil
,
commit
.
id
)).
to
eq
(
false
)
expect
(
repository
.
ancestor?
(
ancestor
.
id
,
nil
)).
to
eq
(
false
)
expect
(
repository
.
ancestor?
(
nil
,
nil
)).
to
eq
(
false
)
end
context
'with Gitaly disabled'
,
:skip_gitaly_mock
do
it_behaves_like
(
'#ancestor?'
)
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录