Files
moltbot/.github/workflows/clawsweeper-dispatch.yml
2026-04-28 06:48:29 +01:00

55 lines
2.1 KiB
YAML

name: ClawSweeper Dispatch
on:
issues:
types: [opened, reopened, edited, labeled, unlabeled]
pull_request_target:
types: [opened, reopened, synchronize, ready_for_review, edited, labeled, unlabeled]
permissions:
contents: read
jobs:
dispatch:
runs-on: ubuntu-latest
env:
CLAWSWEEPER_APP_ID: ${{ secrets.CLAWSWEEPER_APP_ID }}
CLAWSWEEPER_APP_PRIVATE_KEY: ${{ secrets.CLAWSWEEPER_APP_PRIVATE_KEY }}
steps:
- name: Check ClawSweeper app credentials
id: clawsweeper-credentials
run: |
if [ -n "$CLAWSWEEPER_APP_ID" ] && [ -n "$CLAWSWEEPER_APP_PRIVATE_KEY" ]; then
echo "configured=true" >> "$GITHUB_OUTPUT"
else
echo "configured=false" >> "$GITHUB_OUTPUT"
echo "ClawSweeper app credentials are not configured; skipping dispatch."
fi
- name: Create ClawSweeper dispatch token
if: steps.clawsweeper-credentials.outputs.configured == 'true'
id: token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ env.CLAWSWEEPER_APP_ID }}
private-key: ${{ env.CLAWSWEEPER_APP_PRIVATE_KEY }}
owner: openclaw
repositories: clawsweeper
- name: Dispatch exact ClawSweeper review
if: steps.clawsweeper-credentials.outputs.configured == 'true'
env:
GH_TOKEN: ${{ steps.token.outputs.token }}
TARGET_REPO: ${{ github.repository }}
ITEM_NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }}
ITEM_KIND: ${{ github.event_name == 'pull_request_target' && 'pull_request' || 'issue' }}
run: |
payload="$(jq -nc \
--arg target_repo "$TARGET_REPO" \
--argjson item_number "$ITEM_NUMBER" \
--arg item_kind "$ITEM_KIND" \
'{event_type:"clawsweeper_item",client_payload:{target_repo:$target_repo,item_number:$item_number,item_kind:$item_kind}}')"
gh api repos/openclaw/clawsweeper/dispatches \
--method POST \
--input - <<< "$payload"