Compare commits

...

5 Commits

Author SHA1 Message Date
Colin McDonnell 5393d3dab4 bump action version to 0.0.198.
prepare the action package for the next publish with the ESM export/build updates already merged.

Made-with: Cursor
2026-04-12 19:51:18 +00:00
Colin McDonnell 3c2f3722ff fix action package exports and build ESM library entrypoints.
emit real ESM runtime + declaration outputs for programmatic imports, align package exports/types with built files, and add a no-cjs policy note.

Made-with: Cursor
2026-04-12 19:49:21 +00:00
Colin McDonnell 6541bdc4f4 test-token: use auth-only endpoint to actually verify the token
Made-with: Cursor
2026-04-12 19:44:03 +00:00
Colin McDonnell 1393ffb7b8 fix test-token workflow: use full action ref so runCli takes local path
Made-with: Cursor
2026-04-12 19:37:24 +00:00
Colin McDonnell f663d5e34d add workflow_dispatch test for get-installation-token action
Made-with: Cursor
2026-04-12 19:34:53 +00:00
4 changed files with 69 additions and 9 deletions
+35
View File
@@ -0,0 +1,35 @@
name: Test get-installation-token
on:
push:
branches: [main]
workflow_dispatch:
permissions:
id-token: write
contents: read
jobs:
test-token:
runs-on: ubuntu-latest
steps:
- name: Get installation token
id: token
uses: pullfrog/pullfrog/get-installation-token@main
- name: Verify token with Node.js
env:
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
run: |
node -e '
const res = await fetch("https://api.github.com/installation/repositories?per_page=1", {
headers: {
Authorization: "token " + process.env.GITHUB_TOKEN,
Accept: "application/vnd.github+json",
},
});
if (!res.ok) throw new Error("GET installation/repositories failed: " + res.status + " " + (await res.text()));
const data = await res.json();
console.log("authenticated — installation has access to", data.total_count, "repo(s)");
console.log("first repo:", data.repositories[0].full_name);
'
+19 -1
View File
@@ -1,10 +1,13 @@
// @ts-check
import { build } from "esbuild";
import { readFileSync, writeFileSync } from "fs";
import { mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
const pkg = JSON.parse(readFileSync("package.json", "utf-8"));
rmSync("./dist", { recursive: true, force: true });
mkdirSync("./dist", { recursive: true });
// Plugin to strip shebangs from output files
/**
* @type {import("esbuild").Plugin}
@@ -73,6 +76,21 @@ await build({
},
});
// Build ESM library entrypoints for programmatic imports
await build({
...sharedConfig,
entryPoints: ["./index.ts"],
outfile: "./dist/index.js",
target: "node20",
});
await build({
...sharedConfig,
entryPoints: ["./internal/index.ts"],
outfile: "./dist/internal.js",
target: "node20",
});
// prepend shebang after strip (esbuild banner can't guarantee line 1 placement)
const cliPath = "./dist/cli.mjs";
const cliContent = readFileSync(cliPath, "utf8");
+5 -8
View File
@@ -1,6 +1,6 @@
{
"name": "pullfrog",
"version": "0.0.197",
"version": "0.0.198",
"type": "module",
"bin": {
"pullfrog": "dist/cli.mjs",
@@ -13,7 +13,7 @@
"scripts": {
"test": "vitest",
"typecheck": "tsc --noEmit",
"build": "node esbuild.config.js",
"build": "node esbuild.config.js && tsc -p tsconfig.exports.json",
"check:entrypoints": "node scripts/check-entrypoint-imports.ts",
"play": "node play.ts",
"runtest": "node test/run.ts",
@@ -74,22 +74,19 @@
"url": "https://github.com/pullfrog/pullfrog/issues"
},
"homepage": "https://github.com/pullfrog/pullfrog#readme",
"zshy": {
"exports": "./index.ts"
},
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"@pullfrog/source": "./index.ts",
"types": "./dist/index.d.cts",
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.cjs"
"default": "./dist/index.js"
},
"./internal": {
"@pullfrog/source": "./internal/index.ts",
"types": "./dist/internal.d.cts",
"types": "./dist/internal/index.d.ts",
"import": "./dist/internal.js",
"default": "./dist/internal.js"
},
+10
View File
@@ -0,0 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": false,
"emitDeclarationOnly": true,
"declarationMap": false,
"outDir": "./dist"
},
"include": ["index.ts", "internal/index.ts"]
}