summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Vendor redis_rb from Rubygems, not GitHubredis-full-gemJacob Vosmaer2017-01-02105-12/+8668
| | | | | | | Also just include the entire gem. Space used is negligible and this way we don't have to think about what to leave in/out. Create a vendor-gem script in Ruby instead of Make.
* Merge branch '25301-git-2.11-force-push-bug' into 'master' v4.1.1Rémy Coutable2016-12-164-4/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass relevant git environment variables while calling `/allowed` 1. Starting version 2.11, git changed the way the pre-receive flow works. - Previously, the new potential objects would be added to the main repo. If the pre-receive passes, the new objects stay in the repo but are linked up. If the pre-receive fails, the new objects stay orphaned in the repo, and are cleaned up during the next `git gc`. - In 2.11, the new potential objects are added to a temporary "alternate object directory", that git creates for this purpose. If the pre-receive passes, the objects from the alternate object directory are migrated to the main repo. If the pre-receive fails the alternate object directory is simply deleted. 2. In our workflow, the pre-recieve script calls the `/allowed` endpoint on the rails server. This `/allowed` endpoint calls out directly to git to perform various checks. These direct calls to git do _not_ have the necessary environment variables set which allow access to the "alternate object directory" (explained above). Therefore these calls to git are not able to access any of the new potential objects to be added during this push. 3. We fix this by passing the relevant environment variables (`GIT_ALTERNATE_OBJECT_DIRECTORIES`, `GIT_OBJECT_DIRECTORY`, and `GIT_QUARANTINE_PATH`) to the `/allowed` endpoint, which will then include these environment variables while calling out to git. --- - Related to gitlab-org/gitlab-ce#25301. - Corresponding backend MR: gitlab-org/gitlab-ce!7967 - Corresponding EE MR: gitlab-org/gitlab-ee!964 See merge request !112
| * Add CHANGELOG entry.25301-git-2.11-force-push-bugTimothy Andrew2016-12-162-1/+4
| |
| * Pass relevant git environment variables while calling `/allowed`Timothy Andrew2016-12-162-3/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | | 1. Starting version 2.11, git changed the way the pre-receive flow works. - Previously, the new potential objects would be added to the main repo. If the pre-receive passes, the new objects stay in the repo but are linked up. If the pre-receive fails, the new objects stay orphaned in the repo, and are cleaned up during the next `git gc`. - In 2.11, the new potential objects are added to a temporary "alternate object directory", that git creates for this purpose. If the pre-receive passes, the objects from the alternate object directory are migrated to the main repo. If the pre-receive fails the alternate object directory is simply deleted. 2. In our workflow, the pre-recieve script calls the `/allowed` endpoint on the rails server. This `/allowed` endpoint calls out directly to git to perform various checks. These direct calls to git do _not_ have the necessary environment variables set which allow access to the "alternate object directory" (explained above). Therefore these calls to git are not able to access any of the new potential objects to be added during this push. 3. We fix this by passing the relevant environment variables (GIT_ALTERNATE_OBJECT_DIRECTORIES, GIT_OBJECT_DIRECTORY, and GIT_QUARANTINE_PATH) to the `/allowed` endpoint, which will then include these environment variables while calling out to git.
* Merge branch 'make-custom-hook-dir-configurable' into 'master' v4.1.0Rémy Coutable2016-12-127-25/+77
|\ | | | | | | | | | | | | | | | | | | | | | | | | Make custom hook dir configurable Add a new configuration option, custom_hook_dir. When this is set, we will look for global custom hooks in: `<custom_hook_dir>/{pre-receive,update,post-receive}.d/*` When this is not set, default to `<ROOT_PATH>/hooks`. Relates to https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1754 and gitlab-org/gitlab-ce!8040. See merge request !113
| * Update VERSION to 4.1.0make-custom-hook-dir-configurableSean McGivern2016-12-121-1/+1
| |
| * Make custom hooks dir configurableSean McGivern2016-12-126-24/+76
|/ | | | | | | | Add a new configuration option, custom_hooks_dir. When this is set, we will look for global custom hooks in: <custom_hooks_dir>/{pre-receive,update,post-receive}.d/* When this is not set, default to <REPO_PATH>/hooks.
* Merge branch '21451-change-merge-request-text-after-pushing-new-branch' into ↵Rémy Coutable2016-12-093-3/+4
|\ | | | | | | | | | | | | | | | | | | | | | | 'master' Make merge request text after push clearer The message to create a merge request after pushing a new branch was not clear. It is now clear that it is optional to create a merge request for the pushed branch. Part of [#21451](https://gitlab.com/gitlab-org/gitlab-ce/issues/21451) See merge request !109
| * Make merge request text after push clearerLisanne Fellinger2016-12-083-3/+4
|/ | | | | | Add changelog entry Editing changelog entry version
* Merge branch 'glensc/gitlab-shell-pr-245' into 'master' Rémy Coutable2016-12-0610-41/+308
|\ | | | | | | | | | | | | Chained global hooks Closes #32. Docs MR: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6721 See merge request !111
| * changelog spellingglensc/gitlab-shell-pr-245Elan Ruusamäe2016-12-011-1/+1
| |
| * test expected hook orderElan Ruusamäe2016-12-011-0/+30
| |
| * DRY: add helpers for expect hook callsElan Ruusamäe2016-12-011-35/+31
| |
| * test gl_id_test_hook as global and as repo hook separatelyElan Ruusamäe2016-12-011-1/+24
| |
| * spec/custom_hook: ensure "before" does complete cleanupElan Ruusamäe2016-12-011-7/+6
| | | | | | | | | | this fixes problem that tests succeeded locally but failed in ci where parent dirs were missing
| * spec/custom_hooks: cleanup helpers not to repeat repo path parameterElan Ruusamäe2016-12-011-34/+34
| |
| * fix gl_id_test_hookElan Ruusamäe2016-12-011-10/+8
| |
| * cleanup dirs in before to fixup aborted testsElan Ruusamäe2016-12-011-4/+10
| |
| * move helpers to topElan Ruusamäe2016-12-011-29/+29
| |
| * changelog entryElan Ruusamäe2016-12-011-0/+4
| |
| * improve wording by using successful instead of okElan Ruusamäe2016-12-011-4/+4
| |
| * remove unused create_global_hooksElan Ruusamäe2016-12-011-5/+0
| |
| * avoid Dir.exists? duplication by moving the check to match_hook_filesElan Ruusamäe2016-12-011-6/+4
| |
| * use String.end_with? instead of regexpElan Ruusamäe2016-12-011-1/+1
| |
| * remove no longer needed gitlab_initElan Ruusamäe2016-12-013-3/+0
| |
| * spec: updated tests to match current codeElan Ruusamäe2016-12-012-37/+67
| |
| * custom_hook: chain custom hooksElan Ruusamäe2016-12-011-11/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | update hooks lookup to use <hook>.d/* from repository hooks dir the order would be: 1. <repository>.git/custom_hooks/<hook_name> - per project hook 2. <repository>.git/custom_hooks/<hook_name>.d/* - per project hooks 3. <repository>.git/hooks/<hook_name>.d/* - global hooks only executable files are matched and backup files excluded (*~) and the resulting list is sorted per each lookup
| * spec: add tests for global custom hooksDirk Hörner2016-12-013-15/+165
| |
| * custom_hook: add support for global custom hooksDirk Hörner2016-12-015-12/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the option of having another set of global custom hooks along with the already supported repository local custom hooks. The repository local custom hook is executed first (if available). If successful, execution continues with the global custom hook (if available). This way, local custom hooks get priority over global custom hooks. Global custom hooks can be enabled by placing an executable file into the "custom_hooks" directory within gitlab-shell (create if it does not exist, yet).
| * custom_hook: refactor to pull repo_path into classDirk Hörner2016-12-015-14/+15
| | | | | | | | | | | | This commit takes the GitlabCustomHook a bit clother to the other hook handling classes by receiving the repo_path as argument to initialize() instead of passing it to each method.
| * custom_hook: only execute hook if file is executableDirk Hörner2016-12-011-1/+1
|/ | | | | This commit fixes an issue where an existing but unexecutable hook would cause an uncaught execption.
* Bump version to 4.0.3v4.0.3Douwe Maan2016-12-011-1/+1
|
* Merge branch 'add-prune-option-to-fetch-command' into 'master' Douwe Maan2016-12-012-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fetch repositories with --prune option by default. This will allow us to not recreate branches that has been deleted on the upstream and the mirror. Related issue: https://gitlab.com/gitlab-org/gitlab-ee/issues/1277 I've reviewed the code for updating local and remote mirrors also I've manually tested these features and all looks good. Here is the description of the `--prune` option: >>> --prune Before fetching, remove any remote-tracking references that no longer exist on the remote. Tags are not subject to pruning if they are fetched only because of the default tag auto-following or due to a --tags option. However, if tags are fetched due to an explicit refspec (either on the command line or in the remote configuration, for example if the remote was cloned with the --mirror option), then they are also subject to >>> @brodock do you see any issues when fetching repos for GitLab Geo? See merge request !110
| * Fetch repositories with --prune option by default.add-prune-option-to-fetch-commandRuben Davila2016-11-292-0/+3
|/ | | | This will allow us to not recreate branches that has been deleted on the upstream and the mirror.
* Bumped version to 4.0.2v4.0.2Yorick Peterse2016-11-171-1/+1
|
* Merge branch ↵Yorick Peterse2016-11-172-0/+4
|\ | | | | | | | | | | | | | | '70-push-fails-because-of-missing-dependencies-on-gitlab_custom_hooks' into 'master' Fix gitlab_custom_hook dependencies See merge request !107
| * Fix gitlab_custom_hook dependencies70-push-fails-because-of-missing-dependencies-on-gitlab_custom_hooksAlejandro Rodríguez2016-11-162-0/+4
|/
* Bump version to 4.0.1v4.0.1Yorick Peterse2016-11-161-1/+1
|
* Merge branch 'more-instrumentation-down-the-pipeline' into 'master' Yorick Peterse2016-11-164-6/+18
|\ | | | | | | | | Add instrumentation to push hooks See merge request !106
| * Add a CHANGELOG entryAhmad Sherif2016-11-161-0/+3
| |
| * Add instrumentation to push hooksmore-instrumentation-down-the-pipelineAhmad Sherif2016-11-163-6/+15
|/ | | | Related to #22053
* Release 4.0.0v4.0.0Dmitriy Zaporozhets2016-10-311-1/+1
| | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* Merge branch 'dz-support-nested-namespaces' into 'master' Dmitriy Zaporozhets2016-10-298-30/+16
|\ | | | | | | | | | | | | | | | | Use full repository path instead of extracting name In order to implement nested groups https://gitlab.com/gitlab-org/gitlab-ce/issues/2772 we can not rely on old path with one slash that split namespace and project name like `namespace/project.git`. Now it can be both `namespace/project.git` and `namespace/namespace/namespace/project.git`. Because of that it makes no sense to extract part of full path. Instead we just pass path to API without change and let rails application do parsing/extraction. Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> See merge request !102
| * Use full repository path for API calls instead of extracting namedz-support-nested-namespacesDmitriy Zaporozhets2016-10-278-30/+16
|/ | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* Merge branch 'remove_lfs_remark' into 'master' Marin Jankovski2016-10-131-26/+1
|\ | | | | | | | | Git LFS remark in readme is no longer correct. See merge request !101
| * Git LFS remark in readme is no longer correct.remove_lfs_remarkMarin Jankovski2016-10-121-26/+1
| |
* | Release 3.6.6v3.6.6Yorick Peterse2016-10-121-1/+1
| |
* | Merge branch 'reuse-logger' into 'master' Marin Jankovski2016-10-123-10/+10
|\ \ | |/ |/| | | | | | | | | Re-use the default logger for performance metrics See #64 for the discussion leading up to this. See merge request !100
| * Re-use the default logger for performance metricsYorick Peterse2016-10-123-10/+10
|/ | | | | | | This removes the need for configuring anything extra. To make scraping easier each line is prefixed by "metrics:". Fixes #64
* Release 3.6.5v3.6.5Yorick Peterse2016-10-111-1/+1
|