Changes for gmail inbox actions
Related to the ongoing efforts to get Gmail inbox actions for GitLab.com in #1517
Not using `mdash` would break the rendering of the html email by switching `Content-Transfer-Encoding` to `quoted-printable` for every email.
Removed the rake task and docs to prevent users from sending dummy emails which might cause application rejection.
See merge request !1024
revert caching of note text
This MR reverts the caching of note texts because what is rendered as a link in Markdown depends on the user's access to other projects and groups.
Until we find a solution that doesn't decrease security, let's not use the cache for this.
See discussion in gitlab-org/gitlab-ce!911 for more information.
/cc @DouweM @stanhu @vsizov
See merge request !1014
Speed up security feature specs
Before: `rspec spec/features/security/ 0.12s user 0.04s system 0% cpu 3:38.00 total`
After: `rspec spec/features/security/ 0.12s user 0.04s system 0% cpu 1:40.58 total`
The majority of the speed improvements is from two things:
1. Instead of using our standard `login_as` helper in the matchers, we take advantage
of the `Warden::Test::Helpers` version of the method which bypasses the login form
and logs the user in directly. We were essentially testing that filling out the login
form works hundreds of times.
2. There were many tests that verified if a user of a certain access level
(master, owner, reporter, guest) had access to a resource. Unfortunately we were
creating every type of user for each test even though a test was only verifying one of
them at a time. Now the tests only create the one user role they're testing.
See merge request !1023
The user being created was no different than what `be_allowed_for` was
doing behind the scenes so we were essentially testing all user-level
accesses twice.
Use project repository expire_cache to clear cache in test
Clearing the entire Redis cache in 643557d for the `branches_spec.rb` may be causing issues. Just clear what we need.
See merge request !1022
Fix 404 error in files view after deleting the last file in a repository
Here's the logic:
1. In `TreeController`, `require_non_empty_project` will prevent `show` from being called if the project is empty. That means all calls to `show` will be guaranteed to have at least 1 commit.
2. If the ref name is not valid, then return a 404. This ensures that at least the controller is looking at a valid branch/tag/SHA ID.
3. This leaves a number of cases:
```
3a. Valid ref, valid directory
3b. Valid ref, valid filename
3c. Valid ref, invalid path
3d. Valid ref, no files
```
Case 3a: The tree will not be `empty?` and will pass through the whole function.
Case 3b: The tree will be `empty?` but the `blob_at` will resolve properly and trigger a redirect to the file.
Case 3c: In this case, a path is given. Return 404 if it cannot be resolved neither as a tree nor a blob.
Case 3d: In this case, no path is given. If the tree is empty, this means it's an empty branch and just fall through.
Example broken branch: https://gitlab.com/gitlab-org/gitlab-test/tree/empty-branchCloses#1362
See merge request !1010
You need to store your DB encryption key
You can break two-factor authentication for existing users when
restoring a backup if you lost your DB encryption key.
See merge request !1015
Don't stop if database.sql.gz already exists
The existing behavior of the backups is to overwrite whatever data
was still there in the scratch directories. This broke when we added
a 'gzip' step because 'gzip database.sql' will fail if 'database.sql.gz'
already exists. Doing 'rm -f database.sql.gz' before the 'gzip'
avoids this failure.
See merge request !1011