Add Retry-After header to 429 rate limit responses

Adds Retry-After: 60 header to all deployment queue full responses,
helping webhook clients know when to retry their requests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Andras Bacsai
2025-12-11 11:02:29 +01:00
parent 6d16f52143
commit d019553809
5 changed files with 12 additions and 12 deletions

View File

@@ -108,7 +108,7 @@ class Bitbucket extends Controller
is_webhook: true
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,
@@ -164,7 +164,7 @@ class Bitbucket extends Controller
git_type: 'bitbucket'
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,

View File

@@ -124,7 +124,7 @@ class Gitea extends Controller
is_webhook: true,
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,
@@ -196,7 +196,7 @@ class Gitea extends Controller
git_type: 'gitea'
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,

View File

@@ -137,7 +137,7 @@ class Github extends Controller
is_webhook: true,
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,
@@ -225,7 +225,7 @@ class Github extends Controller
git_type: 'github'
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,
@@ -432,7 +432,7 @@ class Github extends Controller
is_webhook: true,
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
}
$return_payloads->push([
'status' => $result['status'],
@@ -499,7 +499,7 @@ class Github extends Controller
git_type: 'github'
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,

View File

@@ -150,7 +150,7 @@ class Gitlab extends Controller
is_webhook: true,
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'status' => $result['status'],
@@ -223,7 +223,7 @@ class Gitlab extends Controller
git_type: 'gitlab'
);
if ($result['status'] === 'queue_full') {
return response($result['message'], 429);
return response($result['message'], 429)->header('Retry-After', 60);
} elseif ($result['status'] === 'skipped') {
$return_payloads->push([
'application' => $application->name,