Skip to content

Commit 4b6a37d

Browse files
committed
Missing a lot of null safety checks
1 parent e8c1426 commit 4b6a37d

2 files changed

Lines changed: 27 additions & 25 deletions

File tree

src/VCS/Adapter/Git/GitHub.php

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -638,19 +638,19 @@ public function getEvent(string $event, string $payload): array
638638
$branchCreated = isset($payload['created']) ? $payload['created'] : false;
639639
$branchDeleted = isset($payload['deleted']) ? $payload['deleted'] : false;
640640
$ref = $payload['ref'] ?? '';
641-
$repositoryId = strval($payload['repository']['id'] ?? '');
642-
$repositoryName = $payload['repository']['name'] ?? '';
641+
$repositoryId = strval(isset($payload['repository']['id']) ? $payload['repository']['id'] : '');
642+
$repositoryName = isset($payload['repository']['name']) ? $payload['repository']['name'] : '';
643643
$branch = str_replace('refs/heads/', '', $ref);
644-
$branchUrl = $payload['repository']['html_url'] . "/tree/" . $branch;
645-
$repositoryUrl = $payload['repository']['html_url'];
644+
$repositoryUrl = isset($payload['repository']['html_url']) ? $payload['repository']['html_url'] : '';
645+
$branchUrl = $repositoryUrl ? $repositoryUrl . "/tree/" . $branch : '';
646646
$commitHash = $payload['after'] ?? '';
647-
$owner = $payload['repository']['owner']['name'] ?? '';
648-
$authorUrl = $payload['sender']['html_url'];
649-
$authorAvatarUrl = $payload['sender']['avatar_url'] ?? '';
650-
$headCommitAuthorName = $payload['head_commit']['author']['name'] ?? '';
651-
$headCommitAuthorEmail = $payload['head_commit']['author']['email'] ?? '';
652-
$headCommitMessage = $payload['head_commit']['message'] ?? '';
653-
$headCommitUrl = $payload['head_commit']['url'] ?? '';
647+
$owner = isset($payload['repository']['owner']['name']) ? $payload['repository']['owner']['name'] : '';
648+
$authorUrl = isset($payload['sender']['html_url']) ? $payload['sender']['html_url'] : '';
649+
$authorAvatarUrl = isset($payload['sender']['avatar_url']) ? $payload['sender']['avatar_url'] : '';
650+
$headCommitAuthorName = isset($payload['head_commit']['author']['name']) ? $payload['head_commit']['author']['name'] : '';
651+
$headCommitAuthorEmail = isset($payload['head_commit']['author']['email']) ? $payload['head_commit']['author']['email'] : '';
652+
$headCommitMessage = isset($payload['head_commit']['message']) ? $payload['head_commit']['message'] : '';
653+
$headCommitUrl = isset($payload['head_commit']['url']) ? $payload['head_commit']['url'] : '';
654654

655655
$affectedFiles = [];
656656
foreach (($payload['commits'] ?? []) as $commit) {
@@ -690,19 +690,21 @@ public function getEvent(string $event, string $payload): array
690690
'affectedFiles' => \array_keys($affectedFiles),
691691
];
692692
case 'pull_request':
693-
$repositoryId = strval($payload['repository']['id'] ?? '');
694-
$branch = $payload['pull_request']['head']['ref'] ?? '';
695-
$repositoryName = $payload['repository']['name'] ?? '';
696-
$repositoryUrl = $payload['repository']['html_url'] ?? '';
697-
$branchUrl = "$repositoryUrl/tree/$branch";
693+
$repositoryId = strval(isset($payload['repository']['id']) ? $payload['repository']['id'] : '');
694+
$branch = isset($payload['pull_request']['head']['ref']) ? $payload['pull_request']['head']['ref'] : '';
695+
$repositoryName = isset($payload['repository']['name']) ? $payload['repository']['name'] : '';
696+
$repositoryUrl = isset($payload['repository']['html_url']) ? $payload['repository']['html_url'] : '';
697+
$branchUrl = $repositoryUrl ? "$repositoryUrl/tree/$branch" : '';
698698
$pullRequestNumber = $payload['number'] ?? '';
699699
$action = $payload['action'] ?? '';
700-
$owner = $payload['repository']['owner']['login'] ?? '';
701-
$authorUrl = $payload['sender']['html_url'];
702-
$authorAvatarUrl = $payload['pull_request']['user']['avatar_url'] ?? '';
703-
$commitHash = $payload['pull_request']['head']['sha'] ?? '';
704-
$headCommitUrl = $repositoryUrl . "/commits/" . $commitHash;
705-
$external = $payload['pull_request']['head']['user']['login'] !== $payload['pull_request']['base']['user']['login'];
700+
$owner = isset($payload['repository']['owner']['login']) ? $payload['repository']['owner']['login'] : '';
701+
$authorUrl = isset($payload['sender']['html_url']) ? $payload['sender']['html_url'] : '';
702+
$authorAvatarUrl = isset($payload['pull_request']['user']['avatar_url']) ? $payload['pull_request']['user']['avatar_url'] : '';
703+
$commitHash = isset($payload['pull_request']['head']['sha']) ? $payload['pull_request']['head']['sha'] : '';
704+
$headCommitUrl = $repositoryUrl ? $repositoryUrl . "/commits/" . $commitHash : '';
705+
$headLogin = isset($payload['pull_request']['head']['user']['login']) ? $payload['pull_request']['head']['user']['login'] : '';
706+
$baseLogin = isset($payload['pull_request']['base']['user']['login']) ? $payload['pull_request']['base']['user']['login'] : '';
707+
$external = $headLogin !== $baseLogin;
706708

707709
return [
708710
'branch' => $branch,
@@ -723,7 +725,7 @@ public function getEvent(string $event, string $payload): array
723725
case 'installation':
724726
case 'installation_repositories':
725727
$action = $payload['action'] ?? '';
726-
$userName = $payload['installation']['account']['login'] ?? '';
728+
$userName = isset($payload['installation']['account']['login']) ? $payload['installation']['account']['login'] : '';
727729

728730
return [
729731
'action' => $action,

src/VCS/Adapter/Git/Gitea.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public function getRepository(string $owner, string $repositoryName): array
124124

125125
$response = $this->call(self::METHOD_GET, $url, ['Authorization' => "token $this->accessToken"]);
126126

127-
$statusCode = $response['headers']['status-code'] ?? 0;
127+
$statusCode = isset($response['headers']['status-code']) ? $response['headers']['status-code'] : 0;
128128
if ($statusCode >= 400) {
129129
throw new RepositoryNotFound("Repository not found");
130130
}
@@ -171,7 +171,7 @@ public function deleteRepository(string $owner, string $repositoryName): bool
171171

172172
$response = $this->call(self::METHOD_DELETE, $url, ['Authorization' => "token $this->accessToken"]);
173173

174-
$statusCode = $response['headers']['status-code'];
174+
$statusCode = isset($response['headers']['status-code']) ? $response['headers']['status-code'] : 0;
175175

176176
if ($statusCode >= 400) {
177177
throw new Exception("Deleting repository {$repositoryName} failed with status code {$statusCode}");

0 commit comments

Comments
 (0)