Class: GithubIntegration
Overview
GitHub-backed reporter sink for posting PR comments.
Defined Under Namespace
Classes: SourceCell, TrackingIssue, UpgradeHintsSection
Constant Summary
collapse
"<!-- spm-version-updates-action -->"
"✅ All SPM dependencies are up to date as of the latest run."
- RepositoryLink =
::RepositoryLink
Constants inherited
from ReporterSink
ReporterSink::SUCCESS_MESSAGE
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of GithubIntegration.
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
|
# File 'action/lib/github_integration.rb', line 242
def initialize
super
@github_token = ENV.fetch("GITHUB_TOKEN", nil)
@github_repository = ENV.fetch("GITHUB_REPOSITORY", nil)
@github_event_path = ENV.fetch("GITHUB_EVENT_PATH", nil)
@open_tracking_issue = false
@enrich_release_notes = true
@tracking_issue_result = nil
if github_token_missing?
puts("Warning: GITHUB_TOKEN not set, comments will not be posted")
@client = nil
return
end
@client = Octokit::Client.new(access_token: @github_token)
@pr_number =
puts("GitHub integration initialized for #{@github_repository}, PR ##{@pr_number}")
end
|
Instance Attribute Details
#tracking_issue_result ⇒ Object
The issue created or updated by the last publish (see ReporterSink).
240
241
242
|
# File 'action/lib/github_integration.rb', line 240
def tracking_issue_result
@tracking_issue_result
end
|
Instance Method Details
#clear ⇒ Object
292
293
294
295
296
297
298
299
|
# File 'action/lib/github_integration.rb', line 292
def clear
return tracking_issue.close(TRACKING_ISSUE_RESOLVED_COMMENT) if tracking_issue_run?
{
=
([:id]) if
}
end
|
263
264
265
266
|
# File 'action/lib/github_integration.rb', line 263
def configure(inputs)
@open_tracking_issue = inputs.fetch(:open_tracking_issue, false)
@enrich_release_notes = inputs.fetch(:enrich_release_notes, true)
end
|
305
306
307
|
# File 'action/lib/github_integration.rb', line 305
def
clear
end
|
301
302
303
|
# File 'action/lib/github_integration.rb', line 301
def (message)
{ post_comment_body((message)) }
end
|
#publish_success ⇒ Object
#publish_updates(payload) ⇒ Object
275
276
277
278
279
280
281
282
283
284
|
# File 'action/lib/github_integration.rb', line 275
def publish_updates(payload)
return unless tracking_issue_run? ||
message = (build_warnings_message(payload))
if tracking_issue_run?
@tracking_issue_result = tracking_issue.upsert(message)
else
post_comment_body(message)
end
end
|
#tracking_issue_run? ⇒ Boolean
Tracking-issue mode applies only on runs without a pull request context
(schedule, workflow_dispatch, push) when explicitly enabled. Public so the
action can publish tracking issues even when PR commenting is disabled.
271
272
273
|
# File 'action/lib/github_integration.rb', line 271
def tracking_issue_run?
!!(@open_tracking_issue && !@pr_number && @client && @github_repository)
end
|