Commit Graph
2087 Commits
Author SHA1 Message Date
Stan Hu b277f23a53 Improve regexp to prevent false positives
If a filename happened to contain "db" and enough "rwx" characters before, then
this test would previously fail. For example:

```
drwxr-xr-x gitlab-runner/gitlab-runner      0 2015-04-02 07:46 uploads/tmp/cassidy.stokes8477/gitlabhq/36d972fa55d6b44810fc6fd843473adb/
```

Adding a space before the "db" match string tightens up the regexp and reduces the
chance of unintended match.
2015-04-02 07:02:47 -07:00
Robert Speicher 6ab8275cd1 Check symlink mode as a String for file_type_icon_class
See https://gitlab.com/gitlab-org/gitlab_git/commit/8ae14bb84b94a2ec15f8a639fb82f0f55c77ad69
2015-04-01 23:34:33 -04:00
Marin Jankovski 16a6ea2d17 Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq 2015-03-31 19:04:52 -07:00
Marin Jankovski d77f333f9c Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
Conflicts:
	lib/gitlab/markdown.rb
2015-03-31 19:03:54 -07:00
Marin Jankovski 96d093e59a Merge branch 'email-full-url' 2015-03-31 19:00:59 -07:00
Dmitriy Zaporozhets 7ed8b76f64 Merge branch 'no-chmod-r' into 'master'
Don't use chmod_R for backup tars

When creating backup tar files, only change permissions on the `db`, `uploads`, and `repositories` directories, not their contents.  See https://dev.gitlab.org/gitlab/gitlabhq/merge_requests/1716#note_40472

See merge request !1744
2015-04-01 01:10:00 +00:00
Dmitriy Zaporozhets dc3b4321ff Merge branch 'group-information-leak' into 'master'
Don't leak private group existence by redirecting from namespace controller to group controller.

See merge request !440
2015-04-01 01:01:38 +00:00
Dmitriy Zaporozhets 6b9f1e1a9f Merge branch 'file-type' of https://github.com/Soullivaneuh/gitlabhq into Soullivaneuh-file-type 2015-03-29 17:23:53 -07:00
Dmitriy Zaporozhets 5e266f84f5 Merge pull request #9041 from tsigo/rs-maintain-test-schema
Add ActiveRecord::Migration.maintain_test_schema! to spec_helper
2015-03-29 03:42:58 -07:00
Dmitriy Zaporozhets 275f64fb86 Merge pull request #9044 from tsigo/rs-git-template-env
Define GIT_TEMPLATE_DIR environment variable in TestEnv
2015-03-29 03:40:56 -07:00
Sullivan SENECHAL 8ef7220c23 Improve file icons rendering on tree 2015-03-28 16:49:05 +01:00
Vinnie Okada 0f78d92e4c Don't use chmod_R for backup tars
When creating backup tar files, only change permissions on the `db`,
`uploads`, and `repositories` directories, not their contents.
2015-03-28 08:38:48 -06:00
Robert Speicher 32d6a14098 Move asana_service_spec to its correct location 2015-03-27 22:53:27 -04:00
Robert Speicher 0f1d8e771f Define GIT_TEMPLATE_DIR environment variable in TestEnv
See http://schacon.github.io/git/git-init.html#_template_directory

Without this variable, any global git hooks a developer might have in
~/.git_template would be linked in the `.git/hooks` folder for every
test repository that gets checked out by TestEnv, and would cause
certain specs to fail due to pre-existing hook files.
2015-03-27 22:26:03 -04:00
Robert Speicher 190e08979c Add ActiveRecord::Migration.maintain_test_schema! to spec_helper
New in Rails 4.1, this eliminates spec failures due to forgetting to run
`db:test:prepare`.
2015-03-27 15:31:16 -04:00
Douwe Maan e08d947e77 Use relative URL for Markdown references, except in mails. 2015-03-27 10:39:05 +01:00
Douwe Maan c5de2ce742 Return full URLs from GitLabIssueTrackerService. 2015-03-27 10:39:05 +01:00
Douwe Maan a4608a8dbc Add tests. 2015-03-27 10:27:13 +01:00
Dmitriy Zaporozhets c1c93f4f7a Fix tests and unassigned filter for issues. Updated CHANGELOG 2015-03-27 00:27:51 -07:00
Dmitriy Zaporozhets 26053c8705 Add autocomplete controller 2015-03-26 19:06:19 -07:00
Dmitriy Zaporozhets a9cfff256d Merge pull request #9034 from buildkite/rename-buildbox-to-buildkite
Renamed Buildbox to Buildkite.
2015-03-26 08:54:48 -07:00
Keith Pitt 7fdc017650 Renamed Buildbox to Buildkite. 2015-03-26 11:40:43 +00:00
Dmitriy Zaporozhets 6199da0cb4 Merge pull request #8007 from mr-vinn/markdown-tags
Allow HTML tags in user Markdown input
2015-03-25 10:21:03 -07:00
Dmitriy Zaporozhets 8f3f6e9efb Merge branch 'api-internal-errors' into 'master'
Respond with full GitAccess error if user has project read access.

Should help with debugging #1236.

cc @marin

See merge request !437
2015-03-25 04:16:45 +00:00
Vinnie Okada 057c8c344b Merge branch 'master' into markdown-tags 2015-03-24 20:03:22 -06:00
Dmitriy Zaporozhets fc4af9b197 Merge branch 'git-auth-rack-attack-improvements' into 'master'
Reduce Rack Attack false positives causing 403 errors during HTTP authentication

### What does this MR do?

This MR reduces false positives causing `403 Forbidden` messages after HTTP authentication.

A Git client may attempt to access a repository without a password. If it receives a 401 error, the client often will try again, this time supplying a password. The problem is that `grack_auth.rb` considers a blank password an authentication failure and increases a Redis counter each time this happens. With enough requests, an IP can be banned temporarily even though previous attempts may have been successful. This leads users to see `403 Forbidden` errors until the ban times out (default: 1 hour).

To reduce the chance of a false positive, this MR resets the counter upon a successful authentication from an IP.

In addition, this MR logs when a user has been banned and introduces the ability to disable Rack Attack via a config variable.

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

rack-attack v4.2.0 doesn't support the ability to clear counters out of the box, so `rack_attack_helpers.rb` includes a number of monkey patches to make it work. It looks like this functionality may be added in v4.3.0. I've also sent pull requests to rack-attack to add the functionality necessary to delete a key.

Each time an authentication is successful, the Redis counter for that IP is cleared. I deemed it better to clear the counter than to allow for blank passwords, since the latter seems like a security risk.

### Why was this MR needed?

It was quite difficult to figure out why users were seeing `403 Forbidden`, which is why the log message was added. Users were getting a lot of false positives when accessing repositories with HTTPS. Including the username in the HTTPS URL (e.g. `https://username@mydomain.com/account/repo.git`) caused authentication failures because while the git client provided the username, it left the password blank, leading to an authentication failure.

### What are the relevant issue numbers / [Feature requests](http://feedback.gitlab.com/)?

See Issue #1171

https://github.com/kickstarter/rack-attack/issues/113

See merge request !392
2015-03-24 21:51:40 +00:00
Dmitriy Zaporozhets b8ad3647ad Merge branch 'fix-nested-tasks' into 'master'
Fix nested task lists

When nesting task list items, the parent item is wrapped in a `<p>` tag.  Update the task list parser to handle these paragraph wrappers.

cc @sytse

See merge request !413
2015-03-24 20:57:35 +00:00
Douwe Maan 4830b2be5e Refactor GitAccess to use instance variables. 2015-03-24 14:11:48 +01:00
Stan Hu 56d87db32c Reduce Rack Attack false positives by clearing out auth failure count upon
successful Git over HTTP authentication.

Add logging when a ban goes into effect for debugging.

Issue #1171
2015-03-24 00:36:46 -07:00
Dmitriy Zaporozhets 2953e0d19b Merge branch 'emailsonpush-create-delete' into 'master'
Send EmailsOnPush email when branch or tag is created or deleted.

Addresses #1951, #1957 and #1925.

![Screen_Shot_2015-03-17_at_13.58.15](https://dev.gitlab.org/gitlab/gitlabhq/uploads/16ff25adb4b4a7e1923612e0652442b4/Screen_Shot_2015-03-17_at_13.58.15.png)

![Screen_Shot_2015-03-17_at_13.58.22](https://dev.gitlab.org/gitlab/gitlabhq/uploads/e346c1d84aba3a093b722d0a4167e289/Screen_Shot_2015-03-17_at_13.58.22.png)

![Screen_Shot_2015-03-17_at_13.58.28](https://dev.gitlab.org/gitlab/gitlabhq/uploads/720437ecc13f317c6d20eff82ac60bd7/Screen_Shot_2015-03-17_at_13.58.28.png)

![Screen_Shot_2015-03-17_at_13.58.34](https://dev.gitlab.org/gitlab/gitlabhq/uploads/2b302bb6cdbe27c96a8dff1375236602/Screen_Shot_2015-03-17_at_13.58.34.png)

See merge request !1709
2015-03-23 16:48:27 +00:00
Dmitriy Zaporozhets e24da35984 Merge branch 'improve-contributions-calendar' into 'master'
Replace commits calendar with contributions calendar

* count opening of issues and merge requests
* dont trigger git repository - use events from database
* count pushes instead of commits for faster and easier counting
* much-much faster since does not affected by repository size

See merge request !420
2015-03-23 16:40:55 +00:00
Douwe Maan b13bed62ea Clean up code by using keyword arguments. 2015-03-23 15:08:19 +01:00
Vinnie Okada 637ca0b388 Merge branch 'master' into markdown-tags 2015-03-22 21:50:28 -06:00
Stan Hu 5cce0645b0 Fix OAuth2 issue importing a new project from GitHub and GitLab
Closes #1268
2015-03-22 18:16:48 -07:00
Dmitriy Zaporozhets fb30039668 Merge branch 'disable-ref-generation-in-code-blocks' into 'master'
Disable reference generation in preformatted/code blocks

### Summary

If a user adds text in code or preformatted text via Markdown or HTML that contains `#XXX`, the system adds a note that issue `XXX` was mentioned. This is particularly annoying because we often list gdb backtrace dumps into our issues, and many issues get mentioned as a result. For example:

```
(gdb) bt
#0  0x00000000004004c4 in second () at main.cc:6
#1  0x00000000004004d2 in first () at main.cc:11
#2  0x00000000004004dd in main () at main.cc:17
(gdb)
```

### Steps to reproduce

1. In an issue, write the above text using Markdown or HTML tags (e.g. `<code>`, `<pre>`).
2. Observe that [issue 1](https://gitlab.com/gitlab-org/gitlab-ce/issues/1) and [issue 2](https://gitlab.com/gitlab-org/gitlab-ce/issues/2) have a note that says they were mentioned.

### Expected behavior

Everything enclosed in the code blocks should be ignored as references.

### Observed behavior

Issues get referenced unnecessarily.

### Fix

I've made `reference_extractor.rb` strip out HTML and Markdown blocks before processing. I considered running the raw text through the entire Markdown processor, but this seems overkill and perhaps could lead to some unintended side effects.

See merge request !365
2015-03-22 23:36:07 +00:00
Dmitriy Zaporozhets 20a12438ab Fix user controller specs 2015-03-22 11:14:42 -07:00
Dmitriy Zaporozhets 9c6086bc95 Refactor repository specs 2015-03-22 11:01:45 -07:00
Stan Hu 59d5c77975 Fix dots in Wiki slug causing errors
Closes #1263, #431
2015-03-21 18:33:51 -07:00
Dmitriy Zaporozhets aadd38dbb9 Merge branch 'backup-permissions' into 'master'
Change permissions on backup files - #2

Use more restrictive permissions for backup tar files and for the db, uploads, and repositories directories inside the tar files.  See #1894.  Now the backup task recursively `chmod`s the `db/`, `uploads/`, and `repositories/` folders with 0700 permissions, and the tar file is created as 0600.

This is a followup to !1703, which was reverted because it broke Rspec tests.  The test failures were due to the rake task changing directories and not changing back, which I fixed with this commit.

cc @sytse

See merge request !1716
2015-03-21 23:50:20 +00:00
Vinnie Okada f5e65e2e50 Merge branch 'master' into markdown-tags
Merge updated CHANGELOG entries
2015-03-21 09:03:35 -06:00
Vinnie Okada 1dc90fc455 Fix nested task lists
When nesting task list items, the parent item is wrapped in a `<p>` tag.
Update the task list parser to handle these paragraph wrappers.
2015-03-21 08:45:28 -06:00
Kamil Trzcinski 5b432e7671 Extend push_tag event to include tag message and last commit 2015-03-21 11:25:27 +01:00
Valery Sizov e5fe14b2fb Link to CI with ref 2015-03-20 19:19:29 +02:00
Stan Hu 83d552d50d Disable reference creation for comments surrounded by code/preformatted blocks 2015-03-19 14:37:35 -07:00
Stan Hu fad71576f9 Fix cross references when usernames, milestones, or project names contain underscores.
Remove emphasis from system notes to avoid Markdown conflicts in names.
2015-03-19 07:07:30 -07:00
Douwe Maan bf235053ad Send EmailsOnPush email when branch or tag is created or deleted. 2015-03-18 14:07:28 +01:00
Hannes Rosenögger 9e5738b007 Extend the commit calendar to show the actual commits for a date 2015-03-18 08:42:42 +01:00
Vinnie Okada feeffc4426 Merge branch 'master' into markdown-tags
Use the latest HTML pipeline gem
2015-03-17 20:53:09 -06:00
Dmitriy Zaporozhets 52acd2b45c Merge branch 'external_wiki' into 'master'
Add support for external wikis

## What does this MR do?
This MR adds the possibility to replace the link to the internal wiki of gitlab with a custom link.
Currently this is realised as a service.

## What Use Case does this MR solve?
In my Company we already have a wiki System (Confluence).
We have a policy to use the existing wiki, so we can't switch to the internal wiki Gitlab provides.
This currently only leaves us two choices:
1. Disable the gitlab wiki. That means we completly loose the connection between wiki and code from the gitlab ui.
2. Create a simple wiki page with a link to our external wiki and hope that no one uses the internal one.

Both solutions are not really good.
So what can be done to improve the situation while making it as easy as possible for new developers to access both, wiki and gitlab?
Replacing the wiki link kinda like the JIRA integration replaces the issues link looks like a good first step to me. :)
This can probably be extended later to completly prevent access to the internal wiki (currently that's still possible if you know the link) or maybe to check if the link really points to a wiki.

## Screenshot:
![external_wiki_service](https://gitlab.com/uploads/gitlab-org/gitlab-ce/89b27cf068/external_wiki_service.png)

See merge request !291
2015-03-18 02:00:36 +00:00
Vinnie Okada 61c06c5e1a Change permissions on backup files
Use more restrictive permissions for backup tar files and for the db,
uploads, and repositories directories inside the tar files.
2015-03-17 19:04:21 -06:00