Integrate Valaxy's Git Logs plugin to display contributor information
pnpm add valaxy-addon-git-log
By default, the plugin retrieves Git information via API. Due to the limitations of static servers, it may not automatically obtain the repository address from the Git environment. Therefore, it is recommended to manually provide the repository address as shown below:
import { defineValaxyConfig } from 'valaxy'
import { addonGitLog } from 'valaxy-addon-git-log'
export default defineValaxyConfig({
addons: [
addonGitLog({
repositoryUrl: 'https://github.com/your-username/your-repository.git',
}),
],
})
To add Git contributors to a page, use the GitLogContributor
component:
<template>
<GitLogContributor />
</template>
If you are a theme developer or want to customize pages with git information, you can refer to the following example:
<script setup lang="ts">
import { useGitLog } from 'valaxy-addon-git-log'
const gitLog = useGitLog()
</script>
<template>
<ul>
<li v-for="contributor in gitLog.contributors" :key="contributor.email">
<img :src="contributor.avatar" alt="Avatar" width="30" height="30">
{{ contributor.name }}
</li>
</ul>
</template>
In your project (wether theme or addon), you can write this in valaxy.config.ts
.
export default defineValaxyConfig<ThemeConfig>({
addons: [
addonGitLog({
contributor: {
mode: 'api',
// logArgs: '--first-parent --follow',
},
}),
],
})
Name | Type | Default | Description |
---|---|---|---|
repositoryUrl | string |
undefined |
The URL of the GitHub repository. This is used to specify the repository from which to fetch information. |
contributor.mode | 'api' | 'git' |
'api' |
Defines the method to retrieve Git contributor information. If set to 'api' , the GitHub API is used. If set to 'log' , the git log command is used during build time, with the --no-merges parameter added by default. |
contributor.logArgs | string |
'' |
Additional arguments passed to the git log command when contributor.mode is set to 'git' . These arguments can customize the git log query (e.g., limiting the number of commits, filtering by date, etc.). |
Warning
If you use the git
method to deploy projects on static servers (such as Netlify
, Vercel
), there may be restrictions. To ensure proper deployment on these platforms, please use the api
method.
<template>
<GitLogContributor />
</template>
<template>
<GitLogChangelog />
</template>
This composable provides a simple way to fetch Git log data based on the current page's context.
import { useGitLog } from 'valaxy-addon-git-log'
import { computed } from 'vue'
const gitLog = useGitLog()
const contributors = computed(() => gitLog.value.contributors)
const changeLog = computed(() => gitLog.value.changeLog)
Return Type:
export interface GitLog {
contributors: Contributor[]
changeLog: Changelog[]
path: string
}
Name | Type | Description |
---|---|---|
contributors | Contributor[] |
see useContributor return type |
changeLog | Changelog[] |
see useChangelog return type |
path | string |
import { useContributor } from 'valaxy-addon-git-log'
const contributor = useContributor()
Return Type:
export interface Contributor {
name: string
email: string
avatar: string
count: number
github: string | null
hash: string
}[]
Name | Type | Description |
---|---|---|
name | string |
Contributor's name |
string |
Contributor's email | |
avatar | string |
Contributor's avatar URL, obtained through gravatar based on email |
count | number |
Number of contributions |
github | string | null |
Only supported api mode |
hash | string |
A unique hash generated based on the contributor's email |
import { useChangelog } from 'valaxy-addon-git-log'
const changelog = useChangelog()
Return Type:
export interface Changelog {
functions: string[]
version?: string
hash: string
date: string
message: string
refs?: string
body?: string
author_name: string
author_email: string
}[]
Name | Type | Description |
---|---|---|
functions |
string[] |
List of functions affected or related to the changelog entry. |
version |
string | undefined |
Optional version number for the release or update. |
hash |
string |
Unique identifier or commit hash for the change. |
date |
string |
The date when the change was made or the changelog entry was created. |
message |
string |
A brief summary or description of the change. |
refs |
string | undefined |
Optional reference information, such as ticket IDs or PR links. |
body |
string | undefined |
Optional detailed body content or additional explanation of the change. |
author_name |
string |
Name of the person who made the change. |
author_email |
string |
Email address of the person who made the change. |
import changelog from 'virtual:git-log/changelog'
The changelog
variable contains all the commit logs.
import contributors from 'virtual:git-log/contributors'
The contributors
variable contains information about all contributors.