Commit Graph
4814 Commits
Author SHA1 Message Date
Grzegorz Bizon 9e211091a8 Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
Stan Hu 88dbc4d110 Merge branch 'fix-relative-root-emoji-support' into 'master'
Fix emoji paths in relative root configurations

## What does this MR do?

If a site specifies a relative URL root, emoji files would omit the path from the URL, leading to lots of 404s.

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

At first, I tried to use `ActionView::Helpers::AssetUrlHelper.asset_url` since this is what it's intended to do. But this helper function is extremely slow, and it took minutes to generate the URLs for the hundreds of links needed for each emoji.

## Why was this MR needed?

Because emojis were broken in relative URL installations

## What are the relevant issue numbers?

#15642

## Does this MR meet the acceptance criteria?

- [X] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
  - [X] Added for this feature/bug
  - [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 !5027
2016-07-01 16:51:03 +00:00
Stan Hu 4bfe10d5f9 Fix emoji paths in relative root configurations
If a site specifies a relative URL root, emoji files would omit the path from
the URL, leading to lots of 404s.

Closes #15642
2016-07-01 09:10:12 -07:00
Rémy Coutable 557ca2b31f Merge branch 'todos-api' into 'master'
Add Todos API

* Closes #14068
* Closes #14675 

- [x] Implementation
- [x]  Tests
- [x] Documentation
- [x] Changelog

See merge request !3188
2016-07-01 15:36:05 +00:00
Rémy Coutable c368cb605b Merge branch 'fix/import-export-events' into 'master'
Fixing problems with events for import/export

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/19202

A couple of issues related to target being missing in exported `Events` (as being polymorphic and not have `ActiveRecord` relationships is a bit more tricky than normal models) plus as the export was in JSON, the import retrieves hashed fields as stringified hashes and not symbolized - so fixed that as well, which was the cause of https://gitlab.com/gitlab-org/gitlab-ce/issues/19202

Also fixed / refactored tests
:simpl
Import/Export Version has been bumped to 0.1.1 as theses changes to events won't work very well with old exports - forcing users to generate a new export in the new version.

See merge request !4987
2016-07-01 15:35:12 +00:00
Rémy Coutable 984698dc96 Merge branch 'refactor-tags-branches-api' into 'master'
Ensure that branch and tag names are given in API

## What does this MR do?

It ensures that the tag or branch name is given. @rymai We talked in an earlier MR about this.

See merge request !5012
2016-07-01 15:25:23 +00:00
James Lopez f29c30475e use has_many relationship with events 2016-07-01 15:34:10 +02:00
James Lopez d6d0a35598 Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce into fix/import-export-events 2016-07-01 14:52:38 +02:00
Robert Schilling 87ac9c9850 Support creating a todo on issuables via API 2016-07-01 14:52:04 +02:00
Robert Schilling 3942621329 Expose target, filter by state as string 2016-07-01 14:52:04 +02:00
Robert Schilling fd9cd5ae8c Add todos API documentation and changelog 2016-07-01 14:51:59 +02:00
Paco Guzman 521454831e Metrics for Rouge::Plugins::Redcarpet and Rouge::Formatters::HTMLGitlab 2016-07-01 12:34:28 +02:00
Robert Schilling 40c685c510 pass paginated array when deleting notes 2016-07-01 10:49:34 +02:00
Robert Schilling 631765748e Expose action_name 2016-07-01 10:49:34 +02:00
Robert Schilling f3abd18c9c Add user to project to see todos 2016-07-01 10:49:34 +02:00
Robert Schilling 39e6f504fc Move to helper, no instance variables 2016-07-01 10:49:34 +02:00
Robert Schilling 25dcd05137 Fix rebase 2016-07-01 10:49:34 +02:00
Douglas Barbosa AlexandreandRobert Schilling a1f224d3f7 Add Todos API 2016-07-01 10:49:34 +02:00
Robert Speicher 6e82c0e06e Merge branch 'fix-external-issue-rendering' into 'master'
Handle external issues in IssueReferenceFilter

Rendering issue references such as `#1` was broken for projects using an external issues tracker.

See gitlab-org/gitlab-ce#19036

See merge request !4988
2016-06-30 17:46:20 +00:00
Douwe Maan f7b056167a Merge branch 'ericidema/gitlab-ce-import-with-github-personal-access-tokens' into 'master'
Allow importing from Github using Personal Access Tokens

_Originally opened at !4005 by @ericidema._

------

## What does this MR do?

* Made changes to `Gitlab::GithubImport::Client` so that it can be used with Github Personal Access Tokens without the need for OAuth.
* Added UI to collect Personal Access Token from user.
* Detect if the user has logged in with GitHub and use OAuth to skip the Personal Access Token form.

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

Twin Omnibus MR: https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/774

## What are the relevant issue numbers?

Closes #13970.

## Screenshots

### GitHub import is configured

![github_import_configured](/uploads/151e4f0edf3f87bfa03c2d97dda8b3d8/github_import_configured.png)

-----

### GitHub import is not configured

![github_import_not_configured](/uploads/cb129f7e2ffe66cceb28ccd9af480284/github_import_not_configured.png)

-----

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- Tests
  - [x] Added for this feature/bug
  - [ ] All builds are passing
- [ ] 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 !4938
2016-06-30 17:42:42 +00:00
Rémy Coutable 0144dce7ee Merge branch 'fix_restore_warning' into 'master'
Fix restore warning message

## What does this MR do?

Fix the restore Rake task so it properly outputs the database warning. This is a pretty important warning and it was not even being output. After this fix, the output looks like the screenshot below.

![Screen_Shot_2016-06-28_at_3.53.46_PM](/uploads/d250189d39fcacd0c8ec0aacf9cd930d/Screen_Shot_2016-06-28_at_3.53.46_PM.png)

See merge request !4980
2016-06-30 17:07:52 +00:00
Eric K IdemaandRémy Coutable 12aa1f898d Import from Github using Personal Access Tokens.
This stands as an alternative to using OAuth to access a user's Github
repositories.  This is setup in such a way that it can be used without OAuth
configuration.

From a UI perspective, the how to import modal has been replaced by a full
page, which includes a form for posting a personal access token back to the
Import::GithubController.

If the user has logged in via GitHub, skip the Personal Access Token and go
directly to Github for an access token via OAuth.
2016-06-30 18:48:17 +02:00
Robert Speicher 443d584253 Merge branch 'rubocop/enable-unneeded-capital-w-cop' into 'master'
Enable Style/UnneededCapitalW Rubocop cop

## What does this MR do?

This MR enables Rubocop cop that checks if `%W[]`, which supports interpolation, is needed.

## What are the relevant issue numbers?

#17478 

See merge request !5010
2016-06-30 15:21:53 +00:00
Dmitriy Zaporozhets 8b67529182 Merge branch 'remove-converalls-gem' into 'master'
Remove coveralls as its unused

This gem is unused so could be removed.

@dzaporozhets @connorshea  We've discussed this some time ago on Slack

See merge request !5001
2016-06-30 12:54:22 +00:00
Robert Schilling cc324eb4ab Ensure that branch and tag names are given in API 2016-06-30 13:46:35 +02:00
Grzegorz Bizon efd70c1878 Enable Style/UnneededCapitalW Rubocop cop 2016-06-30 13:31:52 +02:00
Yorick Peterse a4ce2d126d Handle external issues in IssueReferenceFilter
IssueReferenceFilter will end up processing internal issue references
when a project uses an external issues tracker while still using
internal issue references (in the form of `#\d+`). This commit ensures
that these links are rendered as external issue links, regardless of
whether the project one currently views uses an internal or external
issues tracker.

Fixes gitlab-org/gitlab-ce#19036, gitlab-com/performance#16
2016-06-30 11:52:44 +02:00
Z.J. van de Weg 7a2f25a80d Remove coveralls as its unused 2016-06-30 10:59:41 +02:00
Alejandro Rodríguez 4a8a69837a Add Application Setting to configure default Repository Path for new projects 2016-06-29 23:35:00 -04:00
Alejandro Rodríguez 20b9bb2029 Create (if necessary) and link the gitlab-shell secret file on the rake install task 2016-06-29 22:30:33 -04:00
Alejandro Rodríguez 86359ec854 Refactor repository paths handling to allow multiple git mount points 2016-06-29 22:30:31 -04:00
Stan Hu f7eceed644 Merge branch 'handle-redis-not-there' into 'master'
Fix database migrations when Redis is not running

If Redis were not running or USE_DB were set to false, the application settings retrieval would fail completely. This change only attempts to use the cache if the system actually
wants to connect to the DB and rescues any failures in talking to Redis.

Closes #17557 


See merge request !4924
2016-06-29 22:14:06 +00:00
Robert Speicher 65187efa5c Merge branch 'rs-gitalb-com-staging' into 'master'
Update `Gitlab.com?` to support staging

Ref: https://gitlab.com/gitlab-com/operations/issues/324#note_12428337

See merge request !4637
2016-06-29 21:47:49 +00:00
Stan Hu d10642a4b8 Handle case when Redis cache returns an empty setting 2016-06-29 14:28:41 -07:00
Stan Hu c600cf8348 Fix database migrations when Redis is not running
If Redis were not running or USE_DB were set to false, the
application settings retrieval would fail completely. This
change only attempts to use the cache if the system actually
wants to connect to the DB and rescues any failures in talking to
Redis.

Closes #17557
2016-06-29 14:04:59 -07:00
Grzegorz Bizon 28bafd5354 Enable Style/SpaceAfterComma Rubocop cop 2016-06-29 15:23:44 +02:00
James Lopez 5cd3d7c40a bump version - as old exports wont be compatible 2016-06-29 10:49:31 +02:00
James Lopez 3d2a736679 fixing events for import/export 2016-06-29 10:35:26 +02:00
Robert Speicher 5423e6e2d5 Merge branch 'zj-workhorse-format-patch' into 'master'
Workhorse to serve email diffs

See merge request !4590
2016-06-29 02:26:38 +00:00
Drew Blessing 3ce174c370 Fix restore warning message 2016-06-28 15:54:40 -05:00
Z.J. van de Weg db0a6c10ed Bump workhorse version 2016-06-28 22:10:53 +02:00
Rémy Coutable b8d75d41aa Merge branch 'fix/builds-api-builds-for-commit-search' into 'master'
Find all builds for commit if there are multiple pipelines for it

## What does this MR do?

This MR fixes a builds API. When multiple pipelines were triggered for a commit, then API returned builds only from the last pipeline.

## What are the relevant issue numbers?

Closes #18912  
Closes #19243 

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [x] API support added
- Tests
  - [x] Added for this feature/bug
  - [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 !4849
2016-06-28 17:10:07 +00:00
Yorick Peterse d7b4f36a3c Use clock_gettime for all performance timestamps
Process.clock_gettime allows getting the real time in nanoseconds as
well as allowing one to get a monotonic timestamp. This offers greater
accuracy without the overhead of having to allocate a Time instance. In
general using Time.now/Time.new is about 2x slower than using
Process.clock_gettime(). For example:

    require 'benchmark/ips'

    Benchmark.ips do |bench|
      bench.report 'Time.now' do
        Time.now.to_f
      end

      bench.report 'clock_gettime' do
        Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
      end

      bench.compare!
    end

Running this benchmark gives:

    Calculating -------------------------------------
                Time.now   108.052k i/100ms
           clock_gettime   125.984k i/100ms
    -------------------------------------------------
                Time.now      2.343M (± 7.1%) i/s -     11.670M
           clock_gettime      4.979M (± 0.8%) i/s -     24.945M

    Comparison:
           clock_gettime:  4979393.8 i/s
                Time.now:  2342986.8 i/s - 2.13x slower

Another benefit of using Process.clock_gettime() is that we can simplify
the code a bit since it can give timestamps in nanoseconds out of the
box.
2016-06-28 17:51:25 +02:00
Grzegorz Bizon 2b8f04a669 Remove redundant check in commit builds API endpoint 2016-06-28 17:15:38 +02:00
Paco Guzman b5fa56eb3f Unused got variable with very bad performance
In any case if just want the value which is always ‘gitlab’

require 'benchmark/ips'

Project.first # To load database things
GitlabIssueTrackerService.first # To load database things

Benchmark.ips do |x|
  x.config(:time => 5, :warmup => 2)

  x.report("current") do
    Project.new.default_issue_tracker.to_param
  end

  x.report("") do
    'gitlab'
  end

  x.compare!
end

Calculating -------------------------------------
             current     4.000  i/100ms
                        30.938k i/100ms
-------------------------------------------------
             current     47.298  (±10.6%) i/s -    232.000 
                          4.366M (±20.9%) i/s -     17.202M

Comparison:
                    :  4366456.0 i/s
             current:       47.3 i/s - 92318.26x slower
2016-06-28 17:01:37 +02:00
Z.J. van de Weg c31f876a27 Workhorse to serve email diffs
Depends on the changes in Workhorse (gitlab-org/gitlab-workhorse!48).
2016-06-28 14:26:38 +02:00
Grzegorz Bizon b9b95a9f19 Improve commit builds API endpoint RESTful behavior
1. Return 404 if commit is not found (RESTful resource not found)
2. Return an empty array if pipeline is not found (resource present, no
   associated builds found)
3. Return an empty array if pipeline found but no builds there (resource
   present, no associated builds)
2016-06-28 12:22:31 +02:00
Grzegorz Bizon 8e66618749 Find all builds for commit if multiple pipelines 2016-06-28 11:34:49 +02:00
http://jneen.net/ 66b37149eb support cgi style options, such as erb?parent=json 2016-06-27 14:17:49 -07:00
http://jneen.net/ e08ff468e8 make #custom_language private 2016-06-27 14:17:49 -07:00