1185 lines
28 KiB
YAML
1185 lines
28 KiB
YAML
basePath: /
|
|
definitions:
|
|
http.APIResponse:
|
|
properties:
|
|
status:
|
|
type: string
|
|
type: object
|
|
http.UserInfo:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
id:
|
|
type: string
|
|
last_login_ip:
|
|
type: string
|
|
last_login_time:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
role_id:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
type: object
|
|
http.approveRequest:
|
|
properties:
|
|
action:
|
|
description: defaults to approve
|
|
type: string
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
voter:
|
|
type: string
|
|
type: object
|
|
http.auditLogsResponse:
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/types.AuditLog'
|
|
type: array
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
http.azureWebhook:
|
|
properties:
|
|
request:
|
|
properties:
|
|
host:
|
|
type: string
|
|
type: object
|
|
target:
|
|
properties:
|
|
digest:
|
|
type: string
|
|
repository:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
http.dockerHubWebhook:
|
|
properties:
|
|
callback_url:
|
|
type: string
|
|
push_data:
|
|
properties:
|
|
images:
|
|
items: {}
|
|
type: array
|
|
pushed_at:
|
|
type: integer
|
|
pusher:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
type: object
|
|
repository:
|
|
properties:
|
|
comment_count:
|
|
type: integer
|
|
date_created:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
dockerfile:
|
|
type: string
|
|
full_description:
|
|
type: string
|
|
is_official:
|
|
type: boolean
|
|
is_private:
|
|
type: boolean
|
|
is_trusted:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
owner:
|
|
type: string
|
|
repo_name:
|
|
type: string
|
|
repo_url:
|
|
type: string
|
|
star_count:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
http.harborWebhook:
|
|
properties:
|
|
event_data:
|
|
properties:
|
|
repository:
|
|
properties:
|
|
date_created:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
repo_full_name:
|
|
type: string
|
|
repo_type:
|
|
type: string
|
|
type: object
|
|
resources:
|
|
items:
|
|
properties:
|
|
digest:
|
|
type: string
|
|
resource_url:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
type: object
|
|
occur_at:
|
|
type: integer
|
|
operator:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
http.jfrogWebhook:
|
|
properties:
|
|
data:
|
|
properties:
|
|
image_name:
|
|
type: string
|
|
name:
|
|
type: string
|
|
path:
|
|
type: string
|
|
platforms:
|
|
items:
|
|
properties:
|
|
architecture:
|
|
type: string
|
|
os:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
repo_key:
|
|
type: string
|
|
sha256:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
type: object
|
|
domain:
|
|
type: string
|
|
event_type:
|
|
type: string
|
|
jpd_origin:
|
|
type: string
|
|
source:
|
|
type: string
|
|
subscription_key:
|
|
type: string
|
|
type: object
|
|
http.loginRequest:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
http.loginResponse:
|
|
properties:
|
|
token:
|
|
type: string
|
|
type: object
|
|
http.quayWebhook:
|
|
properties:
|
|
docker_url:
|
|
type: string
|
|
homepage:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
repository:
|
|
type: string
|
|
updated_tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
http.registryNotification:
|
|
properties:
|
|
events:
|
|
items:
|
|
properties:
|
|
action:
|
|
type: string
|
|
actor:
|
|
properties:
|
|
name:
|
|
type: string
|
|
type: object
|
|
id:
|
|
type: string
|
|
request:
|
|
properties:
|
|
addr:
|
|
type: string
|
|
host:
|
|
type: string
|
|
id:
|
|
type: string
|
|
method:
|
|
type: string
|
|
useragent:
|
|
type: string
|
|
type: object
|
|
source:
|
|
properties:
|
|
addr:
|
|
type: string
|
|
instanceID:
|
|
type: string
|
|
type: object
|
|
target:
|
|
properties:
|
|
digest:
|
|
type: string
|
|
length:
|
|
type: integer
|
|
mediaType:
|
|
type: string
|
|
repository:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
type: object
|
|
http.resource:
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
identifier:
|
|
type: string
|
|
images:
|
|
items:
|
|
type: string
|
|
type: array
|
|
kind:
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
policy:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
status:
|
|
$ref: '#/definitions/k8s.Status'
|
|
type: object
|
|
http.resourceApprovalsUpdateRequest:
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
votesRequired:
|
|
type: integer
|
|
type: object
|
|
http.resourcePolicyUpdateRequest:
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
policy:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
type: object
|
|
http.trackRequest:
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
schedule:
|
|
type: string
|
|
trigger:
|
|
type: string
|
|
type: object
|
|
http.trackedImage:
|
|
properties:
|
|
image:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
policy:
|
|
type: string
|
|
pollSchedule:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
registry:
|
|
type: string
|
|
trigger:
|
|
type: string
|
|
type: object
|
|
k8s.Status:
|
|
properties:
|
|
availableReplicas:
|
|
description: |-
|
|
Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
|
|
+optional
|
|
type: integer
|
|
readyReplicas:
|
|
description: |-
|
|
Total number of ready pods targeted by this deployment.
|
|
+optional
|
|
type: integer
|
|
replicas:
|
|
description: |-
|
|
Total number of non-terminated pods targeted by this deployment (their labels match the selector).
|
|
+optional
|
|
type: integer
|
|
unavailableReplica:
|
|
description: |-
|
|
Total number of unavailable pods targeted by this deployment. This is the total number of
|
|
pods that are still required for the deployment to have 100% available capacity. They may
|
|
either be pods that are running but not yet available or pods that still have not been created.
|
|
+optional
|
|
type: integer
|
|
updatedReplicas:
|
|
description: |-
|
|
Total number of non-terminated pods targeted by this deployment that have the desired template spec.
|
|
+optional
|
|
type: integer
|
|
type: object
|
|
types.Approval:
|
|
properties:
|
|
archived:
|
|
description: Archived is set to true once approval is finally approved/rejected
|
|
type: boolean
|
|
createdAt:
|
|
description: When this approval was created
|
|
type: string
|
|
currentVersion:
|
|
type: string
|
|
deadline:
|
|
description: Deadline for this request
|
|
type: string
|
|
digest:
|
|
description: |-
|
|
Digest is used to verify that images are the ones that got the approvals.
|
|
If digest doesn't match for the image, votes are reset.
|
|
type: string
|
|
event:
|
|
allOf:
|
|
- $ref: '#/definitions/types.Event'
|
|
description: Event that triggered evaluation
|
|
id:
|
|
type: string
|
|
identifier:
|
|
description: |-
|
|
Identifier is used to inform user about specific
|
|
Helm release or k8s deployment
|
|
ie: k8s <namespace>/<deployment name>
|
|
helm: <namespace>/<release name>
|
|
type: string
|
|
message:
|
|
type: string
|
|
newVersion:
|
|
type: string
|
|
provider:
|
|
allOf:
|
|
- $ref: '#/definitions/types.ProviderType'
|
|
description: Provider name - Kubernetes/Helm
|
|
rejected:
|
|
description: |-
|
|
Explicitly rejected approval
|
|
can be set directly by user
|
|
so even if deadline is not reached approval
|
|
could be turned down
|
|
type: boolean
|
|
updatedAt:
|
|
description: WHen this approval was updated
|
|
type: string
|
|
voters:
|
|
allOf:
|
|
- $ref: '#/definitions/types.JSONB'
|
|
description: |-
|
|
Voters is a list of voter
|
|
IDs for audit
|
|
votesReceived:
|
|
type: integer
|
|
votesRequired:
|
|
description: |-
|
|
Requirements for the update such as number of votes
|
|
and deadline
|
|
type: integer
|
|
type: object
|
|
types.AuditLog:
|
|
properties:
|
|
accountId:
|
|
type: string
|
|
action:
|
|
description: create/delete/update
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
email:
|
|
type: string
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
message:
|
|
type: string
|
|
metadata:
|
|
$ref: '#/definitions/types.JSONB'
|
|
payload:
|
|
description: can be used for bigger messages such as webhook payload
|
|
type: string
|
|
payloadType:
|
|
type: string
|
|
resourceKind:
|
|
description: approval/deployment/daemonset/statefulset/etc...
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
types.Event:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
repository:
|
|
$ref: '#/definitions/types.Repository'
|
|
triggerName:
|
|
description: optional field to identify trigger
|
|
type: string
|
|
type: object
|
|
types.JSONB:
|
|
additionalProperties: true
|
|
type: object
|
|
types.ProviderType:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
type: integer
|
|
x-enum-varnames:
|
|
- ProviderTypeUnknown
|
|
- ProviderTypeKubernetes
|
|
- ProviderTypeHelm
|
|
types.Repository:
|
|
properties:
|
|
digest:
|
|
description: optional digest field
|
|
type: string
|
|
host:
|
|
type: string
|
|
name:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
type: object
|
|
types.VersionInfo:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
arch:
|
|
type: string
|
|
buildDate:
|
|
type: string
|
|
experimental:
|
|
type: boolean
|
|
goVersion:
|
|
type: string
|
|
kernelVersion:
|
|
type: string
|
|
name:
|
|
type: string
|
|
os:
|
|
type: string
|
|
revision:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
host: localhost:9300
|
|
info:
|
|
contact:
|
|
email: support@keel.sh
|
|
name: Keel Support
|
|
url: https://keel.sh
|
|
description: Automated Kubernetes deployment updates. Keel is a tool for automating
|
|
Kubernetes deployment updates.
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: https://keel.sh/terms/
|
|
title: Keel API
|
|
version: "1.0"
|
|
paths:
|
|
/healthz:
|
|
get:
|
|
description: Returns 200 OK if the service is healthy
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: Health check endpoint
|
|
tags:
|
|
- health
|
|
/v1/approvals:
|
|
get:
|
|
description: Returns a list of all approvals (both active and archived)
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/types.Approval'
|
|
type: array
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List approvals
|
|
tags:
|
|
- approvals
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Performs an action on an approval (approve, reject, delete, or
|
|
archive)
|
|
parameters:
|
|
- description: Approval action request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.approveRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.Approval'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Approval not found
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Approve, reject, delete, or archive an approval
|
|
tags:
|
|
- approvals
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Sets or removes approval requirements for a resource
|
|
parameters:
|
|
- description: Approval update request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.resourceApprovalsUpdateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.APIResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Resource not found
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update approval requirements
|
|
tags:
|
|
- approvals
|
|
/v1/audit:
|
|
get:
|
|
description: Returns paginated audit logs with optional filtering
|
|
parameters:
|
|
- description: Maximum number of results
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset for pagination
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
- description: Comma-separated list of resource kinds to filter
|
|
in: query
|
|
name: filter
|
|
type: string
|
|
- description: Filter by email
|
|
in: query
|
|
name: email
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.auditLogsResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get audit logs
|
|
tags:
|
|
- audit
|
|
/v1/auth/info:
|
|
get:
|
|
description: Returns information about the currently authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.UserInfo'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get current user info
|
|
tags:
|
|
- auth
|
|
/v1/auth/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Authenticates a user with username and password
|
|
parameters:
|
|
- description: Login credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.loginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.loginResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
"401":
|
|
description: Username or password incorrect
|
|
schema:
|
|
type: string
|
|
summary: Login user
|
|
tags:
|
|
- auth
|
|
/v1/auth/logout:
|
|
get:
|
|
description: Logs out the currently authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Logout user
|
|
tags:
|
|
- auth
|
|
post:
|
|
description: Logs out the currently authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Logout user
|
|
tags:
|
|
- auth
|
|
/v1/auth/refresh:
|
|
get:
|
|
description: Generates a new authentication token for the current user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.loginResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Refresh authentication token
|
|
tags:
|
|
- auth
|
|
/v1/auth/user:
|
|
get:
|
|
description: Returns information about the currently authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.UserInfo'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get current user info
|
|
tags:
|
|
- auth
|
|
/v1/policies:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates the Keel policy for a specific resource
|
|
parameters:
|
|
- description: Policy update request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.resourcePolicyUpdateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.APIResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Resource not found
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update resource policy
|
|
tags:
|
|
- policies
|
|
/v1/resources:
|
|
get:
|
|
description: Returns a list of all tracked Kubernetes resources with their policies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/http.resource'
|
|
type: array
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List resources
|
|
tags:
|
|
- resources
|
|
/v1/stats:
|
|
get:
|
|
description: Returns aggregated statistics about webhooks, approvals, and updates
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get statistics
|
|
tags:
|
|
- stats
|
|
/v1/tracked:
|
|
get:
|
|
description: Returns a list of all tracked container images with their triggers
|
|
and policies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/http.trackedImage'
|
|
type: array
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List tracked images
|
|
tags:
|
|
- tracked
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates the trigger type and poll schedule for a tracked resource
|
|
parameters:
|
|
- description: Track settings request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.trackRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/http.APIResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Resource not found
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update tracking settings
|
|
tags:
|
|
- tracked
|
|
/v1/webhooks/azure:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes Azure Container Registry webhook notifications
|
|
for image push events
|
|
parameters:
|
|
- description: Azure webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.azureWebhook'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger Azure Container Registry webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/dockerhub:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes DockerHub webhook notifications for image
|
|
push events
|
|
parameters:
|
|
- description: DockerHub webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.dockerHubWebhook'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger DockerHub webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/github:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes GitHub webhook notifications for container
|
|
registry events (both GitHub Packages and GitHub Container Registry)
|
|
parameters:
|
|
- description: GitHub event type (package or registry_package)
|
|
in: header
|
|
name: X-GitHub-Event
|
|
required: true
|
|
type: string
|
|
- description: GitHub webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
type: object
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger GitHub webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/harbor:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes Harbor registry webhook notifications for
|
|
image push events
|
|
parameters:
|
|
- description: Harbor webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.harborWebhook'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger Harbor webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/jfrog:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes JFrog Artifactory webhook notifications
|
|
for image push events
|
|
parameters:
|
|
- description: JFrog webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.jfrogWebhook'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger JFrog webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/native:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Triggers a deployment update event directly with repository and
|
|
tag information
|
|
parameters:
|
|
- description: Repository information with name and tag
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.Repository'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger native webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/quay:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes Quay.io webhook notifications for image
|
|
push events
|
|
parameters:
|
|
- description: Quay webhook payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.quayWebhook'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger Quay webhook
|
|
tags:
|
|
- webhooks
|
|
/v1/webhooks/registry:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Receives and processes Docker Registry V2 notification webhooks
|
|
for image push events. Compatible with Docker Registry, GitLab Container Registry,
|
|
and Harbor.
|
|
parameters:
|
|
- description: Registry notification payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/http.registryNotification'
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
summary: Trigger Docker Registry notification webhook
|
|
tags:
|
|
- webhooks
|
|
/version:
|
|
get:
|
|
description: Returns the current version information of Keel
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.VersionInfo'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
summary: Get Keel version
|
|
tags:
|
|
- health
|
|
swagger: "2.0"
|