screwdriver-api
Version:
API server for the Screwdriver.cd service
96 lines (68 loc) • 2.42 kB
Markdown
# Banners Plugin
> API banners plugin for the Screwdriver API
## Usage
### Register plugin
```javascript
const Hapi = require('@hapi/hapi');
const server = new Hapi.Server();
const bannersPlugin = require('./');
server.connection({ port: 3000 });
server.register({
register: bannersPlugin,
options: {}
}, () => {
server.start((err) => {
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});
});
```
### Routes
#### Create a banner
`POST /banners`
**Arguments**
* `message` - Text of the banner to create.
* `type` - An optional banner type. Options are `info` and `warn`. Defaults to `info`
* `isActive` - An optional status flag to indicate whether banner should display. Defaults to `false`
* `scope` - An optional scope type that specifies whether the banner should be displayed globally or limited to the affected pipelines or builds. Accepted values are `GLOBAL`, `PIPELINE`, and `BUILD`, with `GLOBAL` as the default.
* `scopeId` - A required field when the scope is set to `PIPELINE` or `BUILD`, serving as a reference to the corresponding pipeline or build ID.
Example payload:
```json
{
"message": "The Screwdriver Team is currently investigating random failures.",
"type": "info",
"isActive": "true",
"scope": "PIPELINE",
"scopeId": "12345"
}
```
#### Get a listing of all banners
Query Params:
* `scope` - *Optional* Returns banners for a specific scope
* `scopeId` - *Optional* Filters by a specific scope ID
* `createdBy` - *Optional* Filters banners created by a specific user
* `type` - *Optional* Filters by banner type
* `isActive` - *Optional* Accepts true or false to filter active or inactive banners
`GET /banners`
`GET /banners?scope=GLOBAL&isActive=true&type=info`
`GET /banners?scope=PIPELINE&scopeId=12345&isActive=true&type=info`
#### Get a specific banner
`GET /banners/{id}`
#### Update a specific banner
`PUT /banners/{id}`
**Arguments**
* `message` - An optional new string of text for the banner.
* `type` - An optional new banner type. Options are `info` and `warn`
* `isActive` - An optional new status flag to indicate whether banner should display.
Example payload:
```json
{
"message": "The Screwdriver Team has resolved the random failure issue.",
"type": "info",
"isActive": "true"
}
```
#### Delete a specific banner
`DELETE /banners/{id}`