Improve log and GH token validation

This commit is contained in:
tdurieux
2024-04-27 16:19:33 +01:00
parent 6476899764
commit 2a145730b7
4 changed files with 27 additions and 10 deletions
+9
View File
@@ -28,6 +28,13 @@ export async function getToken(repository: Repository) {
const span = trace.getTracer("ano-file").startSpan("GHUtils.getToken"); const span = trace.getTracer("ano-file").startSpan("GHUtils.getToken");
span.setAttribute("repoId", repository.repoId); span.setAttribute("repoId", repository.repoId);
try { try {
// only check the token if the repo has been visited more than one day ago
if (
repository.model.source.accessToken &&
repository.model.lastView > new Date(Date.now() - 1000 * 60 * 60 * 24)
) {
return repository.model.source.accessToken;
}
if (repository.model.source.accessToken) { if (repository.model.source.accessToken) {
if (await checkToken(repository.model.source.accessToken)) { if (await checkToken(repository.model.source.accessToken)) {
return repository.model.source.accessToken; return repository.model.source.accessToken;
@@ -48,6 +55,8 @@ export async function getToken(repository: Repository) {
repository.owner.model.accessTokens?.github repository.owner.model.accessTokens?.github
); );
if (check) { if (check) {
repository.model.source.accessToken =
repository.owner.model.accessTokens?.github;
return repository.owner.model.accessTokens?.github; return repository.owner.model.accessTokens?.github;
} }
} }
+17 -8
View File
@@ -130,6 +130,23 @@ export default async function start() {
keyGenerator, keyGenerator,
}); });
app.use(
express.static(join("public"), {
etag: true,
lastModified: true,
maxAge: 3600, // 1h
})
);
app.use(function (req, res, next) {
const start = Date.now();
res.on("finish", function () {
const time = Date.now() - start;
console.log(`${req.method} ${join(req.baseUrl, req.url)} ${time}ms`);
});
next();
});
app.use("/github", rate, speedLimiter, connectionRouter); app.use("/github", rate, speedLimiter, connectionRouter);
// api routes // api routes
@@ -201,14 +218,6 @@ export default async function start() {
.get("/r/:repoId/?*", indexResponse) .get("/r/:repoId/?*", indexResponse)
.get("/repository/:repoId/?*", indexResponse); .get("/repository/:repoId/?*", indexResponse);
app.use(
express.static(join("public"), {
etag: true,
lastModified: true,
maxAge: 3600, // 1h
})
);
app.get("*", indexResponse); app.get("*", indexResponse);
// start schedules // start schedules
+1 -1
View File
@@ -58,8 +58,8 @@ router.get(
// cache the file for 5min // cache the file for 5min
res.header("Cache-Control", "max-age=300"); res.header("Cache-Control", "max-age=300");
} }
await repo.countView();
await f.send(res); await f.send(res);
await repo.countView();
} catch (error) { } catch (error) {
return handleError(error, res, req); return handleError(error, res, req);
} }
-1
View File
@@ -25,7 +25,6 @@ router.post("/", async (req: express.Request, res: express.Response) => {
commit: commit, commit: commit,
getToken: () => token, getToken: () => token,
}); });
console.log(`[FILE] ${repoId}/${filePath}`);
const content = await source.getFileContentCache( const content = await source.getFileContentCache(
filePath, filePath,
repoId, repoId,