Commit Graph

615 Commits

Author SHA1 Message Date
Alejandro Rodríguez c2e99b40f7 Implement fix for n+1 issue on `flatten_tree` helper 2017-09-06 17:47:25 -03:00
Robert Speicher 86cbf60cbb Merge branch 'feature/migrate-branch-operations-to-gitaly' into 'master'
Migrate creating/deleting a branch to Gitaly

See merge request !13864
2017-09-06 17:26:05 +00:00
Ahmad Sherif 41ef94e777 Migrate creating/deleting a branch to Gitaly 2017-09-06 17:25:17 +02:00
micael.bergeron 46f6092a6d [ci-skip] spec for an instance method 2017-09-06 09:44:12 -04:00
micael.bergeron 5625b0e453 add .json_safe_diff spec 2017-09-06 09:01:53 -04:00
Ahmad Sherif e10437de40 Migrate Gitlab::Git::Repository#find_branch to Gitaly 2017-09-05 17:29:45 +00:00
Lin Jen-Shin c5553ce772 Use `git update-ref --stdin -z` to delete refs 2017-08-30 22:01:23 +08:00
Robert Speicher 51ceacb1fc Add missing third argument to `Git::Repository#initialize` in spec 2017-08-24 17:34:05 -04:00
Sean McGivern e46a3d2fda Merge branch 'git-operation-user' into 'master'
Move GitHooksService into Gitlab::Git

See merge request !13739
2017-08-24 14:32:17 +00:00
Andrew Newdigate fb49c94e49 Delegate Repository::branch_exists? and ref_exists? to Gitlab::Git 2017-08-24 09:20:04 +00:00
Douwe Maan 93ad83443a Merge branch 'sh-fix-branch-count' into 'master'
Fix inconsistent number of branches when remote branches are present

Closes #36934

See merge request !13784
2017-08-24 07:42:30 +00:00
Stan Hu 37904108b9 Fix inconsistent number of branches when remote branches are present
Users of project mirrors would see that the number of branches did not
match the number in the branch dropdown because remote branches were
counted when Rugged was in use. With Gitaly, only local branches
are counted.

Closes #36934
2017-08-23 22:07:32 -07:00
Jacob Vosmaer 961da7d0a7 Add tests for Committer#== 2017-08-23 17:23:28 +02:00
Jacob Vosmaer c47b947a73 Move GitHooksService tests 2017-08-23 10:45:20 +02:00
Jacob Vosmaer 65f83941c3 Make gl_repository a G::G::Repository attribute 2017-08-23 10:45:20 +02:00
Robert Speicher a6fbd8648e Stub `ForkedStorageCheck.storage_available?` by default in all specs
Add `:broken_storage` metadata to examples to disable this behavior only
when necessary.
2017-08-22 13:06:25 -04:00
Jacob Vosmaer faaed0aa1f Delete unused Gitlab::Git methods 2017-08-18 14:12:17 +02:00
Andrew Newdigate aaa887feba Client Implementation: RefService::RefExists 2017-08-18 09:43:58 +01:00
Rémy Coutable 4e0ee10a72 Merge branch 'bvl-circuitbreaker-settings-to-avoid-failures' into 'master'
Circuitbreaker settings to avoid spec-failures

Closes #36324

See merge request !13519
2017-08-16 13:38:00 +00:00
Bob Van Landuyt ee603a0089 Allow a `failure_wait_time` of 0 for storage access
This allows testing every storage attempt after a failure. Which could
be useful for tests
2017-08-16 14:15:50 +02:00
Douwe Maan 0da644072f Merge branch 'malformed-submodule' into 'master'
Handle missing .gitmodules when getting submodule urls

See merge request !13509
2017-08-15 09:00:44 +00:00
Douwe Maan a64760d6d0 Merge branch 'gitaly-404-commit-list-files' into 'master'
Migrate `Git::Repository.ls_files` to Gitaly

Closes gitaly#404

See merge request !13302
2017-08-14 15:44:36 +00:00
Jacob Vosmaer d9b6fd4fba Handle missing .gitmodules when getting submodule urls 2017-08-14 10:53:02 +02:00
Rémy Coutable 1b413bd62f Enable Timecop safe mode
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-08-11 14:53:17 +02:00
Robert Speicher c8b802471b Enable the RSpec/HookArgument cop and auto-correct offenses 2017-08-10 19:29:42 -04:00
Kim "BKC" Carlbäcker 7b10885046 Migrate Git::Repository.ls_files to Gitaly 2017-08-10 16:10:47 +02:00
Rémy Coutable c946ee1282
Enable the Layout/SpaceBeforeBlockBraces cop
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-08-09 11:52:22 +02:00
Alejandro Rodríguez 3ce6f03f14 Incorporate Gitaly's CommitService.FindCommit RPC 2017-08-07 23:33:43 -04:00
Alejandro Rodríguez e363fbf71a Move `deltas` and `diff_from_parents` logic to Gitlab::Git::Commit
This helps keep the abstraction layers simpler, and also keep the
interface of those methods consistent, in case of implementation
changes.
2017-08-07 23:33:40 -04:00
Alejandro Rodríguez c21ae07e33 Refactor Gitlab::Git::Commit to include a repository 2017-08-07 22:34:34 -04:00
Douwe Maan 942bd5b411 Merge branch 'blob-batch-methods' into 'master'
Add Gitlab::Git::Blob.batch method

See merge request !13225
2017-08-07 19:57:25 +00:00
Jacob Vosmaer 29a1c5a126 Rename 'limit' to 'blob_size_limit' 2017-08-07 16:26:50 +02:00
Douwe Maan 727b6d16e5 Merge branch 'master' into 'bvl-nfs-circuitbreaker'
# Conflicts:
#   app/models/repository.rb
#   spec/models/repository_spec.rb
2017-08-07 09:13:10 +00:00
Sean McGivern 9b21668663 Merge branch 'gitaly-renames-annotations' into 'master'
Gitaly deletions and annotations

See merge request !13280
2017-08-07 08:40:53 +00:00
Bob Van Landuyt 4b34720c0c Use ruby's `File.stat` to check storage availability 2017-08-04 15:38:50 +02:00
Bob Van Landuyt 0dd4c306ca Only track accessibility once 2017-08-04 15:38:50 +02:00
Bob Van Landuyt 022c38e63e Use `keys` instead of `scan_each` 2017-08-04 15:38:49 +02:00
Bob Van Landuyt 3899d07f9e Move hostname to Gitlab::Environment 2017-08-04 15:38:49 +02:00
Bob Van Landuyt 0fa94a0ddd Make sure the check works for paths with spaces. 2017-08-04 15:38:49 +02:00
Bob Van Landuyt 3598e60bf2 Add a Circuitbreaker for storage paths 2017-08-04 15:38:48 +02:00
Ahmad Sherif 03440eed20 Migrate blame loading to Gitaly
Closes gitaly#421
2017-08-03 19:20:46 +02:00
Jacob Vosmaer 3a8f4a3460 Remove unnecessary 'raw' alias 2017-08-03 15:52:14 +02:00
Jacob Vosmaer 29a07fd3a1 Rename 'commits_between' to 'rugged_commits_between' 2017-08-03 15:48:10 +02:00
Ahmad Sherif 215e0911e5 Migrate Gitlab::Git::Repository#count_commits to Gitaly
Closes gitaly#415
2017-08-02 00:33:04 +02:00
Sean McGivern 7a2509ea1f Merge branch 'blob-limit-test' into 'master'
Fix bug in blob test

See merge request !13224
2017-08-01 12:53:57 +00:00
Jacob Vosmaer f3569a25e4 Fix bug in blob test 2017-08-01 13:53:32 +02:00
Jacob Vosmaer 5e20e448ce Add Gitlab::Git::Blob.batch method 2017-08-01 13:49:57 +02:00
Jacob Vosmaer 67de82cf5f Add option to use CommitLanguages RPC 2017-08-01 10:48:46 +02:00
Alejandro Rodríguez 8e3f2ecfa9 Incorporate RefsService.FindAllBranches Gitaly RPC 2017-07-27 15:40:54 -04:00
Alejandro Rodríguez 8065adcc1e Improve Gitlab::Git::Repository specs for #branches 2017-07-27 15:39:31 -04:00
Alejandro Rodríguez 432bb22308 Remove unused Gitlab::Git operations 2017-07-27 15:39:31 -04:00
Ahmad Sherif cd5ae5cb2b Migrate Repository#tags to Gitaly
Closes gitaly#411
2017-07-27 20:07:40 +02:00
Rémy Coutable cddc5cacfb Use described_class when possible
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-27 14:31:53 +02:00
Rémy Coutable ddccd24c13 Remove superfluous lib: true, type: redis, service: true, models: true, services: true, no_db: true, api: true
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-27 14:31:53 +02:00
Rémy Coutable 8efc884166 Merge branch 'gitaly-tree-entries' into 'master'
Incorporate CommitService.GetTreeEntries Gitaly call

Closes gitaly#372

See merge request !12941
2017-07-21 15:47:36 +00:00
Ahmad Sherif b043100b65 Migrate Gitlab::Git::Commit.find_all to Gitaly
Closes gitaly#396
2017-07-20 22:03:55 +02:00
Alejandro Rodríguez 9eb5cdd73f Incorporate CommitService.GetTreeEntries Gitaly call 2017-07-20 12:47:00 -04:00
Ahmad Sherif ef2b81adb4 Migrate DiffCollection limiting logic to Gitaly 2017-07-19 18:05:22 +02:00
Alejandro Rodríguez 25b01b4c85 Incorporate Gitaly's Commits#between RPC 2017-07-18 16:20:27 -04:00
Alejandro Rodríguez 90f8feae46 Adapt to new Gitaly commit message format 2017-07-18 16:11:44 -04:00
Andrew Newdigate a89f18bf2c Renamed Gitaly services 2017-07-18 07:59:36 +00:00
Sean McGivern 8b31ecd3d9 Merge branch 'remove-git-search-files' into 'master'
Remove Repository#search_files

See merge request !12879
2017-07-17 11:13:49 +00:00
Jacob Vosmaer 682b328787 Remove Repository#search_files 2017-07-14 18:17:31 +02:00
Jacob Vosmaer b304fd790b Make commit lookups explicit 2017-07-14 17:08:53 +02:00
Jacob Vosmaer 08b462b9b0 Remove deprecated #heads method 2017-07-14 15:11:42 +02:00
Sean McGivern 34da5a5de4 Merge branch 'gitlab-git-repository-log' into 'master'
Gitlab::Git shuffling and Gitaly annotations

See merge request !12849
2017-07-14 11:09:11 +00:00
Jacob Vosmaer b2ecf0aa35 Change Git::Repository#log to return Commits 2017-07-13 14:54:21 +02:00
Rémy Coutable a97208dde7 Merge branch 'bvl-enable-features-in-test' into 'master'
Enable all feature flags by default in specs

See merge request !12832
2017-07-13 12:24:31 +00:00
Bob Van Landuyt 3ee48e422d Enable all feature flags by default in specs
Otherwise some features would go untested in non-specific contexts

I did need to disable the
`gitlab_git_diff_size_limit_increase`-feature in some specs since we
depend on diffs being expandable while the file we are testing on is
smaller than the increased limit.
2017-07-13 13:00:34 +02:00
Sean McGivern e0ce648d5c Merge branch 'lib-git-gitaly' into 'master'
Add Gitaly notes to Gitlab::Git, delete diff options

See merge request !12814
2017-07-13 09:32:36 +00:00
Jacob Vosmaer 0b0e89ef7b Try to eliminate unused diff options 2017-07-12 18:28:29 +02:00
blackst0ne 2c8700c01e Replace 'browse_files.feature' spinach test with an rspec analog 2017-07-12 23:45:42 +11:00
Jacob Vosmaer 06b9449224 Add gitaly_git_blob_raw feature 2017-07-07 18:33:59 +02:00
Robert Speicher 1dab640357 Merge branch 'feature/migrate-commit-count-to-gitaly' into 'master'
Migrate Gitlab::Git::Repository#commit_count to Gitaly

Closes gitaly#355

See merge request !12688
2017-07-07 15:21:05 +00:00
Ahmad Sherif c393d88df3 Migrate Gitlab::Git::Repository#commit_count to Gitaly
Closes gitaly#355
2017-07-07 13:47:34 +02:00
Sean McGivern 9e4aef263a Merge branch 'gitaly-submodule-url-for' into 'master'
Migrate #submodule_url_for to Gitaly

See merge request !12629
2017-07-05 11:25:39 +00:00
Jacob Vosmaer b67d1d64cc Migrate #submodule_url_for to Gitaly 2017-07-05 11:09:03 +02:00
Jacob Vosmaer ec35a9e860 Remove unnecessary clear_stubs calls 2017-07-04 13:02:11 +02:00
Jacob Vosmaer 8a62f304ef Add a UTF-8 encoding matcher 2017-06-30 14:32:42 +02:00
Jacob Vosmaer 7648f11381 Remove unnecessary contexts 2017-06-30 14:32:42 +02:00
Alejandro Rodríguez f4e6aba1bb Set the GL_REPOSITORY env variable on Gitlab::Git::Hook 2017-06-29 15:22:40 -04:00
Jacob Vosmaer d3bcf8ac2a Fix gitaly ref encoding bugs 2017-06-28 16:15:59 +02:00
Sean McGivern 5dd6d9a9ec Merge branch 'submodules-private' into 'master'
Make Gitlab::Git::Repository#submodules private

See merge request !12479
2017-06-28 09:25:45 +00:00
Jacob Vosmaer cf131bf713 Make Gitlab::Ggit::Repository#submodules private 2017-06-27 16:03:35 +02:00
Jacob Vosmaer 43c3a65062 Remove 'contains' option from Commit.find_all 2017-06-27 12:38:58 +02:00
Jacob Vosmaer 144e37c667 Remove Gitlab::Git::Repository#find_all 2017-06-27 12:30:51 +02:00
Robert Speicher 826d5b7b51 Merge branch 'fix/properly-encode-gitaly-diffs' into 'master'
Encode Gitaly diff patches properly

See merge request !12368
2017-06-22 16:50:30 +00:00
Ahmad Sherif 5b092d21cc Encode Gitaly diff patches properly 2017-06-22 03:12:23 +02:00
Robert Speicher f85d0a0024 Merge branch 'feature/migrate-blob-find-to-gitaly' into 'master'
Migrate Gitlab::Git::Blob.find to Gitaly

See merge request !12104
2017-06-22 01:00:30 +00:00
Ahmad Sherif 0284f01716 Migrate Gitlab::Git::Blob.find to Gitaly 2017-06-21 17:31:20 +02:00
Grzegorz Bizon 0430b76441 Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
Rémy Coutable 2a39280db0 Merge branch 'moved-submodules' into 'master'
repository: index submodules by path

See merge request !10798
2017-06-19 17:51:55 +00:00
David Turner b30c16aa32 repository: index submodules by path
Submodules have a name in the configuration, but this name is simply
the path at which the submodule was initially checked in (by default
-- the name is totally arbitrary).  If a submodule is moved, it
retains its original name, but its path changes.  Since we discover
submodules inside trees, we have their path but not necessarily their
name.

Make the submodules() function return the submodule hash indexed by
path rather than name, so that renamed submodules can be looked up.

Signed-off-by: David Turner <novalis@novalis.org>
2017-06-16 14:37:13 -04:00
Sean McGivern 9a73b634ab Add table for files in merge request diffs
This adds an ID-less table containing one row per file, per merge request
diff. It has a column for each attribute on Gitlab::Git::Diff that is serialised
currently, with the advantage that we can easily query the attributes of this
new table.

It does not migrate existing data, so we have fallback code when the legacy
st_diffs column is present instead. For a merge request diff to be valid, it
should have at most one of:

* Rows in this new table, with the correct merge_request_diff_id.
* A non-NULL st_diffs column.

It may have neither, if the diff is empty.
2017-06-16 18:30:01 +01:00
Robert Speicher a6ec5121f0 Correct RSpec/SingleLineHook cop offenses 2017-06-14 13:18:56 -05:00
Douwe Maan ffbbd4112e Move diffable? method from Repository to Diff::File 2017-06-08 09:32:57 -05:00
Douwe Maan 3a5d375e49 Fix Diff::Position#diff_file for positions on straight diffs 2017-06-06 14:48:05 -05:00
Douwe Maan 07e7ce31e3 Merge branch '31983-increase-merge-request-diff-file-size-limit-for-default-toggle-opening' into 'master'
Increase diff limits to 100 KB for collapse and 200 KB overall

Closes #31983

See merge request !11875
2017-06-05 13:58:54 +00:00
Robert Speicher 993412f9de Merge branch 'fix/use-new-gitaly-commit-diff-rpc' into 'master'
Use the new Gitaly CommitDiff RPC

See merge request !11826
2017-06-02 19:39:02 +00:00
Sean McGivern 1d3c33b57e Increase diff limits to 100 KB for collapse and 200 KB overall
This is controlled with the feature flag gitlab_git_diff_size_limit_increase.
Both of these limits were basically picked arbitrarily in the first place;
disabling the feature flag reverts to the old limits.
2017-06-02 19:37:09 +01:00
Ahmad Sherif 4d1e987ec3 Use the new Gitaly CommitDiff RPC 2017-06-02 18:33:18 +02:00
Bob Van Landuyt e564fe971f Rename `Gitlab::Git::EncodingHelper` to `Gitlab::EncodingHelper` 2017-06-01 21:21:14 +00:00
Sean McGivern 04251829ba Merge branch 'dm-collapsed-blob' into 'master'
Consistent diff and blob size limit names

See merge request !11776
2017-06-01 09:10:53 +00:00
Douwe Maan 04cf618b6f Change no_limits to limits 2017-05-31 14:41:25 -05:00
Douwe Maan ce869e3964 Fix Diff#too_large? and specs 2017-05-30 21:48:30 -05:00
Douwe Maan 0c7dd30c78 Make .gitmodules parsing more resilient to syntax errors 2017-05-30 16:19:36 -05:00
Bob Van Landuyt 33aed43e9d Avoid crash when trying to parse string with invalid UTF-8 sequence 2017-05-30 15:05:52 +00:00
Douwe Maan aed0387f97 Consistent diff and blob size limit names 2017-05-29 17:02:02 -05:00
Jacob Vosmaer fcdc427972 Add test that shows DiffCollection restart bug 2017-05-23 18:45:58 +02:00
Douwe Maan 6319ca271c Merge branch 'gitaly-local-branches' into 'master'
Incorporate Gitaly's local_branches operation into repo code

Closes #27379

See merge request !10059
2017-05-18 14:22:41 +00:00
Alejandro Rodríguez 925945f01b Incorporate Gitaly's local_branches operation into repo code 2017-05-17 18:12:10 -04:00
Alejandro Rodríguez cf09c826a5 Re-enable gitaly migration for ref_name_for_sha after bugfixes 2017-05-16 11:43:37 -04:00
Rémy Coutable 3db37e0562 Enable the Style/TrailingCommaInArguments cop
Use the EnforcedStyleForMultiline: no_comma option.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-05-10 18:25:45 +02:00
Rémy Coutable d40e1f547e Enable the Style/TrailingCommaInLiteral cop
Use the EnforcedStyleForMultiline: no_comma option.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-05-10 18:25:45 +02:00
Timothy Andrew b44eaf8e07 Sort the network graph both by commit date and topographically.
- Previously, we sorted commits by date, which seemed to work okay.

- The one edge case where this failed was when multiple commits have the same
  commit date (for example: when a range of commits are cherry picked with a
  single command, they all have the same commit date [and different author
  dates]).

- Commits with the same commit date would be sorted arbitrarily, and usually
  break the network graph.

- This commit solves the problem by both sorting by date, and by sorting
  topographically (parents aren't displayed until all their children are
  displayed)

- Include review comments from @adamniedzielski

A more detailed explanation is present here:
https://gitlab.com/gitlab-org/gitlab-ce/issues/30973#note_28706230
2017-05-04 04:21:12 +00:00
Douwe Maan 185fd98fd4 Merge branch 'fix-gitaly-not-found' into 'master'
Re-enable ref operations with gitaly after not-found fix

See merge request !10773
2017-05-02 22:32:34 +00:00
Douwe Maan 2a73f0a638 Merge branch 'rs-described_class-cop-2' into 'master'
Enable `RSpec/DescribedClass` cop and correct violations

See merge request !10930
2017-05-02 22:30:30 +00:00
Alejandro Rodríguez 5e0e5801f1 Re-enable ref operations with gitaly after not-found fix 2017-05-02 17:17:58 -03:00
Robert Speicher d49768296c Auto-correct `RSpec/DescribedClass` violations 2017-05-01 11:13:33 -04:00
Kim "BKC" Carlbäcker a998710a3b Fix RSpec 2017-04-28 13:07:54 +02:00
Timothy Andrew a7e67604b3 Fix ordering of commits in the network graph.
- We upgraded `rugged` to 0.25.1.1 in !10286 for %9.1

- Prior to this upgrade, the default sort order for commits returned by
  `Gitlab::Git::Repository#find_commits` was `Rugged::SORT_DATE`, which the
  graph relied on.

- While upgrading `rugged`, the MR also changed this default to
  `Rugged::SORT_NONE`, which broke commit ordering in the graph.

- This commit adds an option to `Gitlab::Git::Repository#find_commits` to sort
  by date, and changes the graph builder `Network::Graph` so it explictly
  requests the `:date` sort order
2017-04-27 13:09:54 +00:00
James Lopez 71b6a4ba85 Return empty string on UTF8 conversion with U_STRING_NOT_TERMINATED_WARNING error 2017-04-20 16:10:33 +02:00
Douwe Maan d170133bde Refactor changing files in web UI 2017-04-20 00:37:44 +00:00
Douwe Maan d6f49b85f1 Fix specs 2017-04-17 18:31:23 -05:00
Rémy Coutable c43f7d4713 Merge branch 'gitaly-testing' into 'master'
Setup and run a Gitaly server for testing if GitalyClient is enabled

See merge request !10298
2017-04-12 09:25:09 +00:00
Alejandro Rodríguez d6cc8feb6c Setup and run a Gitaly server for testing if GitalyClient is enabled 2017-04-11 16:00:44 -03:00
Rémy Coutable ae88355bb8 Retrieve Git-specific env in Gitlab::Git::RevList and add a new #new_refs method
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-04-10 16:10:18 +02:00
Rémy Coutable cb20cfa244 Retrieve Git-specific env in Gitlab::Git::Repository#rugged
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-04-10 16:10:18 +02:00
Rémy Coutable 05aa038c42 Add a Gitlab::Git::Env to store Git-specific env thread-safely
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-04-10 16:10:18 +02:00
Alejandro Rodríguez 267cd3e359 Incorporate Gitaly client for refs service 2017-04-04 16:53:44 +02:00
mhasbini ed5d59d4c4 Fix symlink icon in project tree 2017-04-02 14:42:37 +03:00
Sean McGivern 53819c5ac6 Support >1 path in Gitlab::Git::Repository#log
This is analogous to `git log -- foo bar baz`, but not the same as
`Gitlab::Git::Repository#log(path: 'foo bar baz')`, which would run `git
log -- 'foo bar baz'`.
2017-03-30 10:21:19 +01:00
Robert Speicher def164e761 Fix RSpec/DescribeSymbol cop violations 2017-03-24 19:04:03 -04:00
Robert Speicher 5409a3c5b7 Merge branch 'feature/use-gitaly-for-commit-show' into 'master'
Use Gitaly for CommitController#show

See merge request !9629
2017-03-17 17:41:44 +00:00
Mark Fletcher 4597654079 Fix archive prefix bug for refs containing dots 2017-03-16 21:04:58 +05:30
Ahmad Sherif c0a4f527db Use Gitaly for CommitController#show 2017-03-15 12:52:11 +02:00
Rémy Coutable 464ca33747
Allow to override GITLAB_GIT_TEST_REPO_URL to specify a different gitlab-git-test repo
We will set this to the dev mirror in GitLab CE and EE on dev.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-03-14 18:30:53 +01:00
Oswaldo Ferreira d13451cd49 Returns correct header data for commits endpoint 2017-03-07 22:56:31 -03:00
George Andrinopoulos c46f933bb7 Fix pagination headers for repository commits api endpoint 2017-03-07 22:56:31 -03:00
Mark Fletcher 3ac54d22b9 Ensure archive download is only one directory deep 2017-03-02 10:30:24 +05:30
Robert Speicher cecfcc2edd Merge branch '23062-allow-git-log-to-accept-follow-and-skip' into 'master'
Make Git history follow renames again by performing the --skip in Ruby

Closes #23062

See merge request !9314
2017-02-25 19:58:05 +00:00
Douwe Maan a530e9da35 Address review 2017-02-24 09:55:01 -06:00
Douwe Maan 0625af3bcb Consistently create, update, and delete files, taking CRLF settings into account 2017-02-24 09:55:01 -06:00
Rémy Coutable 9720bcd83d Optimize a bit Gitlab::Git::Repository#log_by_shell and its specs
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-02-23 19:06:00 +01:00
Rémy Coutable 3eb0354061 Make Git history follow renames again by performing the --skip in Ruby
This hack is needed because of an issue when --follow and --skip
are passed to git log at the same time.

See https://gitlab.com/gitlab-org/gitlab-ce/issues/23062

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-02-23 19:06:00 +01:00
Douwe Maan 1fe7501b49 Revert "Prefer leading style for Style/DotPosition"
This reverts commit cb10b725c8929b8b4460f89c9d96c773af39ba6b.
2017-02-23 09:33:05 -06:00
Douwe Maan 7d4b52b27d Enable Style/WordArray 2017-02-23 09:32:41 -06:00
Douwe Maan 206953a430 Prefer leading style for Style/DotPosition 2017-02-23 09:32:22 -06:00
Douwe Maan 7ea641b6d0 Enable Style/ColonMethodCall 2017-02-23 09:31:57 -06:00
Douwe Maan c10064aad5 Enable Style/SpaceInsideBrackets 2017-02-23 09:31:56 -06:00
Robert Speicher 80a6d2fda2 Use `:empty_project` where possible throughout spec/lib 2017-01-25 12:25:42 -05:00
Robert Speicher 2e20a71d21 Ensure internal Gitlab::Git references use the namespace 2017-01-04 19:09:29 -05:00
Robert Speicher a00578ce5c Absorb gitlab_git 2017-01-04 19:09:28 -05:00
Rémy Coutable 212967aefb
Reject blank environment vcariables in Gitlab::Git::RevList
Signed-off-by: Rémy Coutable <remy@rymai.me>
2016-12-20 09:45:37 +01:00
Timothy Andrew e394d2872a Implement final review comments from @rymai.
- `raise "string"` raises a `RuntimeError` - no need to be explicit
- Remove top-level comment in the `RevList` class
- Use `%w()` instead of `%w[]`
- Extract an `environment_variables` method to cache `env.slice(*ALLOWED_VARIABLES)`
- Use `start_with?` for env variable validation instead of regex match
- Validation specs for each allowed environment variable were identical. Build them dynamically.
- Minor change to `popen3` expectation.
2016-12-16 23:32:25 +05:30
Timothy Andrew 3e1442766f Implement review comments from @dbalexandre.
- Don't define "allowed environment variables" in two places.
- Dispatch to different arities of `Popen.open` without an if/else block.
- Use `described_class` instead of explicitly stating the class name within a
- spec.
- Remove `git_environment_variables_validator_spec` and keep the validation inline.
2016-12-16 23:32:25 +05:30
Timothy Andrew a2b39feb1a Validate environment variables in `Gitlab::Git::RevList`
The list of environment variables in `Gitlab::Git::RevList` need to be validate
to make sure that they don't reference any other project on disk.

This commit mixes in `ActiveModel::Validations` into `Gitlab::Git::RevList`, and
validates that the environment variables are on the level (using a custom
validator class). If the validations fail, the force push is still executed
without any environment variables set.

Add specs for the validation using shared examples.
2016-12-16 23:32:25 +05:30
Grzegorz Bizon c7b31e4029 Enable some Rubocop cops related to new lines 2016-08-03 12:02:41 +02:00
Timothy Andrew eb16e1e3c2 Improve the error message displayed when branch creation fails.
Note: This feature was developed independently on master while this was
in review. I've removed the conflicting bits and left the relevant
additions, mainly a test for `Gitlab::Git::Hook`. The original commit
message follows:

1. `gitlab-shell` outputs errors to `stderr`, but we weren't using this
   information, prior to this commit. Now we capture the `stderr`, and
   display it in the flash message when branch creation fails.

2. This can be used to display better errors for other git operation
   failures with small tweaks.

3. The return value of `Gitlab::Git::Hook#trigger` is changed from a
   simple `true`/`false` to a tuple of `[status, errors]`. All usages
   and tests have been updated to reflect this change.

4. This is only relevant to branch creation _from the Web UI_, since SSH
   and HTTP pushes access `gitlab-shell` either directly or through
   `gitlab-workhorse`.

5. A few minor changes need to be made on the `gitlab-shell` end. Right
   now, the `stderr` message it outputs is prefixed by "GitLab: ", which
   shows up in our flash message. This is better removed.
2016-07-05 11:05:16 +05:30
Dmitriy Zaporozhets 4f2d2c90f7 Move Gitlab::Git out of gitlab core 2013-04-27 23:50:17 +03:00
Dmitriy Zaporozhets 211c433cd8 Gitlab::Git::Stats specs 2013-04-16 16:39:48 +03:00
Dmitriy Zaporozhets be41d0e1bf Gitlab::Git::Diff specs 2013-04-16 16:30:16 +03:00
Dmitriy Zaporozhets c3bbbff673 specs for repository tag_names, branch_names 2013-04-03 21:21:24 +03:00
Dmitriy Zaporozhets f8a4a76048 decorate commits in Gitlab::Git::repository with valid class 2013-04-03 21:17:50 +03:00
Dmitriy Zaporozhets e91ff84df7 keep same dir structure for specs as in lib/ 2013-04-03 21:09:07 +03:00