Commit Graph

178 Commits

Author SHA1 Message Date
GitLab 6912f21e5c Send GL_ID to gitlab-git-http-server as JSON 2015-07-28 15:55:53 +02:00
GitLab ae9e5eea3c Handle missing @user during Git HTTP requests 2015-07-28 15:17:06 +02:00
Jacob Vosmaer d3305df7aa Experimental support for gitlab-git-http-server
https://gitlab.com/gitlab-org/gitlab-git-http-server

This change introduces the GITLAB_GRACK_AUTH_ONLY environment
variable. When set, Grack requests to GitLab will only respond with
the user's GL_ID (if the request is OK) or an error. This allows
gitlab-git-http-server to use the main GitLab application as an
authentication and authorization backend.

If we like how this works we should drop the GITLAB_GRACK_AUTH_ONLY
variable at some point in the future.
2015-07-28 14:33:19 +02:00
Dmitriy Zaporozhets a87989fb7d Remove satellites 2015-07-15 15:45:57 +02:00
Stan Hu 555fd0cf4a Fix downloading of patches on public merge requests when user logged out
Closes #1225
Closes #1854
Closes #1858
2015-06-23 05:34:21 -07:00
Dmitriy Zaporozhets 97ff86e07c Move repository when project is removed
Ths commit does next:

* When we remove project we move repository to path+deleted.git
* Then we schedule removal of path+deleted with sidekiq
* If repository move failed we abort project removal

This should help us with NFS issue when project get removed but
repository stayed. The full explanation of problem is below:

* rm -rf project.git
* rm -rf removes project.git/objects/foo
* NFS server renames foo to foo.nfsXXXX because some NFS client (think
* Unicorn) still has the file open
* rm -rf exits, but project.git/objects/foo.nfsXXX still exists
* Unicorn closes the file, the NFS client closes the file (foo), and the
* NFS server removes foo.nfsXXX
* the directory project.git/objects/ still exists => problem

So now we move repository and even if repository removal failed

Repository directory is moved so no bugs with project removed but
repository directory taken. User still able to create new project with
same name. From administrator perspective you can easily find stalled
repositories by searching `*+deleted.git`

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-03 13:05:43 +02:00
Stan Hu 3b22cfe600 Remove Rack Attack monkey patches and bump to version 4.3.0 2015-05-22 16:25:03 -04:00
Douwe Maan f915a4b80f Warn when gitlab-shell version doesn't match requirement. 2015-04-06 14:02:49 +02: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
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
Douwe Maan dd37a10df4 Don't leak information about private project existence via Git-over-SSH/HTTP. 2015-03-02 17:52:48 +01:00
Dmitriy Zaporozhets d723bf78b8 Fix git-over-http 2015-02-23 10:05:18 -08:00
Dmitriy Zaporozhets d04344373b Rubocop: no trailing newlines 2015-02-02 21:53:27 -08:00
Dmitriy Zaporozhets e890582681 Rubocop enabled for: Use spaces inside hash literal braces 2015-02-02 20:36:54 -08:00
Valery Sizov 54f6d8c7b5 an ability to clone project with oauth2 token 2015-01-28 15:57:31 -08:00
Jacob Vosmaer af56c1dd32 White-list requests from 127.0.0.1
On some misconfigured GitLab servers, if you look in production.log it looks
like all requests come from 127.0.0.1. To avoid unwanted banning we
white-list 127.0.0.1 with this commit.
2015-01-06 16:56:56 +01:00
Jacob Vosmaer c8b2def2be Add more comments explaining how we block IPs 2014-12-18 11:08:11 +01:00
Jacob Vosmaer 62ea02740d Block Git HTTP Basic Auth after 10 failed attempts 2014-12-15 18:57:42 +01:00
Valery Sizov 53bf52f191 Better message for failed pushes because of git hooks
Conflicts:
	lib/gitlab/git_access.rb
	spec/lib/gitlab/git_access_spec.rb
2014-11-18 13:10:07 +02:00
Ciro Santilli f36db59d97 Factor GITLAB_SHELL_VERSION get method 2014-11-05 17:16:04 +01:00
Ciro Santilli 0b1084a453 Don't output to stdout from lib non-interactive methods
It pollutes the test output too much.
2014-11-05 12:35:33 +01:00
Ciro Santilli d549a2a525 Factor lib backend gitlab shell path 2014-10-31 13:00:50 +01:00
Ciro Santilli ce056d8074 Improve grack auth hooks comment. 2014-10-21 12:36:09 +02:00
Ciro Santilli 2e9f5de868 Add parenthesis to function def with arguments. 2014-10-03 09:18:46 +02:00
Sean Edge 468b2e8e0b Added annotated tags. Updated tag haml file and call to gitlab-shell. Updated API for annotated tags. Added tests for API. Strip leading/trailing whitespace from message, if present. Update CHANGELOG. 2014-09-04 09:47:20 -04:00
Dmitriy Zaporozhets 4535db04b2
Increase import timeout from 2 to 4 minutes
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-08-11 20:58:39 +03:00
Dmitriy Zaporozhets 5c038d949f
Fix gitlab-ci integration
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-21 23:04:57 +02:00
Dmitriy Zaporozhets 7dd18a3ec8
Fix http clone for public project
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-21 14:52:30 +02:00
Dmitriy Zaporozhets 83e83b6617
Improve grack auth
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-20 10:53:03 +02:00
Dmitriy Zaporozhets 729b358ff2 push via http now served via /allowed API
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-20 10:16:17 +02:00
Jacob Vosmaer 779fa4a7b7 Use batch_add_keys in `rake gitlab🐚setup` 2014-03-14 15:49:11 +01:00
Dmitriy Zaporozhets 1ad2a93678 Merge pull request #5760 from dermoth/master
Fix HTTP push to public repos
2014-01-07 02:47:56 -08:00
Thomas Guyot-Sionnest 843548cc76 Fix HTTP push to public repos
When doing an HTTP push, git (as of v1.7.9) first do an info/refs
request, and only if this request requires authentication it asks the
user for its password and authenticates further requests.

The initial request normally clears without auth on public repos as it
doesn't update any ref. This patch forces every git-receive-pack
requests to provide authentication.
2013-12-16 12:39:54 -05:00
Dmitriy Zaporozhets 49a26eaece Fix project lookup for git over http + rails4
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-12-10 12:11:27 +02:00
Dmitriy Zaporozhets f1c82bc56c
Add gitlab-shell#path option in config
Before this commit gitlab-shell but me placed directly in home dir.
Ex:
  /home/git/gitlab-shell

After this change you can place gitlab-shell in custom location.
Ex:
  /Users/developer/gitlab/gitlab-shell

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-12-09 19:32:37 +02:00
Jason Hollingsworth d9bb4230cc Adding authenticated public mode (internal).
Added visibility_level icons to project view (rather than just text).
Added public projects to search results.
Added ability to restrict visibility levels standard users can set.
2013-11-26 22:22:07 -06:00
Dmitriy Zaporozhets 51ae88c4e4
Improve refs parsing for git over http
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-22 12:55:20 +02:00
Dmitriy Zaporozhets 06feb3c442
Cleanup parsed refs for git over HTTP
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-22 12:41:55 +02:00
Dmitriy Zaporozhets b07c02eb13
Add more info to admin dashboard
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-20 13:41:41 +02:00
Dmitriy Zaporozhets 182aa19e26
Parse all refs when do push via HTTP and check permissions for all of them
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-20 11:06:19 +02:00
Dmitriy Zaporozhets 592d1fabd6 Revert "Escape strings"
This reverts commit ce75f46bf7.
2013-11-01 16:29:28 +02:00
Dmitriy Zaporozhets 482a39abb0 Revert "Best to escape strings not split them"
This reverts commit aca7f56fef.
2013-11-01 16:25:06 +02:00
Nigel Kukard aca7f56fef Best to escape strings not split them
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2013-10-31 07:34:11 +00:00
Nigel Kukard ce75f46bf7 Escape strings
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2013-10-29 18:06:10 +00:00
Dmitriy Zaporozhets 0542261437 Allow git clone with http for GitLab CI service:
If you enable GitLab CI for project you will be able to clone project
source code with next command:
git clone http://gitlab-ci-token:XXXXXXXXXXXX@host:project.git
Requires for GitLab CI 4.0
2013-10-24 17:17:22 +03:00
Dmitriy Zaporozhets 7dfb2b6379 Remove include of grack_ldap 2013-09-02 23:52:58 +03:00
Dmitriy Zaporozhets 71abf70458 Move ldap auth to LDAP::User. Removed unused code 2013-09-02 23:50:45 +03:00
Dmitriy Zaporozhets 48ce80a60c Fix issue when developers are able to push to protected branch
When that branch contain a '/' in the branch name.
Fix for git over HTTP
2013-08-26 12:54:57 +03:00
amouhzi 39d8a64d25 Fixes grack authentification under relative_url_root
Ref: e6159b8725
Ref: https://github.com/gitlabhq/gitlabhq/pull/3204
Ref: https://github.com/gitlabhq/gitlabhq/issues/1228

Add Rails' variable in application.rb to support relative url

This variable is used by assets compilation and other modules.

Note that user needs to change application.rb too

Restrict session cookie to the relative path if set.

Ref: 2c2f1e3185

Fix Update attachment_uploader.rb bug with relative URL

See: 161afda3fa

Fix Wall relative bug with attachement files (javascript)
2013-08-15 21:25:09 +02:00
Johannes Schleifenbaum cd19f82e51 Fix typos 2013-07-29 12:47:06 +02:00
Dmitriy Zaporozhets 475f607a22 Use gitlab-shell authorized_keys truncation. Fix issue with authorized_keys stored in different location 2013-07-18 13:55:01 +03:00
Dmitriy Zaporozhets 132caae734 Move repo tags to own controller. add ability to remove tags 2013-07-16 23:12:52 +03:00
Dmitriy Zaporozhets a466b2175a Add create_branch, rm_branch methods to Gitlab::Shell class 2013-07-16 22:18:14 +03:00
Dmitriy Zaporozhets 559e83d300 Add LDAP support to /api/session 2013-07-16 11:28:19 +03:00
Dmitriy Zaporozhets 5181816970 Merge branch 'master' into 6-0-dev 2013-07-12 14:42:35 +03:00
wuweixin 2c7b0d5a46 fix bug when project named: mediawiki
mediawiki.wiki.git
mediawiki.git

/.wiki$/ match awiki, so when your project named mediawiki
it will be find project named: "medi"

use /\.wiki$/ fix this bug
2013-07-06 09:31:56 +08:00
Dmitriy Zaporozhets 58427749fd Update repository head when change default project branch 2013-06-25 17:05:39 +03:00
Dmitriy Zaporozhets b4e8fea274 Refactor grack auth module. Add git over http wiki support 2013-06-14 14:42:55 +03:00
Dmitriy Zaporozhets 63c6f30aba Fix ldap auth for http push 2013-05-24 20:36:28 +03:00
Joe Andaverde ba21546a58 System calls were using unsanitized user input 2013-05-12 09:11:09 -05:00
Dmitriy Zaporozhets f40d4e6685 Merge pull request #3597 from amacarthur/fork-pull-request
updated fork feature to use gitlab-shell for v5 of gitlab
2013-05-02 23:41:07 -07:00
tsl0922 f1c9b05868 better fix for encoding error 2013-05-03 11:31:23 +08:00
tsl0922 4e055e8a63 fix: UTF-8 encoding error 2013-05-03 10:58:53 +08:00
tsl0922 ef61d1f200 fix http push 401 2013-05-03 10:58:53 +08:00
Friedrich Beckmann 20a88f5c43 LDAP authentication in grack - check ldap conf before call / added comment 2013-04-29 22:26:03 +02:00
Friedrich Beckmann 228baa80b2 LDAP Authentification with grack for https push - fixed password check 2013-04-27 23:31:48 +02:00
Angus MacArthur ae33fdf297 updated fork feature to use gitlab-shell for v5 of gitlab 2013-04-15 01:54:52 -04:00
Dmitriy Zaporozhets c4299bb45a Move directory logic out of model. Use Gitlab:Shell class to interact with file system 2013-03-21 22:11:08 +02:00
Dmitriy Zaporozhets 0103363191 replace Gitolited mixin with Gitlab::ShellAdapter 2013-03-21 21:01:14 +02:00
Dmitriy Zaporozhets 59b36f2032 Use gitlab-shell to move repos. Requires gitlab-shell v1.1.0 2013-03-12 12:37:53 +02:00
Bhagavan Das 4bc7d98d65 Remove hardcoded refernce to gitlab-shell home. so that gitlab can be installed on any unix account other than git 2013-02-14 23:10:18 +00:00
Dmitriy Zaporozhets c9ca15e8d6 require missing lib 2013-02-14 15:25:55 +02:00
Dmitriy Zaporozhets 49cf9badbc Gitlab::ShellEnv added 2013-02-14 15:17:43 +02:00
Dmitriy Zaporozhets b698094d4d Update post-receive worker to use correct identifier 2013-02-14 14:00:02 +02:00
Dmitriy Zaporozhets 2a1fac9e4f add import repo gitlab_shell call 2013-02-11 19:41:02 +02:00
Dmitriy Zaporozhets d64090b8a9 No gitolite in project any more 2013-02-11 19:16:59 +02:00
Dmitriy Zaporozhets 39e37677f2 add remove keys from gitlab-shell by id 2013-02-05 11:12:15 +02:00
Dmitriy Zaporozhets 081c272b85 Remove outdated specs and fixed key remove 2013-02-05 10:15:49 +02:00
Dmitriy Zaporozhets 27d9ac0fe8 Make gitlab works with gitlab-shell 2013-02-04 15:07:56 +02:00
Dmitriy Zaporozhets 6b9a609044 preparing for gitlab-shell 2013-02-04 14:28:10 +02:00
Dmitriy Zaporozhets 299a9a1040 keys to gitolite via sidekiq now 2013-01-28 21:02:10 +02:00
Dmitriy Zaporozhets 8b54b7233e Async perform for add/remove team members 2013-01-28 17:39:02 +02:00
Dmitriy Zaporozhets 1c5876eb7b Do gitolite calls async. Remove satellite with project remove 2013-01-28 17:22:45 +02:00
Dmitriy Zaporozhets 2812e6f1f5 Fix removeing project if repo not exists 2013-01-25 13:47:54 +02:00
Dmitriy Zaporozhets d770714578 Use subproccess instead subshell for git calls 2013-01-22 10:35:58 +02:00
Dmitriy Zaporozhets cb96cc030a Uncomment forgotten code 2013-01-19 13:57:50 +02:00
Dmitriy Zaporozhets 54a24608a2 Remove chdir inside runtime. Improved gitolite shell commands 2013-01-19 13:56:55 +02:00
Dmitriy Zaporozhets 569a88a456 raise exception if gitolite is broken 2013-01-19 11:58:36 +02:00
Dmitriy Zaporozhets 5c3fdfaacb Fixed developer push to protected branch. Closes #2647 2013-01-19 11:11:25 +02:00
Jeremy Slater 80b8921a9a Public HTTP clones and remove auth request for public projects 2013-01-14 09:46:55 -05:00
Dmitriy Zaporozhets 4c6224aad1 Public git read-only access via http 2013-01-13 17:25:18 +02:00
Dmitriy Zaporozhets dccd8b6eaa Continue refactoring. Use repostory and team 2013-01-04 08:43:25 +02:00
Chris Frohoff 21e55ca318 added RAILS_RELATIVE_URL_ROOT support 2012-12-28 18:11:28 +00:00
Riyad Preukschas 19eb637419 Update uses of Gitolite.config.foo settings 2012-12-20 16:54:28 +01:00
Jeremy Slater 6cf5d7c96d Support read-only access for git over HTTP 2012-12-11 15:28:40 -05:00
Dmitriy Zaporozhets 039996bd0a Fix invalid method call for gitolite 2012-11-27 16:35:00 +02:00
Dmitriy Zaporozhets f5551efdfd Rewrite and improve git backend logic. Fix project movind. Raise exception to prevent unexpected issues 2012-11-27 09:31:15 +03:00
Dmitriy Zaporozhets 70bf7f6e19 Project -> update repo only on create and destroy. Fixtures Updated with namespaces. Fixed moving repo 2012-11-21 08:54:05 +03:00
Dmitriy Zaporozhets 585eb70588 Fix http push with namespaces. Allow use of username as login 2012-11-26 11:23:08 +02:00