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

Commit b366cb6

Browse files
committed
Add new format for github issues
1 parent 8f18ce1 commit b366cb6

File tree

5 files changed

+39
-1
lines changed

5 files changed

+39
-1
lines changed

lib/cc/helpers/issue_helper.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module CC::Service::IssueHelper
2+
def constant_name
3+
payload["constant_name"]
4+
end
5+
6+
def issue
7+
payload["issue"]
8+
end
9+
end

lib/cc/service.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def self.load_services
3030

3131
attr_reader :event, :config, :payload
3232

33-
ALL_EVENTS = %w[test unit coverage quality vulnerability snapshot pull_request]
33+
ALL_EVENTS = %w[test unit coverage quality vulnerability snapshot pull_request issue]
3434

3535
# Tracks the defined services.
3636
def self.services

lib/cc/services/github_issues.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ def receive_vulnerability
4545
)
4646
end
4747

48+
def receive_issue
49+
title = %{Fix "#{issue["check_name"]}" issue in #{constant_name}}
50+
51+
body = [issue["description"], details_url].join("\n\n")
52+
53+
create_issue(title, body)
54+
end
55+
4856
private
4957

5058
def create_issue(title, issue_body)

test/fixtures.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ def vulnerability
5151
options.merge(name: "vulnerability")
5252
end
5353

54+
def issue
55+
options.merge(name: "issue")
56+
end
57+
5458
end
5559

5660
def event(name, options = {})

test/github_issues_test.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,23 @@ def test_quality
2222
)
2323
end
2424

25+
def test_issue
26+
payload = {
27+
issue: {
28+
"check_name" => "Style/LongLine",
29+
"description" => "Line is too long [1000/80]"
30+
},
31+
constant_name: "foo.rb",
32+
details_url: "http://example.com/repos/id/foo.rb#issue_123"
33+
}
34+
35+
assert_github_receives(
36+
event(:issue, payload),
37+
"Fix \"Style/LongLine\" issue in foo.rb",
38+
"Line is too long [1000/80]\n\nhttp://example.com/repos/id/foo.rb#issue_123"
39+
)
40+
end
41+
2542
def test_vulnerability
2643
assert_github_receives(
2744
event(:vulnerability, vulnerabilities: [{

0 commit comments

Comments
 (0)