Refactor complex methods
Make flog part of CI check which is not allowed to fail. I used high score (70) and refactored most complex method. In future releases we should lower acceptable score to something like 40..50
Part of #3444
See merge request !1794
- Offloads uploading to GitLab Workhorse
- Use /authorize request for fast uploading
- Added backup recipes for artifacts
- Support download acceleration using X-Sendfile
Sherlock will be a new GitLab specific tool for measuring the
performance of Rails requests (and SideKiq jobs at some point). Some of
the things that are currently tracked:
* SQL queries along with their timings, backtraces and query plans
(using "EXPLAIN ANALYZE" for PostgreSQL and regular "EXPLAIN" for
MySQL)
* Timings of application files (including views) on a per line basis
* Some meta data such as the request method, path, total duration, etc
More tracking (e.g. Rugged or gitlab-shell timings) might be added in
the future.
Sherlock will replace any existing tools we have used so far (e.g.
active_record_query_trace and rack-mini-profiler), hence the
corresponding Gems have been removed from the Gemfile.
Sherlock can be enabled by starting Rails as following:
ENABLE_SHERLOCK=1 bundle exec rails s
Recorded transactions can be found at `/sherlock/transactions`.
* master: (23 commits)
Use single spaces
Improvements to profile page UI
Replace all usages of `git` command with configurable binary path
Update Shell Commands doc for configurable git binary path
Minor reformatting for Facebook integration doc
Use proper labels for OAuth providers
Add Facebook authentication
Bump stamp to ~> 0.6.0
Add extra padding between user description and links on profile page
Fix tests
Fix clipboard button overflow
Apply new design for user profile page
Improve profile page UI
Better name for up-level links
Fixed User sorting specs
Only sort by IDs by default
Added benchmark for User.all
Add changelog entry for contacted_at
Spread out runner contacted_at updates
Only redirect to homepage url when its not the root url
...
Add custom protocol whitelisting to SanitizationFilter
Addresses internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2613
We allow any protocol for autolinks: irc://irc.freenode.net/git
But manual Markdown links with the same protocol get sanitized: `[This will not be clickable](irc://irc.freenode.net/git)`: [This will not be clickable](irc://irc.freenode.net/git)
To get around this we have to first allow *all* protocols, and then manually clean dangerous (i.e., `javascript:`) protocols.
See merge request !1496
Simply type a name with a `/` directory separator and new directories
will be created. This does not do the fancy UI work that github.com
does, but it will get the job done.
I could not find tests for file creation, so I didn't add a test for
this slight behaviour modification. I did test directory traversals
though, using both absolute paths like `/tmp/foo.txt` and relative paths
like `../../foo.txt`. Neither case escaped the repository, though
attempting to traverse with a relative path resulted in a 500 error that
did not affect application stability upon reload.
Include the log messages of recent commits in project-level search
results, providing functionality similar to 'git log --grep'.
Update repository model rspec tests to validate the output of
Repository#commits_with_log_matching.
If a node is ignored there's no need for searching for a given pattern.
In turn, when searching for the pattern there's no need to construct a
MatchData object as we only care about presence (or lack thereof), not
the resulting matches.
In terms of performance this cuts down about 200 ms when loading
issue #2164 locally, though this varies a bit depending on system load.
Let gitlab-git-http-server handle archive downloads
This change relies on changes in gitlab_git and gitlab-git-http-server.
fixes#2429
See merge request !1548