Add `Gitlab.com?` method
To be used as a feature flag for GitLab.com-only features, such as
welcome emails.
We will be careful to only use this to disable features or functionality
that do not make sense for any installations that aren't GitLab.com. We
will not use this to restrict features from other installations or keep
them "exclusive" to GitLab.com.
See merge request !3682
API: Return 404 if user does not have access to group
Closes#15185
After !3587 is merged, I'll update this one to also fix the return code of the tests in !3587.
See merge request !3683
One use case for this is manually setting the "action" tag for Grape API
calls. Due to Grape running blocks there are no human readable method
names that can be used for the "action" tag, thus we have to set these
manually on a case by case basis.
API: Ability to update a group
This makes it much easier to update a group after introducing the group visibility.
* Closes#14991
See merge request !3587
To reproduce:
1. Create a project with some content
2. Rename the project
3. Create a new project with the same name.
4. Boom - 404.
After step 2, the branch and tag counts were not being cleared. This would
cause `repository.has_visible_content?` to erroneously return `true`
for the newly-created project.
Closes#13384
To be used as a feature flag for GitLab.com-only features, such as
welcome emails.
We will be careful to only use this to disable features or functionality
that do not make sense for any installations that aren't GitLab.com. We
will not use this to restrict features from other installations or keep
them "exclusive" to GitLab.com.
Decouple membership and notifications
This allow you to have notification setting per project even if you are member of group.
It also creates background for having notification settings in project you are not member of.
- [x] Make it work
- [x] Migrations
- [x] CHANGELOG
- [x] More tests
- [x] API
For #3359
After this merge request there is still some work to be done:
* create migration that remove duplicates in notification settings table and create uniq index (8.8 probably)
* remove notification_level field from Member model in 9.0
* make proper API for notification settings
* use `MemberCreateService` instead of Member#after_create callback for creating notification settings (after #14709)
* maybe more tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
See merge request !3421
Delete notes via API
Supports deleting issues, snippets, and merge requests via the API.
* Closes#14944
* Closes#14845
* Closes#6060
@zj I did not see that you assigned yourself in #6060. Hopefully, you did not start yet.
@rymai In #6060 this is targeted for 8.7 release. Could you review that and maybe this still lands in 8.7.
See merge request !3557
If the measure method uses Transaction.current directly the SQL
subscriber (Subscribers::ActiveRecord) will add timings of queries
triggered by DB cleaner.
Standardize the way we check for and display form errors
- Some views had a "Close" button. We've removed this, because we don't
want users accidentally hiding the validation errors and not knowing
what needs to be fixed.
- Some views used `li`, some used `p`, some used `span`. We've
standardized on `li`.
- Some views only showed the first error. We've standardized on showing
all of them.
- Some views added an `#error_explanation` div, which we've made
standard.
See merge request !3531
Updated UI for new merge request
Closes#2540


See merge request !3228
This makes it easier to query, simplifies the code, and makes it
possible to figure out what transaction the data belongs to (simply
because it's now stored _in_ the transaction).
This new setup keeps track of both the real/wall time _and_ CPU time
spent in a block, both measured using milliseconds (to keep all units
the same).