Woodpecker CI API (dev)
Download OpenAPI specification:Download
Woodpecker is a simple CI engine with great extensibility. To get a personal access token (PAT) for authentication, please log in your Woodpecker server, and go to you personal profile page, by clicking the user icon at the top right.
Get agent list
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
]
Create a new agent with a random token so a new agent can connect to the server
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the agent's data (only 'name' and 'no_schedule' are read)
backend | string |
capacity | integer |
created | integer |
id | integer |
last_contact | integer |
name | string |
no_schedule | boolean |
owner_id | integer |
platform | string |
token | string |
updated | integer |
version | string |
Responses
Request samples
- Payload
{- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
Response samples
- 200
{- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
Get agent information
path Parameters
agent required | integer the agent's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
Update agent information
path Parameters
agent required | integer the agent's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the agent's data
backend | string |
capacity | integer |
created | integer |
id | integer |
last_contact | integer |
name | string |
no_schedule | boolean |
owner_id | integer |
platform | string |
token | string |
updated | integer |
version | string |
Responses
Request samples
- Payload
{- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
Response samples
- 200
{- "backend": "string",
- "capacity": 0,
- "created": 0,
- "id": 0,
- "last_contact": 0,
- "name": "string",
- "no_schedule": true,
- "owner_id": 0,
- "platform": "string",
- "token": "string",
- "updated": 0,
- "version": "string"
}
Get agent tasks
path Parameters
agent required | integer the agent's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "agent_id": 0,
- "data": [
- 0
], - "dep_status": {
- "property1": "skipped",
- "property2": "skipped"
}, - "dependencies": [
- "string"
], - "id": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "run_on": [
- "string"
]
}
]
Provide pipeline status information to the CCMenu tool
CCMenu displays the pipeline status of projects on a CI server as an item in the Mac's menu bar. More details on how to install, you can find at http://ccmenu.org/ The response format adheres to CCTray v1 Specification, https://cctray.org/v1/
path Parameters
owner required | string the repository owner's name |
name required | string the repository name |
Responses
Get pprof stack traces of all current goroutines
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug
query Parameters
debug | integer Default: 1 Use debug=2 as a query parameter to export in the same format as an un-recovered panic |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Get pprof heap dump, a sampling of memory allocations of live objects
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug
query Parameters
gc | string Default: "" You can specify gc=heap to run GC before taking the heap sample |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Get pprof CPU profile
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug After you get the profile file, use the go tool pprof command to investigate the profile.
query Parameters
seconds required | integer You can specify the duration in the seconds GET parameter. |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Get pprof program counters mapping to function names
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug Looks up the program counters listed in the request, responding with a table mapping program counters to function names. The requested program counters can be provided via GET + query parameters, or POST + body parameters. Program counters shall be space delimited.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Get pprof program counters mapping to function names
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug Looks up the program counters listed in the request, responding with a table mapping program counters to function names. The requested program counters can be provided via GET + query parameters, or POST + body parameters. Program counters shall be space delimited.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Get a trace of execution of the current program
Only available, when server was started with WOODPECKER_LOG_LEVEL=debug After you get the profile file, use the go tool pprof command to investigate the profile.
query Parameters
seconds required | integer You can specify the duration in the seconds GET parameter. |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Set log level
Endpoint sets the current logging level. Requires admin rights.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the new log level, one of <debug,trace,info,warn,error,fatal,panic,disabled>
log-level | string |
Responses
Request samples
- Payload
{- "log-level": "string"
}
Response samples
- 200
{- "log-level": "string"
}
Log information
path Parameters
repo_id required | integer the repository id |
number required | integer the number of the pipeline |
stepID required | integer the step id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "data": [
- 0
], - "id": 0,
- "line": 0,
- "step_id": 0,
- "time": 0,
- "type": 0
}
]
Lookup organization by full-name
path Parameters
org_full_name required | string the organizations full-name / slug |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "id": 0,
- "is_user": true,
- "name": "string"
}
Get all orgs
Returns all registered orgs in the system. Requires admin rights.
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "id": 0,
- "is_user": true,
- "name": "string"
}
]
Get organization by id
path Parameters
org_id required | string the organziation's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "id": 0,
- "is_user": true,
- "name": "string"
}
]
Get the permissions of the current user in the given organization
path Parameters
org_id required | string the organziation's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "admin": true,
- "member": true
}
]
Get the organization secret list
path Parameters
org_id required | string the org's id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
]
Get the named organization secret
path Parameters
org_id required | string the org's id |
secret required | string the secret's name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Update an organization secret
path Parameters
org_id required | string the org's id |
secret required | string the secret's name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the update secret data
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Persist/create an organization secret
path Parameters
org_id required | string the org's id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the new secret
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
List pipeline queues
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "commit": "string",
- "created_at": 0,
- "event": "string",
- "finished_at": 0,
- "id": 0,
- "message": "string",
- "number": 0,
- "ref": "string",
- "refspec": "string",
- "remote": "string",
- "repo_id": 0,
- "started_at": 0,
- "status": "string",
- "title": "string"
}
]
Get pipeline queue information
TODO: link the InfoT response object - this is blocked, until the swaggo/swag
tool dependency is v1.18.12 or newer
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "property1": "string",
- "property2": "string"
}
List all repositories on the server. Requires admin rights.
query Parameters
active | boolean only list active repos |
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
]
Activate a repository
query Parameters
forge_remote_id required | string the id of a repository at the forge |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Get repository by full-name
path Parameters
repo_full_name required | string the repository full-name / slug |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Get repository information
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Delete a repository
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Change a repository
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the repository's information
allow_pr | boolean |
cancel_previous_pipeline_events | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
config_file | string |
gated | boolean |
netrc_only_trusted | boolean |
timeout | integer |
trusted | boolean |
visibility | string |
Responses
Request samples
- Payload
{- "allow_pr": true,
- "cancel_previous_pipeline_events": [
- "push"
], - "config_file": "string",
- "gated": true,
- "netrc_only_trusted": true,
- "timeout": 0,
- "trusted": true,
- "visibility": "string"
}
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Get repository branches
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- "string"
]
Change a repository's owner, to the one holding the access token
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
Repository permission information
The repository permission, according to the used access token.
path Parameters
owner required | string the repository owner's name |
name required | string the repository name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "admin": true,
- "created": 0,
- "pull": true,
- "push": true,
- "synced": 0,
- "updated": 0
}
List active pull requests
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "index": 0,
- "title": "string"
}
]
Get the cron job list
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
]
Persist/creat a cron job
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the new cron job
branch | string |
created_at | integer |
creator_id | integer |
id | integer |
name | string |
next_exec | integer |
repo_id | integer |
schedule | string @weekly, 3min, ... |
Responses
Request samples
- Payload
{- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
Response samples
- 200
{- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
Get a cron job by id
path Parameters
repo_id required | integer the repository id |
cron required | string the cron job id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
Start a cron job now
path Parameters
repo_id required | integer the repository id |
cron required | string the cron job id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Update a cron job
path Parameters
repo_id required | integer the repository id |
cron required | string the cron job id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the cron job data
branch | string |
created_at | integer |
creator_id | integer |
id | integer |
name | string |
next_exec | integer |
repo_id | integer |
schedule | string @weekly, 3min, ... |
Responses
Request samples
- Payload
{- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
Response samples
- 200
{- "branch": "string",
- "created_at": 0,
- "creator_id": 0,
- "id": 0,
- "name": "string",
- "next_exec": 0,
- "repo_id": 0,
- "schedule": "string"
}
Get pipelines, current running and past ones
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
]
Run/trigger a pipelines
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the options for the pipeline to run
branch | string |
object |
Responses
Request samples
- Payload
{- "branch": "string",
- "variables": {
- "property1": "string",
- "property2": "string"
}
}
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Pipeline information by number
path Parameters
repo_id required | integer the repository id |
number required | integer the number of the pipeline, OR 'latest' |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Restart a pipeline
Restarts a pipeline optional with altered event, deploy or environment
path Parameters
owner required | string the repository owner's name |
name required | string the repository name |
number required | integer the number of the pipeline |
query Parameters
event | string override the event type |
deploy_to | string override the target deploy value |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Start pipelines in gated repos
path Parameters
repo_id required | integer the repository id |
number required | integer the number of the pipeline |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Pipeline configuration
path Parameters
repo_id required | integer the repository id |
number required | integer the number of the pipeline |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "data": [
- 0
], - "hash": "string",
- "name": "string"
}
]
Decline pipelines in gated repos
path Parameters
repo_id required | integer the repository id |
number required | integer the number of the pipeline |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "changed_files": [
- "string"
], - "clone_url": "string",
- "commit": "string",
- "created_at": 0,
- "deploy_to": "string",
- "enqueued_at": 0,
- "error": "string",
- "event": "push",
- "finished_at": 0,
- "id": 0,
- "link_url": "string",
- "message": "string",
- "number": 0,
- "parent": 0,
- "pr_labels": [
- "string"
], - "ref": "string",
- "refspec": "string",
- "reviewed_at": 0,
- "reviewed_by": "string",
- "sender": "string",
- "started_at": 0,
- "status": "skipped",
- "timestamp": 0,
- "title": "string",
- "updated_at": 0,
- "variables": {
- "property1": "string",
- "property2": "string"
}, - "workflows": [
- {
- "agent_id": 0,
- "children": [
- {
- "end_time": 0,
- "error": "string",
- "exit_code": 0,
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "ppid": 0,
- "start_time": 0,
- "state": "skipped",
- "type": "clone",
- "uuid": "string"
}
], - "end_time": 0,
- "environ": {
- "property1": "string",
- "property2": "string"
}, - "error": "string",
- "id": 0,
- "name": "string",
- "pid": 0,
- "pipeline_id": 0,
- "platform": "string",
- "start_time": 0,
- "state": "skipped"
}
]
}
Get the registry list
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
]
Persist/create a registry
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the new registry data
address | string |
string | |
id | integer |
password | string |
token | string |
username | string |
Responses
Request samples
- Payload
{- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
Response samples
- 200
{- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
Get a named registry
path Parameters
repo_id required | integer the repository id |
registry required | string the registry name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
Update a named registry
path Parameters
repo_id required | integer the repository id |
registry required | string the registry name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the attributes for the registry
address | string |
string | |
id | integer |
password | string |
token | string |
username | string |
Responses
Request samples
- Payload
{- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
Response samples
- 200
{- "address": "string",
- "email": "string",
- "id": 0,
- "password": "string",
- "token": "string",
- "username": "string"
}
Get the secret list
path Parameters
repo_id required | integer the repository id |
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
]
Persist/create a secret
path Parameters
repo_id required | integer the repository id |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the new secret
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Get a named secret
path Parameters
repo_id required | integer the repository id |
secretName required | string the secret name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Update a named secret
path Parameters
repo_id required | integer the repository id |
secretName required | string the secret name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the secret itself
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Get the global secret list
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
]
Persist/create a global secret
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the secret object data
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Get a global secret by name
path Parameters
secret required | string the secret's name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Update a global secret by name
path Parameters
secret required | string the secret's name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the secret's data
event | Array of strings (WebhookEvent) Items Enum: "push" "pull_request" "tag" "deployment" "cron" "manual" |
id | integer |
image | Array of strings |
name | string |
plugins_only | boolean |
value | string |
Responses
Request samples
- Payload
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Response samples
- 200
{- "event": [
- "push"
], - "id": 0,
- "image": [
- "string"
], - "name": "string",
- "plugins_only": true,
- "value": "string"
}
Returns the currently authenticated user.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
A feed entry for a build.
Feed entries can be used to display information on the latest builds.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "author": "string",
- "author_avatar": "string",
- "author_email": "string",
- "branch": "string",
- "commit": "string",
- "created_at": 0,
- "event": "string",
- "finished_at": 0,
- "id": 0,
- "message": "string",
- "number": 0,
- "ref": "string",
- "refspec": "string",
- "remote": "string",
- "repo_id": 0,
- "started_at": 0,
- "status": "string",
- "title": "string"
}
Get user's repos
Retrieve the currently authenticated User's Repository list
query Parameters
all | boolean query all repos, including inactive ones |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "active": true,
- "allow_pr": true,
- "avatar_url": "string",
- "cancel_previous_pipeline_events": [
- "push"
], - "clone_url": "string",
- "clone_url_ssh": "string",
- "config_file": "string",
- "default_branch": "string",
- "forge_remote_id": "string",
- "full_name": "string",
- "gated": true,
- "id": 0,
- "link_url": "string",
- "name": "string",
- "netrc_only_trusted": true,
- "org_id": 0,
- "owner": "string",
- "private": true,
- "scm": "git",
- "timeout": 0,
- "trusted": true,
- "visibility": "public"
}
]
Get all users
Returns all registered, active users in the system. Requires admin rights.
query Parameters
page | integer Default: 1 for response pagination, page offset number |
perPage | integer Default: 50 for response pagination, max items per page |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
[- {
- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
]
Create a user
Creates a new user account with the specified external login. Requires admin rights.
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the user's data
admin | boolean Admin indicates the user is a system administrator. NOTE: If the username is part of the WOODPECKER_ADMIN environment variable this value will be set to true on login. |
avatar_url | string the avatar url for this user. |
string Email is the email address for this user. required: true | |
id | integer the id for this user. required: true |
login | string Login is the username for this user. required: true |
org_id | integer OrgID is the of the user as model.Org. |
Responses
Request samples
- Payload
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
Response samples
- 200
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
Get a user
Returns a user with the specified login name. Requires admin rights.
path Parameters
login required | string the user's login name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Responses
Response samples
- 200
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
Change a user
Changes the data of an existing user. Requires admin rights.
path Parameters
login required | string the user's login name |
header Parameters
Authorization required | string Default: Bearer <personal access token> Insert your personal access token |
Request Body schema: application/json
the user's data
admin | boolean Admin indicates the user is a system administrator. NOTE: If the username is part of the WOODPECKER_ADMIN environment variable this value will be set to true on login. |
avatar_url | string the avatar url for this user. |
string Email is the email address for this user. required: true | |
id | integer the id for this user. required: true |
login | string Login is the username for this user. required: true |
org_id | integer OrgID is the of the user as model.Org. |
Responses
Request samples
- Payload
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}
Response samples
- 200
{- "admin": true,
- "avatar_url": "string",
- "email": "string",
- "id": 0,
- "login": "string",
- "org_id": 0
}