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
Jérome Perrin
gitlab-ce
Commits
d139cc6b
Commit
d139cc6b
authored
Aug 25, 2013
by
Gabor Nagy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adds feature: get a diff via API.
parent
2b36dee6
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
0 deletions
+64
-0
doc/api/repositories.md
doc/api/repositories.md
+28
-0
lib/api/repositories.rb
lib/api/repositories.rb
+14
-0
spec/requests/api/repositories_spec.rb
spec/requests/api/repositories_spec.rb
+22
-0
No files found.
doc/api/repositories.md
View file @
d139cc6b
...
...
@@ -239,6 +239,34 @@ Parameters:
]
```
## Get the diff of a commit
Get the diff of a commit in a project.
```
GET /projects/:id/repository/commit/:sha
```
Parameters:
+
`id`
(required) - The ID of a project
+
`sha`
(required) - The name of a repository branch or tag or if not given the default branch
```
json
[
{
"diff"
:
"--- a/doc/update/5.4-to-6.0.md
\n
+++ b/doc/update/5.4-to-6.0.md
\n
@@ -71,6 +71,8 @@
\n
sudo -u git -H bundle exec rake migrate_keys RAILS_ENV=production
\n
sudo -u git -H bundle exec rake migrate_inline_notes RAILS_ENV=production
\n
\n
+sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
\n
+
\n
```
\n
\n
### 6. Update config files"
,
"new_path"
:
"doc/update/5.4-to-6.0.md"
,
"old_path"
:
"doc/update/5.4-to-6.0.md"
,
"a_mode"
:
null
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
}
]
```
## List repository tree
Get a list of repository files and directories in a project.
...
...
lib/api/repositories.rb
View file @
d139cc6b
...
...
@@ -102,6 +102,20 @@ module API
present
commits
,
with:
Entities
::
RepoCommit
end
# Get 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
authorize!
:download_code
,
user_project
sha
=
params
[
:sha
]
result
=
CommitLoadContext
.
new
(
user_project
,
current_user
,
{
id:
sha
}).
execute
result
[
:commit
].
diffs
end
# Get a project repository tree
#
# Parameters:
...
...
spec/requests/api/repositories_spec.rb
View file @
d139cc6b
...
...
@@ -112,6 +112,28 @@ describe API::API do
end
end
describe
"GET /projects:id/repository/commit/:sha"
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
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
>=
1
json_response
.
first
.
keys
.
should
include
"diff"
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
}
"
)
response
.
status
.
should
==
401
end
end
end
describe
"GET /projects/:id/repository/tree"
do
context
"authorized user"
do
before
{
project
.
team
<<
[
user2
,
:reporter
]
}
...
...
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