# API client used to get github data.
var api: GithubAPI
+ # Gen a fake id for events
+ fun gen_event_id: String do return get_time.to_s
+
# Issues
# Generate a new IssuesEvent from an issue.
- fun issues_event(action: String, issue: Issue): IssuesEvent do
- var e = new IssuesEvent(api)
- e.action = action
- e.repo = issue.repo
- e.issue = issue
- return e
+ fun issues_event(repo: Repo, action: String, issue: Issue): IssuesEvent do
+ return new IssuesEvent(gen_event_id, action, repo, issue)
end
# Generate a new IssuesEvent with an `opened` action.
- fun issue_open(issue: Issue): IssuesEvent do return issues_event("opened", issue)
+ fun issue_open(repo: Repo, issue: Issue): IssuesEvent do
+ return issues_event(repo, "opened", issue)
+ end
# Generate a new IssuesEvent with an `closed` action.
- fun issue_close(issue: Issue): IssuesEvent do return issues_event("closed", issue)
+ fun issue_close(repo: Repo, issue: Issue): IssuesEvent do
+ return issues_event(repo, "closed", issue)
+ end
# Generate a new IssuesEvent with an `reopened` action.
- fun issue_reopen(issue: Issue): IssuesEvent do return issues_event("reopened", issue)
+ fun issue_reopen(repo: Repo, issue: Issue): IssuesEvent do
+ return issues_event(repo, "reopened", issue)
+ end
# Generate a new IssuesEvent from a IssueEvent.
- fun issue_raw_event(issue: Issue, event: IssueEvent): IssuesEvent do
- var e = issues_event(event.event, issue)
- e.lbl = event.labl
- e.assignee = event.assignee
- return e
+ fun issue_raw_event(repo: Repo, issue: Issue, event: IssueEvent): IssuesEvent do
+ return new IssuesEvent(event.id.to_s, event.event, repo, issue, event.labl, event.assignee)
+ end
+
+ # Generate a new IssueCommentEvent from a IssueComment.
+ fun issue_comment_event(repo: Repo, issue: Issue, comment: IssueComment): IssueCommentEvent do
+ return new IssueCommentEvent(gen_event_id, "created", repo, issue, comment)
end
# Pull requests
# Generate a new PullRequestEvent from a `pull` request.
- fun pull_event(action: String, pull: PullRequest): PullRequestEvent do
- var e = new PullRequestEvent(api)
- e.action = action
- e.repo = pull.repo
- e.pull = pull
- return e
+ fun pull_event(repo: Repo, action: String, pull: PullRequest): PullRequestEvent do
+ return new PullRequestEvent(gen_event_id, action, repo, pull.number, pull)
end
# Generate a new PullRequestEvent with an `opened` action.
- fun pull_open(pull: PullRequest): PullRequestEvent do return pull_event("opened", pull)
+ fun pull_open(repo: Repo, pull: PullRequest): PullRequestEvent do
+ return pull_event(repo, "opened", pull)
+ end
# Generate a new PullRequestEvent with an `closed` action.
- fun pull_close(pull: PullRequest): PullRequestEvent do return pull_event("closed", pull)
+ fun pull_close(repo: Repo, pull: PullRequest): PullRequestEvent do
+ return pull_event(repo, "closed", pull)
+ end
# Generate a new PullRequestEvent with an `reopened` action.
- fun pull_reopen(pull: PullRequest): PullRequestEvent do return pull_event("reopened", pull)
-
- # Generate a new PullRequestEvent from a IssueEvent.
- fun pull_raw_event(pull: PullRequest, event: IssueEvent): PullRequestEvent do
- return pull_event(event.event, pull)
+ fun pull_reopen(repo: Repo, pull: PullRequest): PullRequestEvent do
+ return pull_event(repo, "reopened", pull)
end
- # Generate a new IssueCommentEvent from a IssueComment.
- fun issue_comment_event(issue: Issue, comment: IssueComment): IssueCommentEvent do
- var e = new IssueCommentEvent(api)
- e.action = "created"
- e.repo = issue.repo
- e.issue = issue
- e.comment = comment
- return e
+ # Generate a new PullRequestEvent from a IssueEvent.
+ fun pull_raw_event(repo: Repo, pull: PullRequest, event: IssueEvent): PullRequestEvent do
+ return new PullRequestEvent(event.id.to_s, event.event, repo, pull.number, pull)
end
end
redef fun render_title do
add "<a href=\"{player.url}\">"
add " <img class=\"img-circle\" style=\"width: 30px\""
- add " src=\"{player.user.avatar_url}\" alt=\"{player.name}\">"
+ add " src=\"{player.user.avatar_url or else "#"}\" alt=\"{player.name}\">"
add "</a> {player.link}"
end
<p>
<a href="{{{player.url}}}">
<img class="img-circle" style="width: 80px"
- src="{{{player.user.avatar_url}}}" alt="{{{player.name}}}">
+ src="{{{player.user.avatar_url or else "#"}}}" alt="{{{player.name}}}">
</a>
</p>
<p>{{{player.link}}}</p>
"-involves:{player.name}"
var issues = new ArraySet[Issue]
- var rq = game.repo.search_issues(q)
- if rq != null then issues.add_all rq
- var rq2 = game.repo.search_issues(q2)
- if rq2 != null then issues.add_all rq2
+ issues.add_all game.api.search_repo_issues(game.repo, q)
+ issues.add_all game.api.search_repo_issues(game.repo, q2)
if issues.is_empty then
add "<em>No pull request or issue to review yet...</em>"
return
add """<div class="media">
<a class="media-left" href="{{{uplay.url}}}">
<img class=\"img-circle\" style="width:50px"
- src="{{{user.avatar_url}}}" alt="{{{uplay.name}}}">
+ src="{{{user.avatar_url or else "#"}}}" alt="{{{uplay.name}}}">
</a>
<div class="media-body">
<h4 class="media-heading">
var q2 = "is:open sort:updated-asc assignee:{player.name}"
var issues = new ArraySet[Issue]
- var rq = game.repo.search_issues(q)
- if rq != null then issues.add_all rq
- var rq2 = game.repo.search_issues(q2)
- if rq2 != null then issues.add_all rq2
+ issues.add_all game.api.search_repo_issues(game.repo, q)
+ issues.add_all game.api.search_repo_issues(game.repo, q2)
if issues.is_empty then
add "<em>No work to do yet...</em>"
return
add """<div class="media">
<a class="media-left" href="{{{uplay.url}}}">
<img class=\"img-circle\" style="width:50px"
- src="{{{user.avatar_url}}}" alt="{{{uplay.name}}}">
+ src="{{{user.avatar_url or else "#"}}}" alt="{{{uplay.name}}}">
</a>
<div class="media-body">
<h4 class="media-heading">
<a class="media-left" href="{{{player.url}}}">
<span class="badge progress-bar-warning" style="position: absolute">#1</span>
<img class=\"img-circle\" style="width:50px"
- src="{{{player.user.avatar_url}}}" alt="{{{player.name}}}">
+ src="{{{player.user.avatar_url or else "#"}}}" alt="{{{player.name}}}">
</a>
<div class="media-body">
<h4 class="media-heading">Unlocked first by {{{player.link}}}</h4>
var issue = api.load_issue(repo, 322)
assert issue != null
- l.apply_event(generator.issue_open(issue), db)
+ l.apply_event(generator.issue_open(repo, issue), db)
var game = load_game("Morriar/nit", db)
assert game.stats.overall["issues"] == 1
assert game.stats.overall["issues_open"] == 1
- l.apply_event(generator.issue_close(issue), db)
+ l.apply_event(generator.issue_close(repo, issue), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["issues"] == 1
assert game.stats.overall["issues_open"] == 0
- l.apply_event(generator.issue_reopen(issue), db)
+ l.apply_event(generator.issue_reopen(repo, issue), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["issues"] == 1
assert game.stats.overall["issues_open"] == 1
var issue = api.load_issue(repo, 322)
assert issue != null
- l.apply_event(generator.issue_open(issue), db)
+ l.apply_event(generator.issue_open(repo, issue), db)
var player = new Player(game, "Morriar")
assert player.stats.overall["issues"] == 1
assert player.stats.overall["issues_open"] == 1
- l.apply_event(generator.issue_close(issue), db)
+ l.apply_event(generator.issue_close(repo, issue), db)
player = new Player(game, "Morriar")
assert player.stats.overall["issues"] == 1
assert player.stats.overall["issues_open"] == 0
- l.apply_event(generator.issue_reopen(issue), db)
+ l.apply_event(generator.issue_reopen(repo, issue), db)
player = new Player(game, "Morriar")
assert player.stats.overall["issues"] == 1
assert player.stats.overall["issues_open"] == 1
var pr = api.load_pull(repo, 275)
assert pr != null
- l.apply_event(generator.pull_open(pr), db)
+ l.apply_event(generator.pull_open(repo, pr), db)
var game = load_game("Morriar/nit", db)
assert game.stats.overall["pulls"] == 1
assert game.stats.overall["pulls_open"] == 1
assert game.stats.overall["commits"] == 0
pr.merged = false
- l.apply_event(generator.pull_close(pr), db)
+ l.apply_event(generator.pull_close(repo, pr), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["pulls"] == 1
assert game.stats.overall["pulls_open"] == 0
assert game.stats.overall["commits"] == 0
- l.apply_event(generator.pull_reopen(pr), db)
+ l.apply_event(generator.pull_reopen(repo, pr), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["pulls"] == 1
assert game.stats.overall["pulls_open"] == 1
assert game.stats.overall["commits"] == 0
pr.merged = true
- l.apply_event(generator.pull_close(pr), db)
+ l.apply_event(generator.pull_close(repo, pr), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["pulls"] == 1
assert game.stats.overall["pulls_open"] == 0
assert comment != null
comment.body = "foo bar"
- l.apply_event(generator.issue_comment_event(issue, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, issue, comment), db)
var game = load_game("Morriar/nit", db)
assert game.stats.overall["comments"] == 1
assert game.stats.overall["reviews"] == 0
comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(issue, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, issue, comment), db)
game = load_game("Morriar/nit", db)
assert game.stats.overall["comments"] == 2
assert game.stats.overall["reviews"] == 1
var pull = api.load_pull(repo, 275)
assert pull != null
- l.apply_event(generator.pull_open(pull), db)
+ l.apply_event(generator.pull_open(repo, pull), db)
var player = new Player(game, "itch76")
assert player.stats.overall["nitcoins"] == 10
pull.merged = false
- l.apply_event(generator.pull_close(pull), db)
+ l.apply_event(generator.pull_close(repo, pull), db)
player = new Player(game, "itch76")
assert player.stats.overall["nitcoins"] == 0
- l.apply_event(generator.pull_reopen(pull), db)
+ l.apply_event(generator.pull_reopen(repo, pull), db)
player = new Player(game, "itch76")
assert player.stats.overall["nitcoins"] == 10
pull.merged = true
- l.apply_event(generator.pull_close(pull), db)
+ l.apply_event(generator.pull_close(repo, pull), db)
player = new Player(game, "itch76")
assert player.stats.overall["nitcoins"] == 12
end
# no review in opened issue
pull.state = "open"
comment.body = "foo bar"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
var player = new Player(game, "Morriar")
assert player.stats.overall["nitcoins"] == 0
# review in opened issue
pull.state = "open"
comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
player = new Player(game, "Morriar")
print player.stats.overall["nitcoins"]
assert player.stats.overall["nitcoins"] == 2
# review in closed issue
pull.state = "closed"
comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
player = new Player(game, "Morriar")
assert player.stats.overall["nitcoins"] == 2
# review in reopened issue
pull.state = "open"
comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
player = new Player(game, "Morriar")
assert player.stats.overall["nitcoins"] == 4
end
var player = new Player(game, "Morriar")
player.stats["issues"] = i
player.save
- l.apply_event(generator.issue_open(issue), db)
+ l.apply_event(generator.issue_open(repo, issue), db)
assert player.load_achievements.has_key(id)
end
var player = new Player(game, "Morriar")
var player = new Player(game, "itch76")
player.stats["pulls"] = i
player.save
- l.apply_event(generator.pull_open(pull), db)
+ l.apply_event(generator.pull_open(repo, pull), db)
assert player.load_achievements.has_key(id)
end
var player = new Player(game, "itch76")
var player = new Player(game, "itch76")
player.stats["commits"] = i
player.save
- l.apply_event(generator.pull_close(pull), db)
+ l.apply_event(generator.pull_close(repo, pull), db)
assert player.load_achievements.has_key(id)
end
var player = new Player(game, "itch76")
var player = new Player(game, "Morriar")
player.stats["comments"] = i
player.save
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
assert player.load_achievements.has_key(id)
end
var player = new Player(game, "Morriar")
assert issue != null
issue.title = "nitdoc ffi"
- l.apply_event(generator.issue_open(issue), db)
+ l.apply_event(generator.issue_open(repo, issue), db)
var player = new Player(game, "Morriar")
assert player.load_achievements.has_key("issue_about_nitdoc")
assert player.load_achievements.has_key("issue_about_ffi")
assert comment != null
comment.body = "@{game.repo.owner.login}"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
var player = new Player(game, "Morriar")
assert player.load_achievements.has_key("player_ping_god")
assert player.stats.overall["nitcoins"] == 50
comment.body = "+1"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
player = new Player(game, "Morriar")
assert player.load_achievements.has_key("player_first_review")
assert player.stats.overall["nitcoins"] == 60
comment.body = "Nitcoins"
- l.apply_event(generator.issue_comment_event(pull, comment), db)
+ l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
player = new Player(game, "Morriar")
assert player.load_achievements.has_key("player_says_nitcoin")
assert player.stats.overall["nitcoins"] == 70