Merge pull request #7048 from ShadowArcanist/shadow/fix-privatekey-deletion-on-githubaap-delete

Fix GitHub App deleting private key in use by other resources
This commit is contained in:
Andras Bacsai 2025-10-29 20:54:16 +01:00 committed by GitHub
commit 5ed0b44bd0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -28,7 +28,20 @@ protected static function booted(): void
if ($applications_count > 0) {
throw new \Exception('You cannot delete this GitHub App because it is in use by '.$applications_count.' application(s). Delete them first.');
}
$github_app->privateKey()->delete();
$privateKey = $github_app->privateKey;
if ($privateKey) {
// Check if key is used by anything EXCEPT this GitHub app
$isUsedElsewhere = $privateKey->servers()->exists()
|| $privateKey->applications()->exists()
|| $privateKey->githubApps()->where('id', '!=', $github_app->id)->exists()
|| $privateKey->gitlabApps()->exists();
if (! $isUsedElsewhere) {
$privateKey->delete();
} else {
}
}
});
}