Skip to content

Commit 32df77c

Browse files
fix(ci): re-enable finishingbot/seambot/rhodibot via gitbot-fleet (Refs #37) (#42)
## Summary Re-enables the three bot checks disabled in #36. They were permanent false-red because they cloned **phantom repos** (`hyperpolymath/finishing-bot`, `/seambot`, `/rhodibot`) that never existed. The bots actually live in **`hyperpolymath/gitbot-fleet`** under `bots/`. Each workflow now: clones `gitbot-fleet` at a **pinned commit** (partial clone + checkout SHA), builds the specific bot crate, runs the **correct binary**, then the `if: false` guard is removed. | Bot | Root cause fixed | Invocation | |---|---|---| | finishingbot | phantom clone **+ wrong binary name** (`finishingbot` → crate binary is `finishing-bot`) | `finishing-bot --path "$GITHUB_WORKSPACE" audit` | | seambot | phantom clone | `seambot check` (keeps the `spec/seams/seam-register.json` guard) | | rhodibot | phantom clone **+ rhodibot had no CLI** (was webhook-server-only) | `rhodibot check --owner --repo`, built-in read-only `GITHUB_TOKEN` (public repo, no PAT) | ## Dependency rhodibot needs the new `rhodibot check` subcommand added in **hyperpolymath/gitbot-fleet#150**. The pinned ref is currently that PR's branch HEAD (`2e0ea3ca67821a91e650f51bf48a6cfd1c7aae1c`); it will be **bumped to the post-merge `main` SHA** once #150 lands. Do not merge this before that bump. ## Tracking `Refs #37`. Native sub-issues: #39 (seambot), #40 (finishingbot — binary-name bug), #41 (rhodibot — blocked on gitbot-fleet#150). Per estate workflow, #37 closes only on explicit joint agreement. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent df21dba commit 32df77c

3 files changed

Lines changed: 80 additions & 41 deletions

File tree

.github/workflows/finishingbot.yml

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Finishingbot - Release readiness validation
3-
# Part of gitbot-fleet
3+
# Part of gitbot-fleet (hyperpolymath/gitbot-fleet :: bots/finishingbot)
44

55
name: Finishingbot Release Check
66

@@ -14,12 +14,12 @@ on:
1414
branches: [main]
1515
workflow_dispatch:
1616

17+
env:
18+
# Pinned gitbot-fleet commit. Bump in lockstep when the fleet changes.
19+
GITBOT_FLEET_REF: 2e0ea3ca67821a91e650f51bf48a6cfd1c7aae1c
20+
1721
jobs:
1822
release-readiness:
19-
# TODO: disabled — hyperpolymath/finishing-bot does not exist yet
20-
# (the clone step targets a phantom repo, so this can never pass).
21-
# Re-enable (remove `if: false`) once the bot repo is created/restored.
22-
if: false
2323
runs-on: ubuntu-latest
2424
steps:
2525
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
@@ -31,19 +31,29 @@ jobs:
3131

3232
- name: Cache dependencies
3333
uses: Swatinem/rust-cache@ad397744b0d591a723ab90405b7247fac0e6b8db # v2
34+
with:
35+
workspaces: ${{ runner.temp }}/gitbot-fleet/bots/finishingbot
3436

35-
- name: Clone finishing-bot
37+
- name: Fetch gitbot-fleet at pinned ref
3638
run: |
37-
git clone https://github.com/hyperpolymath/finishing-bot.git /tmp/finishing-bot
38-
cd /tmp/finishing-bot
39-
cargo build --release
39+
git clone --no-checkout --filter=tree:0 \
40+
https://github.com/hyperpolymath/gitbot-fleet.git \
41+
"$RUNNER_TEMP/gitbot-fleet"
42+
git -C "$RUNNER_TEMP/gitbot-fleet" checkout "$GITBOT_FLEET_REF"
43+
44+
- name: Build finishingbot
45+
working-directory: ${{ runner.temp }}/gitbot-fleet/bots/finishingbot
46+
env:
47+
OPENSSL_NO_VENDOR: 1
48+
run: cargo build --release
4049

4150
- name: Run finishingbot audit
4251
id: finishingbot
4352
continue-on-error: true
4453
run: |
45-
cd ${{ github.workspace }}
46-
/tmp/finishing-bot/target/release/finishingbot audit > finishingbot-results.txt 2>&1
54+
# The finishingbot crate's binary is `finishing-bot` (hyphenated).
55+
"$RUNNER_TEMP/gitbot-fleet/bots/finishingbot/target/release/finishing-bot" \
56+
--path "$GITHUB_WORKSPACE" audit > finishingbot-results.txt 2>&1
4757
echo $? > finishingbot-exit-code.txt
4858
4959
- name: Display results

.github/workflows/rhodibot.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Rhodibot - RSR compliance checking
3-
# Part of gitbot-fleet
3+
# Part of gitbot-fleet (hyperpolymath/gitbot-fleet :: bots/rhodibot)
44

55
name: Rhodibot RSR Compliance
66

@@ -14,12 +14,13 @@ on:
1414
branches: [main]
1515
workflow_dispatch:
1616

17+
env:
18+
# Pinned gitbot-fleet commit. Must include the `rhodibot check` CLI
19+
# subcommand (gitbot-fleet#150). Bump in lockstep when the fleet changes.
20+
GITBOT_FLEET_REF: 2e0ea3ca67821a91e650f51bf48a6cfd1c7aae1c
21+
1722
jobs:
1823
rsr-compliance:
19-
# TODO: disabled — hyperpolymath/rhodibot does not exist yet
20-
# (the clone step targets a phantom repo, so this can never pass).
21-
# Re-enable (remove `if: false`) once the bot repo is created/restored.
22-
if: false
2324
runs-on: ubuntu-latest
2425
steps:
2526
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
@@ -31,20 +32,34 @@ jobs:
3132

3233
- name: Cache dependencies
3334
uses: Swatinem/rust-cache@ad397744b0d591a723ab90405b7247fac0e6b8db # v2
35+
with:
36+
workspaces: ${{ runner.temp }}/gitbot-fleet/bots/rhodibot
3437

35-
- name: Clone rhodibot
38+
- name: Fetch gitbot-fleet at pinned ref
3639
run: |
37-
git clone https://github.com/hyperpolymath/rhodibot.git /tmp/rhodibot
38-
cd /tmp/rhodibot
39-
cargo build --release
40+
git clone --no-checkout --filter=tree:0 \
41+
https://github.com/hyperpolymath/gitbot-fleet.git \
42+
"$RUNNER_TEMP/gitbot-fleet"
43+
git -C "$RUNNER_TEMP/gitbot-fleet" checkout "$GITBOT_FLEET_REF"
44+
45+
- name: Build rhodibot
46+
working-directory: ${{ runner.temp }}/gitbot-fleet/bots/rhodibot
47+
env:
48+
OPENSSL_NO_VENDOR: 1
49+
run: cargo build --release
4050

4151
- name: Run rhodibot check
4252
id: rhodibot
4353
continue-on-error: true
54+
env:
55+
# Public-repo read via the GitHub REST API; the built-in,
56+
# read-only workflow token is sufficient (no PAT needed).
57+
GITHUB_TOKEN: ${{ github.token }}
4458
run: |
45-
/tmp/rhodibot/target/release/rhodibot check \
46-
--owner ${{ github.repository_owner }} \
47-
--repo ${{ github.event.repository.name }} > rhodibot-results.txt 2>&1
59+
"$RUNNER_TEMP/gitbot-fleet/bots/rhodibot/target/release/rhodibot" check \
60+
--owner "${{ github.repository_owner }}" \
61+
--repo "${{ github.event.repository.name }}" \
62+
> rhodibot-results.txt 2>&1
4863
echo $? > rhodibot-exit-code.txt
4964
5065
- name: Display results

.github/workflows/seambot.yml

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Seambot - Seam hygiene and integration health
3-
# Part of gitbot-fleet
3+
# Part of gitbot-fleet (hyperpolymath/gitbot-fleet :: bots/seambot)
44

55
name: Seambot Integration Health
66

@@ -14,45 +14,59 @@ on:
1414
branches: [main]
1515
workflow_dispatch:
1616

17+
env:
18+
# Pinned gitbot-fleet commit. Bump in lockstep when the fleet changes.
19+
GITBOT_FLEET_REF: 2e0ea3ca67821a91e650f51bf48a6cfd1c7aae1c
20+
1721
jobs:
1822
seam-health:
19-
# TODO: disabled — hyperpolymath/seambot does not exist yet
20-
# (the clone step targets a phantom repo, so this can never pass).
21-
# Re-enable (remove `if: false`) once the bot repo is created/restored.
22-
if: false
2323
runs-on: ubuntu-latest
2424
steps:
2525
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
2626

27+
- name: Check for seam register
28+
id: check-seam
29+
run: |
30+
if [ -f spec/seams/seam-register.json ]; then
31+
echo "has_seam=true" >> $GITHUB_OUTPUT
32+
else
33+
echo "has_seam=false" >> $GITHUB_OUTPUT
34+
fi
35+
2736
- name: Setup Rust toolchain
37+
if: steps.check-seam.outputs.has_seam == 'true'
2838
uses: dtolnay/rust-toolchain@6d9817901c499d6b02debbb57edb38d33daa680b # stable
2939
with:
3040
toolchain: stable
3141

3242
- name: Cache dependencies
43+
if: steps.check-seam.outputs.has_seam == 'true'
3344
uses: Swatinem/rust-cache@ad397744b0d591a723ab90405b7247fac0e6b8db # v2
45+
with:
46+
workspaces: ${{ runner.temp }}/gitbot-fleet/bots/seambot
3447

35-
- name: Clone seambot
48+
- name: Fetch gitbot-fleet at pinned ref
49+
if: steps.check-seam.outputs.has_seam == 'true'
3650
run: |
37-
git clone https://github.com/hyperpolymath/seambot.git /tmp/seambot
38-
cd /tmp/seambot
39-
cargo build --release
51+
git clone --no-checkout --filter=tree:0 \
52+
https://github.com/hyperpolymath/gitbot-fleet.git \
53+
"$RUNNER_TEMP/gitbot-fleet"
54+
git -C "$RUNNER_TEMP/gitbot-fleet" checkout "$GITBOT_FLEET_REF"
4055
41-
- name: Check for seam register
42-
id: check-seam
43-
run: |
44-
if [ -f spec/seams/seam-register.json ]; then
45-
echo "has_seam=true" >> $GITHUB_OUTPUT
46-
else
47-
echo "has_seam=false" >> $GITHUB_OUTPUT
48-
fi
56+
- name: Build seambot
57+
if: steps.check-seam.outputs.has_seam == 'true'
58+
working-directory: ${{ runner.temp }}/gitbot-fleet/bots/seambot
59+
env:
60+
OPENSSL_NO_VENDOR: 1
61+
run: cargo build --release
4962

5063
- name: Run seambot check
5164
if: steps.check-seam.outputs.has_seam == 'true'
5265
id: seambot
5366
continue-on-error: true
5467
run: |
55-
/tmp/seambot/target/release/seambot check > seambot-results.txt 2>&1
68+
"$RUNNER_TEMP/gitbot-fleet/bots/seambot/target/release/seambot" check \
69+
> seambot-results.txt 2>&1
5670
echo $? > seambot-exit-code.txt
5771
5872
- name: Display results

0 commit comments

Comments
 (0)