hide sha in the file tree

This commit is contained in:
tdurieux
2021-08-13 00:13:08 +02:00
parent 47f44fe41e
commit 70140bfb4b
3 changed files with 12 additions and 9 deletions
+3 -2
View File
@@ -55,8 +55,9 @@ export default class AnonymizedFile {
const paths = this.anonymizedPath.trim().split("/"); const paths = this.anonymizedPath.trim().split("/");
let currentAnonymized: TreeElement = let currentAnonymized: TreeElement = await this.repository.anonymizedFiles({
await this.repository.anonymizedFiles(); includeSha: true,
});
let currentOriginal: TreeElement = await this.repository.files(); let currentOriginal: TreeElement = await this.repository.files();
let currentOriginalPath = ""; let currentOriginalPath = "";
let isAmbiguous = false; let isAmbiguous = false;
+8 -6
View File
@@ -40,20 +40,22 @@ export default class Repository {
* @param opt force to get an updated list of files * @param opt force to get an updated list of files
* @returns The anonymized file tree * @returns The anonymized file tree
*/ */
async anonymizedFiles(opt?: { force?: boolean }): Promise<Tree> { async anonymizedFiles(opt?: {
/** Force to refresh the file tree */
force?: boolean;
/** Include the file sha in the response */
includeSha: boolean;
}): Promise<Tree> {
const terms = this._model.options.terms || []; const terms = this._model.options.terms || [];
function anonymizeTreeRecursive(tree: TreeElement): TreeElement { function anonymizeTreeRecursive(tree: TreeElement): TreeElement {
if (Number.isInteger(tree.size) && tree.sha !== undefined) { if (Number.isInteger(tree.size) && tree.sha !== undefined) {
return tree as TreeFile; if (opt?.includeSha) return tree as TreeFile;
return { size: tree.size } as TreeFile;
} }
const output: Tree = {}; const output: Tree = {};
for (const file in tree) { for (const file in tree) {
const anonymizedPath = anonymizePath(file, terms); const anonymizedPath = anonymizePath(file, terms);
if (output[anonymizedPath]) {
// file anonymization conflict
}
output[anonymizedPath] = anonymizeTreeRecursive(tree[file]); output[anonymizedPath] = anonymizeTreeRecursive(tree[file]);
} }
return output; return output;
+1 -1
View File
@@ -40,7 +40,7 @@ router.get(
const repo = await getRepo(req, res); const repo = await getRepo(req, res);
if (!repo) return; if (!repo) return;
try { try {
res.json(await repo.anonymizedFiles({ force: true })); res.json(await repo.anonymizedFiles({ includeSha: false }));
} catch (error) { } catch (error) {
handleError(error, res); handleError(error, res);
} }