mirror of
https://github.com/Growstuff/growstuff.git
synced 2025-12-24 01:57:46 -05:00
48 lines
1.3 KiB
Ruby
Executable File
48 lines
1.3 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
# frozen_string_literal: true
|
|
|
|
require "English"
|
|
|
|
if ENV['CI']
|
|
if ENV['GITHUB_EVENT_NAME'] == 'pull_request'
|
|
author = ENV.fetch('GITHUB_ACTOR', nil)
|
|
exit 1 unless author
|
|
|
|
elsif ENV['TRAVIS_PULL_REQUEST']
|
|
require 'httparty'
|
|
repo = ENV.fetch('TRAVIS_REPO_SLUG', nil)
|
|
pr = ENV['TRAVIS_PULL_REQUEST']
|
|
url = "https://api.github.com/repos/#{repo}/pulls/#{pr}"
|
|
response = HTTParty.get(url).parsed_response
|
|
author = response['user']['login'] if response && response['user']
|
|
|
|
# Could not determine author
|
|
exit 1 unless author
|
|
else
|
|
# We're in a Travis branch build; nothing to check
|
|
exit
|
|
end
|
|
else
|
|
author = `git config github.user`.chomp
|
|
if $CHILD_STATUS.exitstatus.positive?
|
|
abort %(
|
|
Couldn't determine your GitHub username, and not in a Travis PR build
|
|
Please set it using
|
|
git config --add github.user [username]
|
|
)
|
|
end
|
|
end
|
|
|
|
# Escape chars in name, and make case insensitive
|
|
author_to_search_for = Regexp.new(Regexp.escape(author), Regexp::IGNORECASE)
|
|
|
|
puts("Checking for #{author} in CONTRIBUTORS.md")
|
|
|
|
unless File.read('CONTRIBUTORS.md').match?(author_to_search_for)
|
|
abort %(
|
|
Thanks for your contribution, #{author}!
|
|
Please add your name and GitHub handle to the file CONTRIBUTORS.md,
|
|
commit it, and update your PR.
|
|
)
|
|
end
|