Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

DEV: Update capitalization of badge names and descriptions #69

Merged
merged 8 commits into from
Oct 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 46 additions & 39 deletions app/lib/github_badges.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
module DiscourseGithubPlugin
module GithubBadges
BADGE_NAME_BRONZE ||= 'Contributor'
BADGE_NAME_SILVER ||= 'Great contributor'
BADGE_NAME_GOLD ||= 'Amazing contributor'
BADGE_NAME_SILVER ||= 'Great Contributor'
BADGE_NAME_GOLD ||= 'Amazing Contributor'

COMMITER_BADGE_NAME_BRONZE ||= 'Committer'
COMMITER_BADGE_NAME_SILVER ||= 'Frequent committer'
COMMITER_BADGE_NAME_GOLD ||= 'Amazing committer'
COMMITTER_BADGE_NAME_BRONZE ||= 'Committer'
COMMITTER_BADGE_NAME_SILVER ||= 'Frequent Committer'
COMMITTER_BADGE_NAME_GOLD ||= 'Amazing Committer'

class Granter
def initialize(emails)
Expand Down Expand Up @@ -104,48 +104,55 @@ def self.grant_contributor_badges!
granter.grant!
end

def self.contributor_badges
unless bronze = Badge.find_by(name: BADGE_NAME_BRONZE)
bronze = Badge.create!(name: BADGE_NAME_BRONZE,
description: 'contributed an accepted pull request',
badge_type_id: 3)
end
def self.ensure_badge(name, attrs)
badge = Badge.find_by("name ILIKE ?", name)

unless silver = Badge.find_by(name: BADGE_NAME_SILVER)
silver = Badge.create!(name: BADGE_NAME_SILVER,
description: 'contributed 25 accepted pull requests',
badge_type_id: 2)
# Check for letter-case differences
if badge && badge.name != name
badge.update!(name: name)
end

unless gold = Badge.find_by(name: BADGE_NAME_GOLD)
gold = Badge.create!(name: BADGE_NAME_GOLD,
description: 'contributed 250 accepted pull requests',
badge_type_id: 1)
end
badge || Badge.create!(name: name, **attrs)
end

def self.contributor_badges
bronze = ensure_badge(BADGE_NAME_BRONZE,
description: 'Contributed an accepted pull request',
badge_type_id: 3
)

silver = ensure_badge(BADGE_NAME_SILVER,
description: 'Contributed 25 accepted pull requests',
badge_type_id: 2
)

gold = ensure_badge(BADGE_NAME_GOLD,
description: 'Contributed 250 accepted pull requests',
badge_type_id: 1
)

[bronze, silver, gold]
end

def self.committer_badges
unless bronze = Badge.find_by(name: COMMITER_BADGE_NAME_BRONZE)
bronze = Badge.create!(name: COMMITER_BADGE_NAME_BRONZE,
description: 'created a commit',
enabled: false,
badge_type_id: 3)
end
bronze = ensure_badge(COMMITTER_BADGE_NAME_BRONZE,
description: 'Created a commit',
enabled: false,
badge_type_id: 3
)

silver = ensure_badge(COMMITTER_BADGE_NAME_SILVER,
description: 'Created 25 commits',
enabled: false,
badge_type_id: 2
)

gold = ensure_badge(COMMITTER_BADGE_NAME_GOLD,
description: 'Created 1000 commits',
enabled: false,
badge_type_id: 1
)

unless silver = Badge.find_by(name: COMMITER_BADGE_NAME_SILVER)
silver = Badge.create!(name: COMMITER_BADGE_NAME_SILVER,
description: 'created 25 commits',
enabled: false,
badge_type_id: 2)
end

unless gold = Badge.find_by(name: COMMITER_BADGE_NAME_GOLD)
gold = Badge.create!(name: COMMITER_BADGE_NAME_GOLD,
description: 'created 1000 commits',
enabled: false,
badge_type_id: 1)
end
[bronze, silver, gold]
end
end
Expand Down
21 changes: 14 additions & 7 deletions spec/lib/github_badges_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,12 @@
end

it 'granted correctly' do
# inital run to seed badges and then enable them
# initial run to seed badges and then enable them
DiscourseGithubPlugin::GithubBadges.grant!

contributor_bronze = DiscourseGithubPlugin::GithubBadges::BADGE_NAME_BRONZE
committer_bronze = DiscourseGithubPlugin::GithubBadges::COMMITER_BADGE_NAME_BRONZE
committer_silver = DiscourseGithubPlugin::GithubBadges::COMMITER_BADGE_NAME_SILVER
committer_bronze = DiscourseGithubPlugin::GithubBadges::COMMITTER_BADGE_NAME_BRONZE
committer_silver = DiscourseGithubPlugin::GithubBadges::COMMITTER_BADGE_NAME_SILVER

users = [
bronze_user,
Expand Down Expand Up @@ -128,15 +128,22 @@

it 'does not update user title if badge is not allowed to be used as a title' do
DiscourseGithubPlugin::GithubBadges.grant!
silver_comitter_badge = Badge.find_by(name: DiscourseGithubPlugin::GithubBadges::COMMITER_BADGE_NAME_SILVER)
silver_committer_badge = Badge.find_by(name: DiscourseGithubPlugin::GithubBadges::COMMITTER_BADGE_NAME_SILVER)

silver_comitter_badge.update!(enabled: true)
silver_committer_badge.update!(enabled: true)
DiscourseGithubPlugin::GithubBadges.grant!
expect(silver_user.reload.title).to eq(nil)

silver_comitter_badge.update!(allow_title: true)
silver_committer_badge.update!(allow_title: true)
DiscourseGithubPlugin::GithubBadges.grant!
expect(silver_user.reload.title).to eq(silver_comitter_badge.name)
expect(silver_user.reload.title).to eq(silver_committer_badge.name)
end

it 'updates existing badges' do
badge = Badge.create!(name: 'Great contributor', badge_type_id: 2)
DiscourseGithubPlugin::GithubBadges.contributor_badges

expect(badge.reload.name).to eq('Great Contributor')
end
end
end