|
|
|
@@ -1,23 +1,39 @@ |
|
|
|
class Gitea::Hooks::CreateService < Gitea::ClientService |
|
|
|
attr_reader :user, :repo_name, :body |
|
|
|
attr_reader :token, :owner, :repo, :body |
|
|
|
|
|
|
|
def initialize(user, repo_name, body) |
|
|
|
@user = user |
|
|
|
@repo_name = repo_name |
|
|
|
@body = body |
|
|
|
# body params: |
|
|
|
# { |
|
|
|
# "active": false, |
|
|
|
# "branch_filter": "string", |
|
|
|
# "config": { |
|
|
|
# "content_type": "string", |
|
|
|
# "url": "string" |
|
|
|
# }, |
|
|
|
# "events": [ |
|
|
|
# "create" |
|
|
|
# ], |
|
|
|
# "type": "gitea" |
|
|
|
# } |
|
|
|
# eg: |
|
|
|
# Gitea::Hooks::CreateService.call(user.gitea_token, user.login, repo.identifier, body) |
|
|
|
def initialize(token, owner, repo, body) |
|
|
|
@token = token |
|
|
|
@owner = owner |
|
|
|
@repo = repo |
|
|
|
@body = body |
|
|
|
end |
|
|
|
|
|
|
|
def call |
|
|
|
response = post(url, params) |
|
|
|
def call |
|
|
|
post(url, params) |
|
|
|
end |
|
|
|
|
|
|
|
private |
|
|
|
def params |
|
|
|
body.merge(token: user.gitea_token) |
|
|
|
Hash.new.merge(token: token, data: body).compact! |
|
|
|
end |
|
|
|
|
|
|
|
def url |
|
|
|
"/repos/#{user.login}/#{repo_name}/hooks".freeze |
|
|
|
"/repos/#{owner}/#{repo}/hooks".freeze |
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
end |