Fix timing problems running imports on production
Fixes https://gitlab.com/gitlab-com/infrastructure/issues/151
I've found out that in staging, the imported file is not copied fully by the time sidekiq runs the job, this should hopefully fix it. (Tested against staging).
See merge request !5523
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 #17478Closes#17372
See merge request !5014
Move CI job config entries from legacy to new config
## What does this MR do?
This MR extracts jobs configuration logic from legacy CI config processor to the new code.
## What are the relevant issue numbers?
#15060
## Does this MR meet the acceptance criteria?
- 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)
See merge request !5087
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.
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
This reduces the overhead of the method instrumentation code primarily
by reducing the number of method calls. There are also some other small
optimisations such as not casting timing values to Floats (there's no
particular need for this), using Symbols for method call metric names,
and reducing the number of Hash lookups for instrumented methods.
The exact impact depends on the code being executed. For example, for a
method that's only called once the difference won't be very noticeable.
However, for methods that are called many times the difference can be
more significant.
For example, the loading time of a large commit
(nrclark/dummy_project@81ebdea5df)
was reduced from around 19 seconds to around 15 seconds using these
changes.
* 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.
...
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
* 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
...
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.
* 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
...
* master: (183 commits)
Add a spec for #20079.
Skip repository storage path valitaions on test environment
Use Pathname to make the repository storage path validations more robust
Update to gitlab_git 10.4.1 and take advantage of preserved Ref objects
Change nav link snippet controller
Reduce min width of pipeline table
Retrieve rendered HTML from cache in one request
Explain CI_PROJECT_NAMESPACE better
Bump vmstat version to fix issues reporting on FreeBSD
Fix sha icon positioning on safari
Don't drop in DropAndReaddHasExternalWikiInProjects
Mobile view for commit status
Fix ci icons getting cut off
Update CHANGELOG
Extract helper methods to clean up RepositoryArchiveCleanUpService spec
Use Dir.mktmpdir instead of FileUtils.mkdir_p in the spec
Fix firefox rendering of SVGs
Fix icons on commits page and builds page
Add new fork SVG to fix weird styling of other SVGs
Bug fixes
...
Added the ability to block sign ups using a domain blacklist.
As part of this MR, I restructured the Application Settings form to separate **Sign up** related settings from **Sign in** related settings and make everything cleaner and easier to read.
Fixes#19749
Related to #5573
See merge request !5259
Added checks for migration downtime
This adds a set of checks that check/list which migrations require downtime (or not). It also comes with a CI task that fails should a migration not be tagged properly.
Fixes#14545
See merge request !4911