Socket
Socket
Sign inDemoInstall

@ethicdevs/fastify-git-server

Package Overview
Dependencies
52
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.4.2 to 1.4.3

111

dist/helpers/sendStatelessRpc.js

@@ -16,54 +16,2 @@ "use strict";

return new Promise(function (resolve, reject) {
if (opts.withSideBandMessages === true && opts.onPush != null) {
var onPushPerfomedAction_1 = false;
var shouldAcceptRequest_1 = false;
var denyReason_1 = null;
var accept = function () {
onPushPerfomedAction_1 = true;
shouldAcceptRequest_1 = true;
logTrace("accept was called.");
};
var deny_1 = function (reason) {
onPushPerfomedAction_1 = true;
shouldAcceptRequest_1 = false;
denyReason_1 = reason;
logTrace("deny was called. reason:", reason);
};
// protect against miss-implemented onPush by automatically denying the
// request in case onPush hook does not reply after 30 seconds.
var autoDenyTimeoutId_1 = setTimeout(function () {
if (autoDenyTimeoutId_1 == null) {
return undefined;
}
if (autoDenyTimeoutId_1 != null) {
clearTimeout(autoDenyTimeoutId_1);
autoDenyTimeoutId_1 = null;
}
return deny_1("onPush did not respond within the allowed ".concat(constants_1.ON_PUSH_TIMEOUT_MS, " seconds."));
}, constants_1.ON_PUSH_TIMEOUT_MS);
// ask client for resolution about what to do + possibility to write to
// the side band messages stream.
opts.onPush({
type: "push",
message: new GitServerMessage_1.GitServerMessage(gitStream, accept, deny_1),
data: {
packType: packType,
repoDiskPath: cwd,
repoSlug: repoSlug,
request: request,
requestMethod: requestMethod,
requestType: requestType,
username: username,
},
});
clearTimeout(autoDenyTimeoutId_1);
autoDenyTimeoutId_1 = null;
if (onPushPerfomedAction_1 === false) {
accept();
}
if (shouldAcceptRequest_1 === false && denyReason_1 != null) {
gitStream.end();
return reject(new Error(denyReason_1));
}
}
var safePackType = (0, safeServiceToPackType_1.safeServiceToPackType)(packType);

@@ -73,2 +21,61 @@ var process = spawnGitCmd([safePackType, constants_1.GIT_STATELESS_RPC_FLAG]);

process.stdout.on("data", function (chunk) { return gitStream.write(chunk); });
process.stdout.once("data", function () {
if (opts.withSideBandMessages === true && opts.onPush != null) {
var onPushPerfomedAction_1 = false;
var shouldAcceptRequest_1 = false;
var denyReason_1 = null;
var accept = function () {
onPushPerfomedAction_1 = true;
shouldAcceptRequest_1 = true;
logTrace("accept was called.");
};
var deny_1 = function (reason) {
onPushPerfomedAction_1 = true;
shouldAcceptRequest_1 = false;
denyReason_1 = reason;
logTrace("deny was called. reason:", reason);
};
// protect against miss-implemented onPush by automatically denying the
// request in case onPush hook does not reply after 30 seconds.
var autoDenyTimeoutId_1 = setTimeout(function () {
if (autoDenyTimeoutId_1 == null) {
return undefined;
}
if (autoDenyTimeoutId_1 != null) {
clearTimeout(autoDenyTimeoutId_1);
autoDenyTimeoutId_1 = null;
}
return deny_1("onPush did not respond within the allowed ".concat(constants_1.ON_PUSH_TIMEOUT_MS, " seconds."));
}, constants_1.ON_PUSH_TIMEOUT_MS);
// ask client for resolution about what to do + possibility to write to
// the side band messages stream.
opts.onPush({
type: "push",
message: new GitServerMessage_1.GitServerMessage(gitStream, accept, deny_1),
data: {
packType: packType,
repoDiskPath: cwd,
repoSlug: repoSlug,
request: request,
requestMethod: requestMethod,
requestType: requestType,
username: username,
},
});
clearTimeout(autoDenyTimeoutId_1);
autoDenyTimeoutId_1 = null;
if (onPushPerfomedAction_1 === false) {
accept();
}
if (shouldAcceptRequest_1 === false && denyReason_1 != null) {
process.kill();
gitStream.end();
return reject(new Error(denyReason_1));
}
// else just let the command complete
return undefined;
}
// do nothing
return undefined;
});
process.stdout.on("close", function () { return resolve(gitStream.end()); });

@@ -75,0 +82,0 @@ });

{
"name": "@ethicdevs/fastify-git-server",
"version": "1.4.2",
"version": "1.4.3",
"description": "A Fastify plugin to easily make one/many Git repositories available for clone/fetch/push.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -39,72 +39,82 @@ // std

return new Promise((resolve, reject) => {
if (opts.withSideBandMessages === true && opts.onPush != null) {
let onPushPerfomedAction: boolean = false;
let shouldAcceptRequest: boolean = false;
let denyReason: null | string = null;
const safePackType = safeServiceToPackType(packType);
const process = spawnGitCmd([safePackType, GIT_STATELESS_RPC_FLAG]);
const accept = () => {
onPushPerfomedAction = true;
shouldAcceptRequest = true;
logTrace("accept was called.");
};
request.raw.pipe(process.stdin, { end: false });
const deny = (reason: string) => {
onPushPerfomedAction = true;
shouldAcceptRequest = false;
denyReason = reason;
logTrace("deny was called. reason:", reason);
};
process.stdout.on("data", (chunk) => gitStream.write(chunk));
// protect against miss-implemented onPush by automatically denying the
// request in case onPush hook does not reply after 30 seconds.
let autoDenyTimeoutId: null | NodeJS.Timer = setTimeout(() => {
if (autoDenyTimeoutId == null) {
return undefined;
}
if (autoDenyTimeoutId != null) {
clearTimeout(autoDenyTimeoutId);
autoDenyTimeoutId = null;
}
return deny(
`onPush did not respond within the allowed ${ON_PUSH_TIMEOUT_MS} seconds.`,
);
}, ON_PUSH_TIMEOUT_MS);
process.stdout.once("data", () => {
if (opts.withSideBandMessages === true && opts.onPush != null) {
let onPushPerfomedAction: boolean = false;
let shouldAcceptRequest: boolean = false;
let denyReason: null | string = null;
// ask client for resolution about what to do + possibility to write to
// the side band messages stream.
opts.onPush({
type: "push",
message: new GitServerMessage(gitStream, accept, deny),
data: {
packType,
repoDiskPath: cwd,
repoSlug,
request,
requestMethod,
requestType,
username,
},
});
const accept = () => {
onPushPerfomedAction = true;
shouldAcceptRequest = true;
logTrace("accept was called.");
};
clearTimeout(autoDenyTimeoutId);
autoDenyTimeoutId = null;
const deny = (reason: string) => {
onPushPerfomedAction = true;
shouldAcceptRequest = false;
denyReason = reason;
logTrace("deny was called. reason:", reason);
};
if (onPushPerfomedAction === false) {
accept();
}
// protect against miss-implemented onPush by automatically denying the
// request in case onPush hook does not reply after 30 seconds.
let autoDenyTimeoutId: null | NodeJS.Timer = setTimeout(() => {
if (autoDenyTimeoutId == null) {
return undefined;
}
if (autoDenyTimeoutId != null) {
clearTimeout(autoDenyTimeoutId);
autoDenyTimeoutId = null;
}
return deny(
`onPush did not respond within the allowed ${ON_PUSH_TIMEOUT_MS} seconds.`,
);
}, ON_PUSH_TIMEOUT_MS);
if (shouldAcceptRequest === false && denyReason != null) {
gitStream.end();
return reject(new Error(denyReason));
// ask client for resolution about what to do + possibility to write to
// the side band messages stream.
opts.onPush({
type: "push",
message: new GitServerMessage(gitStream, accept, deny),
data: {
packType,
repoDiskPath: cwd,
repoSlug,
request,
requestMethod,
requestType,
username,
},
});
clearTimeout(autoDenyTimeoutId);
autoDenyTimeoutId = null;
if (onPushPerfomedAction === false) {
accept();
}
if (shouldAcceptRequest === false && denyReason != null) {
process.kill();
gitStream.end();
return reject(new Error(denyReason));
}
// else just let the command complete
return undefined;
}
}
const safePackType = safeServiceToPackType(packType);
const process = spawnGitCmd([safePackType, GIT_STATELESS_RPC_FLAG]);
// do nothing
return undefined;
});
request.raw.pipe(process.stdin, { end: false });
process.stdout.on("data", (chunk) => gitStream.write(chunk));
process.stdout.on("close", () => resolve(gitStream.end()));
});
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc