Skip to content

Commit c583d0d

Browse files
committed
chore: wip
1 parent a951f96 commit c583d0d

17 files changed

+761
-114
lines changed

.github/workflows/buddy-dashboard.yml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
name: Buddy Dashboard
2+
3+
on:
4+
schedule:
5+
- cron: '0 9 * * 1,3,5' # Monday, Wednesday, Friday at 9 AM UTC
6+
workflow_dispatch: # Manual triggering
7+
inputs:
8+
pin:
9+
description: Pin the dashboard issue
10+
required: false
11+
default: true
12+
type: boolean
13+
title:
14+
description: Custom dashboard title
15+
required: false
16+
type: string
17+
issue_number:
18+
description: Specific issue number to update
19+
required: false
20+
type: string
21+
verbose:
22+
description: Enable verbose logging
23+
required: false
24+
default: true
25+
type: boolean
26+
dry_run:
27+
description: Dry run (preview only)
28+
required: false
29+
default: false
30+
type: boolean
31+
32+
env:
33+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
34+
35+
permissions:
36+
contents: read
37+
pull-requests: read
38+
issues: write
39+
actions: read
40+
checks: read
41+
statuses: read
42+
43+
jobs:
44+
update-dashboard:
45+
runs-on: ubuntu-latest
46+
47+
steps:
48+
- name: Checkout repository
49+
uses: actions/checkout@v4
50+
with:
51+
token: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
52+
53+
- name: Setup Bun
54+
uses: oven-sh/setup-bun@v2
55+
with:
56+
bun-version: latest
57+
58+
- name: Setup PHP and Composer (if needed)
59+
if: ${{ hashFiles('composer.json') != '' }}
60+
uses: shivammathur/setup-php@v2
61+
with:
62+
php-version: '8.4'
63+
tools: composer
64+
coverage: none
65+
66+
- name: Install Composer dependencies (if needed)
67+
if: ${{ hashFiles('composer.json') != '' }}
68+
run: composer install --prefer-dist --optimize-autoloader
69+
70+
- name: Install dependencies
71+
run: bun install
72+
73+
- name: Build buddy-bot
74+
run: bun run build
75+
76+
- name: Update Dependency Dashboard
77+
run: |
78+
PIN="${{ github.event.inputs.pin || 'true' }}"
79+
TITLE="${{ github.event.inputs.title }}"
80+
ISSUE_NUMBER="${{ github.event.inputs.issue_number }}"
81+
VERBOSE="${{ github.event.inputs.verbose || 'true' }}"
82+
DRY_RUN="${{ github.event.inputs.dry_run || 'false' }}"
83+
84+
echo "📊 Updating dependency dashboard..."
85+
set -e
86+
87+
COMMAND="bun buddy dashboard"
88+
89+
if [ "$PIN" = "true" ]; then
90+
COMMAND="$COMMAND --pin"
91+
fi
92+
93+
if [ "$TITLE" != "" ]; then
94+
COMMAND="$COMMAND --title \"$TITLE\""
95+
fi
96+
97+
if [ "$ISSUE_NUMBER" != "" ]; then
98+
COMMAND="$COMMAND --issue-number \"$ISSUE_NUMBER\""
99+
fi
100+
101+
if [ "$VERBOSE" = "true" ]; then
102+
COMMAND="$COMMAND --verbose"
103+
fi
104+
105+
if [ "$DRY_RUN" = "true" ]; then
106+
echo "📋 DRY RUN MODE - Command preview:"
107+
echo "$COMMAND"
108+
bun buddy scan --verbose
109+
else
110+
echo "🚀 Executing: $COMMAND"
111+
eval "$COMMAND"
112+
fi
113+
114+
env:
115+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Buddy Check
2+
3+
on:
4+
schedule:
5+
- cron: '*/15 * * * *' # Check every 15 minutes
6+
workflow_dispatch: # Manual trigger
7+
inputs:
8+
dry_run:
9+
description: Dry run (preview only)
10+
required: false
11+
default: false
12+
type: boolean
13+
14+
env:
15+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
16+
17+
permissions:
18+
contents: write
19+
pull-requests: write
20+
issues: write
21+
actions: write
22+
23+
jobs:
24+
update-check:
25+
runs-on: ubuntu-latest
26+
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
with:
31+
token: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
32+
fetch-depth: 0
33+
persist-credentials: true
34+
35+
- name: Setup Bun
36+
uses: oven-sh/setup-bun@v2
37+
with:
38+
bun-version: latest
39+
40+
- name: Setup PHP and Composer (if needed)
41+
if: ${{ hashFiles('composer.json') != '' }}
42+
uses: shivammathur/setup-php@v2
43+
with:
44+
php-version: '8.4'
45+
tools: composer
46+
coverage: none
47+
48+
- name: Install Composer dependencies (if needed)
49+
if: ${{ hashFiles('composer.json') != '' }}
50+
run: composer install --prefer-dist --optimize-autoloader
51+
52+
- name: Install dependencies
53+
run: bun install
54+
55+
- name: Build buddy-bot
56+
run: bun run build
57+
58+
- name: Configure Git
59+
run: |
60+
git config --global user.name "buddy-bot[bot]"
61+
git config --global user.email "buddy-bot[bot]@users.noreply.github.com"
62+
63+
- name: Check for rebase requests
64+
run: |
65+
echo "🔍 Checking for PRs with rebase checkbox enabled..."
66+
67+
if [ "${{ github.event.inputs.dry_run }}" = "true" ]; then
68+
echo "📋 Running in DRY RUN mode..."
69+
bun buddy update-check --dry-run --verbose
70+
else
71+
echo "🔄 Running in LIVE mode..."
72+
bun buddy update-check --verbose
73+
fi
74+
75+
env:
76+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}

.github/workflows/buddy-update.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: Standard Dependency Updates
2+
3+
on:
4+
schedule:
5+
- cron: '0 9 * * 1,3,5'
6+
workflow_dispatch:
7+
inputs:
8+
strategy:
9+
description: Update strategy
10+
required: false
11+
default: patch
12+
type: choice
13+
options:
14+
- all
15+
- major
16+
- minor
17+
- patch
18+
dry_run:
19+
description: Dry run (preview only)
20+
required: false
21+
default: false
22+
type: boolean
23+
packages:
24+
description: Specific packages (comma-separated)
25+
required: false
26+
type: string
27+
verbose:
28+
description: Enable verbose logging
29+
required: false
30+
default: true
31+
type: boolean
32+
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
35+
36+
permissions:
37+
contents: write
38+
pull-requests: write
39+
issues: write
40+
actions: read
41+
checks: read
42+
statuses: read
43+
44+
jobs:
45+
dependency-updates:
46+
runs-on: ubuntu-latest
47+
48+
steps:
49+
- name: Checkout repository
50+
uses: actions/checkout@v4
51+
with:
52+
token: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}
53+
54+
- name: Setup Bun
55+
uses: oven-sh/setup-bun@v2
56+
with:
57+
bun-version: latest
58+
59+
- name: Setup PHP and Composer (if needed)
60+
if: ${{ hashFiles('composer.json') != '' }}
61+
uses: shivammathur/setup-php@v2
62+
with:
63+
php-version: '8.4'
64+
tools: composer
65+
coverage: none
66+
67+
- name: Install Composer dependencies (if needed)
68+
if: ${{ hashFiles('composer.json') != '' }}
69+
run: composer install --prefer-dist --optimize-autoloader
70+
71+
- name: Install dependencies
72+
run: bun install
73+
74+
- name: Build buddy-bot
75+
run: bun run build
76+
77+
- name: Run dependency updates
78+
run: |
79+
STRATEGY="${{ github.event.inputs.strategy || 'patch' }}"
80+
PACKAGES="${{ github.event.inputs.packages }}"
81+
VERBOSE="${{ github.event.inputs.verbose || 'true' }}"
82+
DRY_RUN="${{ github.event.inputs.dry_run || 'false' }}"
83+
84+
echo "🔍 Scanning for dependency updates..."
85+
set -e
86+
87+
if [ "$PACKAGES" != "" ]; then
88+
if [ "$VERBOSE" = "true" ]; then
89+
bun buddy scan --packages "$PACKAGES" --verbose
90+
else
91+
bun buddy scan --packages "$PACKAGES"
92+
fi
93+
else
94+
if [ "$VERBOSE" = "true" ]; then
95+
bun buddy scan --strategy "$STRATEGY" --verbose
96+
else
97+
bun buddy scan --strategy "$STRATEGY"
98+
fi
99+
fi
100+
101+
if [ "$DRY_RUN" != "true" ]; then
102+
echo "🚀 Running dependency updates..."
103+
if [ "$PACKAGES" != "" ]; then
104+
if [ "$VERBOSE" = "true" ]; then
105+
bun buddy update --packages "$PACKAGES" --verbose
106+
else
107+
bun buddy update --packages "$PACKAGES"
108+
fi
109+
else
110+
if [ "$VERBOSE" = "true" ]; then
111+
bun buddy update --strategy "$STRATEGY" --verbose
112+
else
113+
bun buddy update --strategy "$STRATEGY"
114+
fi
115+
else
116+
echo "📋 DRY RUN MODE - No changes made"
117+
fi
118+
119+
env:
120+
GITHUB_TOKEN: ${{ secrets.BUDDY_BOT_TOKEN || secrets.GITHUB_TOKEN }}

buddy-bot.config.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import type { BuddyBotConfig } from 'buddy-bot'
2+
3+
const config: BuddyBotConfig = {
4+
repository: {
5+
owner: 'stacksjs',
6+
name: 'launchpad',
7+
provider: 'github',
8+
// Uses GITHUB_TOKEN by default
9+
},
10+
dashboard: {
11+
enabled: true,
12+
title: 'Dependency Updates Dashboard',
13+
// issueNumber: undefined, // Auto-generated
14+
},
15+
workflows: {
16+
enabled: true,
17+
outputDir: '.github/workflows',
18+
templates: {
19+
daily: true,
20+
weekly: true,
21+
monthly: true,
22+
},
23+
custom: [],
24+
},
25+
packages: {
26+
strategy: 'all',
27+
ignore: [
28+
// Add packages to ignore here
29+
// Example: '@types/node', 'eslint'
30+
],
31+
},
32+
verbose: false,
33+
}
34+
35+
export default config

0 commit comments

Comments
 (0)