-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcode.power
More file actions
135 lines (122 loc) · 3.43 KB
/
code.power
File metadata and controls
135 lines (122 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/**
* Create a label.
*
* @param string $owner The owner name.
* @param string $repo The repo name.
* @param string $labelName The name of the label.
* @param string $labelColor The color of the label, in hexadecimal format with the leading '#'.
* @param string $labelDescription Optional. The description of the label.
*
* @return object|null
* @since 3.2.0
**/
public function create(string $owner, string $repo, string $labelName, string $labelColor, string $labelDescription = ''): ?object
{
// Set the lines data
$data = new \stdClass();
// Set all the needed data.
$data->name = $labelName;
$data->color = $labelColor;
if (!empty($labelDescription))
{
$data->description = $labelDescription;
}
// Build the request path.
$path = "/repos/{$owner}/{$repo}/labels";
// Send the post request.
return $this->response->get(
$this->http->post(
$this->uri->get($path),
json_encode($data)
), 201
);
}
/**
* Get a single label.
*
* @param string $owner The owner name.
* @param string $repo The repo name.
* @param string $id The ID of the label to retrieve.
*
* @return object|null
* @since 3.2.0
**/
public function get(string $owner, string $repo, string $id): ?object
{
// Build the request path.
$path = "/repos/{$owner}/{$repo}/labels/{$id}";
// Send the get request.
return $this->response->get(
$this->http->get(
$this->uri->get($path)
)
);
}
/**
* Delete a label.
*
* @param string $owner The owner name.
* @param string $repo The repo name.
* @param string $id The ID of the label to delete.
*
* @return string
* @since 3.2.0
**/
public function delete(string $owner, string $repo, string $id): string
{
// Build the request path.
$path = "/repos/{$owner}/{$repo}/labels/{$id}";
// Send the delete request.
return $this->response->get(
$this->http->delete(
$this->uri->get($path)
), 204, 'success'
);
}
/**
* Update a label.
*
* @param string $owner The owner name.
* @param string $repo The repo name.
* @param string $id The ID of the label to update.
* @param string $labelName Optional. The new name of the label.
* @param string $labelColor Optional. The new color of the label, in hexadecimal format without the leading '#'.
* @param string $labelDescription Optional. The new description of the label.
*
* @return object|null
* @since 3.2.0
**/
public function update(
string $owner,
string $repo,
string $id,
string $labelName = '',
string $labelColor = '',
string $labelDescription = ''
): ?object
{
// Set the lines data
$data = new \stdClass();
// Set all the optional data that has been provided.
if (!empty($labelName))
{
$data->name = $labelName;
}
if (!empty($labelColor))
{
$data->color = $labelColor;
}
if (!empty($labelDescription))
{
$data->description = $labelDescription;
}
// Build the request path.
$path = "/repos/{$owner}/{$repo}/labels/{$id}";
// Send the patch request.
return $this->response->get(
$this->http->patch(
$this->uri->get($path),
json_encode($data)
)
);
}