技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 1.5k · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :可疑 · OpenClaw :可疑
Package:arnarsson/linear-webhook
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :可疑
OpenClaw 评估
The skill's stated purpose (routing Linear @mentions to agents) is plausible, but the package and runtime instructions ask for local secret files, hard-coded paths, and other credentials that are not declared in the registry metadata—this mismatch warrants caution before installing.
目的
Name/description match the code: it parses Linear comment webhooks and routes to agents. However, the registry lists no required environment variables or credentials while SKILL.md and the code require a hook token, a Linear API key, and optionally agent OAuth tokens. The code also references hard-coded paths (e.g., /home/sven/clawd-mason/..., ~/.linear_api_key) which are environment-specific and not appropriate to be undeclared.
说明范围
Runtime instructions and the transform build a task that explicitly tells operators/agents to read local secret files (cat ~/.linear_api_key) and run node -e code that requires the skill module. The code itself reads ~/.linear_api_key and ~/.config/clawdbot/linear-agent-tokens.json, and post-response.js spawns shell commands (clawdbot sessions history). These behaviors extend beyond simple webhook parsing into reading local secrets and running…
安装机制
There is no install spec (instruction-only with bundled code), so the skill does not download remote artifacts during install. That lowers install-time risk. It does assume external tools (cloudflared/tailscale, clawdbot CLI, Node.js) are present but does not install them itself.
证书
Registry metadata declares no required env vars, but SKILL.md and code require/encourage: CLAWDBOT_HOOK_TOKEN, LINEAR_API_KEY or CLAWDBOT_LINEAR_API_KEY, and possibly agent OAuth tokens stored under ~/.config. The code prefers reading secrets from disk (~/.linear_api_key), which increases risk and is disproportionate to a simple webhook transform. The skill also logs and prints task content (may include issue contents) and therefore has access…
持久
always is false (normal) and the skill does not request to alter other skills or system-wide configs. However, bundled scripts reference absolute paths and local token files, which imply assumptions about filesystem layout and persistent storage of credentials; run-time file reads grant it access to secrets in the user's home directory.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Linear Webhook」。简介:Comment @mason or @eureka in Linear issues to dispatch tasks to agents. Webhook…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/arnarsson/linear-webhook/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: linear-webhook
description: "Comment @mason or @eureka in Linear issues to dispatch tasks to agents. Webhook receives Linear comments and routes to correct agent."
---
# Linear Webhook Skill
Enables Linear issue comment @mentions to dispatch tasks to Clawdbot agents.
## How It Works
1. **Comment in Linear:** `@mason implement user authentication` or `@eureka plan Q2 roadmap`
2. **Linear webhook fires** on comment creation
3. **Clawdbot receives webhook** via exposed endpoint
4. **Transform parses payload:**
- Extracts @mason or @eureka mention
- Gets issue context (title, description, labels)
- Prepares task prompt
5. **Routes to agent session:**
- @mason → `mason` agent (code/implementation)
- @eureka → `eureka` agent (planning/strategy)
6. **Agent processes task** and returns result
7. **Result posted back** as Linear comment
## Setup
### 1. Configure Clawdbot Webhooks
Add to your `config.json5`:
```json5
{
hooks: {
enabled: true,
token: "your-secret-token-here", // Generate with: openssl rand -base64 32
path: "/hooks",
transformsDir: "/home/sven/clawd-mason/skills/linear-webhook",
mappings: [
{
name: "linear",
match: {
path: "/linear",
method: "POST"
},
action: "agent",
transform: {
module: "./linear-transform.js",
export: "transformLinearWebhook"
},
deliver: false, // Don't auto-deliver to chat - Linear comments handle responses
}
]
}
}
```
### 2. Expose Webhook Endpoint
Use Cloudflare Tunnel or Tailscale Funnel to make webhook publicly accessible:
**Option A: Cloudflare Tunnel** (Recommended)
```bash
# Install if needed
brew install cloudflared
# Start tunnel (replace with your domain)
cloudflared tunnel --url http://localhost:18789
```
**Option B: Tailscale Funnel**
```bash
# Enable funnel
tailscale funnel 18789
```
Note the public URL (e.g., `https://your-tunnel.trycloudflare.com`)
### 3. Configure Linear Webhook
1. Go to Linear Settings → API → Webhooks
2. Click "Create new webhook"
3. Set URL: `https://your-tunnel.trycloudflare.com/hooks/linear`
4. Add custom header: `x-clawdbot-token: your-secret-token-here`
5. Select events: **Comment → Created**
6. Save webhook
### 4. Test
Comment in a Linear issue:
```
@mason add user authentication to the login page
```
Expected flow:
1. Webhook fires to Clawdbot
2. Mason agent receives task
3. Mason implements or responds
4. Result posted back to Linear issue as comment
## Agent Routing
- **@mason** → Code implementation, debugging, technical tasks
- **@eureka** → Planning, strategy, research, communication
- Other mentions → Ignored (not handled)
## Issue Context Provided
The agent receives:
- Issue title
- Issue description
- Issue labels
- Comment text (the @mention)
- Issue URL
- Commenter name
## Customization
### Add More Agents
Edit `linear-transform.js`:
```javascript
const AGENT_MENTIONS = {
'@mason': 'mason',
'@eureka': 'eureka',
'@designer': 'designer', // Add your own agents
};
```
### Change Response Behavior
Modify `deliver` and `channel` in config:
```json5
{
deliver: true,
channel: "telegram",
to: "1878354815", // Your Telegram chat ID
}
```
This will also send agent responses to Telegram.
## Security
- **Never commit hook token** to version control
- Use environment variables: `CLAWDBOT_HOOK_TOKEN`
- Verify webhook source (Linear's IP ranges if needed)
- Use HTTPS only (Cloudflare Tunnel provides this)
## Troubleshooting
### Webhook not firing
- Check Linear webhook logs (Settings → API → Webhooks → View logs)
- Verify tunnel is running: `curl https://your-tunnel.trycloudflare.com/hooks/linear`
- Check Clawdbot logs: `clawdbot gateway logs`
### Agent not responding
- Check transform is loading: Look for errors in gateway logs
- Verify agent session exists: `clawdbot sessions list`
- Test transform manually: `node linear-transform.js`
### Response not posting to Linear
- Implement Linear API comment posting in transform
- Add Linear API token to config
- See `linear-transform.js` for example
## Linear API Access
To post comments back to Linear, you need a Linear API token:
1. Go to Linear Settings → API → Personal API keys
2. Create new token with `write` scope
3. Add to environment: `CLAWDBOT_LINEAR_API_KEY=lin_api_...`
4. Transform will use this to post responses
## Files
- `SKILL.md` - This documentation
- `linear-transform.js` - Webhook payload parser and agent router
- `linear-api.js` - Linear GraphQL API client (for posting comments)
- `example-payload.json` - Sample Linear webhook payload for testing
## References
- [Clawdbot Webhook Docs](/automation/webhook)
- [Linear Webhooks API](https://developers.linear.app/docs/graphql/webhooks)
- [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/)