Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
ffb0ad93
Commit
ffb0ad93
authored
Aug 29, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:gitlabhq/gitlabhq
parents
255d6d8b
079d3a5d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
100 additions
and
23 deletions
+100
-23
app/views/profiles/keys/_form.html.haml
app/views/profiles/keys/_form.html.haml
+1
-1
doc/api/repositories.md
doc/api/repositories.md
+27
-2
lib/api/repositories.rb
lib/api/repositories.rb
+20
-4
lib/tasks/gitlab/check.rake
lib/tasks/gitlab/check.rake
+8
-8
spec/requests/api/repositories_spec.rb
spec/requests/api/repositories_spec.rb
+44
-8
No files found.
app/views/profiles/keys/_form.html.haml
View file @
ffb0ad93
...
...
@@ -13,7 +13,7 @@
=
f
.
label
:key
.controls
%p
.light
Paste your public key here. Read more about how
generate it
#{
link_to
"here"
,
help_ssh_path
}
Paste your public key here. Read more about how
to generate a key on
#{
link_to
"the SSH help page"
,
help_ssh_path
}
.
=
f
.
text_area
:key
,
class:
"input-xxlarge thin_area"
...
...
doc/api/repositories.md
View file @
ffb0ad93
...
...
@@ -239,12 +239,37 @@ Parameters:
]
```
## Get a single commit
Get a specific commit identified by the commit hash or name of a branch or tag.
```
GET /projects/:id/repository/commits/:sha
```
Parameters:
+
`id`
(required) - The ID of a project
+
`sha`
(required) - The commit hash or name of a repository branch or tag
```
json
{
"id"
:
"6104942438c14ec7bd21c6cd5bd995272b3faff6"
,
"short_id"
:
"6104942438c"
,
"title"
:
"Sanitize for network graph"
,
"author_name"
:
"randx"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"created_at"
:
"2012-09-20T09:06:12+03:00"
}
```
## Get the diff of a commit
Get the diff of a commit in a project.
```
GET /projects/:id/repository/commit
/:sha
GET /projects/:id/repository/commit
s/:sha/diff
```
Parameters:
...
...
@@ -323,7 +348,7 @@ Parameters:
Get the raw file contents for a file.
```
GET /projects/:id/repository/
commits/:sha/blob
GET /projects/:id/repository/
blobs/:sha
```
Parameters:
...
...
lib/api/repositories.rb
View file @
ffb0ad93
...
...
@@ -106,13 +106,29 @@ module API
#
# Parameters:
# id (required) - The ID of a project
# sha (required) - The commit hash or name of a repository branch or tag
# Example Request:
# GET /projects/:id/repository/commits/:sha
get
":id/repository/commits/:sha"
do
authorize!
:download_code
,
user_project
sha
=
params
[
:sha
]
commit
=
user_project
.
repository
.
commit
(
sha
)
not_found!
"Commit"
unless
commit
present
commit
,
with:
Entities
::
RepoCommit
end
# Get the diff for a specific commit of a project
#
# Parameters:
# id (required) - The ID of a project
# sha (required) - The commit or branch name
# Example Request:
# GET /projects/:id/repository/commit
/:sha
get
":id/repository/commit
/:sha
"
do
# GET /projects/:id/repository/commit
s/:sha/diff
get
":id/repository/commit
s/:sha/diff
"
do
authorize!
:download_code
,
user_project
sha
=
params
[
:sha
]
result
=
CommitLoadContext
.
new
(
user_project
,
current_user
,
{
id:
sha
}).
execute
not_found!
"Commit"
unless
result
[
:commit
]
result
[
:commit
].
diffs
end
...
...
@@ -148,8 +164,8 @@ module API
# sha (required) - The commit or branch name
# filepath (required) - The path to the file to display
# Example Request:
# GET /projects/:id/repository/
commits/:sha/blob
get
":id/repository/commits/:sha/blob"
do
# GET /projects/:id/repository/
blobs/:sha
get
[
":id/repository/blobs/:sha"
,
":id/repository/commits/:sha/blob"
]
do
authorize!
:download_code
,
user_project
required_attributes!
[
:filepath
]
...
...
lib/tasks/gitlab/check.rake
View file @
ffb0ad93
...
...
@@ -374,8 +374,8 @@ namespace :gitlab do
check_repo_base_is_not_symlink
check_repo_base_user_and_group
check_repo_base_permissions
check_
post_receiv
e_hook_is_up_to_date
check_repos_
post_receiv
e_hooks_is_link
check_
updat
e_hook_is_up_to_date
check_repos_
updat
e_hooks_is_link
finished_checking
"GitLab Shell"
end
...
...
@@ -385,10 +385,10 @@ namespace :gitlab do
########################
def
check_
post_receiv
e_hook_is_up_to_date
print
"
post-receiv
e hook up-to-date? ... "
def
check_
updat
e_hook_is_up_to_date
print
"
updat
e hook up-to-date? ... "
hook_file
=
"
post-receiv
e"
hook_file
=
"
updat
e"
gitlab_shell_hooks_path
=
Gitlab
.
config
.
gitlab_shell
.
hooks_path
gitlab_shell_hook_file
=
File
.
join
(
gitlab_shell_hooks_path
,
hook_file
)
gitlab_shell_ssh_user
=
Gitlab
.
config
.
gitlab_shell
.
ssh_user
...
...
@@ -494,10 +494,10 @@ namespace :gitlab do
end
end
def
check_repos_
post_receiv
e_hooks_is_link
print
"
post-receiv
e hooks in repos are links: ... "
def
check_repos_
updat
e_hooks_is_link
print
"
updat
e hooks in repos are links: ... "
hook_file
=
"
post-receiv
e"
hook_file
=
"
updat
e"
gitlab_shell_hooks_path
=
Gitlab
.
config
.
gitlab_shell
.
hooks_path
gitlab_shell_hook_file
=
File
.
join
(
gitlab_shell_hooks_path
,
hook_file
)
gitlab_shell_ssh_user
=
Gitlab
.
config
.
gitlab_shell
.
ssh_user
...
...
spec/requests/api/repositories_spec.rb
View file @
ffb0ad93
...
...
@@ -112,23 +112,51 @@ describe API::API do
end
end
describe
"GET /projects:id/repository/commit/:sha"
do
describe
"GET /projects:id/repository/commits/:sha"
do
context
"authorized user"
do
it
"should return a commit by sha"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commits/
#{
project
.
repository
.
commit
.
id
}
"
,
user
)
response
.
status
.
should
==
200
json_response
[
'id'
].
should
==
project
.
repository
.
commit
.
id
json_response
[
'title'
].
should
==
project
.
repository
.
commit
.
title
end
it
"should return a 404 error if not found"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commits/invalid_sha"
,
user
)
response
.
status
.
should
==
404
end
end
context
"unauthorized user"
do
it
"should not return the selected commit"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commits/
#{
project
.
repository
.
commit
.
id
}
"
)
response
.
status
.
should
==
401
end
end
end
describe
"GET /projects:id/repository/commits/:sha/diff"
do
context
"authorized user"
do
before
{
project
.
team
<<
[
user2
,
:reporter
]
}
it
"should return the diff of the selected commit"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commit
/
#{
project
.
repository
.
commit
.
id
}
"
,
user
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/commit
s/
#{
project
.
repository
.
commit
.
id
}
/diff
"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
>=
1
json_response
.
first
.
keys
.
should
include
"diff"
end
it
"should return a 404 error if invalid commit"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commits/invalid_sha/diff"
,
user
)
response
.
status
.
should
==
404
end
end
context
"unauthorized user"
do
it
"should not return the diff of the selected commit"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commit
/
#{
project
.
repository
.
commit
.
id
}
"
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/commit
s/
#{
project
.
repository
.
commit
.
id
}
/diff
"
)
response
.
status
.
should
==
401
end
end
...
...
@@ -157,25 +185,33 @@ describe API::API do
end
end
describe
"GET /projects/:id/repository/
commits/:sha/blob
"
do
describe
"GET /projects/:id/repository/
blobs/:sha
"
do
it
"should get the raw file contents"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/
commits/master/blob
?filepath=README.md"
,
user
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/
blobs/master
?filepath=README.md"
,
user
)
response
.
status
.
should
==
200
end
it
"should return 404 for invalid branch_name"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/
commits/invalid_branch_name/blob
?filepath=README.md"
,
user
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/
blobs/invalid_branch_name
?filepath=README.md"
,
user
)
response
.
status
.
should
==
404
end
it
"should return 404 for invalid file"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/
commits/master/blob
?filepath=README.invalid"
,
user
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/
blobs/master
?filepath=README.invalid"
,
user
)
response
.
status
.
should
==
404
end
it
"should return a 400 error if filepath is missing"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/
commits/master/blob
"
,
user
)
get
api
(
"/projects/
#{
project
.
id
}
/repository/
blobs/master
"
,
user
)
response
.
status
.
should
==
400
end
end
describe
"GET /projects/:id/repository/commits/:sha/blob"
do
it
"should get the raw file contents"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/commits/master/blob?filepath=README.md"
,
user
)
response
.
status
.
should
==
200
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment