gitlab-org--gitlab-foss/lib/gitlab
Douwe Maan 51087cfa1a Merge branch 'artifacts-from-ref-and-build-name' into 'master'
Add a download buttons for Build Artifacts

## What does this MR do?
This MR adds a download buttons for build artifacts of latest succesful pipeline in:
- dashboard of project,
- branches and tags views,
- and tree viewer

Implement #4255

## What are the relevant issue numbers?

Closes #4255, Closes #14419

## Screenshots

### Project main

![](/uploads/29ee2154a214416059a875f2715d4fa3/Screen_Shot_2016-08-24_at_8.00.31_PM.png)

### Branches

![](/uploads/9220c593288370986fbc1d42a1425ef7/Screen_Shot_2016-08-24_at_8.02.01_PM.png)

### Tags

![](/uploads/a843e8103221fea475a0cf9d62a1999d/Screen_Shot_2016-08-24_at_8.03.32_PM.png)

### Source Tree

![](/uploads/63cd3c8c91b6f427c166dc90d8e3c059/Screen_Shot_2016-08-24_at_8.04.56_PM.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)
- [x] Download buttons
- [x] Models
- [x] Routes
- [x] Projects::ArtifactsController
- [x] API
- Tests
  - Rails
      - [x] Project#builds_for
      - [x] branch name with slashes
      - [x] only success builds
      - [x] only latest builds
      - [x] feature tests for download buttons
  - API
      - [x] branch name with slashes
      - [x] only success builds
      - [x] only latest builds
  - [x] 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 !5142
2016-08-30 18:03:16 +00:00
..
auth
backend Merge branch 'master' of https://gitlab.com/gitlab-org/gitlab-ce into remove-grack-lfs 2016-08-09 12:27:37 +02:00
badge Fix tests 2016-08-26 15:40:12 +08:00
bitbucket_import
checks Change the order of the access rules to check simpler first, and add specs 2016-08-12 18:27:42 -04:00
ci Rename CI config hidden job entry to hidden entry 2016-08-29 09:30:48 +02:00
conflict Merge branch '21247-mergerequestscontroller-conflicts-may-fail-with-iso-8859-data' into 'master' 2016-08-25 19:08:38 +00:00
data_builder Simplify the name for data builder, feedback: 2016-08-12 16:09:29 +08:00
database Disable statement timeout outside of transaction and during adding concurrent index 2016-07-14 18:50:46 -07:00
diff Merge branch 'master' into dz-merge-request-version 2016-08-22 11:34:41 +03:00
downtime_check Better formatting for downtime check messages 2016-08-17 12:15:20 +02:00
email Disable “issue by email” feature until it uses a different token 2016-08-19 19:49:12 -05:00
fogbugz_import
gfm
git Merge branch '18627-wildcard-branch-protection' into 'master' 2016-07-07 22:37:30 +00:00
github_import Add readable error message when remote data could not be fully imported 2016-08-24 12:17:13 -03:00
gitlab_import fixed similar issue with gitlab.com importer because why not! 2016-07-14 17:06:48 +02:00
google_code_import
graphs
import_export refactor parse_hash based on feedback 2016-08-11 21:42:34 +02:00
ldap Enable Style/SpaceAroundEqualsInParameterDefault cop 2016-08-06 04:03:01 +02:00
markdown
metrics Adds response mime type to transaction metric action when it's not HTML 2016-08-25 16:33:41 +02:00
middleware Fix typo in gitlab-workhorse header 2016-08-19 12:25:52 +02:00
o_auth Merge branch 'master' into dev-master 2016-07-02 22:58:21 +02:00
request_profiler Rails prefers require_dependency so that it won't require twice: 2016-08-09 06:48:23 +00:00
saml Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
sanitizers Refactored SVG sanitizer 2016-06-12 21:05:58 -04:00
sherlock
sidekiq_middleware Add support for using RequestStore within Sidekiq tasks via SIDEKIQ_REQUEST_STORE env variable 2016-07-25 17:59:09 -07:00
slash_commands Fix behavior around commands with optional arguments 2016-08-18 14:29:49 -05:00
sql
template Load issues and merge requests templates from repository 2016-08-16 15:50:17 -03:00
access.rb Optimize maximum user access level lookup in loading of notes 2016-07-26 15:33:05 -07:00
app_logger.rb
asciidoc.rb Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
auth.rb Refactor find_for_git_client and its related methods. 2016-08-18 17:15:50 -05:00
award_emoji.rb Upgrade Gemojione from 2.6.1 to 3.0.1. 2016-07-18 10:40:16 -06:00
bitbucket_import.rb
blame.rb add custom highlighting via .gitattributes 2016-06-27 14:17:49 -07:00
changes_list.rb api for generating new merge request 2016-08-11 23:37:00 +07:00
closing_issue_extractor.rb Don’t close issues on original project from a fork 2016-08-04 12:38:08 +02:00
color_schemes.rb
config_helper.rb
contributions_calendar.rb Reduce contributions calendar data payload 2016-08-25 16:00:39 -05:00
contributor.rb
current_settings.rb Remove gitorious 2016-08-25 10:10:10 +01:00
database.rb Fix methods visibility in gitlab database module 2016-07-19 15:12:14 +02:00
devise_failure.rb
downtime_check.rb Added checks for migration downtime 2016-07-20 12:41:56 +02:00
emoji.rb Add emoji.rb in lib/gitlab instead of using the gitlab_emoji gem. 2016-06-29 14:53:09 -06:00
exclusive_lease.rb
git.rb api for generating new merge request 2016-08-11 23:37:00 +07:00
git_access.rb api for generating new merge request 2016-08-11 23:37:00 +07:00
git_access_status.rb Ensure to_json methods take optional argument 2016-07-20 11:14:06 +01:00
git_access_wiki.rb Revert "Revert "Merge branch '18193-developers-can-merge' into 'master' "" 2016-07-18 10:16:56 +02:00
git_logger.rb
git_post_receive.rb Log base64-decoded PostReceive arguments 2016-08-05 15:00:12 +02:00
git_ref_validator.rb
gl_id.rb Revert "squashed merge and fixed conflicts" 2016-06-16 12:59:07 +02:00
gon_helper.rb Fix help page paths to make sure shortcuts and the UI help page work. 2016-07-19 11:17:14 -06:00
highlight.rb use the proper variable names o_O 2016-07-14 12:21:22 -07:00
identifier.rb
import_export.rb using shared path for project import uploads and refactored gitlab remove export worker 2016-08-04 12:51:55 +02:00
import_formatter.rb
import_sources.rb Remove gitorious 2016-08-25 10:10:10 +01:00
incoming_email.rb
issues_labels.rb
key_fingerprint.rb Enable Style/UnneededCapitalW Rubocop cop 2016-06-30 13:31:52 +02:00
lazy.rb
logger.rb
mail_room.rb Small refactor and a few documentation fixes 2016-08-04 19:02:39 +02:00
markup_helper.rb
metrics.rb Tracking of custom events 2016-08-17 10:04:04 +02:00
other_markup.rb Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
popen.rb Enable Style/SpaceAroundEqualsInParameterDefault cop 2016-08-06 04:03:01 +02:00
production_logger.rb
project_search_results.rb
protocol_access.rb Default Git access protocol to web 2016-07-05 16:54:22 -05:00
recaptcha.rb
redis.rb Small refactor in Redis class and improved specs 2016-08-06 04:15:16 +02:00
reference_extractor.rb
regex.rb Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
repository_check_logger.rb
request_profiler.rb Profile requests when a header is passed 2016-07-26 20:06:09 +02:00
routing.rb
search_results.rb
seeder.rb
sherlock.rb
sidekiq_logger.rb
snippet_search_results.rb
themes.rb Refactor gitlab themes module to make it singleton 2016-07-19 15:12:14 +02:00
timeless.rb Add Timeless helper module to prevent updated_at from being updated 2016-07-06 18:50:58 -04:00
upgrader.rb
uploads_transfer.rb
url_builder.rb url_builder: handle project snippets 2016-08-24 10:32:12 -04:00
url_sanitizer.rb spec and fix for sanitize method 2016-07-11 09:01:09 +02:00
user_access.rb Improve EE compatibility with protected branch access levels. 2016-08-16 12:08:10 +05:30
utils.rb Use travel_to instead of dependency injection, feedback: 2016-08-19 16:57:25 +08:00
version_info.rb
visibility_level.rb
workhorse.rb If version file is unavailable unknown status 2016-07-23 06:56:32 +02:00