36 lines
1,022 B
Crystal
36 lines
1,022 B
Crystal
require "http"
|
|
|
|
|
|
module AutoBoard
|
|
class Gitlab
|
|
private_token : String
|
|
endpoint : String
|
|
|
|
def initialize(private_token : String)
|
|
@private_token = private_token
|
|
@endpoint = "https://gitlab.com/api/v4"
|
|
end
|
|
|
|
def get_boards(project_id : Int32)
|
|
headers = {"Private-Token" => @private_token}
|
|
response = HTTP.get("#{@endpoint}/projects/#{project_id}/boards", headers: headers)
|
|
JSON.parse(response.body)
|
|
end
|
|
|
|
def create_board(project_id : Int32, name : String)
|
|
headers = {"Private-Token" => @private_token}
|
|
body = JSON.dump({name: name})
|
|
response = HTTP.post("#{@endpoint}/projects/#{project_id}/boards", body: body, headers: headers)
|
|
JSON.parse(response.body)
|
|
end
|
|
|
|
def delete_board(project_id : Int32, board_id : Int32)
|
|
headers = {"Private-Token" => @private_token}
|
|
response = HTTP.delete("#{@endpoint}/projects/#{project_id}/boards/#{board_id}", headers: headers)
|
|
end
|
|
|
|
# autres méthodes selon les besoins
|
|
end
|
|
end
|
|
|