Skip to content

Commit e907bb4

Browse files
committed
Add task to update user info
1 parent 88bd051 commit e907bb4

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

lib/tasks/update_account_info.rake

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
require "#{Rails.root}/config/environment"
2+
3+
desc 'Update account info with github.com'
4+
task :update_account_info do
5+
User.all.each do |user|
6+
puts "Fetch user info about \033[36m%s\033[39m..." % user.username
7+
begin
8+
user_info = user.github_client.user
9+
rescue => e
10+
# TODO Notify error to admin
11+
$stderr.puts ["#{e.class} #{e.message}:", *e.backtrace.map {|m| ' '+m }].join("\n")
12+
next
13+
end
14+
15+
{
16+
username: user_info['login'],
17+
name: user_info['name'],
18+
avatar_url: user_info['avatar_url']
19+
}.each {|attribute, value| user.send("#{attribute}=", value) }
20+
21+
if user.changed?
22+
change_detail = user.changes.map {|attribute, (before, after)| '%s: %s -> %s' % [attribute, before, after] }.join(', ')
23+
puts "User \033[36m%s\033[39m changed (%s)." % [user.username, change_detail]
24+
else
25+
puts "User \033[36m%s\033[39m not changed." % [user.username]
26+
end
27+
28+
user.save!
29+
end
30+
end

0 commit comments

Comments
 (0)