Skip to content

Commit 0f36962

Browse files
PhilippKolmannpkolmann
authored andcommitted
Add MS Teams and Jira Integrations APIs (rebased to 12.0)
1 parent 9693152 commit 0f36962

File tree

2 files changed

+26
-22
lines changed

2 files changed

+26
-22
lines changed

src/Api/Integrations.php

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class Integrations extends AbstractApi
2525
* @return mixed
2626
*/
2727
public function all($project_id)
28+
public function all(int|string $project_id): mixed
2829
{
2930
$path = $this->getProjectPath($project_id, 'integrations');
3031

@@ -35,7 +36,7 @@ public function all($project_id)
3536

3637
/**
3738
* Create Microsoft Teams integration
38-
* Set Microsoft Teams integration for a project.
39+
* Set Microsoft Teams integration for a project
3940
*
4041
* @param int|string $project_id
4142
* @param array $params {
@@ -57,7 +58,7 @@ public function all($project_id)
5758
*
5859
* @return mixed
5960
*/
60-
public function createMicrosoftTeams($project_id, array $params = [])
61+
public function createMicrosoftTeams(int|string $project_id, array $params = []): mixed
6162
{
6263
$resolver = new OptionsResolver();
6364
$booleanNormalizer = function (Options $resolver, $value): string {
@@ -118,12 +119,11 @@ public function createMicrosoftTeams($project_id, array $params = [])
118119

119120
/**
120121
* Update Microsoft Teams integration
121-
* Set Microsoft Teams integration for a project.
122+
* Set Microsoft Teams integration for a project
122123
*
123124
* @param int|string $project_id
124125
* @param array $params {
125-
*
126-
* @var string $webhook The Microsoft Teams webhook
126+
* @var string $webhook The Microsoft Teams webhook.
127127
* @var bool $notify_only_broken_pipelines Send notifications for broken pipelines
128128
* @var string $branches_to_be_notified Branches to send notifications for. Valid options are all, default,
129129
* protected, and default_and_protected. The default value is "default"
@@ -140,40 +140,41 @@ public function createMicrosoftTeams($project_id, array $params = [])
140140
*
141141
* @return mixed
142142
*/
143-
public function updateMicrosoftTeams($project_id, array $params = [])
143+
public function updateMicrosoftTeams(int|string $project_id, array $params = []): mixed
144144
{
145145
return $this->createMicrosoftTeams($project_id, $params);
146146
}
147147

148148
/**
149-
* Get Microsoft Teams integration settings for a project.
149+
* Get Microsoft Teams integration settings for a project
150150
*
151151
* @param int|string $project_id
152152
*
153153
* @return mixed
154154
*/
155-
public function getMicrosoftTeams($project_id)
155+
public function getMicrosoftTeams(int|string $project_id): mixed
156156
{
157157
return $this->get($this->getProjectPath($project_id, 'integrations/microsoft-teams'));
158158
}
159159

160160
/**
161-
* Disable the Microsoft Teams integration for a project. Integration settings are reset.
161+
* Disable the Microsoft Teams integration for a project. Integration settings are reset
162162
*
163163
* @param int|string $project_id
164164
*
165165
* @return mixed
166166
*/
167-
public function removeMicrosoftTeams($project_id)
167+
public function removeMicrosoftTeams(int|string $project_id): mixed
168168
{
169169
return $this->delete($this->getProjectPath($project_id, 'integrations/microsoft-teams'));
170170
}
171171

172+
172173
// JIRA
173174

174175
/**
175176
* Create Jira integration
176-
* Set Jira integration for a project.
177+
* Set Jira integration for a project
177178
*
178179
* @param int|string $project_id
179180
* @param array $params {
@@ -191,8 +192,8 @@ public function removeMicrosoftTeams($project_id)
191192
* @var string $active Activates or deactivates the integration. Defaults to false (deactivated).
192193
* @var string $jira_auth_type The authentication method to be used with Jira. 0 means Basic
193194
* Authentication. 1 means Jira personal access token. Defaults to 0.
194-
* @var string $jira_issue_prefix Prefix to match Jira issue keys
195-
* @var string $jira_issue_regex Regular expression to match Jira issue keys
195+
* @var string $jira_issue_prefix Prefix to match Jira issue keys.
196+
* @var string $jira_issue_regex Regular expression to match Jira issue keys.
196197
* @var string $jira_issue_transition_automatic Enable automatic issue transitions. Takes precedence over
197198
* jira_issue_transition_id if enabled. Defaults to false
198199
* @var string $jira_issue_transition_id The ID of one or more transitions for custom issue
@@ -207,7 +208,7 @@ public function removeMicrosoftTeams($project_id)
207208
*
208209
* @return mixed
209210
*/
210-
public function createJira($project_id, array $params = [])
211+
public function createJira(int|string $project_id, array $params = []): mixed
211212
{
212213
$resolver = new OptionsResolver();
213214
$booleanNormalizer = function (Options $resolver, $value): string {
@@ -266,7 +267,7 @@ public function createJira($project_id, array $params = [])
266267

267268
/**
268269
* Update Jira integration
269-
* Set Jira integration for a project.
270+
* Set Jira integration for a project
270271
*
271272
* @param int|string $project_id
272273
* @param array $params {
@@ -284,8 +285,8 @@ public function createJira($project_id, array $params = [])
284285
* @var string $active Activates or deactivates the integration. Defaults to false (deactivated).
285286
* @var string $jira_auth_type The authentication method to be used with Jira. 0 means Basic
286287
* Authentication. 1 means Jira personal access token. Defaults to 0.
287-
* @var string $jira_issue_prefix Prefix to match Jira issue keys
288-
* @var string $jira_issue_regex Regular expression to match Jira issue keys
288+
* @var string $jira_issue_prefix Prefix to match Jira issue keys.
289+
* @var string $jira_issue_regex Regular expression to match Jira issue keys.
289290
* @var string $jira_issue_transition_automatic Enable automatic issue transitions. Takes precedence over
290291
* jira_issue_transition_id if enabled. Defaults to false
291292
* @var string $jira_issue_transition_id The ID of one or more transitions for custom issue
@@ -300,32 +301,33 @@ public function createJira($project_id, array $params = [])
300301
*
301302
* @return mixed
302303
*/
303-
public function updateJira($project_id, array $params = [])
304+
public function updateJira(int|string $project_id, array $params = []): mixed
304305
{
305306
return $this->createJira($project_id, $params);
306307
}
307308

308309
/**
309-
* Get Jira integration settings for a project.
310+
* Get Jira integration settings for a project
310311
*
311312
* @param int|string $project_id
312313
*
313314
* @return mixed
314315
*/
315-
public function getJira($project_id)
316+
public function getJira(int|string $project_id): mixed
316317
{
317318
return $this->get($this->getProjectPath($project_id, 'integrations/jira'));
318319
}
319320

320321
/**
321-
* Disable the Jira integration for a project. Integration settings are reset.
322+
* Disable the Jira integration for a project. Integration settings are reset
322323
*
323324
* @param int|string $project_id
324325
*
325326
* @return mixed
326327
*/
327-
public function removeJira($project_id)
328+
public function removeJira(int|string $project_id): mixed
328329
{
329330
return $this->delete($this->getProjectPath($project_id, 'integrations/jira'));
330331
}
332+
331333
}

tests/Api/IntegrationsTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
namespace Gitlab\Tests\Api;
1616

17+
use DateTime;
1718
use Gitlab\Api\Integrations;
1819

1920
class IntegrationsTest extends TestCase
@@ -184,4 +185,5 @@ protected function getApiClass()
184185
{
185186
return Integrations::class;
186187
}
188+
187189
}

0 commit comments

Comments
 (0)