Files
claude-hub/package.json
Cheffromspace 12e4589169 Fix: Merge entrypoint scripts and fix auto-tagging tool permissions (#146)
* fix: merge entrypoint scripts and fix auto-tagging tool permissions

- Merged duplicate claudecode-entrypoint.sh and claudecode-tagging-entrypoint.sh scripts
- Added dynamic tool selection based on OPERATION_TYPE environment variable
- Fixed auto-tagging permissions to include required Bash(gh:*) commands
- Removed 95% code duplication between entrypoint scripts
- Simplified claudeService.ts to use unified entrypoint
- Auto-tagging now uses: Read,GitHub,Bash(gh issue edit:*),Bash(gh issue view:*),Bash(gh label list:*)
- General operations continue to use full tool set

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update Dockerfile to use unified entrypoint script

- Remove references to deleted claudecode-tagging-entrypoint.sh
- Update build process to use single unified entrypoint script

* fix: remove unnecessary async from promisify mock to fix lint error

* feat: add Husky pre-commit hooks with Prettier as primary formatter

- Added Husky for Git pre-commit hooks
- Configured eslint-config-prettier to avoid ESLint/Prettier conflicts
- Prettier handles all formatting, ESLint handles code quality only
- Pre-commit hooks: Prettier format, ESLint check, TypeScript check
- Updated documentation with pre-commit hook setup
- All code quality issues resolved

* feat: consolidate workflows and fix permission issues with clean Docker runners

- Replace 3 complex workflows with 2 lean ones (pull-request.yml, main.yml)
- Add Docker runner configuration for clean, isolated builds
- Remove file permission hacks - use ephemeral containers instead
- Split workload: GitHub-hosted for tests/security, self-hosted for Docker builds
- Add comprehensive pre-commit configuration for security
- Update documentation to be more pragmatic
- Fix credential file permissions and security audit

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: allow Husky prepare script to fail in production builds

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update CI badge to reference new main.yml workflow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-05-31 20:53:58 -05:00

76 lines
2.6 KiB
JSON

{
"name": "claude-github-webhook",
"version": "0.1.1",
"description": "A webhook endpoint for Claude to perform git and GitHub actions",
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"build:watch": "tsc --watch",
"start": "node dist/index.js",
"start:dev": "node dist/index.js",
"dev": "ts-node src/index.ts",
"dev:watch": "nodemon --exec ts-node src/index.ts",
"clean": "rm -rf dist",
"typecheck": "tsc --noEmit",
"test": "jest --testPathPattern='test/(unit|integration).*\\.test\\.(js|ts)$'",
"test:unit": "jest --testMatch='**/test/unit/**/*.test.{js,ts}'",
"test:integration": "jest --testMatch='**/test/integration/**/*.test.{js,ts}'",
"test:e2e": "jest --testMatch='**/test/e2e/**/*.test.{js,ts}'",
"test:coverage": "jest --coverage",
"test:watch": "jest --watch",
"test:ci": "jest --ci --coverage --testPathPattern='test/(unit|integration).*\\.test\\.(js|ts)$'",
"test:docker": "docker-compose -f docker-compose.test.yml run --rm test",
"test:docker:integration": "docker-compose -f docker-compose.test.yml run --rm integration-test",
"test:docker:e2e": "docker-compose -f docker-compose.test.yml run --rm e2e-test",
"pretest": "./scripts/utils/ensure-test-dirs.sh",
"lint": "eslint src/ test/ --fix",
"lint:check": "eslint src/ test/",
"format": "prettier --write src/ test/",
"format:check": "prettier --check src/ test/",
"security:audit": "npm audit --audit-level=moderate",
"security:fix": "npm audit fix",
"setup:dev": "husky install",
"setup:hooks": "husky",
"prepare": "husky || true"
},
"dependencies": {
"@octokit/rest": "^22.0.0",
"axios": "^1.6.2",
"body-parser": "^2.2.0",
"commander": "^14.0.0",
"dotenv": "^16.3.1",
"express": "^5.1.0",
"express-rate-limit": "^7.5.0",
"pino": "^9.7.0",
"pino-pretty": "^13.0.0",
"typescript": "^5.8.3"
},
"devDependencies": {
"@babel/core": "^7.27.3",
"@babel/preset-env": "^7.27.2",
"@jest/globals": "^30.0.0-beta.3",
"@types/body-parser": "^1.19.5",
"@types/express": "^5.0.2",
"@types/jest": "^29.5.14",
"@types/node": "^22.15.23",
"@types/supertest": "^6.0.3",
"@typescript-eslint/eslint-plugin": "^8.33.0",
"@typescript-eslint/parser": "^8.33.0",
"babel-jest": "^29.7.0",
"eslint": "^9.27.0",
"eslint-config-node": "^4.1.0",
"eslint-config-prettier": "^10.1.5",
"husky": "^9.1.7",
"jest": "^29.7.0",
"jest-junit": "^16.0.0",
"nodemon": "^3.0.1",
"prettier": "^3.0.0",
"supertest": "^7.1.1",
"ts-jest": "^29.3.4",
"ts-node": "^10.9.2"
},
"engines": {
"node": ">=20.0.0"
}
}