fix(ci): fix workflow errors + add OpenClaw support (#222)
This commit is contained in:
10
.github/workflows/pr-issue-auto-close.yml
vendored
10
.github/workflows/pr-issue-auto-close.yml
vendored
@@ -121,15 +121,7 @@ jobs:
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: parseInt(issueNumber),
|
||||
body: `Completed via PR #${prNumber}
|
||||
|
||||
PR: ${prTitle}
|
||||
URL: ${prUrl}
|
||||
Merged by: ${merger}
|
||||
|
||||
This issue has been resolved and the changes have been merged into main.
|
||||
|
||||
Automatically closed via PR merge automation`
|
||||
body: `Completed via PR #${prNumber}\n\nPR: ${prTitle}\nURL: ${prUrl}\nMerged by: ${merger}\n\nThis issue has been resolved and the changes have been merged into main.\n\nAutomatically closed via PR merge automation`
|
||||
});
|
||||
|
||||
// Close the issue
|
||||
|
||||
14
.github/workflows/smart-sync.yml
vendored
14
.github/workflows/smart-sync.yml
vendored
@@ -4,12 +4,10 @@ name: Smart Bidirectional Sync
|
||||
'on':
|
||||
issues:
|
||||
types: [labeled, closed, reopened]
|
||||
projects_v2_item:
|
||||
types: [edited]
|
||||
|
||||
# Prevent sync loops with debouncing
|
||||
concurrency:
|
||||
group: smart-sync-${{ github.event.issue.number || github.event.projects_v2_item.node_id }}
|
||||
group: smart-sync-${{ github.event.issue.number }}
|
||||
cancel-in-progress: true # Cancel pending runs (debouncing effect)
|
||||
|
||||
jobs:
|
||||
@@ -59,12 +57,6 @@ jobs:
|
||||
echo "⏭️ Skipping: Not a status change or state change"
|
||||
fi
|
||||
|
||||
elif [ "${{ github.event_name }}" = "projects_v2_item" ]; then
|
||||
# Project event → sync to issue
|
||||
echo "direction=project-to-issue" >> $GITHUB_OUTPUT
|
||||
echo "should_sync=true" >> $GITHUB_OUTPUT
|
||||
echo "✅ Will sync: Project Board → Issue"
|
||||
|
||||
else
|
||||
echo "should_sync=false" >> $GITHUB_OUTPUT
|
||||
echo "⚠️ Unknown event type"
|
||||
@@ -147,9 +139,10 @@ jobs:
|
||||
- name: Sync Issue to Project Board
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PROJECTS_TOKEN }}
|
||||
ISSUE_TITLE: ${{ github.event.issue.title }}
|
||||
run: |
|
||||
echo "# Issue → Project Board Sync"
|
||||
echo "**Issue**: #${{ github.event.issue.number }} \"${{ github.event.issue.title }}\""
|
||||
echo "**Issue**: #${{ github.event.issue.number }} \"$ISSUE_TITLE\""
|
||||
echo "**State**: ${{ github.event.issue.state }}"
|
||||
echo "**Action**: ${{ github.event.action }}"
|
||||
|
||||
@@ -288,6 +281,7 @@ jobs:
|
||||
- name: Sync Project Board to Issue
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PROJECTS_TOKEN }}
|
||||
ISSUE_TITLE: ${{ github.event.issue.title }}
|
||||
run: |
|
||||
echo "# Project Board → Issue Sync"
|
||||
echo "**Project Item**: ${{ github.event.projects_v2_item.node_id }}"
|
||||
|
||||
33
README.md
33
README.md
@@ -72,6 +72,39 @@ cd claude-skills
|
||||
|
||||
**See:** [How to Use with OpenAI Codex](#-how-to-use-with-openai-codex) for detailed guide.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Method 3: OpenClaw Installation
|
||||
|
||||
For [OpenClaw](https://openclaw.ai) users — skills use the same `SKILL.md` format, so all 66 skills work out of the box.
|
||||
|
||||
```bash
|
||||
# Clone the repo
|
||||
git clone https://github.com/alirezarezvani/claude-skills.git
|
||||
cd claude-skills
|
||||
|
||||
# Run the OpenClaw installer (symlinks all skills into ~/.openclaw/workspace/skills/)
|
||||
./scripts/openclaw-install.sh
|
||||
|
||||
# Restart the gateway to pick up new skills
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
Or preview first with `--dry-run`:
|
||||
|
||||
```bash
|
||||
./scripts/openclaw-install.sh --dry-run
|
||||
```
|
||||
|
||||
**Benefits:**
|
||||
- ✅ All 66 skills instantly available in OpenClaw
|
||||
- ✅ Live-linked — `git pull` updates skills automatically
|
||||
- ✅ No manual copying needed
|
||||
- ✅ Skills appear in `/skills list` immediately after gateway restart
|
||||
|
||||
> **Also available on [clawhub.com](https://clawhub.com)** — search for `alirezarezvani` to install individual skills via the ClawHub CLI (`openclaw skill install <name>`).
|
||||
|
||||
---
|
||||
|
||||
### Method 3: Universal Installer (Works across all agents)
|
||||
|
||||
44
scripts/openclaw-install.sh
Executable file
44
scripts/openclaw-install.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install claude-skills into OpenClaw's workspace skills directory
|
||||
# Usage: ./scripts/openclaw-install.sh [--dry-run]
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SKILLS_DIR="${HOME}/.openclaw/workspace/skills"
|
||||
REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
DRY_RUN=false
|
||||
|
||||
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=true
|
||||
|
||||
# Find all SKILL.md files and install each skill
|
||||
installed=0
|
||||
skipped=0
|
||||
|
||||
while IFS= read -r skill_md; do
|
||||
skill_dir="$(dirname "$skill_md")"
|
||||
skill_name="$(basename "$skill_dir")"
|
||||
target="${SKILLS_DIR}/${skill_name}"
|
||||
|
||||
if [[ -e "$target" ]]; then
|
||||
skipped=$((skipped + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
if $DRY_RUN; then
|
||||
echo " [dry-run] would install: $skill_name"
|
||||
else
|
||||
mkdir -p "$SKILLS_DIR"
|
||||
ln -sf "$skill_dir" "$target"
|
||||
echo " ✅ installed: $skill_name"
|
||||
fi
|
||||
installed=$((installed + 1))
|
||||
done < <(find "$REPO_DIR" -name "SKILL.md" -not -path "*/.git/*")
|
||||
|
||||
if $DRY_RUN; then
|
||||
echo ""
|
||||
echo "Dry run complete. Would install $installed skill(s). ($skipped already exist)"
|
||||
else
|
||||
echo ""
|
||||
echo "Done. Installed $installed skill(s). ($skipped already existed)"
|
||||
echo "Restart OpenClaw (openclaw gateway restart) to pick up new skills."
|
||||
fi
|
||||
Reference in New Issue
Block a user