Commit db00a9c6 authored by gfyoung's avatar gfyoung

Add Dangerfile for frozen_string_literal

Checks that new Ruby files will enable
frozen string literal.

Partially addresses #47424.
parent d4e9cd9d
...@@ -447,9 +447,8 @@ danger-review: ...@@ -447,9 +447,8 @@ danger-review:
- retry gem install danger --no-ri --no-rdoc - retry gem install danger --no-ri --no-rdoc
cache: {} cache: {}
only: only:
refs: variables:
- branches@gitlab-org/gitlab-ce - $DANGER_GITLAB_API_TOKEN
- branches@gitlab-org/gitlab-ee
except: except:
refs: refs:
- master - master
......
...@@ -4,3 +4,4 @@ danger.import_dangerfile(path: 'danger/changelog') ...@@ -4,3 +4,4 @@ danger.import_dangerfile(path: 'danger/changelog')
danger.import_dangerfile(path: 'danger/specs') danger.import_dangerfile(path: 'danger/specs')
danger.import_dangerfile(path: 'danger/gemfile') danger.import_dangerfile(path: 'danger/gemfile')
danger.import_dangerfile(path: 'danger/database') danger.import_dangerfile(path: 'danger/database')
danger.import_dangerfile(path: 'danger/frozen_string')
---
title: Add Dangerfile for frozen_string_literal
merge_request: 20767
author: gfyoung
type: performance
# frozen_string_literal: true
FILE_EXTENSION = ".rb"
MAGIC_COMMENT = "# frozen_string_literal: true"
def get_files_with_no_magic_comment(files)
files.select do |file|
file.end_with?(FILE_EXTENSION) &&
!File.open(file, &:gets).start_with?(MAGIC_COMMENT)
end
end
files_to_check = git.added_files
files_to_fix = get_files_with_no_magic_comment(files_to_check)
if files_to_fix.any?
warn 'This merge request adds files that do not enforce frozen string literal. ' \
'See https://gitlab.com/gitlab-org/gitlab-ce/issues/47424 for more information.'
markdown(<<~MARKDOWN)
## Enable Frozen String Literal
The following files should have `#{MAGIC_COMMENT}` in the first line:
* #{files_to_fix.map { |path| "`#{path}`" }.join("\n* ")}
MARKDOWN
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment