Merge pull request 'templates: Be more forgiving about missing package metadata' (#3701) from algernon/forgejo:missing-metadata-makes-me-mumble-murky-messages into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3701
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
This commit is contained in:
Earl Warren 2024-05-10 18:06:04 +00:00
commit cf0e451ef4
3 changed files with 52 additions and 37 deletions

View file

@ -23,49 +23,53 @@
&lt;/snapshotRepository&gt;
&lt;/distributionManagement&gt;</code></pre></div>
</div>
<div class="field">
<label>{{svg "octicon-code"}} {{ctx.Locale.Tr "packages.maven.install"}}</label>
<div class="markup"><pre class="code-block"><code>&lt;dependency&gt;
{{if .PackageDescriptor.Metadata}}
<div class="field">
<label>{{svg "octicon-code"}} {{ctx.Locale.Tr "packages.maven.install"}}</label>
<div class="markup"><pre class="code-block"><code>&lt;dependency&gt;
&lt;groupId&gt;{{.PackageDescriptor.Metadata.GroupID}}&lt;/groupId&gt;
&lt;artifactId&gt;{{.PackageDescriptor.Metadata.ArtifactID}}&lt;/artifactId&gt;
&lt;version&gt;{{.PackageDescriptor.Version.Version}}&lt;/version&gt;
&lt;/dependency&gt;</code></pre></div>
</div>
<div class="field">
<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.install2"}}</label>
<div class="markup"><pre class="code-block"><code>mvn install</code></pre></div>
</div>
<div class="field">
<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.download"}}</label>
<div class="markup"><pre class="code-block"><code>mvn dependency:get -DremoteRepositories=<origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven"></origin-url> -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
</div>
<div class="field">
<label>{{ctx.Locale.Tr "packages.registry.documentation" "Maven" "https://forgejo.org/docs/latest/user/packages/maven/"}}</label>
</div>
</div>
<div class="field">
<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.install2"}}</label>
<div class="markup"><pre class="code-block"><code>mvn install</code></pre></div>
</div>
<div class="field">
<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.download"}}</label>
<div class="markup"><pre class="code-block"><code>mvn dependency:get -DremoteRepositories=<origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven"></origin-url> -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
</div>
<div class="field">
<label>{{ctx.Locale.Tr "packages.registry.documentation" "Maven" "https://forgejo.org/docs/latest/user/packages/maven/"}}</label>
</div>
{{end}}
</div>
</div>
{{if .PackageDescriptor.Metadata.Description}}
<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.about"}}</h4>
<div class="ui attached segment">
{{.PackageDescriptor.Metadata.Description}}
</div>
{{end}}
{{if .PackageDescriptor.Metadata.Dependencies}}
<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.dependencies"}}</h4>
<div class="ui attached segment">
<div class="ui list">
{{range .PackageDescriptor.Metadata.Dependencies}}
<div class="item">
<i class="icon">{{svg "octicon-package-dependencies" 16 ""}}</i>
<div class="content">
<div class="header">{{.GroupID}}:{{.ArtifactID}}</div>
<div class="description text small">{{.Version}}</div>
</div>
</div>
{{end}}
{{if .PackageDescriptor.Metadata}}
{{if .PackageDescriptor.Metadata.Description}}
<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.about"}}</h4>
<div class="ui attached segment">
{{.PackageDescriptor.Metadata.Description}}
</div>
</div>
{{end}}
{{if .PackageDescriptor.Metadata.Dependencies}}
<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.dependencies"}}</h4>
<div class="ui attached segment">
<div class="ui list">
{{range .PackageDescriptor.Metadata.Dependencies}}
<div class="item">
<i class="icon">{{svg "octicon-package-dependencies" 16 ""}}</i>
<div class="content">
<div class="header">{{.GroupID}}:{{.ArtifactID}}</div>
<div class="description text small">{{.Version}}</div>
</div>
</div>
{{end}}
</div>
</div>
{{end}}
{{end}}
{{end}}

View file

@ -1,4 +1,4 @@
{{if eq .PackageDescriptor.Package.Type "maven"}}
{{if and (eq .PackageDescriptor.Package.Type "maven") .PackageDescriptor.Metadata}}
{{if .PackageDescriptor.Metadata.Name}}<div class="item">{{svg "octicon-note" 16 "tw-mr-2"}} {{.PackageDescriptor.Metadata.Name}}</div>{{end}}
{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "tw-mr-2"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{ctx.Locale.Tr "packages.details.project_site"}}</a></div>{{end}}
{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{ctx.Locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "tw-mr-2"}} {{.}}</div>{{end}}

View file

@ -241,4 +241,15 @@ func TestPackageMaven(t *testing.T) {
putFile(t, fmt.Sprintf("/%s/maven-metadata.xml", snapshotVersion), "test", http.StatusCreated)
putFile(t, fmt.Sprintf("/%s/maven-metadata.xml", snapshotVersion), "test-overwrite", http.StatusCreated)
})
t.Run("Partial upload", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
partialVersion := packageVersion + "-PARTIAL"
putFile(t, fmt.Sprintf("/%s/%s", partialVersion, filename), "test", http.StatusCreated)
pkgUIURL := fmt.Sprintf("/%s/-/packages/maven/%s-%s/%s", user.Name, groupID, artifactID, partialVersion)
req := NewRequest(t, "GET", pkgUIURL)
resp := MakeRequest(t, req, http.StatusOK)
assert.NotContains(t, resp.Body.String(), "Internal server error")
})
}