| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Todos sorting dropdown
Implements #18135
![todos_sorting](/uploads/bff76827c421628134dfb8b864e47c74/todos_sorting.png)
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [x] Added for this feature/bug
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5691
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
Fix bug where notes weren’t shown in discussion when the code had changed after creation
See merge request !5908
|
| |/
| |
| |
| | |
after creation
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Show wall-clock time when showing pipeline
## What does this MR do?
Show wall-clock time when showing pipeline instead of cumulative builds time.
Closes #17007
See merge request !5734
|
| | |
| | |
| | |
| | | |
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5734#note_14056642
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
wall-clock-time-for-showing-pipeline
* upstream/master: (99 commits)
Update CHANGELOG for 8.10.6, 8.9.7, and 8.8.8
Updated Akismet documentation
Add hover state to todos (!5361)
Load issues and merge requests templates from repository
Backport EE assertions in protected branch related specs.
Revert "Merge branch '19957-write-tests-for-adding-comments-for-different-line-types-in-diff' into 'master'"
Fix a missed `before_action` for `AutocompleteController`.
Backport `AutocompleteController#load_project` from EE!581.
Fix API::BranchesSpec.
Fix failing tests relating to backporting ee!581.
Revert unrelevant changes
Fix the protected branches factory.
Improve EE compatibility with protected branch access levels.
Move the "update" portion of the protected branch view into a partial.
Don't select an access level if already selected.
Backport changes from gitlab-org/gitlab-ee!581 to CE.
Further refactor and syntax fixes.
Upgrade httpclient gem from 2.7.0.1 to 2.8.2.
Make rubocop happy
Make rubocop happy
...
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
wall-clock-time-for-showing-pipeline
* pipeline-hooks-without-slack: (156 commits)
Fix test failures
Make pipeline to be in created state for hooks tests
Make `execute_methods` public
Added specs for started_at and finished_at
Use explicit events to transition between states
Fix tests. We cannot reload unless it's already saved:
Have trait all_events_enabled so that's easier to reuse, feedback:
Simplify the name for data builder, feedback:
Prefer extend self over module_function, feedback:
Make it more grammatically correct, feedback:
if -> when; when -> `when`; %w() -> %w[]; and fix some typos:
Prefer described_class, feedback:
Make the comment more clear, feedback:
Update CHANGELOG
render only commit title
Fix test failures, that did occur because of missing previously used `reload_status!` call
Use state machine for pipeline event processing
Upgrade Rails to 4.2.7.1 for security fixes.
Update gitlab-shell to v3.3.3
Verify the pipeline status after executing events on builds
...
|
| | | | |
|
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
!581 has a lot of changes that would cause merge conflicts if not
properly backported to CE. This commit/MR serves as a better
foundation for gitlab-org/gitlab-ee!581.
= Changes =
1. Move from `has_one {merge,push}_access_level` to `has_many`, with the
`length` of the association limited to `1`. This is _effectively_ a
`has_one` association, but should cause less conflicts with EE, which
is set to `has_many`. This has a number of related changes in the
views, specs, and factories.
2. Make `gon` variable loading more consistent (with EE!581) in the
`ProtectedBranchesController`. Also use `::` to prefix the
`ProtectedBranches` services, because this is required in EE.
3. Extract a `ProtectedBranchAccess` concern from the two access level
models. This concern only has a single `humanize` method here, but
will have more methods in EE.
4. Add `form_errors` to the protected branches creation form. This is
not strictly required for EE compatibility, but was an oversight
nonetheless.
|
| | | |
|
| | |
| | |
| | |
| | | |
- Refactored SpamCheckService into SpamService
|
| | |
| | |
| | |
| | |
| | | |
- Added controller actions as reusable concerns
- Added controller tests
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Removed unnecessary column from `SpamLog`
- Moved creation of SpamLogs out of its own service and into SpamCheckService
- Simplified code in SpamCheckService.
- Moved move spam related code into Spammable concern
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Merged `AkismetSubmittable` into `Spammable`
- Clean up `SpamCheckService`
- Added tests for `Spammable`
- Added submit (ham or spam) options to `AkismetHelper`
|
| |/
|/|
| |
| |
| |
| | |
- New concern `AkismetSubmittable` to allow issues and other `Spammable` models to be submitted to Akismet.
- New model `UserAgentDetail` to store information needed for Akismet.
- Services needed for their creation and tests.
|
|/
|
|
|
|
|
|
|
|
|
| |
This change simplifies a Pipeline processing by introducing a special new status: created.
This status is used for all builds that are created for a pipeline.
We are then processing next stages and queueing some of the builds (created -> pending) or skipping them (created -> skipped).
This makes it possible to simplify and solve a few ordering problems with how previously builds were scheduled.
This also allows us to visualise a full pipeline (with created builds).
This also removes an after_touch used for updating a pipeline state parameters.
Right now in various places we explicitly call a reload_status! on pipeline to force it to be updated and saved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This concern provides an optimized/simplified version of the "cache_key"
method. This method is about 9 times faster than the default "cache_key"
method.
The produced cache keys _are_ different from the previous ones but this
is worth the performance improvement. To showcase this I set up a
benchmark (using benchmark-ips) that compares FasterCacheKeys#cache_key
with the regular cache_key. The output of this benchmark was:
Calculating -------------------------------------
cache_key 4.825k i/100ms
cache_key_fast 21.723k i/100ms
-------------------------------------------------
cache_key 59.422k (± 7.2%) i/s - 299.150k
cache_key_fast 543.243k (± 9.2%) i/s - 2.694M
Comparison:
cache_key_fast: 543243.4 i/s
cache_key: 59422.0 i/s - 9.14x slower
To see the impact on real code I applied these changes and benchmarked
Issue#referenced_merge_requests. For an issue referencing 10 merge
requests these changes shaved off between 40 and 60 milliseconds.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable Rubocop cops that check access modifiers
## What does this MR do?
This MR enables Rubocop cops that detect methods that should be restricted but are the part of public API because of access modifiers used improperly.
This also fixes existing offenses.
## Why was this MR needed?
Some method in our codebase are public instead of being private because it is sometimes difficult to get it right without static analysis.
## What are the relevant issue numbers?
See #17478
Closes #17372
See merge request !5014
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This enables following cops:
Check for useless access modifiers
Lint/UselessAccessModifier
Checks for attempts to use `private` or `protected` to set the
visibility of a class method, which does not work.
Lint/IneffectiveAccessModifier
This also disables two false possitives in concerns.
|
| | |
|
| | |
|
| |
| |
| |
| | |
legibility in `SpamCheckService`
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix not normalized emoji paths
## What does this MR do?
It normalizes emoji names in `api` and `toggle_award`
## Are there points in the code the reviewer needs to double check?
## Why was this MR needed?
User was able to store +1 and thumbsup to databse, causing UI inconsistency.
## What are the relevant issue numbers?
Fixes #19104
## Screenshots (if relevant)
## Does this MR meet the acceptance criteria?
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [x] API support added
- Tests
- [x] Added for this feature/bug
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5060
|
| |
| |
| |
| |
| |
| | |
* There where path where +1 was stored as +1 not as thumbsup
that was causing problems such as showing thumbsup icon 2 time.
I fixed this to always normalize and store +1 as tumbsup
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix mentioned users on diff notes
## Summary
`DiffNote`, and `LegacyDiffNote` returns empty array for `mentionable_attrs`, because `mentionable_attrs` is not inheritable by subclasses. The problem can be illustrated with this small sample:
```ruby
module Mentionable
extend ActiveSupport::Concern
module ClassMethods
def attr_mentionable(attr)
mentionable_attrs << [attr.to_s]
end
def mentionable_attrs
@mentionable_attrs ||= []
end
end
end
class A
include Mentionable
attr_mentionable :foo
end
class B < A
end
A.mentionable_attrs
=> [["foo", {}]]
B.mentionable_attrs
=> []
```
Possible solution using `cattr_accessor`:
```ruby
module Mentionable
extend ActiveSupport::Concern
module ClassMethods
def attr_mentionable(attr)
mentionable_attrs << [attr.to_s]
end
end
included do
cattr_accessor :mentionable_attrs, instance_accessor: false do
[]
end
end
end
class A
include Mentionable
attr_mentionable :foo
end
class B < A
end
A.mentionable_attrs
=> [["foo"]]
B.mentionable_attrs
=> [["foo"]]
B.mentionable_attrs < [:bar]
=> [["foo"], ["bar"]]
A.mentionable_attrs
=> [["foo"], ["bar"]]
```
`mentionable_attrs` is inheritable by subclasses. If a subclass changes the value then that would also change the value for parent class. Similarly if parent class changes the value then that would change the value of subclasses too.
## What are the relevant issue numbers?
Fixes #19807
Fixes #18022
/cc @stanhu @DouweM @rspeicher
See merge request !5243
|
| | | |
|
| |/ |
|
|/
|
|
| |
This reverts commit c39356998b1850f3dc26fe0b987cb419c1d1afb4.
|
| |
|
| |
|
| |
|
|
|
|
| |
responsibility to other classes
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* master: (98 commits)
Enable Style/EmptyLines cop, remove redundant ones
Update CHANGELOG
Cache results from jQuery selectors to retrieve namespace name
Fix import button when import fail due the namespace already been taken
Fix snippets comments not displayed
Fix emoji paths in relative root configurations
Exclude requesters from Project#members, Group#members and User#members
Upgrade Thin from 1.6.1 to 1.7.0.
Many squashed commits
Cache autocomplete results
Upgrade Sidekiq from 4.1.2 to 4.1.4.
Upgrade seed-fu from 2.3.5 to 2.3.6
use has_many relationship with events
Support creating a todo on issuables via API
Expose target, filter by state as string
Add todos API documentation and changelog
Improve the request / withdraw access button
Metrics for Rouge::Plugins::Redcarpet and Rouge::Formatters::HTMLGitlab
Groundwork for Kerberos SPNEGO (EE feature)
Update CHANGELOG 8.9.5 for runners related fixes
...
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Postgres and MySQL don't guarantee that pagination with `LIMIT` and
`OFFSET` will work if the ordering isn't unique. From the Postgres docs:
> When using `LIMIT`, it is important to use an `ORDER BY` clause that
> constrains the result rows into a unique order. Otherwise you will get
> an unpredictable subset of the query's rows
Before:
[1] pry(main)> issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&:id) }.flatten
[2] pry(main)> issues.count
=> 81
[3] pry(main)> issues.uniq.count
=> 42
After:
[1] pry(main)> issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&:id) }.flatten
[2] pry(main)> issues.count
=> 81
[3] pry(main)> issues.uniq.count
=> 81
|
| |
|
|
|
|
|
|
|
|
|
|
| |
of max database values
When using #XYZ in Markdown text, if XYZ exceeds the maximum value of a signed 32-bit integer, we
get an exception when the Markdown render attempts to run `where(iids: XYZ)`. Introduce a method
that will throw out out-of-bounds values.
Closes #18777
|
|\ |
|
| |
| |
| |
| | |
Avoiding N+1 when showing grouped awards and when
calculating participants for awardable entities
|