Pipe library / release-radar
release-radar
Chained digest of new GitHub releases and RustSec advisories. Two published pipes feed one merge.
Developer monitoring Chained
github.comrustsec.org
Sub-pipes
CLI
pipes run examples/release-radar.pipe.yaml
MCP call
{
"name": "pipe__release-radar",
"arguments": {}
}
Pipe file
examples/release-radar.pipe.yaml
pipes: 0
name: release-radar
version: 0.1.0
description: Chained digest of new GitHub releases and RustSec advisories. Two published pipes feed one merge.
permissions:
network: [github.com, rustsec.org]
inputs:
type: object
properties:
repos:
type: array
items: { type: string, pattern: "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$" }
minItems: 1
maxItems: 20
default: [tokio-rs/tokio, bytecodealliance/wasmtime]
keyword:
type: string
minLength: 2
default: wasmtime
required: [repos, keyword]
outputs:
type: object
properties:
text: { type: string }
count: { type: integer }
required: [text, count]
output:
text: "${steps.digest.text}"
count: "${steps.digest.count}"
steps:
- id: releases
block: pipe:github-releases-digest@^0.1
with:
repos: "${inputs.repos}"
- id: advisories
block: pipe:security-advisories@^0.1
with:
keyword: "${inputs.keyword}"
- id: rows
block: merge
with:
lists:
- - kind: releases
text: "${steps.releases.text}"
- - kind: advisories
text: "${steps.advisories.text}"
- id: digest
block: format
in: "${steps.rows}"
with:
header: "Release radar\n\n"
item_template: "## ${item.kind}\n${item.text}"
separator: "\n\n"
- id: print
block: emit_stdout
in: "${steps.digest.text}"
with: { format: text }