summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Luder <maser@winterfell.ch>2015-05-08 14:34:10 +0200
committerMartin Luder <maser@winterfell.ch>2015-05-08 14:34:10 +0200
commit55f91f3d4348e1d7be0953d0ddf9984d65f18993 (patch)
tree0baed0bedb28b1acd015b100c69a7b3a1efa1cce
parent6c32abc5f7f090d4932054e5cc1ff0594edd5ff1 (diff)
downloadgitlab-ce-55f91f3d4348e1d7be0953d0ddf9984d65f18993.tar.gz
Order commit comments in API chronologically
When fetching commit comments via API, the comments were not ordered, but just returned in the order Postgresql finds them. Now the API always returns comments in chronological order.
-rw-r--r--CHANGELOG1
-rw-r--r--lib/api/commits.rb2
-rw-r--r--spec/requests/api/commits_spec.rb3
3 files changed, 4 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 84bdf78e980..ef0f164264e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -48,6 +48,7 @@ v 7.11.0 (unreleased)
- Add footnotes support to Markdown (Guillaume Delbergue)
- Add current_sign_in_at to UserFull REST api.
- Make Sidekiq MemoryKiller shutdown signal configurable
+ - Order commit comments chronologically in API.
v 7.10.2
- Fix CI links on MR page
diff --git a/lib/api/commits.rb b/lib/api/commits.rb
index 23270b1c0f4..f4efb651eb6 100644
--- a/lib/api/commits.rb
+++ b/lib/api/commits.rb
@@ -62,7 +62,7 @@ module API
sha = params[:sha]
commit = user_project.commit(sha)
not_found! 'Commit' unless commit
- notes = Note.where(commit_id: commit.id)
+ notes = Note.where(commit_id: commit.id).order(:created_at)
present paginate(notes), with: Entities::CommitNote
end
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index 9ea60e1a4ad..a1c248c636e 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -9,6 +9,7 @@ describe API::API, api: true do
let!(:master) { create(:project_member, user: user, project: project, access_level: ProjectMember::MASTER) }
let!(:guest) { create(:project_member, user: user2, project: project, access_level: ProjectMember::GUEST) }
let!(:note) { create(:note_on_commit, author: user, project: project, commit_id: project.repository.commit.id, note: 'a comment on a commit') }
+ let!(:another_note) { create(:note_on_commit, author: user, project: project, commit_id: project.repository.commit.id, note: 'another comment on a commit') }
before { project.team << [user, :reporter] }
@@ -89,7 +90,7 @@ describe API::API, api: true do
get api("/projects/#{project.id}/repository/commits/#{project.repository.commit.id}/comments", user)
expect(response.status).to eq(200)
expect(json_response).to be_an Array
- expect(json_response.length).to eq(1)
+ expect(json_response.length).to eq(2)
expect(json_response.first['note']).to eq('a comment on a commit')
expect(json_response.first['author']['id']).to eq(user.id)
end