Skip to content

Commit 5c57ada

Browse files
feat: setup patch-pulse action to run on this repo
1 parent 3962903 commit 5c57ada

17 files changed

Lines changed: 1166 additions & 104 deletions

File tree

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ What you expected to happen.
1919
**Project**
2020

2121
- [ ] CLI
22+
- [ ] GitHub Action
2223
- [ ] Slack bot
2324
- [ ] VS Code extension
2425

2526
**Environment**
2627

27-
- Tool (Slack bot / CLI / VS Code extension):
28+
- Tool (CLI / GitHub Action / Slack bot / VS Code extension):
2829
- Version (if applicable):
2930
- OS (if applicable):
3031

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ labels: enhancement
77
**Project**
88

99
- [ ] CLI
10+
- [ ] GitHub Action
1011
- [ ] Slack bot
1112
- [ ] VS Code extension
1213

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: PatchPulse Dependency Bot
2+
3+
on:
4+
schedule:
5+
- cron: '0 4 * * *' # Every day at 04:00 UTC (06:00 GMT+2)
6+
workflow_dispatch:
7+
8+
jobs:
9+
patch-pulse:
10+
name: Open dependency update PRs
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
pull-requests: write
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- uses: pnpm/action-setup@v4
22+
23+
- uses: actions/setup-node@v4
24+
with:
25+
node-version: 22
26+
cache: pnpm
27+
28+
- name: Install dependencies
29+
run: pnpm install --frozen-lockfile
30+
31+
- name: Build action
32+
run: pnpm --filter @patch-pulse/action build
33+
34+
- uses: ./packages/action
35+
with:
36+
github-token: ${{ secrets.GITHUB_TOKEN }}
37+
update-types: 'patch,minor,major'
38+
auto-merge: 'patch'
39+
assignees: '["barrymichaeldoyle"]'
40+
reviewers: '["barrymichaeldoyle"]'
41+
commit-message-prefix: 'chore(deps):'

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,15 @@
3737
"format:check": "pnpm exec oxfmt --check . '!packages/docs/.astro/**' '!packages/*/convex/_generated/**' '!packages/action/dist/**'",
3838
"format:changed": "node scripts/format-changed.mjs",
3939
"format:staged": "node scripts/format-staged.mjs",
40-
"ci:check": "pnpm lint && pnpm format:check && pnpm knip && pnpm typecheck && pnpm test:shared && pnpm test:cli && pnpm test:notifier && pnpm build:cli && pnpm build:action && pnpm build:vscode-extension && pnpm build:docs",
40+
"ci:check": "pnpm lint && pnpm format:check && pnpm knip && pnpm typecheck && pnpm test:shared && pnpm test:cli && pnpm test:notifier && pnpm test:action && pnpm build:cli && pnpm build:action && pnpm build:vscode-extension && pnpm build:docs",
4141
"knip": "pnpm exec knip",
4242
"lint": "pnpm exec oxlint .",
4343
"lint:fix": "pnpm exec oxlint --fix .",
44+
"test:action": "pnpm --filter @patch-pulse/action test",
4445
"test:cli": "pnpm --filter patch-pulse test:run",
4546
"test:notifier": "pnpm --filter @patch-pulse/notifier-bot test",
4647
"test:shared": "pnpm --filter @patch-pulse/shared test",
47-
"test": "pnpm run test:shared && pnpm run test:cli && pnpm run test:notifier",
48+
"test": "pnpm run test:shared && pnpm run test:cli && pnpm run test:notifier && pnpm run test:action",
4849
"typecheck": "pnpm --filter patch-pulse typecheck && pnpm --filter @patch-pulse/notifier-bot typecheck && pnpm --filter @patch-pulse/action typecheck",
4950
"changeset": "changeset",
5051
"changeset:version": "changeset version && pnpm --filter patch-pulse exec node scripts/generate-version.cjs",

packages/action/action.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,42 @@ inputs:
1818
description: 'JSON object mapping group names to arrays of package names that should be updated together'
1919
required: false
2020
default: '{}'
21+
ignore:
22+
description: 'JSON array of package names or glob patterns to never open PRs for (e.g. ["lodash", "@types/*"])'
23+
required: false
24+
default: '[]'
2125
auto-merge:
22-
description: 'Automatically merge PRs at or below this update type (patch, minor, or none)'
26+
description: 'Automatically merge PRs at or below this update type once CI passes (patch, minor, or none)'
2327
required: false
2428
default: 'none'
29+
max-open-prs:
30+
description: 'Maximum number of open patch-pulse PRs at any time. 0 = unlimited.'
31+
required: false
32+
default: '10'
33+
assignees:
34+
description: 'JSON array of GitHub usernames to assign to opened PRs (e.g. ["alice", "bob"])'
35+
required: false
36+
default: '[]'
37+
reviewers:
38+
description: 'JSON array of GitHub usernames to request as reviewers (e.g. ["alice", "bob"])'
39+
required: false
40+
default: '[]'
41+
team-reviewers:
42+
description: 'JSON array of team slugs to request as reviewers (e.g. ["my-org/frontend"])'
43+
required: false
44+
default: '[]'
45+
commit-message-prefix:
46+
description: 'Prefix for commit messages and PR titles'
47+
required: false
48+
default: 'chore(deps):'
2549
working-directory:
2650
description: 'Working directory to run patch-pulse in'
2751
required: false
2852
default: '.'
53+
dry-run:
54+
description: 'Log what would happen without making any changes (no branches, commits, or PRs)'
55+
required: false
56+
default: 'false'
2957

3058
runs:
3159
using: 'node20'

0 commit comments

Comments
 (0)