summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
Commit message (Collapse)AuthorAgeFilesLines
* Simplify check for running job on Redis39032-improve-merge-ongoing-check-consistencyOswaldo Ferreira2017-10-131-1/+1
|
* Make "merge ongoing" check more consistentOswaldo Ferreira2017-10-111-1/+1
|
* Stop using `branch_names.include?` and use `branch_exists?`Andrew Newdigate2017-10-101-2/+2
|
* Introduce new hook data builders for Issue and MergeRequest34284-add-changes-to-issuable-webhook-dataRémy Coutable2017-10-091-56/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Start adding Gitlab::HookData::IssuableBuilderRémy Coutable2017-10-091-19/+59
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Include the changes in issuable webhook payloadsRémy Coutable2017-10-091-0/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch 'tc-geo-read-only-idea' into 'master'Douwe Maan2017-10-071-1/+1
|\ | | | | | | | | | | | | Create idea of read-only database Closes #37534 See merge request gitlab-org/gitlab-ce!14688
| * Create idea of read-only databasetc-geo-read-only-ideaToon Claes2017-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In GitLab EE, a GitLab instance can be read-only (e.g. when it's a Geo secondary node). But in GitLab CE it also might be useful to have the "read-only" idea around. So port it back to GitLab CE. Also having the principle of read-only in GitLab CE would hopefully lead to less errors introduced, doing write operations when there aren't allowed for read-only calls. Closes gitlab-org/gitlab-ce#37534.
* | Allow creating merge requests across forks of a projectBob Van Landuyt2017-10-071-1/+1
|/
* Move `fetch_ref` from MergeRequestDiff#ensure_commit_shas to MergeRequestRémy Coutable2017-10-051-0/+3
| | | | | | | | | | | | MergeRequest#create_merge_request_diff and MergeRequest#reload_diff are the only places where we generate a new MR diff so that's where we should fetch the ref. This also ensures that the ref is not fetched when we call merge_request.merge_request_diffs.create in Github::Import#fetch_pull_requests. Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch 'merge-request-notes-performance' into 'master'Sean McGivern2017-10-041-8/+14
|\ | | | | | | | | | | | | Use a UNION ALL for getting merge request notes Closes #38508 See merge request gitlab-org/gitlab-ce!14620
| * Use a UNION ALL for getting merge request notesmerge-request-notes-performanceYorick Peterse2017-10-021-8/+14
| | | | | | | | | | | | | | | | | | In this particular case the use of UNION ALL leads to a better query plan compared to using 1 big query that uses an OR statement to combine different data sources. See https://gitlab.com/gitlab-org/gitlab-ce/issues/38508 for more information.
* | Merge branch '36876-mr-show-json-controller-perf-improvements' into 'master'Douwe Maan2017-10-041-3/+2
|\ \ | | | | | | | | | | | | Reduce method calls while evaluating Projects::MergeRequestsController#show.json See merge request gitlab-org/gitlab-ce!14285
| * | Reduce method calls while evaluating Projects::MergeRequestsController#show.json36876-mr-show-json-controller-perf-improvementsOswaldo Ferreira2017-10-041-3/+2
| |/
* | Port semi-linear merge strategy to CE (mostly FE)Eric Eastwood2017-09-291-0/+8
|/
* Fix refreshing of issues/MR count cachesfix-counts-cachingYorick Peterse2017-09-191-2/+0
| | | | | | | | | | | | | | | This ensures the open issues/MR count caches are refreshed properly when creating new issues or MRs. This MR also includes a change to the cache keys to ensure all caches are rebuilt on the fly. This particular problem was not caught in the test suite due to a null cache being used, resulting in all calls that would use a cache using the underlying data directly. In production the code would fail because a newly saved record returns an empty hash in #changes meaning checks such as `state_changed? || confidential_changed?` would return false for new rows, thus never updating the counters. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/38061
* Detect n+1 issues involving GitalyAndrew Newdigate2017-09-191-2/+5
|
* add controller specmicael.bergeron2017-09-061-1/+2
| | | | also fix some code styling issues
* rework the contributor badgemicael.bergeron2017-09-061-0/+5
| | | | | - only show in merge-requests - show as a little glyph
* Resolve outdated diff discussions on pushSean McGivern2017-09-061-0/+6
|
* Merge branch 'git-operation-service-to-git' into 'master'Sean McGivern2017-09-041-8/+1
|\ | | | | | | | | Prepare GitOperationService for moving to Gitlab::Git See merge request !13773
| * Prepare GitOperationService for move to Gitlab::GitJacob Vosmaer2017-08-311-8/+1
| |
* | Merge branch 'issue_36820' into 'master'Sean McGivern2017-09-011-0/+2
|\ \ | | | | | | | | | | | | | | | | | | Remove closing external issues by reference error Closes #36820 See merge request !13910
| * | Remove closing external issues by reference errorissue_36820Felipe Artur2017-08-311-0/+2
| | |
* | | Merge branch 'sidebar-cache-updates' into 'master'Sean McGivern2017-08-311-0/+6
|\ \ \ | |_|/ |/| | | | | | | | Only update the sidebar count caches when needed See merge request !13878
| * | Only update the sidebar count caches when neededsidebar-cache-updatesYorick Peterse2017-08-301-0/+6
| |/ | | | | | | | | | | This ensures the issues/MR cache of the sidebar is only updated when the state or confidential flags changes, instead of changing this for every update.
* | Merge remote-tracking branch 'upstream/master' into ↵Lin Jen-Shin2017-08-301-6/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 36807-gc-unwanted-refs-after-import * upstream/master: (225 commits) Add changelog entry Backports EE 2756 logic to CE. Make rubocop happy Make profile settings dropdown consistent Add filter by my reaction Update spec initialization with it being a shared component Update identicon path and selector Renamed to `identicon` and make shared component Merge branch 'master-i18n' into 'master' Fix broken Frontend JS guide Replace 'project/star.feature' spinach test with an rspec analog Adds position fixed to right sidebar Fixes the margin of the top buttons of the pipeline page Remove commented out code Better align fallback image emojis Decrease Metrics/CyclomaticComplexity threshold to 15 Add changelog Respect the default visibility level when creating a group Further break with_repo_branch_commit into parts Make sure inspect doesn't generate crazy string ...
| * Rename MergeRequest#async_merge to merge_asyncOswaldo Ferreira2017-08-281-1/+1
| |
| * Add changelogOswaldo Ferreira2017-08-281-1/+1
| |
| * Track enqueued and ongoing MRsOswaldo Ferreira2017-08-281-3/+9
| |
| * Remove locked? check when unlocking a merge requestOswaldo Ferreira2017-08-281-1/+1
| | | | | | | | | | Our state machine shall have enough knowledge to not allow states other than locked from transitioning to opened (e.g. MergeRequest#unlock_mr).
| * Merge branch '36262_merge_request_reference_in_merge_commit_global' into ↵Sean McGivern2017-08-241-2/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | 'master' fix Merge request reference in merge commit is not global Closes #36262 See merge request !13518
| | * [ci skip] changelog entry added for full merge request ref changeshaseeb2017-08-231-1/+0
| | |
| | * fix Merge request reference in merge commit is not globalhaseeb2017-08-131-2/+2
| | |
| * | Merge branch 'cache-issue-and-mr-counts' into 'master'Douwe Maan2017-08-231-0/+5
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Cache the number of open issues and merge requests Closes #36622 See merge request !13639
| | * | Cache the number of open issues and merge requestsYorick Peterse2017-08-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every project page displays a navigation menu that in turn displays the number of open issues and merge requests. This means that for every project page we run two COUNT(*) queries, each taking up roughly 30 milliseconds on GitLab.com. By caching these numbers and refreshing them whenever necessary we can reduce loading times of all these pages by up to roughly 60 milliseconds. The number of open issues does not include confidential issues. This is a trade-off to keep the code simple and to ensure refreshing the data only needs 2 COUNT(*) queries instead of 3. A downside is that if a project only has 5 confidential issues the counter will be set to 0. Because we now have 3 similar counting service classes the code previously used in Projects::ForksCountService has mostly been moved to Projects::CountService, which in turn is reused by the various service classes. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/36622
* | | | Try to make reserved ref names more obviousLin Jen-Shin2017-08-251-1/+1
|/ / / | | | | | | | | | | | | So that whenever we want to reserve more, we're aware, and don't mess it up.
* | | Remove ignore columnsFelipe Artur2017-08-181-1/+0
|/ /
* | Use with_repo_branch_commit instead of fetch_ref directlyLin Jen-Shin2017-08-141-9/+8
| | | | | | | | | | So that we could limit the access to Repository#fetch_ref See: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13416#note_37487433
* | Don't try to create diffs if one of the branch is missingLin Jen-Shin2017-08-101-1/+2
| | | | | | | | Also fix a few tests
* | Introduce MergeRequest#write_ref and Repository#write_refLin Jen-Shin2017-08-101-5/+15
|/ | | | so that we don't have to fetch it for non-forks
* Re-enable SqlInjection and CommandInjectionBrian Neel2017-08-081-1/+1
|
* Move locked_at removal to post-deployment migrationOswaldo Ferreira2017-08-071-0/+1
|
* Store MergeWorker JID on merge request, and clean up stuck mergesOswaldo Ferreira2017-08-071-16/+6
|
* Rename many path_with_namespace -> full_pathGabriel Mazetto2017-08-011-2/+2
|
* Merge issuable "reopened" state into "opened"merge-issuable-reopened-into-opened-stateYorick Peterse2017-07-281-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having two states that essentially mean the same thing is very much like having a boolean "true" and boolean "mostly-true": it's rather silly. This commit merges the "reopened" state into the "opened" state while taking care of system notes still showing messages along the lines of "Alice reopened this issue". A big benefit from having only two states (opened and closed) is that indexing and querying becomes simpler and more performant. For example, to get all the opened queries we no longer have to query both states: SELECT * FROM issues WHERE project_id = 2 AND state IN ('opened', 'reopened'); Instead we can query a single state directly, which can be much faster: SELECT * FROM issues WHERE project_id = 2 AND state = 'opened'; Further, only having two states makes indexing easier as we will only ever filter (and thus scan an index) using a single value. Partial indexes could help but aren't supported on MySQL, complicating the development process and not being helpful for MySQL.
* Support both internal and external issue trackersJarka Kadlecova2017-07-241-1/+1
|
* Make sure MergeRequest commit methods work when either compare_commits or ↵dm-merge-request-creation-errorDouwe Maan2017-07-131-6/+31
| | | | merge_request_diff is set
* Merge branch 'sh-optimize-mr-api' into 'master'Stan Hu2017-07-081-1/+1
|\ | | | | | | | | Remove many N+1 queries with merge requests API See merge request !12726
| * Remove many N+1 queries with merge requests APIsh-optimize-mr-apiStan Hu2017-07-071-1/+1
| | | | | | | | | | | | Identified via `ENABLE_BULLET=1 bundle exec rspec spec/requests/api/merge_requests_spec.rb:34` Improves speed of #34159