Files
growstuff/script/check_contributors_md.rb
Daniel O'Connor 81060cccf7 Ruby 3.2: Rubocop - Lint/* and Style/* (#3786)
* Rubocop - Layout/*
* Rubocop - Lint and Style
2024-07-13 15:38:37 +09:30

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