Removed release and commit count its useless.
Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
This commit is contained in:
@@ -26,39 +26,21 @@ const { project } = Astro.props;
|
|||||||
|
|
||||||
{
|
{
|
||||||
project.giteaInfo &&
|
project.giteaInfo &&
|
||||||
(project.giteaInfo.commits > 0 ||
|
(project.giteaInfo.languages.length > 0 ||
|
||||||
project.giteaInfo.releases > 0 ||
|
project.giteaInfo.updatedAt) && (
|
||||||
project.giteaInfo.language) && (
|
|
||||||
<>
|
<>
|
||||||
<div class="divider my-2 before:bg-accent-content/30 after:bg-accent-content/30" />
|
<div class="divider my-2 before:bg-accent-content/30 after:bg-accent-content/30" />
|
||||||
<div class="flex flex-wrap gap-3 justify-center text-sm">
|
<div class="flex flex-wrap gap-2 justify-center">
|
||||||
<div class="flex items-center gap-1.5">
|
{project.giteaInfo.languages.map(
|
||||||
<Icon
|
(language: string) => (
|
||||||
name="mdi:source-commit"
|
<div class="badge badge-sm gap-1 bg-accent-content/20 border-accent-content/30">
|
||||||
class="w-4 h-4"
|
<Icon
|
||||||
/>
|
name="mdi:code-tags"
|
||||||
<span class="font-semibold">
|
class="w-3 h-3"
|
||||||
{project.giteaInfo.commits}
|
/>
|
||||||
</span>
|
{language}
|
||||||
<span class="opacity-70">commits</span>
|
</div>
|
||||||
</div>
|
),
|
||||||
<div class="flex items-center gap-1.5">
|
|
||||||
<Icon name="mdi:tag-multiple" class="w-4 h-4" />
|
|
||||||
<span class="font-semibold">
|
|
||||||
{project.giteaInfo.releases}
|
|
||||||
</span>
|
|
||||||
<span class="opacity-70">releases</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-wrap gap-2 justify-center mt-2">
|
|
||||||
{project.giteaInfo.language && (
|
|
||||||
<div class="badge badge-sm gap-1 bg-accent-content/20 border-accent-content/30">
|
|
||||||
<Icon
|
|
||||||
name="mdi:code-tags"
|
|
||||||
class="w-3 h-3"
|
|
||||||
/>
|
|
||||||
{project.giteaInfo.language}
|
|
||||||
</div>
|
|
||||||
)}
|
)}
|
||||||
{project.giteaInfo.updatedAt && (
|
{project.giteaInfo.updatedAt && (
|
||||||
<div class="badge badge-sm gap-1 bg-accent-content/20 border-accent-content/30">
|
<div class="badge badge-sm gap-1 bg-accent-content/20 border-accent-content/30">
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
export interface GiteaRepoInfo {
|
export interface GiteaRepoInfo {
|
||||||
commits: number;
|
languages: string[];
|
||||||
releases: number;
|
|
||||||
language: string;
|
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
size: number;
|
size: number;
|
||||||
defaultBranch: string;
|
defaultBranch: string;
|
||||||
@@ -51,44 +49,29 @@ export async function fetchGiteaRepoInfo(
|
|||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
let commitsCount = 0;
|
let languages: string[] = [];
|
||||||
try {
|
try {
|
||||||
const commitsUrl = `${config.domain}/api/v1/repos/${config.owner}/${config.repo}/commits?limit=1&stat=false`;
|
const languagesUrl = `${config.domain}/api/v1/repos/${config.owner}/${config.repo}/languages`;
|
||||||
const commitsResponse = await fetch(commitsUrl, {
|
const languagesResponse = await fetch(languagesUrl, {
|
||||||
headers: {
|
headers: {
|
||||||
Accept: "application/json",
|
Accept: "application/json",
|
||||||
},
|
},
|
||||||
signal: AbortSignal.timeout(5000),
|
signal: AbortSignal.timeout(5000),
|
||||||
});
|
});
|
||||||
if (commitsResponse.ok) {
|
if (languagesResponse.ok) {
|
||||||
const totalCount = commitsResponse.headers.get("X-Total-Count");
|
const languagesData = await languagesResponse.json();
|
||||||
commitsCount = totalCount ? parseInt(totalCount, 10) : 0;
|
// Gitea returns an object like { "TypeScript": 12345, "JavaScript": 6789 }
|
||||||
}
|
// Sort by usage (bytes) and extract language names
|
||||||
} catch (error) {
|
languages = Object.keys(languagesData).sort(
|
||||||
// Ignore
|
(a, b) => languagesData[b] - languagesData[a],
|
||||||
}
|
);
|
||||||
|
|
||||||
let releasesCount = 0;
|
|
||||||
try {
|
|
||||||
const releasesUrl = `${config.domain}/api/v1/repos/${config.owner}/${config.repo}/releases`;
|
|
||||||
const releasesResponse = await fetch(releasesUrl, {
|
|
||||||
headers: {
|
|
||||||
Accept: "application/json",
|
|
||||||
},
|
|
||||||
signal: AbortSignal.timeout(5000),
|
|
||||||
});
|
|
||||||
if (releasesResponse.ok) {
|
|
||||||
const releases = await releasesResponse.json();
|
|
||||||
releasesCount = Array.isArray(releases) ? releases.length : 0;
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// Ignore
|
// Ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
commits: commitsCount,
|
languages: languages.length > 0 ? languages : [],
|
||||||
releases: releasesCount,
|
|
||||||
language: data.language || "Unknown",
|
|
||||||
updatedAt: data.updated_at || data.pushed_at || "",
|
updatedAt: data.updated_at || data.pushed_at || "",
|
||||||
size: data.size || 0,
|
size: data.size || 0,
|
||||||
defaultBranch: data.default_branch || "main",
|
defaultBranch: data.default_branch || "main",
|
||||||
|
|||||||
Reference in New Issue
Block a user