diff --git a/.flayignore b/.flayignore
new file mode 100644
index 0000000000000000000000000000000000000000..9c9875d4f9ef387c191ce57d128a7c2af1abd8b3
--- /dev/null
+++ b/.flayignore
@@ -0,0 +1 @@
+*.erb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 062fda322a621007d4da529253ccc7a43f4a218c..128faa07db8420421daa85e3b3bf31c55998393c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -81,3 +81,11 @@ flog:
     - ruby
     - mysql
   allow_failure: true
+
+flay:
+  script:
+    - bundle exec rake flay
+  tags:
+    - ruby
+    - mysql
+  allow_failure: true
diff --git a/Gemfile b/Gemfile
index 91a93215336b4765d550f2c7634850cf80e2bae5..67aef0c3a8dd4286586d2b8f34ce53221df16325 100644
--- a/Gemfile
+++ b/Gemfile
@@ -260,6 +260,7 @@ group :development, :test do
   gem 'coveralls',  '~> 0.8.2', require: false
   gem 'simplecov', '~> 0.10.0', require: false
   gem 'flog', require: false
+  gem 'flay', require: false
 
   gem 'benchmark-ips', require: false
 end
diff --git a/Gemfile.lock b/Gemfile.lock
index 0fc22829cfd091dfdd8726d56771483e542c10e3..5f95637966e3a2e34d288a61137fac269a53e01e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -194,6 +194,9 @@ GEM
     ffi (1.9.10)
     fission (0.5.0)
       CFPropertyList (~> 2.2)
+    flay (2.6.1)
+      ruby_parser (~> 3.0)
+      sexp_processor (~> 4.0)
     flog (4.3.2)
       ruby_parser (~> 3.1, > 3.1.0)
       sexp_processor (~> 4.4)
@@ -824,6 +827,7 @@ DEPENDENCIES
   enumerize (~> 0.7.0)
   factory_girl_rails (~> 4.3.0)
   ffaker (~> 2.0.0)
+  flay
   flog
   fog (~> 1.25.0)
   font-awesome-rails (~> 4.2)
diff --git a/lib/tasks/flay.rake b/lib/tasks/flay.rake
new file mode 100644
index 0000000000000000000000000000000000000000..5efffc2cdaccf13598c347a955e7ac4c84f1c371
--- /dev/null
+++ b/lib/tasks/flay.rake
@@ -0,0 +1,9 @@
+desc 'Code duplication analyze via flay'
+task :flay do
+  output = %x(bundle exec flay app/ lib/gitlab/)
+
+  if output.include? "Similar code found"
+    puts output
+    exit 1
+  end
+end