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:
		
				commit
				
					
						cf0e451ef4
					
				
			
		
					 3 changed files with 52 additions and 37 deletions
				
			
		| 
						 | 
					@ -23,49 +23,53 @@
 | 
				
			||||||
	</snapshotRepository>
 | 
						</snapshotRepository>
 | 
				
			||||||
</distributionManagement></code></pre></div>
 | 
					</distributionManagement></code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								{{if .PackageDescriptor.Metadata}}
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{ctx.Locale.Tr "packages.maven.install"}}</label>
 | 
									<div class="field">
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code><dependency>
 | 
										<label>{{svg "octicon-code"}} {{ctx.Locale.Tr "packages.maven.install"}}</label>
 | 
				
			||||||
 | 
										<div class="markup"><pre class="code-block"><code><dependency>
 | 
				
			||||||
	<groupId>{{.PackageDescriptor.Metadata.GroupID}}</groupId>
 | 
						<groupId>{{.PackageDescriptor.Metadata.GroupID}}</groupId>
 | 
				
			||||||
	<artifactId>{{.PackageDescriptor.Metadata.ArtifactID}}</artifactId>
 | 
						<artifactId>{{.PackageDescriptor.Metadata.ArtifactID}}</artifactId>
 | 
				
			||||||
	<version>{{.PackageDescriptor.Version.Version}}</version>
 | 
						<version>{{.PackageDescriptor.Version.Version}}</version>
 | 
				
			||||||
</dependency></code></pre></div>
 | 
					</dependency></code></pre></div>
 | 
				
			||||||
			</div>
 | 
									</div>
 | 
				
			||||||
			<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.install2"}}</label>
 | 
										<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 class="markup"><pre class="code-block"><code>mvn install</code></pre></div>
 | 
				
			||||||
			</div>
 | 
									</div>
 | 
				
			||||||
			<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.maven.download"}}</label>
 | 
										<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 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>
 | 
				
			||||||
			<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
				<label>{{ctx.Locale.Tr "packages.registry.documentation" "Maven" "https://forgejo.org/docs/latest/user/packages/maven/"}}</label>
 | 
										<label>{{ctx.Locale.Tr "packages.registry.documentation" "Maven" "https://forgejo.org/docs/latest/user/packages/maven/"}}</label>
 | 
				
			||||||
			</div>
 | 
									</div>
 | 
				
			||||||
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.about"}}</h4>
 | 
							{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<div class="ui attached segment">
 | 
								<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
			{{.PackageDescriptor.Metadata.Description}}
 | 
								<div class="ui attached segment">
 | 
				
			||||||
		</div>
 | 
									{{.PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
	{{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>
 | 
				
			||||||
		</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}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.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}}
 | 
						{{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}}
 | 
						{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{ctx.Locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "tw-mr-2"}} {{.}}</div>{{end}}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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", http.StatusCreated)
 | 
				
			||||||
		putFile(t, fmt.Sprintf("/%s/maven-metadata.xml", snapshotVersion), "test-overwrite", 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")
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue