Skip to content

Commit bf922af

Browse files
authored
feat: auto update dependancy (#34)
1 parent 7f987ec commit bf922af

5 files changed

Lines changed: 134 additions & 0 deletions

File tree

.github/workflows/actionlint.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Actionlint
2+
3+
on:
4+
pull_request:
5+
branches: [master]
6+
push:
7+
branches: [master]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
actionlint:
14+
name: Lint GitHub Workflows
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Run actionlint
22+
uses: reviewdog/action-actionlint@v1

.github/workflows/pr-title.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: PR Title Check
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, edited, reopened, synchronize]
6+
branches: [master]
7+
8+
permissions:
9+
pull-requests: read
10+
11+
jobs:
12+
semantic-pr-title:
13+
name: Validate PR Title
14+
if: github.event.pull_request.user.login != 'renovate[bot]' && github.event.pull_request.user.login != 'dependabot[bot]'
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Check PR title follows Conventional Commits
19+
uses: amannn/action-semantic-pull-request@v5
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22+
with:
23+
types: |
24+
feat
25+
fix
26+
chore
27+
docs
28+
refactor
29+
test
30+
build
31+
ci
32+
perf
33+
revert

.github/workflows/renovate.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Renovate
2+
3+
on:
4+
schedule:
5+
- cron: '0 5 * * 1'
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
issues: write
12+
13+
jobs:
14+
renovate:
15+
name: Run Renovate Bot
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v4
21+
22+
- name: Run Renovate
23+
uses: renovatebot/github-action@v41
24+
with:
25+
configurationFile: renovate.json
26+
token: ${{ secrets.RENOVATE_TOKEN || secrets.GITHUB_TOKEN }}

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,23 @@ The CLI uses pinned, tested versions for all dependencies:
107107
| Playwright | ^1.49.1 |
108108
| TypeScript | ^5.7.2 |
109109

110+
## Automated dependency updates
111+
112+
This repo now uses Renovate to auto-update dependencies (including template manifests under `src/templates/overlays/**/manifest.json`) on a weekly schedule.
113+
114+
### One-time setup
115+
116+
1. Create a fine-grained GitHub PAT with repository `contents`, `pull requests`, and `issues` write access.
117+
2. Add it as repository secret: `RENOVATE_TOKEN`.
118+
3. Enable repository auto-merge in GitHub settings.
119+
4. Protect `master` and require CI checks before merge.
120+
121+
Workflow file: `.github/workflows/renovate.yml`
122+
Config file: `renovate.json`
123+
124+
Behavior:
125+
- All dependency updates (major, minor, patch) auto-merge after checks pass.
126+
110127
## Screenshot
111128

112129
<img width="709" height="1047" alt="image" src="https://github.com/user-attachments/assets/dc8956a9-473b-4001-8c2d-0b3b54f29583" />

renovate.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": ["config:recommended"],
4+
"labels": ["dependencies"],
5+
"schedule": ["before 6am on monday"],
6+
"rangeStrategy": "bump",
7+
"dependencyDashboard": true,
8+
"lockFileMaintenance": {
9+
"enabled": true,
10+
"automerge": true,
11+
"automergeType": "pr",
12+
"platformAutomerge": true
13+
},
14+
"customManagers": [
15+
{
16+
"customType": "regex",
17+
"managerFilePatterns": [
18+
"/^src\\/templates\\/overlays\\/.*\\/manifest\\.json$/"
19+
],
20+
"matchStrings": [
21+
"(?m)^\\s{4}\"(?<depName>[^\"\\s]+)\":\\s*\"(?<currentValue>[~^]?\\d+\\.\\d+\\.\\d(?:[-+][0-9A-Za-z.-]+)?)\",?$"
22+
],
23+
"datasourceTemplate": "npm",
24+
"versioningTemplate": "npm"
25+
}
26+
],
27+
"packageRules": [
28+
{
29+
"description": "Automerge all dependency updates after checks pass",
30+
"matchUpdateTypes": ["major", "minor", "patch", "pin", "digest"],
31+
"automerge": true,
32+
"automergeType": "pr",
33+
"platformAutomerge": true
34+
}
35+
]
36+
}

0 commit comments

Comments
 (0)