forgeplus/app/services/webhook/pull_comment_client.rb

36 lines
835 B
Ruby

class Webhook::PullCommentClient
include Webhook::Client
attr_accessor :webhook, :pull, :journal, :sender, :event
def initialize(webhook, pull, journal, sender, event)
@webhook = webhook
@pull = pull
@journal = journal
@sender = sender
@event = event
# 构建client参数
super({
uuid: SecureRandom.uuid,
event: @event,
webhook: @webhook,
payload_content: payload_content
})
end
private
def payload_content
{
"action": "created",
"number": @pull.gitea_number,
"pull_request": JSON.parse(@pull.to_builder.target!),
"comment": JSON.parse(@journal.to_builder.target!),
"project": JSON.parse(@pull.project.to_builder.target!),
"sender": JSON.parse(@sender.to_builder.target!),
"is_pull": true
}
end
end