ferminquant/openclaw-releaseops
GitHub: ferminquant/openclaw-releaseops
Stars: 0 | Forks: 0
# OpenClaw ReleaseOps
Read-only OpenClaw plugin for summarizing failed GitHub Actions deploys from
chat.
## At A Glance
| Field | Value |
| --- | --- |
| Tool | `releaseops_failed_deploy_summary` |
| Purpose | Failed deploy triage from chat |
| Source | GitHub Actions workflow runs, jobs, steps, and logs |
| Mode | Read-only local plugin |
| Install | `openclaw plugins install clawhub:@ferminquant/openclaw-releaseops` |
| Demo repo | |
| Public repo | |
## What It Returns
| Output | Description |
| --- | --- |
| Failed run | Workflow run metadata and status |
| Failed jobs | Jobs whose conclusion indicates failure or interruption |
| Failed steps | Failed step names when GitHub reports them |
| Log excerpts | Relevant, redacted log lines |
| Likely cause | First useful failure signal from steps and logs |
| Next checks | Follow-up checks for deploy triage |
| Rollback checklist | Read-only checklist stub for rollback readiness |
## What It Will Not Do
| Boundary | Status |
| --- | --- |
| Trigger deploys | No |
| Rerun workflows | No |
| Execute rollbacks | No |
| Create or mutate GitHub issues | No |
| Modify GitHub state | No |
| Require a hosted backend | No |
## Install From ClawHub
openclaw plugins install clawhub:@ferminquant/openclaw-releaseops
openclaw plugins enable releaseops
openclaw plugins inspect releaseops --runtime --json
Expected inspect signal:
| Field | Expected value |
| --- | --- |
| Plugin id | `releaseops` |
| Optional tool | `releaseops_failed_deploy_summary` |
## Try The Demo
Public demo:
| Field | Value |
| --- | --- |
| Repo | `ferminquant/releaseops-demo-failing-actions` |
| Workflow | `deploy.yml` |
| Branch | `main` |
| Failed run | |
Prompt:
Use releaseops_failed_deploy_summary to summarize failed GitHub Actions run 26300685264. Use repo ferminquant/releaseops-demo-failing-actions, workflow deploy.yml, branch main, and include the log excerpt.
Expected summary signals:
| Signal | Expected value |
| --- | --- |
| Failed job | `deploy-demo-service` |
| Failed step | `Deploy to demo environment` |
| Clearest log signal | `Simulated deploy endpoint returned HTTP 503` |
For the richest demo, make sure the Gateway can see `GITHUB_TOKEN` before
asking for log excerpts. For a no-token smoke test, change the prompt to
`includeLogExcerpt false`.
## Dedicated Agent Setup
Expose the optional tool through a dedicated ReleaseOps agent so the default
`main` agent does not inherit release/incident tools.
Add this shape to OpenClaw config:
{
agents: {
list: [
// Keep your existing agents here, then add:
{
id: "releaseops",
name: "ReleaseOps",
skills: [],
tools: {
profile: "minimal",
alsoAllow: ["releaseops_failed_deploy_summary"],
},
},
],
},
plugins: {
entries: {
releaseops: {
enabled: true,
config: {
githubTokenEnv: "GITHUB_TOKEN",
defaultRepo: "ferminquant/releaseops-demo-failing-actions",
defaultWorkflow: "deploy.yml",
defaultBranch: "main",
runbookPath: "./runbooks/rollback.md",
},
},
},
},
}
Then restart the Gateway:
openclaw gateway restart
Notes:
| Setting | Why it matters |
| --- | --- |
| `tools.alsoAllow` | Adds the optional plugin tool to the selected profile |
| `skills: []` | Keeps generic GitHub skills from competing with the ReleaseOps tool |
| `tools.allow` plus `tools.alsoAllow` | Currently rejected by OpenClaw in the same scope |
## Configure Your Repo
Replace the demo defaults:
{
plugins: {
entries: {
releaseops: {
enabled: true,
config: {
githubTokenEnv: "GITHUB_TOKEN",
defaultRepo: "owner/repo",
defaultWorkflow: "deploy.yml",
defaultBranch: "main",
runbookPath: "./runbooks/rollback.md",
},
},
},
},
}
GitHub token guidance:
| Repo type | Token guidance |
| --- | --- |
| Public repos | Can work without a token, but rate limits are lower |
| Private repos | Need read-only GitHub access |
Recommended minimum GitHub permissions:
| Permission | Level |
| --- | --- |
| Actions | read |
| Contents | read |
| Metadata | read |
If the Gateway runs as a systemd user service:
systemctl --user set-environment GITHUB_TOKEN="$(gh auth token)"
openclaw gateway restart
## Local Development
npm test
node --check index.js
node --check src/github-actions.js
node --check src/format.js
node --check src/logs.js
Local link install:
openclaw plugins install --link .
openclaw plugins enable releaseops
openclaw plugins inspect releaseops --runtime --json
## Feedback
Feedback is async and public-safe. Please do not paste secrets, private logs,
customer data, or private incident details.
| Feedback path | Link |
| --- | --- |
| Demo feedback | [Open issue](https://github.com/ferminquant/openclaw-releaseops/issues/new?template=demo-feedback.yml) |
| Missing failed-deploy context | [Open issue](https://github.com/ferminquant/openclaw-releaseops/issues/new?template=missing-context.yml) |
| Hosted beta interest | [Open issue](https://github.com/ferminquant/openclaw-releaseops/issues/new?template=hosted-beta-interest.yml) |
## Product Posture
| Principle | Direction |
| --- | --- |
| Business path | Product-led, not consulting-led |
| Validation | Useful demo/content and async feedback |
| Hosted backend | Only after validation |
Possible hosted features later:
| Possible feature | Timing |
| --- | --- |
| Scheduled failed-deploy summaries | Later, if validated |
| Saved runbooks | Later, if validated |
| Team release history | Later, if validated |
| Slack, Discord, or Telegram delivery | Later, if validated |
## More Docs
| Document | Purpose |
| --- | --- |
| [Project context](PROJECT_CONTEXT.md) | Handoff and product context |
| [Demo walkthrough](docs/demo-walkthrough.md) | Short demo script |
| [Validation plan](docs/validation-plan.md) | Passive product-led validation |
| [ClawHub publishing](docs/clawhub-publishing.md) | Publish and verification notes |
| [Public write-up draft](docs/public-writeup.md) | Shareable article draft |
| [Passive share kit](docs/share-kit.md) | Lightweight sharing copy |
标签:自定义脚本