mirror of
https://github.com/lukaszraczylo/git-velocity.git
synced 2026-06-18 03:43:56 +00:00
7ba4d438dd
* feat(scoring): add tests bonus and fix average calculations - [x] Add CommitsWithTests metric to track commits with test file changes - [x] Add TestsBonus to score breakdown (15 points per commit with tests) - [x] Fix AvgTimeToMerge calculation to use count of PRs with valid data - [x] Fix AvgReviewTime calculation to use count of reviews with valid data - [x] Fix AvgPRSize calculation to only include merged PRs - [x] Add trackActivityDay helper to deduplicate activity tracking code - [x] Track activity days for PR creation, reviews, and issue comments - [x] Separate issue close tracking from issue open tracking - [x] Update early bird window from 5am-9am to 6am-9am - [x] Add time-based multipliers to velocity timeline scoring - [x] Update GraphQL query to fetch OPEN, MERGED, CLOSED PRs - [x] Fix PR filtering logic to handle all PR states correctly - [x] Improve watch handlers in Vue components to prevent double-loading - [x] Fix formatDuration to handle zero and negative values - [x] Update scoring documentation to include Tests component * refactor: use standard library and consolidate constants - [x] Replace custom contains function with slices.Contains - [x] Remove duplicate contains function implementations - [x] Extract magic numbers to named constants in formatters - [x] Create constants composable for app-wide values - [x] Add ESLint configuration with browser globals - [x] Add lint npm scripts to package.json - [x] Reorder Vue template attributes for consistency - [x] Remove unused variable in AchievementProgress - [x] Add pnpm lock file
54 lines
1.4 KiB
Vue
54 lines
1.4 KiB
Vue
<script setup>
|
|
import { RouterLink } from 'vue-router'
|
|
import Avatar from './Avatar.vue'
|
|
|
|
defineProps({
|
|
contributor: {
|
|
type: Object,
|
|
required: true
|
|
},
|
|
showGithubLink: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
columns: {
|
|
type: Array,
|
|
default: () => ['commits', 'prs', 'reviews', 'lines', 'score']
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<RouterLink
|
|
:to="{ name: 'contributor', params: { login: contributor.login } }"
|
|
class="flex items-center space-x-3"
|
|
>
|
|
<Avatar
|
|
:src="contributor.avatar_url"
|
|
:name="contributor.login"
|
|
class="ring-2 ring-transparent group-hover:ring-primary-500 transition-all"
|
|
/>
|
|
<div>
|
|
<div class="font-medium text-white group-hover:text-primary-500 transition-colors">
|
|
{{ contributor.name || contributor.login }}
|
|
</div>
|
|
<div class="text-sm">
|
|
<a
|
|
v-if="showGithubLink"
|
|
:href="`https://github.com/${contributor.login}`"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
class="font-medium text-gray-400 hover:text-primary-500 transition-colors"
|
|
@click.stop
|
|
>
|
|
@{{ contributor.login }}
|
|
<i class="fas fa-external-link-alt text-xs ml-1 opacity-50"></i>
|
|
</a>
|
|
<span v-else class="font-medium text-gray-400">
|
|
@{{ contributor.login }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</RouterLink>
|
|
</template>
|