git-agent for JavaScriptFrom Express APIs to vanilla browser scripts, git-agent reads your JavaScript diffs and produces conventional commit messages that accurately capture what changed and why.
diff --git a/src/middleware/rateLimit.js b/src/middleware/rateLimit.js
index 7f3c1a9..2d8e4b1 100644
--- a/src/middleware/rateLimit.js
+++ b/src/middleware/rateLimit.js
@@ -1,10 +1,20 @@
const rateLimit = require("express-rate-limit");
+const RedisStore = require("rate-limit-redis");
+const { redisClient } = require("../lib/redis");
module.exports = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
- standardHeaders: true,
- legacyHeaders: false,
+ standardHeaders: "draft-7",
+ legacyHeaders: false,
+ store: new RedisStore({
+ sendCommand: (...args) => redisClient.sendCommand(args),
+ }),
+ handler: (req, res) => {
+ res.status(429).json({
+ error: "too_many_requests",
+ retryAfter: res.getHeader("Retry-After"),
+ });
+ },
});feat(middleware): back rate limiter with Redis and structured 429 response
- replace in-memory store with RedisStore for multi-instance consistency
- upgrade standardHeaders to draft-7 format
- return machine-readable JSON body with retryAfter field on 429
In-memory rate limiting was reset on every dyno restart and did not
share state across instances; Redis store ensures limits are enforced
cluster-wide.brew install gitagenthq/tap/git-agent
# inside your JS repo
git-agent init # scans package.json workspaces for scope suggestionsDoes git-agent work with npm, yarn, and pnpm projects?How does git-agent handle minified or generated JavaScript files?.gitignore. git-agent commits only what is staged, and git-agent init generates a .gitignore entry for common build output directories.Can git-agent split a large JavaScript refactor into multiple commits?