summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Be more consistent about default gitlab_urlremove-trailing-slashesJacob Vosmaer2015-12-111-1/+1
|
* Remove trailing slashes from gitlab_urlJacob Vosmaer2015-12-111-1/+1
| | | | | They do not play nice with gitlab-workhorse (or rather Golang net/http DefaultServemux).
* Revert "Run git-lfs-authenticate script with original command line arguments"Dmitriy Zaporozhets2015-11-251-2/+0
| | | | | | This reverts commit 8449979ff029af51be0c675c5b6262bc4adc8b3d. Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* Merge branch 'mirror-repository' into 'master' Robert Speicher2015-11-171-6/+35
|\ | | | | | | | | | | | | Add fetch-remote command for repo mirroring Also exits `import-repository` with non-zero status when import fails. See merge request !29
| * Add fetch-remote commandDouwe Maan2015-11-111-0/+25
| |
| * Exit with non-zero status when import-repository failsDouwe Maan2015-11-111-6/+10
| |
* | Revert "Merge branch 'use-load-path' into 'master' "Dmitriy Zaporozhets2015-11-121-5/+1
| | | | | | | | | | This reverts commit ae498b6cd4122d3d7f35e6b73b50c53615ca3488, reversing changes made to 79fdf65c71e90773fbf52d6832b74cf5a7124755.
* | Merge branch 'y/httpunix2' into 'master' Dmitriy Zaporozhets2015-11-122-1/+60
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to connect gitlab-shell to Unicorn via UNIX socket (v2) Hello up there. I'm doing SlapOS port of GitLab, and that means several different services could be running on the same machine, including several GitLabs. So far all internal GitLab subservices could be glued together via UNIX sockets except gitlab-shell -> Unicorn link, which, when done via local TCP, requires firewall/network namespaces to protect services on one machine from each other. On the other hand access to UNIX domain sockets is managed via regular UNIX permissions on filesystem, and thus is easier to manage. Besides UNIX domain sockets are well known to be faster compared to TCP over loopback - in particular to have ~ 2 times less latency and ~ 2 times more throughput. From this point of view it makes sense to teach gitlab-shell to talk to Unicorn via UNIX socket and switch to that mode by default eventually. I've just made a patch for this. Please apply. Thanks beforehand, Kirill /cc @dzaporozhets, @jacobvosmaer, @rspeicher See merge request !30
| * | Add support to connect gitlab-shell to Unicorn via UNIX socketKirill Smelkov2015-11-102-1/+60
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is well known that UNIX sockets are faster than TCP over loopback. E.g. on my machine according to lmbench[1] they have ~ 2 times lower latency and ~ 2-3 times more throughput compared to TCP over loopback: *Local* Communication latencies in microseconds - smaller is better --------------------------------------------------------------------- Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP ctxsw UNIX UDP TCP conn --------- ------------- ----- ----- ---- ----- ----- ----- ----- ---- teco Linux 4.2.0-1 13.8 29.2 26.8 45.0 47.9 48.5 55.5 45. *Local* Communication bandwidths in MB/s - bigger is better ----------------------------------------------------------------------------- Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem UNIX reread reread (libc) (hand) read write --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- ----- teco Linux 4.2.0-1 1084 4353 1493 2329.1 3720.7 1613.8 1109.2 3402 1404. The same ratio usually holds for servers. Also UNIX sockets, since they reside on filesystem, besides being faster with less latency, have one another nice property: access permissions to them are managed the same way access to files is. Because of lower latencies and higher throughput - for performance reasons, and for easier security, it makes sense to interconnect services on one machine via UNIX sockets and talk via TCP only to outside world. All internal services inside GitLab can talk to each other via UNIX socket already and only gitlab-shell was missing support to talk to Unicorn via UNIX socket. Let's teach gitlab-shell to talk via UNIX sockets. [1] http://www.bitmover.com/lmbench/ ~~~~ In this patch we - add URI::HTTPUNIX to handle http+unix:// URI scheme - add Net::HTTPUNIX to handle "connect via unix socket and then talk http" - adjust GitlabNet#http_client_for() accordingly - adjust documentation in config.yml.example The http+unix:// scheme is not reinvented anew: the idea about its structure is quite logical an was already established at least in requests-unixsocket python package: http://fixall.online/theres-no-need-to-reinvent-the-wheelhttpsgithubcommsabramorequests-unixsocketurl/241810/ https://github.com/msabramo/requests-unixsocket
* | use SHELL_ROOT_PATH variable to set ROOT_PATHPirate Praveen2015-11-101-1/+5
|/
* Merge branch 'master' of gitlab.com:gitlab-org/gitlab-shell into ↵Jacob Vosmaer2015-10-012-4/+15
|\ | | | | | | no-init-on-gcryptsetup
| * Merge branch 'bozaro/gitlab-shell-git-lfs-authenticate'Dmitriy Zaporozhets2015-09-101-0/+2
| |\ | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| | * Run git-lfs-authenticate script with original command line argumentsArtem V. Navrotskiy2015-09-091-0/+2
| | |
| * | Merge branch 'bozaro/gitlab-shell-lang'Dmitriy Zaporozhets2015-09-101-0/+1
| |\ \ | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| | * | Do not clean LANG environment variable for the git hooks when working ↵Artem V. Navrotskiy2015-09-091-0/+1
| | |/ | | | | | | | | | | | | | | | through the SSH-protocol When cleaning this environment variable can be problems with the processing of non-ASCII data
| * | Handle broken symlinks in create-hookscreate-hooks-broken-symlinkJacob Vosmaer2015-08-121-4/+12
| |/ | | | | | | | | | | | | If a repository contained a broken symlink named 'hooks', this would raise ENOENT in lib/gitlab_projects.rb, which got ignored in bin/create-hooks. This commit fixes that by making sure we handle broken symlinks in lib/gitlab_projects.rb.
* | Skip 'git annex init' when using 'gcryptsetup'no-init-on-gcryptsetupJacob Vosmaer2015-08-111-1/+6
|/ | | | | 'gcryptsetup' is a special git-annex feature that does its own initialization.
* Merge branch 'git_annex_env_variable'Dmitriy Zaporozhets2015-08-041-1/+11
|\
| * If git-annex is enabled set GIT_ANNEX_SHELL_LIMITED variable.git_annex_env_variableMarin Jankovski2015-07-161-1/+11
| |
* | Merge branch 'batch-add-keys-timeout'Dmitriy Zaporozhets2015-07-171-1/+1
|\ \ | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | Increase batch_add_keys lock timeout to 300 secondsJacob Vosmaer2015-07-161-1/+1
| | |
* | | Merge branch 'faster-rm-key' into 'master' Dmitriy Zaporozhets2015-07-171-8/+7
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | Remove keys from authorized_keys in-place This will speed up the rm-key operation. The downside is that authorized_keys will not shrink when you remove a key. If this ever becomes a problem it can be fixed by running 'rake gitlab:shell:setup'. See merge request !66
| * | Remove keys from authorized_keys in-placeJacob Vosmaer2015-07-161-8/+7
| |/ | | | | | | | | | | This will speed up the rm-key operation. The downside is that authorized_keys will not shrink when you remove a key. If this ever becomes a problem it can be fixed by running 'rake gitlab:shell:setup'.
* | Add git-lfs-authenticate to command white listArtem V. Navrotskiy2015-06-291-3/+16
|/
* Prevent keys with a very specific comment from accidentally being deleted.Douwe Maan2015-04-141-2/+6
|
* Merge branch 'list-ecdsa' into 'master'Dmitriy Zaporozhets2015-04-131-1/+1
|\ | | | | | | | | | | | | | | Include ecdsa keys in `gitlab_keys list-keys`. Addresses internal issue https://dev.gitlab.org/gitlab/gitlab-shell/issues/31. See merge request !12
| * Include ecdsa keys in `gitlab_keys list-keys`.list-ecdsaDouwe Maan2015-04-101-1/+1
| |
* | Merge branch 'master' of gitlab.com:gitlab-org/gitlab-shellDmitriy Zaporozhets2015-04-133-24/+18
|\ \
| * | Refactor GitlabShell#exec a bit.Douwe Maan2015-04-061-7/+9
| | |
| * | GitlabShell doesn't need to set GL_ID at all.Douwe Maan2015-04-061-5/+4
| | |
| * | Move setting/unsetting of GL_ID from lib to executables.Douwe Maan2015-04-062-12/+5
| |/
* | Merge pull request #212 from jirutka/patch-1Dmitriy Zaporozhets2015-04-102-1/+5
|\ \ | |/ |/| Allow to configure location of the secret file
| * Allow to configure location of the secret fileJakub Jirutka2015-02-082-1/+5
| |
* | Write GitlabShell error to stderr.nice-error-messageDouwe Maan2015-04-061-18/+30
| |
* | Write GitlabAccess error to stderr.Douwe Maan2015-04-061-11/+10
| |
* | Prevent character encoding issues by sending received changes as raw data.Douwe Maan2015-03-151-1/+5
| |
* | Fix post-receive broadcast messageDmitriy Zaporozhets2015-03-041-1/+1
| |
* | Enable rubocop ruleDmitriy Zaporozhets2015-03-022-3/+3
| |
* | Correct spelling: Symlinking is short for symbolic linkingPetrik de Heus2015-02-271-1/+1
| |
* | Add tests.Douwe Maan2015-02-231-2/+2
| |
* | Return true from GitlabPostReceive to ensure custom hooks run.Douwe Maan2015-02-231-1/+3
| |
* | Fail early on invalid input (raise ... unless ...)Jacob Vosmaer2015-02-201-34/+28
| | | | | | | | | | This intention of this change is to make the normal flow of execution easier to read, and to prevent mistakes in deeply nested if-else trees.
* | Immediatly raise exception if git-annex is disabledDmitriy Zaporozhets2015-02-191-17/+25
| |
* | Safer line sub for git-annex commandv2.5.2Dmitriy Zaporozhets2015-02-181-1/+1
| |
* | Improve broadcast message logicv2.5.1Dmitriy Zaporozhets2015-02-182-8/+6
| | | | | | | | | | Expect broadcast message API endpoint to return 200 with empty JSON if no broadcast messages available
* | Fix syntax of git init commandDmitriy Zaporozhets2015-02-171-1/+1
| |
* | Fix git-annex init repoDmitriy Zaporozhets2015-02-171-3/+3
| |
* | Make fixes to pass rubocopDmitriy Zaporozhets2015-02-163-10/+10
| |
* | Disable git-annex by defaultDmitriy Zaporozhets2015-02-161-1/+1
| |
* | Add config option to disable git-annexDmitriy Zaporozhets2015-02-162-4/+8
| |