Commit 5d185e66 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '20233-confidential-issue' into 'master'

Show release notes in tag list

## What does this MR do?

Two things in one! Ensure that a tag's message having an invalid UTF-8 byte sequence doesn't cause a 500, like at: https://gitlab.com/bitcubate/node/tags?page=9 (The problem tag is https://gitlab.com/bitcubate/node/tags/v0.1.0)

Also ensure that the release notes are actually shown on the tag index, like they are supposed to.

## Are there points in the code the reviewer needs to double check?

There's not much, so all of it.

## Why was this MR needed?

The tags index was broken in two ways.

## What are the relevant issue numbers?

Closes #20233 but does more than that.

## Screenshots (if relevant)

Before:

![image](/uploads/5456fcc70f02794570762e6ed9c6d863/image.png)

After:

![image](/uploads/0329bf93e0f1be2417e500e924bc775d/image.png)

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
- ~~API support added~~
- Tests
  - [x] Added for this feature/bug
  - [ ] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !5503
parents 8a95f1f3 e44bbcb9
...@@ -21,6 +21,7 @@ v 8.10.2 (unreleased) ...@@ -21,6 +21,7 @@ v 8.10.2 (unreleased)
- Fix backup restore. !5459 - Fix backup restore. !5459
- Rescue Rugged::OSError (lock exists) when creating references. !5497 - Rescue Rugged::OSError (lock exists) when creating references. !5497
- Disable MySQL foreign key checks before dropping all tables. !5472 - Disable MySQL foreign key checks before dropping all tables. !5472
- Show release notes in tags list
- Use project ID in repository cache to prevent stale data from persisting across projects. !5460 - Use project ID in repository cache to prevent stale data from persisting across projects. !5460
- Ensure relative paths for video are rewritten as we do for images. !5474 - Ensure relative paths for video are rewritten as we do for images. !5474
- Ensure current user can retry a build before showing the 'Retry' button. !5476 - Ensure current user can retry a build before showing the 'Retry' button. !5476
......
...@@ -10,11 +10,12 @@ class Projects::TagsController < Projects::ApplicationController ...@@ -10,11 +10,12 @@ class Projects::TagsController < Projects::ApplicationController
@tags = @repository.tags_sorted_by(@sort) @tags = @repository.tags_sorted_by(@sort)
@tags = Kaminari.paginate_array(@tags).page(params[:page]) @tags = Kaminari.paginate_array(@tags).page(params[:page])
@releases = project.releases.where(tag: @tags) @releases = project.releases.where(tag: @tags.map(&:name))
end end
def show def show
@tag = @repository.find_tag(params[:id]) @tag = @repository.find_tag(params[:id])
@release = @project.releases.find_or_initialize_by(tag: @tag.name) @release = @project.releases.find_or_initialize_by(tag: @tag.name)
@commit = @repository.commit(@tag.target) @commit = @repository.commit(@tag.target)
end end
......
require 'spec_helper'
describe Projects::TagsController do
let(:project) { create(:project, :public) }
let!(:release) { create(:release, project: project) }
let!(:invalid_release) { create(:release, project: project, tag: 'does-not-exist') }
describe 'GET index' do
before { get :index, namespace_id: project.namespace.to_param, project_id: project.to_param }
it 'returns the tags for the page' do
expect(assigns(:tags).map(&:name)).to eq(['v1.1.0', 'v1.0.0'])
end
it 'returns releases matching those tags' do
expect(assigns(:releases)).to include(release)
expect(assigns(:releases)).not_to include(invalid_release)
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment