Skip to content

Commit dc1d749

Browse files
Copilotdependabot[bot]unknowIfGuestInDream
authored
Auto-sync engines.vscode with @types/vscode version changes (#19)
* build(deps-dev): bump @types/vscode from 1.108.1 to 1.109.0 Bumps [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) from 1.108.1 to 1.109.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/vscode) --- updated-dependencies: - dependency-name: "@types/vscode" dependency-version: 1.109.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Initial plan * chore: update engines.vscode to ^1.109.0 and add auto-sync workflow Co-authored-by: unknowIfGuestInDream <57802425+unknowIfGuestInDream@users.noreply.github.com> * fix: correct workflow exit code logic Co-authored-by: unknowIfGuestInDream <57802425+unknowIfGuestInDream@users.noreply.github.com> * revert: rollback package.json engines.vscode change Co-authored-by: unknowIfGuestInDream <57802425+unknowIfGuestInDream@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unknowIfGuestInDream <57802425+unknowIfGuestInDream@users.noreply.github.com>
1 parent a4c26f0 commit dc1d749

3 files changed

Lines changed: 104 additions & 5 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# This workflow automatically updates engines.vscode when @types/vscode has a major or minor version change
2+
name: Sync VSCode Engine Version
3+
4+
on:
5+
pull_request:
6+
types: [opened, synchronize, reopened]
7+
paths:
8+
- 'package.json'
9+
- 'package-lock.json'
10+
11+
permissions:
12+
contents: write
13+
pull-requests: write
14+
15+
jobs:
16+
sync-vscode-engine:
17+
# Only run for dependabot PRs
18+
if: github.actor == 'dependabot[bot]'
19+
runs-on: ubuntu-latest
20+
21+
steps:
22+
- name: Checkout PR branch
23+
uses: actions/checkout@v6
24+
with:
25+
ref: ${{ github.head_ref }}
26+
token: ${{ secrets.GITHUB_TOKEN }}
27+
28+
- name: Setup Node.js
29+
uses: actions/setup-node@v6
30+
with:
31+
node-version: '22'
32+
33+
- name: Check if @types/vscode was updated
34+
id: check_update
35+
run: |
36+
# Get the PR title
37+
PR_TITLE="${{ github.event.pull_request.title }}"
38+
echo "PR Title: $PR_TITLE"
39+
40+
# Check if this PR is about @types/vscode
41+
if [[ "$PR_TITLE" == *"@types/vscode"* ]]; then
42+
echo "types_vscode_updated=true" >> $GITHUB_OUTPUT
43+
44+
# Extract version from package.json
45+
TYPES_VERSION=$(node -p "require('./package.json').devDependencies['@types/vscode']" | sed 's/[\^~]//g')
46+
echo "types_version=$TYPES_VERSION" >> $GITHUB_OUTPUT
47+
echo "Found @types/vscode version: $TYPES_VERSION"
48+
else
49+
echo "types_vscode_updated=false" >> $GITHUB_OUTPUT
50+
fi
51+
52+
- name: Update engines.vscode
53+
if: steps.check_update.outputs.types_vscode_updated == 'true'
54+
id: update_engine
55+
run: |
56+
TYPES_VERSION="${{ steps.check_update.outputs.types_version }}"
57+
58+
# Extract major.minor from the version (e.g., 1.109.0 -> 1.109)
59+
MAJOR_MINOR=$(echo "$TYPES_VERSION" | cut -d. -f1,2)
60+
ENGINE_VERSION="^${MAJOR_MINOR}.0"
61+
62+
echo "Setting engines.vscode to: $ENGINE_VERSION"
63+
64+
# Update package.json using node
65+
node -e "
66+
const fs = require('fs');
67+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
68+
const currentEngine = pkg.engines.vscode;
69+
const newEngine = '$ENGINE_VERSION';
70+
71+
console.log('Current engines.vscode:', currentEngine);
72+
console.log('New engines.vscode:', newEngine);
73+
74+
if (currentEngine !== newEngine) {
75+
pkg.engines.vscode = newEngine;
76+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
77+
console.log('Updated engines.vscode');
78+
console.log('changes_made=true');
79+
} else {
80+
console.log('No update needed');
81+
console.log('changes_made=false');
82+
}
83+
" | tee /tmp/update-output.txt
84+
85+
# Extract the changes_made value from output
86+
if grep -q "changes_made=true" /tmp/update-output.txt; then
87+
echo "changes_made=true" >> $GITHUB_OUTPUT
88+
else
89+
echo "changes_made=false" >> $GITHUB_OUTPUT
90+
fi
91+
92+
- name: Commit changes
93+
if: steps.check_update.outputs.types_vscode_updated == 'true' && steps.update_engine.outputs.changes_made == 'true'
94+
run: |
95+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
96+
git config --local user.name "github-actions[bot]"
97+
git add package.json
98+
git commit -m "chore: update engines.vscode to match @types/vscode version"
99+
git push

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
"@eslint/js": "^9.17.0",
136136
"@types/mocha": "^10.0.10",
137137
"@types/node": "22.x",
138-
"@types/vscode": "^1.108.0",
138+
"@types/vscode": "^1.109.0",
139139
"@vscode/test-cli": "^0.0.12",
140140
"@vscode/test-electron": "^2.4.1",
141141
"@vscode/vsce": "^3.2.2",

0 commit comments

Comments
 (0)