Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
396bd90
chore(deps): upgrade all deps (#1)
afonsojramos May 9, 2026
62d444d
chore: rebrand fork as @gitify/menubar (#2)
afonsojramos May 9, 2026
0e02054
chore: replace remaining master branch references with main (#3)
afonsojramos May 9, 2026
5425b1e
chore: switch package manager from yarn to bun
afonsojramos May 9, 2026
8bf9737
test: migrate from jest to vitest via vite-plus
afonsojramos May 9, 2026
dfd4888
build: migrate from tsc to vp pack with dual ESM/CJS output
afonsojramos May 9, 2026
0f56ba8
ci: switch workflows from yarn to bun
afonsojramos May 9, 2026
871fafe
docs: update README install commands to bun
afonsojramos May 9, 2026
5753113
chore: rename .nvmrc to .node-version for Vite+ runtime
afonsojramos May 9, 2026
3530634
chore: migrate examples workspace from yarn to bun
afonsojramos May 9, 2026
19c5a50
build: modernize tsconfig.json to ES2022 + Bundler resolution
afonsojramos May 9, 2026
f3701dd
lint: replace biome with vp check (oxlint + oxfmt)
afonsojramos May 9, 2026
b38e18e
chore(vscode): switch from biome to oxc extension
afonsojramos May 9, 2026
2acf563
ci: bump actions/checkout v4 to v6
afonsojramos May 9, 2026
0d4fe34
ci: add setup-node to provide Node 24 for Vite+ TS config loader
afonsojramos May 9, 2026
4603548
ci: pin actions by SHA, fix branch trigger, add typecheck step
afonsojramos May 9, 2026
e90fbe3
ci: add build workflow running vp pack
afonsojramos May 9, 2026
1f67406
ci: validate PR titles follow conventional commits
afonsojramos May 9, 2026
958fa8a
ci: add publish workflow for npm releases on tag push
afonsojramos May 9, 2026
427a80f
chore(deps): add github-actions ecosystem to dependabot
afonsojramos May 9, 2026
2611eab
chore: migrate to bun + Vite+ toolchain (#4)
afonsojramos May 9, 2026
068d755
feat: add destroy menubar capability (#5)
afonsojramos May 9, 2026
62872a0
feat: add trigger option for tray event binding (#6)
afonsojramos May 9, 2026
b802f57
ci: add E2E matrix smoke tests with auto-updating PLATFORMS table (#8)
afonsojramos May 9, 2026
aa6a037
fix: add platforms markers to PLATFORMS.md (#9)
afonsojramos May 9, 2026
8dead3d
docs: refresh tested platforms table (#11)
github-actions[bot] May 9, 2026
22ceefe
ci: visual tray rendering matrix across macOS, Linux DEs, Windows (#10)
afonsojramos May 10, 2026
f4a9811
refactor: inline Positioner to drop electron-positioner dependency (#12)
afonsojramos May 10, 2026
2b7fe42
feat: import menubar patterns from gitify (hideOnClose, contextMenu, …
afonsojramos May 11, 2026
b03738d
chore(release): 10.0.0
afonsojramos May 11, 2026
0ef09f3
chore: alias vitest devDep to fix npm overrides conflict (#14)
afonsojramos May 11, 2026
620bbeb
test(visual): assert window renders and auto-publish results to PLATF…
afonsojramos May 12, 2026
5029d7b
docs: refresh visual tray rendering table (#17)
github-actions[bot] May 12, 2026
b58b028
ci(visual): commit screenshots and link them as collapsibles in PLATF…
afonsojramos May 12, 2026
0859faf
docs: refresh visual tray rendering table (#19)
github-actions[bot] May 12, 2026
335fea4
docs: drop manually maintained legacy platform tables from PLATFORMS.…
afonsojramos May 12, 2026
d06293d
ci(visual): pin time on screenshots to remove clock-driven diff noise…
afonsojramos May 12, 2026
267d037
docs: refresh visual tray rendering table (#20)
github-actions[bot] May 12, 2026
cf87380
ci(visual): real per-platform clock suppression (v2) (#25)
afonsojramos May 12, 2026
1aab5fd
fix(visual): stop MinimizeAll from hiding our menubar window on Windo…
afonsojramos May 12, 2026
3b69182
docs: refresh visual tray rendering table (#23)
github-actions[bot] May 12, 2026
55dd44a
test(visual): ROI-mask screenshots to eliminate clock and chrome drif…
afonsojramos May 12, 2026
c8f74e4
docs: refresh visual tray rendering table (#27)
github-actions[bot] May 12, 2026
f2ddd8e
ci(visual): cache apt packages for heavy Linux DEs (#29)
afonsojramos May 12, 2026
87794f1
test(visual): solid white+black window marker to remove subpixel AA d…
afonsojramos May 12, 2026
a0c0890
fix(visual): stop fixture window from covering Linux bottom panels (#32)
afonsojramos May 12, 2026
dd0dd27
docs: refresh visual tray rendering table (#30)
github-actions[bot] May 12, 2026
3fed6a3
docs: refresh visual tray rendering table (#33)
github-actions[bot] May 12, 2026
03f4b78
fix(visual): make sway respect window size and stop GNOME painting it…
afonsojramos May 12, 2026
47a855d
ci(visual): mark linux-gnome experimental until Mutter blue-paint is …
afonsojramos May 12, 2026
5aef134
docs: refresh visual tray rendering table (#35)
github-actions[bot] May 12, 2026
3aad2cd
docs: refresh visual tray rendering table (#37)
github-actions[bot] May 12, 2026
05fdfba
fix: position window beside tray on left taskbars (#15)
afonsojramos May 28, 2026
04cd05f
ci(visual): stop churn PRs from non-deterministic tray screenshots (#39)
afonsojramos Jun 3, 2026
f5791f3
build: migrate package manager from bun to pnpm (#40)
afonsojramos Jun 4, 2026
ce3b40c
refactor: rename package to electron-menubar and slim published bundl…
afonsojramos Jun 4, 2026
6ce09d6
docs: refresh visual tray rendering table (#38)
github-actions[bot] Jun 4, 2026
ad07479
fix: reposition window on resize so setSize doesn't clip under taskba…
afonsojramos Jun 4, 2026
ebda924
ci: migrate from standard-version to release-please (#43)
afonsojramos Jun 4, 2026
3cd8bb0
chore: migrate examples to pnpm and tidy dependencies (#44)
afonsojramos Jun 4, 2026
c757166
docs: refresh visual tray rendering table (#42)
github-actions[bot] Jun 4, 2026
c8ab465
build: pin vite-plus toolchain and bump electron dev dependency (#47)
afonsojramos Jun 4, 2026
3aff2ab
ci(visual): raise screenshot diff budget to stop empty churn PRs (#48)
afonsojramos Jun 4, 2026
9b4f654
chore(main): release 10.0.1 (#45)
github-actions[bot] Jun 4, 2026
8b31270
ci: publish to npm via OIDC trusted publishing (#49)
afonsojramos Jun 4, 2026
4664941
chore(main): release 10.0.2 (#50)
github-actions[bot] Jun 4, 2026
da64d7e
build: upgrade @playwright/test to 1.60 and typescript to 6.0 (#51)
afonsojramos Jun 5, 2026
7dce546
config: onboard fork to renovate
setchy Jun 5, 2026
2fcd1a6
feat: Add CODEOWNERS file
setchy Jun 5, 2026
ad00cfd
feat: Add CODEOWNERS file (#55)
setchy Jun 5, 2026
209c31f
feat: onboard fork to renovate (#54)
setchy Jun 5, 2026
57d5f49
chore(deps): update peter-evans/create-pull-request action to v7.0.11…
renovate[bot] Jun 5, 2026
8438861
chore(deps): update actions/checkout action to v6.0.3 (#60)
renovate[bot] Jun 5, 2026
46778c8
chore(deps): update pnpm/action-setup digest to 0e279bb (#59)
renovate[bot] Jun 5, 2026
ded32c4
chore(deps): update peter-evans/create-pull-request action to v8 (#62)
renovate[bot] Jun 5, 2026
a875215
chore(deps): update yauzl to v3.3.2 (#64)
renovate[bot] Jun 5, 2026
2afa208
docs: Update installation command from bun to pnpm (#56)
setchy Jun 5, 2026
3ccce71
Revert "chore(deps): update pnpm/action-setup digest to 0e279bb" (#67)
setchy Jun 5, 2026
45723b5
docs: refresh readme (#66)
setchy Jun 5, 2026
d4cfa98
chore(deps): pin dependencies (#63)
renovate[bot] Jun 5, 2026
d1ad936
docs: reformat API documentation as tables (#70)
afonsojramos Jun 5, 2026
45b6bdf
docs: update repo urls (#71)
setchy Jun 5, 2026
7909dc9
chore(deps): update pnpm/action-setup digest to 0e279bb (#73)
renovate[bot] Jun 8, 2026
fbd3a1c
chore(deps): lock file maintenance (#74)
renovate[bot] Jun 8, 2026
25adf80
feat: handle and document Wayland window positioning limitation (#72)
afonsojramos Jun 11, 2026
b1861e3
chore(deps): update electron to v42.4.0 (#77)
renovate[bot] Jun 15, 2026
ae4064a
chore(deps): update awalsh128/cache-apt-pkgs-action action to v1.6.1 …
renovate[bot] Jun 18, 2026
3bd9f1d
chore(deps): update pnpm/action-setup action to v6.0.9 (#80)
renovate[bot] Jun 22, 2026
7f23fe5
chore(deps): update electron to v42.5.0 (#79)
renovate[bot] Jun 27, 2026
b291378
chore(deps): update actions/checkout action to v7 (#86)
renovate[bot] Jun 27, 2026
482a76a
chore(deps): update node.js to v24.18.0 (#82)
renovate[bot] Jun 27, 2026
cf99e7a
chore(deps): update pnpm to v11.9.0 (#83)
renovate[bot] Jun 27, 2026
455e265
chore(deps): update @playwright/test to v1.61.1 (#81)
renovate[bot] Jun 27, 2026
1e064b3
chore(deps): update yauzl to v3.4.0 (#85)
renovate[bot] Jun 27, 2026
bb5be27
chore(deps): update vite-plus to v0.2.1 (#84)
renovate[bot] Jun 27, 2026
351ec55
chore(deps): update awalsh128/cache-apt-pkgs-action action to v1.6.2 …
renovate[bot] Jun 27, 2026
2cff3b8
chore(deps): lock file maintenance (#87)
renovate[bot] Jul 2, 2026
445069b
chore(deps): update electron to v43 (#90)
renovate[bot] Jul 2, 2026
311145b
docs: refresh visual tray rendering table (#91)
github-actions[bot] Jul 2, 2026
0ef6356
chore(main): release 10.1.0 (#52)
github-actions[bot] Jul 2, 2026
eaa131c
fix: correct repository url to electron-menubar for npm provenance (#93)
afonsojramos Jul 2, 2026
bd806ec
chore(main): release 10.1.1 (#94)
github-actions[bot] Jul 2, 2026
5d58ccf
chore: Update renovate.json
setchy Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @afonsojramos @setchy
21 changes: 14 additions & 7 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
time: "02:00"
timezone: Europe/Berlin
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
time: "02:00"
timezone: Europe/Berlin
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "02:00"
timezone: Europe/Berlin
open-pull-requests-limit: 10
Binary file added .github/visual-screenshots/linux-budgie.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-cinnamon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-gnome.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-kde.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-lxqt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-mate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-sway.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-tint2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/linux-xfce.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/macos-14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/macos-15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/macos-26.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/windows-2022.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/visual-screenshots/windows-2025.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Build

on:
push:
branches:
- main
pull_request:
branches:
- main

permissions: {}

jobs:
build:
name: Build [vp pack]
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .node-version
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build library
run: pnpm run build
135 changes: 135 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: E2E

on:
push:
branches:
- main
pull_request:
branches:
- main

permissions: {}

jobs:
e2e:
name: E2E [${{ matrix.label }}]
runs-on: ${{ matrix.runner }}
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- runner: macos-26
label: macOS 26 (Tahoe)
key: macos-26
- runner: macos-15
label: macOS 15 (Sequoia)
key: macos-15
- runner: macos-14
label: macOS 14 (Sonoma)
key: macos-14
- runner: windows-2025
label: Windows Server 2025
key: windows-2025
- runner: windows-2022
label: Windows Server 2022
key: windows-2022
- runner: ubuntu-24.04
label: Ubuntu 24.04
key: ubuntu-24.04
- runner: ubuntu-22.04
label: Ubuntu 22.04
key: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .node-version
cache: pnpm
- name: Install dependencies
shell: bash
run: |
# pnpm does not reliably run electron's postinstall via
# allowBuilds, so invoke its installer explicitly to fetch the
# binary (path.txt). Verify with a require() before proceeding.
for attempt in 1 2 3; do
if pnpm install --frozen-lockfile && node node_modules/electron/install.js && node -e "require('electron')" >/dev/null 2>&1; then
exit 0
fi
echo "::warning::install attempt $attempt failed (often electron 502); retrying..."
sleep $((attempt * 5))
done
echo "::error::install failed after 3 attempts"
exit 1
- name: Build library
run: pnpm run build
- name: Run E2E (Linux)
if: runner.os == 'Linux'
env:
E2E_PLATFORM_KEY: ${{ matrix.key }}
E2E_PLATFORM_LABEL: ${{ matrix.label }}
GITHUB_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: xvfb-run --auto-servernum -- pnpm exec playwright test --config tests/e2e/playwright.config.ts
- name: Run E2E (macOS / Windows)
if: runner.os != 'Linux'
env:
E2E_PLATFORM_KEY: ${{ matrix.key }}
E2E_PLATFORM_LABEL: ${{ matrix.label }}
GITHUB_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: pnpm exec playwright test --config tests/e2e/playwright.config.ts
- name: Upload platform result
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: platform-${{ matrix.key }}
path: test-results/platforms/${{ matrix.key }}.json
if-no-files-found: warn
retention-days: 14

update-platforms:
name: Update PLATFORMS table
needs: e2e
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .node-version
- name: Download all platform results
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: platform-*
merge-multiple: true
path: test-results/platforms
- name: Regenerate PLATFORMS block
run: node tests/e2e/update-platforms.mts
- name: Open PR if changed
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
commit-message: "docs: refresh tested platforms table"
title: "docs: refresh tested platforms table"
body: |
Auto-generated update to `PLATFORMS.md` from the latest E2E matrix run on `main`.

Source: [E2E workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}).
branch: chore/update-platforms-table
base: main
delete-branch: true
add-paths: PLATFORMS.md
sign-commits: true
27 changes: 21 additions & 6 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,33 @@ name: Linting
on:
push:
branches:
- master
- main
pull_request:
branches:
- main

permissions: {}

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: '.nvmrc'
- run: yarn install
- run: yarn lint
node-version-file: .node-version
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run linter
run: pnpm run lint:check
41 changes: 41 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish

on:
workflow_call:
workflow_dispatch:

permissions: {}

jobs:
publish:
name: Publish to npm
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # for npm OIDC trusted publishing + provenance

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .node-version
registry-url: https://registry.npmjs.org
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm run typecheck
- name: Run tests
run: pnpm run test
- name: Build library
run: pnpm run build
- name: Publish to npm
# Auth + provenance via OIDC trusted publishing (no NPM_TOKEN needed).
# Requires the npm package to trust the entry-point workflow (release.yml).
run: npm publish --provenance --access public
32 changes: 32 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release

on:
push:
branches:
- main

permissions: {}

jobs:
release-please:
name: Release Please
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- name: Run release-please
id: release
uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0

publish:
name: Publish
needs: release-please
if: ${{ needs.release-please.outputs.release_created == 'true' }}
permissions:
contents: read
id-token: write # for npm OIDC trusted publishing + provenance
uses: ./.github/workflows/publish.yml
33 changes: 25 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
name: Run Tests
name: Test

on:
push:
branches:
- master
- main
pull_request:
branches:
- main

permissions: {}

jobs:
lint:
test:
name: Run Tests
runs-on: macos-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: '.nvmrc'
- run: yarn install
- run: yarn test
node-version-file: .node-version
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm run typecheck
- name: Run tests
run: pnpm run test
32 changes: 32 additions & 0 deletions .github/workflows/triage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Triage PR

on:
# `pull_request_target` is required so the title-validator can write
# statuses on PRs from forks (under `pull_request`, GitHub forces
# GITHUB_TOKEN to read-only for fork PRs). Safe here because this
# workflow:
# - never checks out PR code (no actions/checkout),
# - has no `run:` steps that interpolate PR fields,
# - only invokes a SHA-pinned action that reads PR metadata via the API.
pull_request_target:
branches:
- main
types:
- opened
- reopened
- edited
- synchronize
- ready_for_review

permissions: {}

jobs:
pr-title:
name: Validate PR title [conventional commits]
runs-on: ubuntu-latest
permissions:
pull-requests: read
steps:
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading