Gemfile 9.52 KB
Newer Older
bogdanvlviv's avatar
bogdanvlviv committed
1
source 'https://rubygems.org'
gitlabhq's avatar
gitlabhq committed
2

Z.J. van de Weg's avatar
Z.J. van de Weg committed
3
gem 'rails', '4.2.8'
Valery Sizov's avatar
Valery Sizov committed
4
gem 'rails-deprecated_sanitizer', '~> 1.0.3'
Valery Sizov's avatar
Valery Sizov committed
5 6 7

# Responders respond_to and respond_with
gem 'responders', '~> 2.0'
8

ubudzisz's avatar
ubudzisz committed
9
gem 'sprockets', '~> 3.7.0'
10

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
11
# Default values for AR models
bogdanvlviv's avatar
bogdanvlviv committed
12
gem 'default_value_for', '~> 3.0.0'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
13

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
14
# Supported DBs
15
gem 'mysql2', '~> 0.4.5', group: :mysql
bogdanvlviv's avatar
bogdanvlviv committed
16
gem 'pg', '~> 0.18.2', group: :postgres
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
17

Alexis Reigel's avatar
Alexis Reigel committed
18
gem 'rugged', '~> 0.26.0'
19
gem 'grape-route-helpers', '~> 2.0.0'
20

21
gem 'faraday', '~> 0.12'
Douglas Barbosa Alexandre's avatar
Douglas Barbosa Alexandre committed
22

karen Carias's avatar
karen Carias committed
23
# Authentication libraries
Markus Koller's avatar
Markus Koller committed
24 25
gem 'devise', '~> 4.2'
gem 'doorkeeper', '~> 4.2.0'
26
gem 'doorkeeper-openid_connect', '~> 1.1.0'
Markus Koller's avatar
Markus Koller committed
27 28 29 30 31 32 33
gem 'omniauth', '~> 1.4.2'
gem 'omniauth-auth0', '~> 1.4.1'
gem 'omniauth-azure-oauth2', '~> 0.0.6'
gem 'omniauth-cas3', '~> 1.1.2'
gem 'omniauth-facebook', '~> 4.0.0'
gem 'omniauth-github', '~> 1.1.1'
gem 'omniauth-gitlab', '~> 1.0.2'
34
gem 'omniauth-google-oauth2', '~> 0.4.1'
Markus Koller's avatar
Markus Koller committed
35
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
36
gem 'omniauth-oauth2-generic', '~> 0.2.2'
Markus Koller's avatar
Markus Koller committed
37 38 39 40
gem 'omniauth-saml', '~> 1.7.0'
gem 'omniauth-shibboleth', '~> 1.2.0'
gem 'omniauth-twitter', '~> 1.2.0'
gem 'omniauth_crowd', '~> 2.2.0'
41
gem 'omniauth-authentiq', '~> 0.3.1'
Markus Koller's avatar
Markus Koller committed
42 43
gem 'rack-oauth2', '~> 1.2.1'
gem 'jwt', '~> 1.5.6'
Nick Thomas's avatar
Nick Thomas committed
44 45 46

# Kerberos authentication. EE-only
gem 'gssapi', group: :kerberos
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
47

48
# Spam and anti-bot protection
49
gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
50
gem 'akismet', '~> 2.0'
51

52
# Two-factor authentication
53
gem 'devise-two-factor', '~> 3.0.0'
54
gem 'rqrcode-rails3', '~> 0.1.7'
55
gem 'attr_encrypted', '~> 3.0.0'
56
gem 'u2f', '~> 0.2.1'
57

58
# GitLab Pages
59
gem 'validates_hostname', '~> 1.0.6'
60

61
# Browser detection
bogdanvlviv's avatar
bogdanvlviv committed
62
gem 'browser', '~> 2.2'
63

Kevin O'Connor's avatar
Kevin O'Connor committed
64 65 66
# GPG
gem 'gpgme'

67
# LDAP Auth
Yorick Peterse's avatar
Yorick Peterse committed
68
# GitLab fork with several improvements to original library. For full list of changes
69
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
70
gem 'gitlab_omniauth-ldap', '~> 2.0.3', require: 'omniauth-ldap'
71
gem 'net-ldap'
72

73
# Git Wiki
74
# Required manually in config/initializers/gollum.rb to control load order
75
gem 'gollum-lib', '~> 4.2', require: false
Elan Ruusamäe's avatar
Elan Ruusamäe committed
76
gem 'gollum-rugged_adapter', '~> 0.4.4', require: false
77

78
# Language detection
bogdanvlviv's avatar
bogdanvlviv committed
79
gem 'github-linguist', '~> 4.7.0', require: 'linguist'
80

randx's avatar
randx committed
81
# API
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
82
gem 'grape', '~> 0.19.2'
83
gem 'grape-entity', '~> 0.6.0'
Markus Koller's avatar
Markus Koller committed
84
gem 'rack-cors', '~> 0.4.0', require: 'rack/cors'
randx's avatar
randx committed
85

86 87 88
# Disable strong_params so that Mash does not respond to :permitted?
gem 'hashie-forbidden_attributes'

randx's avatar
randx committed
89
# Pagination
bogdanvlviv's avatar
bogdanvlviv committed
90
gem 'kaminari', '~> 0.17.0'
randx's avatar
randx committed
91 92

# HAML
Robert Speicher's avatar
Robert Speicher committed
93
gem 'hamlit', '~> 2.6.1'
randx's avatar
randx committed
94 95

# Files attachments
96
gem 'carrierwave', '~> 1.1'
97

98
# Drag and Drop UI
99
gem 'dropzonejs-rails', '~> 0.7.1'
100

101
# for backups
102
gem 'fog-aws', '~> 1.4'
103
gem 'fog-core', '~> 1.44'
104
gem 'fog-google', '~> 0.5'
105 106
gem 'fog-local', '~> 0.3'
gem 'fog-openstack', '~> 0.1'
107
gem 'fog-rackspace', '~> 0.1.1'
108
gem 'fog-aliyun', '~> 0.1.0'
109

110 111 112
# for Google storage
gem 'google-api-client', '~> 0.8.6'

113
# for aws storage
bogdanvlviv's avatar
bogdanvlviv committed
114
gem 'unf', '~> 0.1.4'
randx's avatar
randx committed
115 116

# Seed data
bogdanvlviv's avatar
bogdanvlviv committed
117
gem 'seed-fu', '~> 2.3.5'
randx's avatar
randx committed
118

119
# Search
Valery Sizov's avatar
Valery Sizov committed
120 121
gem 'elasticsearch-model', '~> 0.1.9'
gem 'elasticsearch-rails', '~> 0.1.9'
122
gem 'elasticsearch-api',   '5.0.3'
123 124
gem 'aws-sdk'
gem 'faraday_middleware-aws-signers-v4'
125

Robert Speicher's avatar
Robert Speicher committed
126
# Markdown and HTML processing
Markus Koller's avatar
Markus Koller committed
127
gem 'html-pipeline', '~> 1.11.0'
Jared Deckard's avatar
Jared Deckard committed
128
gem 'deckar01-task_list', '2.0.0'
Markus Koller's avatar
Markus Koller committed
129 130 131 132 133 134 135 136
gem 'gitlab-markup', '~> 1.5.1'
gem 'redcarpet', '~> 3.4'
gem 'RedCloth', '~> 4.3.2'
gem 'rdoc', '~> 4.2'
gem 'org-ruby', '~> 0.9.12'
gem 'creole', '~> 0.5.0'
gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 1.5.2'
137
gem 'asciidoctor-plantuml', '0.0.7'
Markus Koller's avatar
Markus Koller committed
138 139
gem 'rouge', '~> 2.0'
gem 'truncato', '~> 0.7.8'
Nick Thomas's avatar
Nick Thomas committed
140
gem 'bootstrap_form', '~> 2.7.0'
randx's avatar
randx committed
141

142
# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s
143
# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM
144
gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2'
145

skv-headless's avatar
skv-headless committed
146
# Diffs
Manuel Rüger's avatar
Manuel Rüger committed
147
gem 'diffy', '~> 3.1.0'
skv-headless's avatar
skv-headless committed
148

149
# Application server
150
group :unicorn do
151 152
  gem 'unicorn', '~> 5.1.0'
  gem 'unicorn-worker-killer', '~> 0.4.4'
153
end
randx's avatar
randx committed
154

Andrew8xx8's avatar
Andrew8xx8 committed
155
# State machine
bogdanvlviv's avatar
bogdanvlviv committed
156
gem 'state_machines-activerecord', '~> 0.4.0'
157
# Run events after state machine commits
bogdanvlviv's avatar
bogdanvlviv committed
158
gem 'after_commit_queue', '~> 1.3.0'
Andrew8xx8's avatar
Andrew8xx8 committed
159

randx's avatar
randx committed
160
# Issue tags
161
gem 'acts-as-taggable-on', '~> 4.0'
randx's avatar
randx committed
162 163

# Background jobs
Douwe Maan's avatar
Douwe Maan committed
164
gem 'sidekiq', '~> 5.0'
165
gem 'sidekiq-cron', '~> 0.6.0'
bogdanvlviv's avatar
bogdanvlviv committed
166
gem 'redis-namespace', '~> 1.5.2'
167
gem 'sidekiq-limit_fetch', '~> 3.4'
randx's avatar
randx committed
168

Shinya Maeda's avatar
Shinya Maeda committed
169
# Cron Parser
170
gem 'rufus-scheduler', '~> 3.4'
Shinya Maeda's avatar
Shinya Maeda committed
171

randx's avatar
randx committed
172
# HTTP requests
bogdanvlviv's avatar
bogdanvlviv committed
173
gem 'httparty', '~> 0.13.3'
randx's avatar
randx committed
174 175

# Colored output to console
176
gem 'rainbow', '~> 2.2'
randx's avatar
randx committed
177

Riyad Preukschas's avatar
Riyad Preukschas committed
178
# GitLab settings
179
gem 'settingslogic', '~> 2.0.9'
Aleksei Kvitinskii's avatar
Aleksei Kvitinskii committed
180

181
# Linear-time regex library for untrusted regular expressions
182
gem 're2', '~> 1.1.1'
183

randx's avatar
randx committed
184
# Misc
185

186
gem 'version_sorter', '~> 2.1.0'
randx's avatar
randx committed
187

188
# Cache
189
gem 'redis-rails', '~> 5.0.1'
190

191 192 193 194
# Redis
gem 'redis', '~> 3.2'
gem 'connection_pool', '~> 2.0'

195
# HipChat integration
Chulki Lee's avatar
Chulki Lee committed
196
gem 'hipchat', '~> 1.5.0'
197

198
# JIRA integration
Felipe Artur's avatar
Felipe Artur committed
199
gem 'jira-ruby', '~> 1.1.2'
200

201
# Flowdock integration
bogdanvlviv's avatar
bogdanvlviv committed
202
gem 'gitlab-flowdock-git-hook', '~> 1.0.1'
203

204
# Gemnasium integration
bogdanvlviv's avatar
bogdanvlviv committed
205
gem 'gemnasium-gitlab-service', '~> 0.2'
206

207
# Slack integration
208
gem 'slack-notifier', '~> 1.5.1'
209

Jeremy's avatar
Jeremy committed
210
# Asana integration
Douglas Barbosa Alexandre's avatar
Douglas Barbosa Alexandre committed
211
gem 'asana', '~> 0.6.0'
Jeremy's avatar
Jeremy committed
212

Jared Szechy's avatar
Jared Szechy committed
213
# FogBugz integration
Jared Szechy's avatar
Jared Szechy committed
214
gem 'ruby-fogbugz', '~> 0.2.1'
Jared Szechy's avatar
Jared Szechy committed
215

216 217 218
# Kubernetes integration
gem 'kubeclient', '~> 2.2.0'

219
# d3
Robert Speicher's avatar
Robert Speicher committed
220
gem 'd3_rails', '~> 3.5.0'
221 222

# underscore-rails
bogdanvlviv's avatar
bogdanvlviv committed
223
gem 'underscore-rails', '~> 1.8.0'
224

225
# Sanitize user input
bogdanvlviv's avatar
bogdanvlviv committed
226
gem 'sanitize', '~> 2.0'
227
gem 'babosa', '~> 1.0.2'
228

Stan Hu's avatar
Stan Hu committed
229
# Sanitizes SVG input
bogdanvlviv's avatar
bogdanvlviv committed
230
gem 'loofah', '~> 2.0.3'
Stan Hu's avatar
Stan Hu committed
231

232
# Working with license
233
gem 'licensee', '~> 8.7.0'
234

Marin Jankovski's avatar
Marin Jankovski committed
235
# Protect against bruteforcing
236
gem 'rack-attack', '~> 4.4.1'
Marin Jankovski's avatar
Marin Jankovski committed
237

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
238
# Ace editor
239
gem 'ace-rails-ap', '~> 4.1.0'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
240

241
# Keyboard shortcuts
242
gem 'mousetrap-rails', '~> 1.4.6'
243

244
# Detect and convert string character encoding
245
gem 'charlock_holmes', '~> 0.7.3'
246

247 248 249
# Faster JSON
gem 'oj', '~> 2.17.4'

250 251
# Parse time & duration
gem 'chronic', '~> 0.10.2'
252 253
gem 'chronic_duration', '~> 0.10.6'

254
gem 'webpack-rails', '~> 0.9.10'
255 256
gem 'rack-proxy', '~> 0.6.0'

257
gem 'sass-rails', '~> 5.0.6'
bogdanvlviv's avatar
bogdanvlviv committed
258
gem 'uglifier', '~> 2.7.2'
259

Markus Koller's avatar
Markus Koller committed
260 261
gem 'addressable', '~> 2.3.8'
gem 'bootstrap-sass', '~> 3.3.0'
262
gem 'font-awesome-rails', '~> 4.7'
Markus Koller's avatar
Markus Koller committed
263 264
gem 'gemojione', '~> 3.0'
gem 'gon', '~> 6.1.0'
265
gem 'jquery-atwho-rails', '~> 1.3.2'
Markus Koller's avatar
Markus Koller committed
266 267 268 269 270
gem 'jquery-rails', '~> 4.1.0'
gem 'request_store', '~> 1.3'
gem 'select2-rails', '~> 3.5.9'
gem 'virtus', '~> 1.0.1'
gem 'base32', '~> 0.3.0'
Nick Thomas's avatar
Nick Thomas committed
271 272

gem "gitlab-license", "~> 1.0"
gitlabhq's avatar
gitlabhq committed
273

274
# Sentry integration
275
gem 'sentry-raven', '~> 2.5.3'
276

277
gem 'premailer-rails', '~> 1.9.7'
278

Ruben Davila's avatar
Ruben Davila committed
279
# I18n
280
gem 'ruby_parser', '~> 3.8', require: false
281
gem 'rails-i18n', '~> 4.0.9'
Ruben Davila's avatar
Ruben Davila committed
282
gem 'gettext_i18n_rails', '~> 1.8.0'
283
gem 'gettext_i18n_rails_js', '~> 1.2.0'
Ruben Davila's avatar
Ruben Davila committed
284 285
gem 'gettext', '~> 3.2.2', require: false, group: :development

286 287 288 289 290
# Perf bar
gem 'peek', '~> 1.0.1'
gem 'peek-gc', '~> 0.0.2'
gem 'peek-host', '~> 1.0.0'
gem 'peek-mysql2', '~> 1.1.0', group: :mysql
291
gem 'peek-performance_bar', '~> 1.3.0'
292 293 294 295 296
gem 'peek-pg', '~> 1.3.0', group: :postgres
gem 'peek-rblineprof', '~> 0.2.0'
gem 'peek-redis', '~> 1.2.0'
gem 'peek-sidekiq', '~> 1.0.3'

297 298
# Metrics
group :metrics do
299
  gem 'allocations', '~> 1.0', require: false, platform: :mri
300
  gem 'method_source', '~> 0.8', require: false
301
  gem 'influxdb', '~> 0.2', require: false
302

303
  # Prometheus
304
  gem 'prometheus-client-mmap', '~>0.7.0.beta11'
305
  gem 'raindrops', '~> 0.18'
306 307
end

Nihad Abbasov's avatar
Nihad Abbasov committed
308
group :development do
bogdanvlviv's avatar
bogdanvlviv committed
309
  gem 'foreman', '~> 0.78.0'
310
  gem 'brakeman', '~> 3.6.0', require: false
311

Robert Speicher's avatar
Robert Speicher committed
312
  gem 'letter_opener_web', '~> 1.3.0'
bogdanvlviv's avatar
bogdanvlviv committed
313
  gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
314

315
  # Better errors handler
316
  gem 'better_errors', '~> 2.1.0'
317
  gem 'binding_of_caller', '~> 0.7.2'
318

319
  # thin instead webrick
320
  gem 'thin', '~> 1.7.0'
gitlabhq's avatar
gitlabhq committed
321 322 323
end

group :development, :test do
324
  gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
Semyon Pupkov's avatar
Semyon Pupkov committed
325
  gem 'pry-byebug', '~> 3.4.1', platform: :mri
bogdanvlviv's avatar
bogdanvlviv committed
326
  gem 'pry-rails', '~> 0.3.4'
Robert Speicher's avatar
Robert Speicher committed
327

328
  gem 'awesome_print', '~> 1.2.0', require: false
Robert Speicher's avatar
Robert Speicher committed
329
  gem 'fuubar', '~> 2.2.0'
330

Markus Koller's avatar
Markus Koller committed
331
  gem 'database_cleaner', '~> 1.5.0'
332
  gem 'factory_girl_rails', '~> 4.7.0'
Robert Speicher's avatar
Robert Speicher committed
333
  gem 'rspec-rails', '~> 3.6.0'
Markus Koller's avatar
Markus Koller committed
334 335
  gem 'rspec-retry', '~> 0.4.5'
  gem 'spinach-rails', '~> 0.2.1'
Kamil Trzcinski's avatar
Kamil Trzcinski committed
336
  gem 'spinach-rerun-reporter', '~> 0.0.2'
Markus Koller's avatar
Markus Koller committed
337
  gem 'rspec_profiling', '~> 0.0.5'
338
  gem 'rspec-set', '~> 0.1.3'
randx's avatar
randx committed
339

340
  # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
341
  gem 'minitest', '~> 5.7.0'
342

343
  # Generate Fake data
344
  gem 'ffaker', '~> 2.4'
345

Markus Koller's avatar
Markus Koller committed
346
  gem 'capybara', '~> 2.6.2'
Robert Speicher's avatar
Robert Speicher committed
347
  gem 'capybara-screenshot', '~> 1.0.0'
Markus Koller's avatar
Markus Koller committed
348
  gem 'poltergeist', '~> 1.9.0'
Andrew8xx8's avatar
Andrew8xx8 committed
349

350
  gem 'spring', '~> 2.0.0'
Markus Koller's avatar
Markus Koller committed
351 352
  gem 'spring-commands-rspec', '~> 1.0.4'
  gem 'spring-commands-spinach', '~> 1.1.0'
353

354 355
  gem 'rubocop', '~> 0.49.1', require: false
  gem 'rubocop-rspec', '~> 1.15.1', require: false
Takuya Noguchi's avatar
Takuya Noguchi committed
356
  gem 'scss_lint', '~> 0.54.0', require: false
357
  gem 'haml_lint', '~> 0.21.0', require: false
358
  gem 'simplecov', '~> 0.14.0', require: false
Robert Speicher's avatar
Robert Speicher committed
359
  gem 'flay', '~> 2.8.0', require: false
bogdanvlviv's avatar
bogdanvlviv committed
360
  gem 'bundler-audit', '~> 0.5.0', require: false
361

bogdanvlviv's avatar
bogdanvlviv committed
362
  gem 'benchmark-ips', '~> 2.3.0', require: false
Connor Shea's avatar
Connor Shea committed
363

bogdanvlviv's avatar
bogdanvlviv committed
364
  gem 'license_finder', '~> 2.1.0', require: false
365
  gem 'knapsack', '~> 1.11.0'
366 367

  gem 'activerecord_sane_schema_dumper', '0.2'
368 369

  gem 'stackprof', '~> 0.2.10'
gitlabhq's avatar
gitlabhq committed
370 371 372
end

group :test do
373
  gem 'shoulda-matchers', '~> 3.1.2', require: false
Robert Speicher's avatar
Robert Speicher committed
374
  gem 'email_spec', '~> 1.6.0'
375
  gem 'json-schema', '~> 2.6.2'
376
  gem 'webmock', '~> 2.3.2'
377
  gem 'test_after_commit', '~> 1.1'
bogdanvlviv's avatar
bogdanvlviv committed
378
  gem 'sham_rack', '~> 1.3.6'
379
  gem 'timecop', '~> 0.8.0'
380
  gem 'concurrent-ruby', '~> 1.0.5'
gitlabhq's avatar
gitlabhq committed
381
end
382

Manuel Rüger's avatar
Manuel Rüger committed
383
gem 'octokit', '~> 4.6.2'
Douwe Maan's avatar
Douwe Maan committed
384

385
gem 'mail_room', '~> 0.9.1'
Douwe Maan's avatar
Douwe Maan committed
386

387
gem 'email_reply_trimmer', '~> 0.1'
388
gem 'html2text'
389

Elan Ruusamäe's avatar
Elan Ruusamäe committed
390
gem 'ruby-prof', '~> 0.16.2'
391

392
# OAuth
393
gem 'oauth2', '~> 1.4'
Douwe Maan's avatar
Douwe Maan committed
394

395
# Soft deletion
396
gem 'paranoia', '~> 2.3.1'
397 398

# Health check
399
gem 'health_check', '~> 2.6.0'
400 401

# System information
Chris Wilson's avatar
Chris Wilson committed
402
gem 'vmstat', '~> 2.3.0'
403
gem 'sys-filesystem', '~> 1.1.6'
404

405 406 407
# NTP client
gem 'net-ntp'

408
# Gitaly GRPC client
409
gem 'gitaly', '~> 0.24.0'
410 411

gem 'toml-rb', '~> 0.3.15', require: false
412 413 414 415

# Feature toggles
gem 'flipper', '~> 0.10.2'
gem 'flipper-active_record', '~> 0.10.2'
416 417 418

# Structured logging
gem 'lograge', '~> 0.5'