Skip to content

test(relay): say host, not burrow, where config means a hostname #979

test(relay): say host, not burrow, where config means a hostname

test(relay): say host, not burrow, where config means a hostname #979

Workflow file for this run

# Generated by tend 0.1.24. Regenerate with: uvx tend@latest init
#
# Do not edit this file directly — it will be overwritten on regeneration.
# To customize behavior, edit the relevant skill (for example,
# `running-tend`) in this repo's .claude/skills/ directory, or open an issue at
# https://github.com/max-sixty/tend/issues for changes that need to
# happen upstream in the tend-ci-runner plugin.
name: tend-review
on:
pull_request_target:
types: [opened, synchronize, ready_for_review, reopened]
jobs:
review:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
# Preserve pending PR events within GitHub's queue limit: a push must not
# replace a ready-for-review run. Runs stay serial so outward actions
# cannot race. An override setting `cancel-in-progress: true` must set
# `queue: null` too — GitHub rejects the pair as an invalid workflow file.
queue: max
cancel-in-progress: false
runs-on: ubuntu-24.04
environment:
name: tend
deployment: false
permissions:
contents: write
pull-requests: write
actions: read
issues: write
steps:
- name: React with eyes
run: |
gh api "repos/$REPO/$TARGET/reactions" -f content=eyes --silent \
|| echo "::warning::could not add the eyes reaction"
env:
REPO: ${{ github.repository }}
TARGET: issues/${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.TEND_BOT_TOKEN }}
# GitHub only materializes refs/pull/N/merge for mergeable PRs — on
# conflicting PRs it 404s and every downstream step cascades as skipped.
# Probe first and fall back to /head so review always runs; on fallback
# the review sees the PR branch in isolation rather than the post-merge
# tree.
- name: Resolve PR checkout ref
id: pr_ref
env:
GITHUB_TOKEN: ${{ secrets.TEND_BOT_TOKEN }}
PR: ${{ github.event.pull_request.number }}
run: |
if gh api "repos/${{ github.repository }}/git/ref/pull/$PR/merge" --silent 2>/dev/null; then
echo "ref=refs/pull/$PR/merge" >> "$GITHUB_OUTPUT"
else
echo "ref=refs/pull/$PR/head" >> "$GITHUB_OUTPUT"
echo "::notice::refs/pull/$PR/merge unavailable (likely merge conflict); falling back to /head"
fi
- uses: actions/checkout@v7
with:
ref: ${{ steps.pr_ref.outputs.ref }}
allow-unsafe-pr-checkout: true
fetch-depth: 0
fetch-tags: true
token: ${{ secrets.TEND_BOT_TOKEN }}
- uses: max-sixty/tend/claude@0.1.24
with:
github_token: ${{ secrets.TEND_BOT_TOKEN }}
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
bot_name: dormouse-bot
model: opus
prompt: |2
/tend-ci-runner:review ${{ github.event.pull_request.number }}
- name: Remove the eyes reaction
if: always()
run: |
REACTION_ID=$(gh api --paginate \
"repos/$REPO/$TARGET/reactions?content=eyes&per_page=100" \
--jq ".[] | select(.user.login == \"$BOT_NAME\") | .id" | head -n1)
if [ -n "$REACTION_ID" ]; then
gh api -X DELETE "repos/$REPO/$TARGET/reactions/$REACTION_ID" --silent \
|| echo "::warning::could not remove the eyes reaction"
fi
env:
REPO: ${{ github.repository }}
TARGET: issues/${{ github.event.pull_request.number }}
BOT_NAME: dormouse-bot
GITHUB_TOKEN: ${{ secrets.TEND_BOT_TOKEN }}