Commit Graph

15 Commits

Author SHA1 Message Date
Chris Farhood 4f32fac49b Revert "fix(github-app-token): expand unexpanded $VAR in GH_CONFIG_DIR with injection guard"
This reverts commit f7a65e153c.
2026-05-03 18:05:37 -04:00
Chris Farhood f7a65e153c fix(github-app-token): expand unexpanded $VAR in GH_CONFIG_DIR with injection guard
When GH_CONFIG_DIR is passed as a literal string like '$AGENT_HOME/.github'
(unexpanded by the caller), the script now detects this, validates the path
contains only safe characters, then uses eval to expand it to the real path.

Also removes the AGENT_HOME fallback — when GH_CONFIG_DIR is not set, the
script now lets gh use its default config directory (~/.config/gh) directly,
rather than failing or writing to a non-standard location.
2026-05-03 17:34:30 -04:00
Goose 8efb331334 refactor: apply FAR-95 skills review follow-ups
- Remove `playwright-ephemeral/` and `shannon/` entirely per board direction
- Fix `minimax-image-generation/SKILL.md` so YAML frontmatter is at line 1
- Add `minimax-image-generation/scripts/generate.sh` (argparse, error-checked, executable) and document invoking it via `bash scripts/generate.sh ...`
- Deduplicate `minimax-image-generation/CLAUDE.md` against SKILL.md
- `github-app-token`: write token to `$GH_CONFIG_DIR/.gh-token` (preferred) or `$AGENT_HOME/.gh-token` (fallback), fail loudly if neither is set instead of leaking to `mktemp`
- Refresh root `CLAUDE.md` to match actual directory contents and patterns
- Add root `README.md` with human-facing skills index

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-17 01:34:22 +00:00
Goose 97f4cd7d9b feat: support GITHUB_APP_PEM inline env var in github-app-token skill
Allow agents to provide the PEM key directly via GITHUB_APP_PEM env var
instead of requiring a file path via GITHUB_APP_PEM_FILE. The inline PEM
is written to a secure temp file (chmod 600) and cleaned up on exit.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-17 01:34:22 +00:00
Goose 569c77b1a9 revert: remove GH_CONFIG_DIR from github-app-token skill
Per board feedback, config isolation is the operator's responsibility.
Setting GH_CONFIG_DIR per-agent is handled outside the skill.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-17 01:34:22 +00:00
Goose 45faadc681 fix: isolate gh CLI config per agent to prevent token mixing
Set GH_CONFIG_DIR=$AGENT_HOME/.config/gh before gh auth login so
each agent writes to its own directory rather than the shared global
config. This prevents tokens from different agents bleeding into one
another's gh auth state.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-17 01:34:22 +00:00
Goose 3563f311db refactor: replace github-app-token docs with executable script
Move token generation logic from inline SKILL.md code blocks into a
single scripts/generate-token.sh that agents can invoke directly.
Adds env var validation, error handling, and gh CLI auth in one step.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-15 11:21:34 +00:00
Goose 7c55d5c3ee remove github-app-token skill entirely
No backward compatibility — the script, SKILL.md, and all CLAUDE.md
references are deleted.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-31 17:47:04 +00:00
Goose b4d5d601b9 feat: add --raw flag to github-app-token and clean up docs
- Add --raw flag that prints only the token value (no export wrapper),
  making GH_TOKEN=$(./generate_token.sh --raw) the recommended pattern
  for AI agents and CI/CD.
- Clean up die() to only write to stderr (remove eval-safe stdout hack).
- Fix SKILL.md: correct step numbering, remove unused grep prerequisite,
  replace placeholder paths, lead with --raw usage, move eval to legacy.
- Update CLAUDE.md to reflect new --raw pattern.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-27 11:06:57 +00:00
Chris Farhood ff40d5f2d3 refactor: Consolidate error handling into a new die function. 2026-03-26 18:05:46 -04:00
Chris Farhood a020dc534d feat: Generate GitHub App installation access tokens directly via a new script and update documentation. 2026-03-26 15:24:36 -04:00
Chris Farhood 964cc0de00 fix: use user-provided JWT generation logic
Replaced my bash implementation with the user's provided snippet.
Key differences that fix the bad credentials issue on macOS:
1. Uses openssl enc -base64 -A instead of openssl base64
2. Uses jq -r -c . to strictly format the JSON header/payload
3. Explicitly wraps the RSA signature binary in b64enc.
2026-03-25 22:19:02 -04:00
Chris Farhood dedb35953b refactor: rewrite JWT generation from python to bash
Replaced generate_jwt.py with generate_jwt.sh using only openssl and
coreutils. Updated SKILL.md to remove the python fallback section and
use grep/cut for JSON parsing instead of python3.
2026-03-25 21:46:02 -04:00
Chris Farhood f425b5191e fix: rewrite openssl signing to use file path directly
The previous implementation had a stdin conflict -- it passed the PEM
key on stdin but also needed to pass the unsigned data on stdin. Now
that we take a file path, openssl reads the key from the file and gets
the data to sign from stdin.

Also removed the dead-code tempfile fallback and unused hashlib import.
2026-03-25 21:34:11 -04:00
Chris Farhood 1b7356c61d feat: add github-app-token skill 2026-03-25 21:29:22 -04:00