Files
minori/package.json
hikari d9f959d115
Node.js CI / CI (push) Successful in 24s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m50s
feat: auto-merge non-breaking dependency updates (#5)
## Summary
Minori now automatically merges dependency update PRs when they meet safety criteria, reducing manual work whilst maintaining safety for potentially breaking changes.

## Changes
-  Add version comparison utility to detect major version bumps
-  Add Gitea service methods for checking commit status and merging PRs
-  Add auto-merge logic that checks:
  - Is it a major version bump? (if yes, skip auto-merge)
  - Did CI checks pass? (if no, skip auto-merge)
  - If both conditions pass → auto-merge! 🎉
-  Add comprehensive tests for all new functionality
- 📊 Maintain ~94% test coverage

## How It Works
When Minori processes a dependency update:
1. Check if a PR already exists for that dependency
2. If it exists, verify:
   - **Not a major version bump** (major bumps need manual review)
   - **CI status = "success"** (all checks must pass)
3. If both conditions are met → automatically merge the PR and delete the branch

## Test Plan
- [x] All 114 tests passing
- [x] New tests for version comparison utility
- [x] New tests for Gitea service extensions
- [x] Build successful
- [x] Linting clean

---
 This PR was created with help from Hikari~ 🌸

Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Reviewed-on: #5
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-02-20 20:04:18 -08:00

36 lines
964 B
JSON

{
"name": "minori",
"version": "1.0.0",
"description": "Automated dependency updater for Gitea repositories",
"main": "./prod/index.js",
"type": "module",
"scripts": {
"lint": "eslint src test --max-warnings 0",
"build": "tsc",
"start": "op run --env-file=prod.env -- node prod/index.js",
"test": "vitest run --coverage"
},
"keywords": [],
"author": "Naomi Carrigan",
"license": "See LICENSE.md",
"packageManager": "pnpm@10.28.1",
"devDependencies": {
"@nhcarrigan/eslint-config": "5.2.0",
"@nhcarrigan/typescript-config": "4.0.0",
"@types/node": "25.2.0",
"@types/node-cron": "3.0.11",
"@types/semver": "7.7.1",
"@vitest/coverage-istanbul": "4.0.18",
"@vitest/coverage-v8": "4.0.18",
"eslint": "9.39.2",
"typescript": "5.9.3",
"vitest": "4.0.18"
},
"dependencies": {
"@nhcarrigan/logger": "1.1.1",
"axios": "1.13.4",
"node-cron": "4.2.1",
"semver": "7.7.3"
}
}