Pipe library / security-advisories
security-advisories
RustSec advisories whose title mentions a crate keyword. RustSec publishes this feed for automated readers.
Developer monitoring
rustsec.org
CLI
pipes run examples/security-advisories.pipe.yaml
MCP call
{
"name": "pipe__security-advisories",
"arguments": {}
}
Pipe file
examples/security-advisories.pipe.yaml
pipes: 0
name: security-advisories
version: 0.1.0
description: RustSec advisories whose title mentions a crate keyword. RustSec publishes this feed for automated readers.
permissions:
network: [rustsec.org]
inputs:
type: object
properties:
keyword:
type: string
minLength: 2
default: wasmtime
required: [keyword]
outputs:
type: object
properties:
text: { type: string }
count: { type: integer }
required: [text, count]
output:
text: "${steps.format.text}"
count: "${steps.format.count}"
steps:
- id: fetch
block: fetch_http
with:
url: https://rustsec.org/feed.xml
max_bytes: 800000
retry: { max: 2, backoff_ms: 500 }
timeout_ms: 15000
- id: entries
block: parse_rss
in: "${steps.fetch}"
- id: matched
block: filter
in: "${steps.entries}"
with:
where: { field: title, op: contains, value: "${inputs.keyword}" }
on_item_error: drop
- id: capped
block: limit
in: "${steps.matched}"
with: { n: 15 }
- id: new
block: diff_since_last
in: "${steps.capped}"
with:
key: [id]
compare: [id]
emit: [added]
first_run: all
- id: format
block: format
in: "${steps.new}"
with:
header: "Advisories:\n"
item_template: "- ${item.title} ${item.link}"
separator: "\n"
- id: print
block: emit_stdout
in: "${steps.format.text}"
with: { format: text }