feat(#200): save the commit date of the anonymized commit

This commit is contained in:
tdurieux
2023-04-25 23:40:12 +02:00
parent c9acb7b899
commit 7e2c490e4b
6 changed files with 39 additions and 3 deletions

View File

@@ -3,7 +3,12 @@
<div class="leftCol shadow p-1 overflow-auto" ng-show="files">
<tree class="files" file="files"></tree>
<div class="bottom column">
<div class="last-update">
<div
class="last-update"
data-toggle="tooltip"
data-placement="top"
title="{{options.lastUpdateDate}}"
>
Last Update: {{options.lastUpdateDate|date}}
</div>
</div>

View File

@@ -191,9 +191,10 @@ export default class Repository {
) {
// Only GitHubBase can be update for the moment
if (this.source instanceof GitHubBase) {
const token = await this.source.getToken();
const branches = await this.source.githubRepository.branches({
force: true,
accessToken: await this.source.getToken(),
accessToken: token,
});
const branch = this.source.branch;
const newCommit = branches.filter((f) => f.name == branch.name)[0]
@@ -203,6 +204,17 @@ export default class Repository {
return;
}
this._model.source.commit = newCommit;
const commitInfo = await this.source.githubRepository.getCommitInfo(
newCommit,
{
accessToken: token,
}
);
if (commitInfo.commit.author?.date) {
this._model.source.commitDate = new Date(
commitInfo.commit.author?.date
);
}
branch.commit = newCommit;
if (!newCommit) {

View File

@@ -25,6 +25,7 @@ const AnonymizedRepositorySchema = new Schema({
type: { type: String },
branch: String,
commit: String,
commitDate: Date,
repositoryId: String,
repositoryName: String,
accessToken: String,

View File

@@ -11,6 +11,7 @@ export interface IAnonymizedRepository {
type: "GitHubDownload" | "GitHubStream" | "Zip";
branch?: string;
commit?: string;
commitDate?: Date,
repositoryId?: string;
repositoryName?: string;
accessToken?: string;

View File

@@ -153,7 +153,9 @@ router.get(
res.json({
url: redirectURL,
download,
lastUpdateDate: repo.model.statusDate,
lastUpdateDate: repo.model.source.commitDate
? repo.model.source.commitDate
: repo.model.anonymizeDate,
});
} catch (error) {
handleError(error, res, req);

View File

@@ -44,6 +44,21 @@ export class GitHubRepository {
return this._data.size;
}
async getCommitInfo(
sha: string,
opt: {
accessToken?: string;
}
) {
const octokit = new Octokit({ auth: opt.accessToken });
const commit = await octokit.repos.getCommit({
owner: this.owner,
repo: this.repo,
ref: sha,
});
return commit.data;
}
async branches(opt: {
accessToken?: string;
force?: boolean;