Age | Commit message (Collapse) | Author |
|
1. The crux of this change is in `UserAccess`, which looks through all
the access levels, asking each if the user has access to push/merge
for the current project.
2. Update the `protected_branches` factory to create access levels as
necessary.
3. Fix and augment `user_access` and `git_access` specs.
|
|
1. Move to dropdowns instead of checkboxes. One each for "Allowed to
Push" and "Allowed to Merge"
2. Refactor the `ProtectedBranches` coffeescript class into
`ProtectedBranchesAccessSelect`.
3. Modify the backend to accept the new parameters.
|
|
1. Improve error handling while creating protected branches.
2. Modify coffeescript code so that the "Developers can *" checkboxes
send a '1' or '0' even when using AJAX. This lets us keep the backend
code simpler.
3. Use services for both creating and updating protected branches.
Destruction is taken care of with `dependent: :destroy`
|
|
- And hook up their associations.
|
|
Cache the commit author in RequestStore to avoid extra lookups in PostReceive
See merge request !5537
|
|
'17073-tagscontroller-index-is-terrible-response-time-goes-up-to-5-seconds' into 'master'
Update to gitlab_git 10.4.1 and take advantage of preserved Ref objects
See merge request !5536
|
|
Reduce number of queries made for merge_requests/:id/diffs
## What does this MR do?
It reduces the number of DB queries made while processing and rendering MR notes.
## Are there points in the code the reviewer needs to double check?
N/A
## Why was this MR needed?
For `https://staging.gitlab.com/gitlab-org/gitlab-ce/merge_requests/3142/diffs.json`, for each note we make number of DB queries, almost all of them are handled by the AR caching layer, but they seem to add up a few seconds. Testing on staging, calling `merge_requests/3142/diffs.json` was reduced to ~5.5 seconds from ~8 seconds.
## What are the relevant issue numbers?
N/A
## Screenshots (if relevant)
N/A
## 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)~~
- [ ] ~~API support added~~
- ~~Tests~~
- [ ] ~~Added for this feature/bug~~
- [ ] ~~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 !5551
|
|
Add a log message when a project is scheduled for destruction for debugging
We have a lot of projects that are in `pending_delete` state. It's not clear whether they were ever scheduled for destruction, or whether Sidekiq just dropped the job due to `MemoryKiller` or some other reason.
Also this will provide a record of which user destroys a project.
#20365
See merge request !5540
|
|
Implement #3243 New Issue by email
So we extend Gitlab::Email::Receiver for this new behaviour,
however we might want to split it into another class for better
testing it.
Another issue is that, currently it's using this to parse project
identifier:
Gitlab::IncomingEmail.key_from_address
Which is using:
Gitlab.config.incoming_email.address
for the receiver name. This is probably `reply` because it's used
for replying to a specific issue. We might want to introduce another
config for this, or just use `reply` instead of `incoming`.
I'll prefer to introduce a new config for this, or just change
`reply` to `incoming` because it would make sense for replying to
there, too.
The email template used in tests were copied and modified from:
`emails/valid_reply.eml` which I hope is ok.
/cc @DouweM #3243
See merge request !3363
|
|
|
|
|
|
'20308-fix-title-that-is-show-in-the-dropdown-toggle-button-on-projects-branches' into 'master'
Fix the title of the toggle dropdown button
## What does this MR do?
Fix the dropdown-button toggle displaying the correctly title.
## Are there points in the code the reviewer needs to double check?
See if the title is displaying correctly and if the code is acceptable.
## Why was this MR needed?
When you choose `Last updated` it should display the title `Last updated` instead of `Recently updated`. This fix makes this correctly displays the title.
## What are the relevant issue numbers?
Closes #20308.
## Screenshots (if relevant)
![filter-gitlab-ce](/uploads/52838679d134d57c6ff6120260806fda/filter-gitlab-ce.gif)
## Does this MR meet the acceptance criteria?
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [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 !5515
|
|
Before when you choose the way of `sort` instead it display the title correctly it was just apply the humanize helper in sort value.
E.g.
When you choose `Last updated` it should display the title `Last updated` instead of `Recently updated`. This fix makes this correctly displays the title.
Change the implementation of the `link_to` `filter_branches_path`
- Change the value of the `params[:sort]` in `link_to`. E.g. instead of using `'recently_updated'` is now using `sort_value_recently_updated`.
- Change the values of the case in the `branches_sorted_by` method for the values it receives in the `params[:sort]` that are: `nil`, `'name'`, `'updated_desc'`, `'updated_asc'`.
|
|
|
|
* upstream/master: (45 commits)
Replace reject_blocked with reject_blocked! in callbacks.
Fix Project#to_param to keep invalid project suitable for use in URLs
Update CHANGELOG
Add feature specs for edit project settings
Fix renaming repository when name contains invalid chars under settings
Change requests_profiles resource constraint to catch virtually any file
Allow skipping users in autocomplete
Fix typo in CHANGELOG
Update CHANGELOG
Respective cache is now expired when creating a new branch
Update CHANGELOG
Unify HTML format in static error pages
Make error pages responsive design
Move color-logic into HipchatService#HipchatService
Depened on exact version of SimpleCov when patched
Refactor spam validation to a concern that can be easily reused and improve legibility in `SpamCheckService`
Refactor `SpamCheckService` to make it cleaner and clearer.
Submit all issues on public projects to Akismet if enabled.
Submit new issues created via the WebUI by non project members to Akismet for spam check.
Upgrade Bullet from 5.0.0 to 5.2.0.
...
|
|
|
|
In a PostReceive task with 697 commits (8.9 RC1 -> RC8), looking up
the commit author takes about 10% of the time. Caching this information
in RequestStore saves a few seconds from the overall processing time.
Improves #18663
|
|
Submit new issues created via the WebUI or API to Akismet for spam check on public projects.
## What does this MR do?
Submit new issues created via the WebUI by non project members to Akismet for spam check.
## Why was this MR needed?
Support for Akismet was added only to the API with !2266. This MR builds on that functionality to also check issues submitted via the WebUI for spam.
## What are the relevant issue numbers?
Related to:
- #5573
- #5932
- gitlab-com/infrastructure#14
- gitlab-com/support#61
- !2266
cc @stanhu @MrChrisW
See merge request !5333
|
|
|
|
Resolve "HipChat notifications missing colors"
_Originally opened at !2322 by @eisnerd._
- - -
## What does this MR do?
This MR restores the colors mentioned in #5571 by overriding the color setting with green/red just for build events.
## What are the relevant issue numbers?
Closes #5571.
See merge request !5498
|
|
Project and branch cache is expired when project is still
empty or new branch is created. develops tests accordingly
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|
* upstream/master: (38 commits)
Remove useless new route
Update gitlab-shell version to 3.2.1 in the 8.9->8.10 update guide
Fix typo in Elixir CI template
Add a spec for access_for_user_ids
Fix typo in comment
Rubocop offenses
Optimize the invited group link access level check
Incorporate review comments
Optimize maximum user access level lookup in loading of notes
Fix missing schema update for 20160722221922
Whitelist 'Simplified BSD' license
Fix a bug where forking a project from a repository storage to another would fail
Remove inline scripts from import pages.
Make branches sortable without push permission (!5462)
Profile requests when a header is passed
Upgrade database_cleaner from 1.4.1 to 1.5.3.
Show release notes in tag list
Fix expand all diffs button in compare view
Add route for Import::GithubController#new
Update CHANGELOG
...
|
|
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|
legibility in `SpamCheckService`
|
|
|
|
|
|
|
|
NotesHelper#note_editable? and ProjectTeam#human_max_access currently
take about 16% of the load time of an issue page. This MR preloads
the maximum access level of users for all notes in issues and merge
requests with several queries instead of one per user and caches
the result in RequestStore.
|
|
fail
|
|
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|
|
|
|
|
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|
* upstream/master: (620 commits)
Added '*.js.es6 gitlab-language=javascript' to .gitattributes
Fix CI status icon link underline
Update CHANGELOG after 8.10.1
Add CHANGELOG
Add es6 gem
Instrument Nokogiri parsing methods
Fix backup restore
Use project ID in repository cache to prevent stale data from persisting across projects
Add iid to MR API response
`WikiPage` should have a slug even when not persisted.
ES6ify all the things!
Make fork counter always clickable (!5463)
Revert "Merge branch '17073-tagscontroller-index-is-terrible-response-time-goes-up-to-5-…"
Fix CHANGELOG
Add spec for dashes in paths
Fix Error 500 when creating Wiki pages with hyphens or spaces
Add links to the real markdown.md file for all GFM examples
Remove magic comments from Ruby files (!5456)
Ignore invalid trusted proxies in X-Forwarded-For header
remove search_id for label dropdown filter
...
|
|
Use project ID in repository cache to prevent stale data from persisting across projects
See merge request !5460
|
|
across projects
We have a number of bugs caused by cache keys not being flushed
properly during deletion of a project. Add the project ID to ensure
this never happens.
Closes #20027
|
|
Users can filter branches by name on project branches page
This MR aims to solve #18674 by adding the possibility to filter project branches by name
![Screen_Shot_2016-07-07_at_17.21.25](/uploads/b674765d2b1cb8a121c2101715a4568b/Screen_Shot_2016-07-07_at_17.21.25.png)
See merge request !5144
|
|
Fix Error 500 when creating Wiki pages with hyphens or spaces
- Closes gitlab-com/support-forum#874
- Closes #20209
See merge request !5444
|
|
1. So we can build the markdown preview URL for it.
2. We can't skip the slug in this case, because the slug is used to
construct relative markdown URLs.
3. Add rspec feature tests to cover creating wiki pages with
spaces/hyphens in the name.
4. Add rspec feature tests for markdown preview URL rewriting, which was
only covered by unit tests up to this point.
|
|
'17073-tagscontroller-index-is-terrible-response-time-goes-up-to-5-…"
This reverts merge request !5375
|
|
Fix bug where replies to commit notes displayed in the MR discussion tab wouldn'…
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/20157
See merge request !5446
|
|
wouldn't show up on the commit page
|
|
Helping to diagnose #20178
|
|
|
|
'master'
Load project invited groups and members eagerly in ProjectTeam#fetch_members
## What does this MR do?
Load project invited groups and members eagerly in `ProjectTeam#fetch_members`, reducing number of queries to DB.
## Are there points in the code the reviewer needs to double check?
N/A
## Why was this MR needed?
`ProjectTeam#fetch_members` is part of the code path of `Participable#raw_participants`, so it should improve its performance a bit.
## What are the relevant issue numbers?
#19985
## Screenshots (if relevant)
N/A
## 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)~~
- ~~[ ] API support added~~
- ~~Tests~~
- ~~[ ] Added for this feature/bug~~
- ~~[ ] 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 !5436
|
|
|
|
already
We were seeing a number of error messages when attempting to create a keep-around ref:
1. Failed to create locked file `refs/keep-around/XYZ`: File exists
2. Failed to write reference `refs/keep-around/XYZ`: a reference with that name already exists.
I'm not sure how these happen, but I suspect when multiple workers attempt to write the same
file we may have an issue. The force parameter should help ensure the file gets created,
as well as the rescues to prevent 500 Errors.
Rugged/libgit2 unfortunately do not allow you to delete or re-create a reference that has
been corrupted, even with the force parameter.
Closes #20109
|
|
Simpler two queries than one JOIN with subquery
This is a follow up from !5347
Originally it was:
``` ruby
pipeline = pipelines.latest_successful_for(ref)
builds.where(pipeline: pipeline).latest.with_artifacts
```
However MySQL would complain that we can't use `IN` against a subquery which has `LIMIT`. Using `INNER JOIN` would be a workaround, however, doing that is too complicated in current version of Rails.
So let's just use two queries in this case.
Closes #14419
See merge request !5388
|
|
|
|
'master'
Avoid data-integrity issue when cleaning up repository archive cache
## What does this MR do?
Sets the default value for `repository_downloads_path` if someone has it configured incorrectly, and it points to the path where repositories are stored. It's also replace invocation of `find` with Ruby code that matches old cached files in a better, and safe way to avoid data-integrity issues.
## Why was this MR needed?
The `repository_downloads_path` is used by the `RepositoryArchiveCacheWorker` to remove outdated repository archives, if it points to the wrong directory can cause some data-integrity issue.
## What are the relevant issue numbers?
Closes #14222
See merge request !5285
|