feat: 展示发布 PR 来源信息

This commit is contained in:
湛兮
2026-06-12 02:12:53 +08:00
parent f67c0c7110
commit fdd65878f7
2 changed files with 84 additions and 1 deletions
+15
View File
@@ -221,10 +221,25 @@ export interface ProjectRefCommit {
authoredAt?: string
}
export interface ProjectRefPullRequest {
number: number
title: string
state: string
merged: boolean
mergedAt?: string
mergeCommitSha?: string
headRef?: string
headSha?: string
baseRef?: string
authorName?: string
url?: string
}
export interface ProjectRefItem {
name: string
commitSha?: string
commit?: ProjectRefCommit
pullRequest?: ProjectRefPullRequest
}
export interface PipelineStep {
+69 -1
View File
@@ -105,6 +105,28 @@ const selectedCommitMeta = computed(() => {
return parts.join(' · ')
})
const selectedPullRequest = computed(() => selectedRefDetail.value?.pullRequest)
const selectedPullRequestMeta = computed(() => {
const pullRequest = selectedPullRequest.value
if (!pullRequest) {
return ''
}
const branchText =
pullRequest.headRef && pullRequest.baseRef
? `${pullRequest.headRef} -> ${pullRequest.baseRef}`
: ''
const parts = [
branchText,
pullRequest.authorName,
formatCommitTime(pullRequest.mergedAt),
].filter(Boolean)
return parts.join(' · ')
})
const canTrigger = computed(() => {
if (!form.projectKey || !form.environment || !form.ref) {
return false
@@ -325,6 +347,22 @@ watch(refOptions, (options) => {
<strong>{{ selectedCommitMessage || 'Gitea 未返回提交说明' }}</strong>
</div>
<small v-if="selectedCommitMeta">{{ selectedCommitMeta }}</small>
<div v-if="selectedPullRequest" class="commit-secondary">
<ElTag size="small" type="success" effect="plain">
PR #{{ selectedPullRequest.number }}
</ElTag>
<ElLink
v-if="selectedPullRequest.url"
:href="selectedPullRequest.url"
target="_blank"
rel="noopener noreferrer"
:underline="false"
>
{{ selectedPullRequest.title }}
</ElLink>
<strong v-else>{{ selectedPullRequest.title }}</strong>
<small v-if="selectedPullRequestMeta">{{ selectedPullRequestMeta }}</small>
</div>
</div>
</ElFormItem>
<ElFormItem label="备注">
@@ -437,8 +475,18 @@ watch(refOptions, (options) => {
align-items: center;
}
.commit-secondary {
display: grid;
grid-template-columns: max-content minmax(0, 1fr) max-content;
gap: 8px;
align-items: center;
min-width: 0;
}
.commit-main strong,
.commit-preview small {
.commit-preview small,
.commit-secondary strong,
.commit-secondary :deep(.el-link) {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
@@ -456,6 +504,26 @@ watch(refOptions, (options) => {
font-size: 12px;
}
.commit-secondary strong,
.commit-secondary :deep(.el-link__inner) {
overflow: hidden;
color: #0f766e;
font-size: 12px;
font-weight: 600;
text-overflow: ellipsis;
white-space: nowrap;
}
@media (max-width: 520px) {
.commit-secondary {
grid-template-columns: max-content minmax(0, 1fr);
}
.commit-secondary small {
grid-column: 1 / -1;
}
}
@media (max-width: 760px) {
.form-grid {
grid-template-columns: 1fr;