[v10.0/forgejo] feat: Add summary card for repos and releases

This commit is contained in:
JakobDev 2025-01-01 22:00:26 +01:00
parent 9e6c3f226c
commit 13496203bc
No known key found for this signature in database
GPG key ID: 39DEF62C3ED6DC4C
13 changed files with 735 additions and 282 deletions

View file

@ -94,45 +94,71 @@ func TestOpenGraphProperties(t *testing.T) {
name: "file in repo",
url: "/user27/repo49/src/branch/master/test/test.txt",
expected: map[string]string{
"og:title": "repo49/test/test.txt at master",
"og:url": setting.AppURL + "/user27/repo49/src/branch/master/test/test.txt",
"og:type": "object",
"og:image": setting.AppURL + "assets/img/avatar_default.png",
"og:site_name": siteName,
"og:title": "repo49/test/test.txt at master",
"og:url": setting.AppURL + "/user27/repo49/src/branch/master/test/test.txt",
"og:type": "object",
"og:image": setting.AppURL + "user27/repo49/-/summary-card",
"og:image:alt": "Summary card of repository user27/repo49",
"og:image:width": "1200",
"og:image:height": "600",
"og:site_name": siteName,
},
},
{
name: "wiki page for repo without description",
url: "/user2/repo1/wiki/Page-With-Spaced-Name",
expected: map[string]string{
"og:title": "Page With Spaced Name",
"og:url": setting.AppURL + "/user2/repo1/wiki/Page-With-Spaced-Name",
"og:type": "object",
"og:image": setting.AppURL + "avatars/ab53a2911ddf9b4817ac01ddcd3d975f",
"og:site_name": siteName,
"og:title": "Page With Spaced Name",
"og:url": setting.AppURL + "/user2/repo1/wiki/Page-With-Spaced-Name",
"og:type": "object",
"og:image": setting.AppURL + "user2/repo1/-/summary-card",
"og:image:alt": "Summary card of repository user2/repo1",
"og:image:width": "1200",
"og:image:height": "600",
"og:site_name": siteName,
},
},
{
name: "index page for repo without description",
url: "/user2/repo1",
expected: map[string]string{
"og:title": "repo1",
"og:url": setting.AppURL + "user2/repo1",
"og:type": "object",
"og:image": setting.AppURL + "avatars/ab53a2911ddf9b4817ac01ddcd3d975f",
"og:site_name": siteName,
"og:title": "repo1",
"og:url": setting.AppURL + "user2/repo1",
"og:type": "object",
"og:image": setting.AppURL + "user2/repo1/-/summary-card",
"og:image:alt": "Summary card of repository user2/repo1",
"og:image:width": "1200",
"og:image:height": "600",
"og:site_name": siteName,
},
},
{
name: "index page for repo with description",
url: "/user27/repo49",
expected: map[string]string{
"og:title": "repo49",
"og:url": setting.AppURL + "user27/repo49",
"og:description": "A wonderful repository with more than just a README.md",
"og:type": "object",
"og:image": setting.AppURL + "assets/img/avatar_default.png",
"og:site_name": siteName,
"og:title": "repo49",
"og:url": setting.AppURL + "user27/repo49",
"og:description": "A wonderful repository with more than just a README.md",
"og:type": "object",
"og:image": setting.AppURL + "user27/repo49/-/summary-card",
"og:image:alt": "Summary card of repository user27/repo49",
"og:image:width": "1200",
"og:image:height": "600",
"og:site_name": siteName,
},
},
{
name: "release",
url: "/user2/repo1/releases/tag/v1.1",
expected: map[string]string{
"og:title": "testing-release - user2/repo1",
"og:url": setting.AppURL + "user2/repo1/releases/tag/v1.1",
"og:type": "object",
"og:image": setting.AppURL + "user2/repo1/releases/summary-card/v1.1",
"og:image:alt": "Summary card of an release titled \"testing-release\" in repository user2/repo1",
"og:image:width": "1200",
"og:image:height": "600",
"og:site_name": siteName,
},
},
}
@ -166,6 +192,10 @@ func TestOpenGraphSummaryCard(t *testing.T) {
name string
url string
}{
{
name: "repo",
url: "/user2/repo1/-/summary-card",
},
{
name: "issue",
url: "/user2/repo1/issues/1/summary-card",
@ -174,6 +204,10 @@ func TestOpenGraphSummaryCard(t *testing.T) {
name: "pull request",
url: "/user2/repo1/pulls/2/summary-card",
},
{
name: "release",
url: "/user2/repo1/releases/summary-card/v1.1",
},
}
for _, tc := range cases {