Skip to content

Commit a0f4e9d

Browse files
committed
fix
1 parent 906adff commit a0f4e9d

File tree

6 files changed

+63
-26
lines changed

6 files changed

+63
-26
lines changed

modules/packages/npm/creator.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,28 @@ type PackageMetadata struct {
6262
Author User `json:"author"`
6363
ReadmeFilename string `json:"readmeFilename,omitempty"`
6464
Users map[string]bool `json:"users,omitempty"`
65-
License string `json:"license,omitempty"`
65+
License License `json:"license,omitempty"`
66+
}
67+
68+
type License string
69+
70+
func (l *License) UnmarshalJSON(data []byte) error {
71+
switch data[0] {
72+
case '"':
73+
var value string
74+
if err := json.Unmarshal(data, &value); err != nil {
75+
return err
76+
}
77+
*l = License(value)
78+
case '{':
79+
var values map[string]any
80+
if err := json.Unmarshal(data, &values); err != nil {
81+
return err
82+
}
83+
value := values["type"].(string)
84+
*l = License(value)
85+
}
86+
return nil
6687
}
6788

6889
// PackageMetadataVersion documentation: https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md#version
@@ -74,7 +95,7 @@ type PackageMetadataVersion struct {
7495
Description string `json:"description"`
7596
Author User `json:"author"`
7697
Homepage string `json:"homepage,omitempty"`
77-
License string `json:"license,omitempty"`
98+
License License `json:"license,omitempty"`
7899
Repository Repository `json:"repository"`
79100
Keywords []string `json:"keywords,omitempty"`
80101
Dependencies map[string]string `json:"dependencies,omitempty"`

modules/packages/npm/creator_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"code.gitea.io/gitea/modules/json"
1414

1515
"github.com/stretchr/testify/assert"
16+
"github.com/stretchr/testify/require"
1617
)
1718

1819
func TestParsePackage(t *testing.T) {
@@ -298,4 +299,29 @@ func TestParsePackage(t *testing.T) {
298299
assert.Equal(t, repository.Type, p.Metadata.Repository.Type)
299300
assert.Equal(t, repository.URL, p.Metadata.Repository.URL)
300301
})
302+
303+
t.Run("ValidLicenseMap", func(t *testing.T) {
304+
packageJSON := `{
305+
"versions": {
306+
"0.1.1": {
307+
"name": "dev-null",
308+
"version": "0.1.1",
309+
"license": {
310+
"type": "MIT"
311+
},
312+
"dist": {
313+
"integrity": "sha256-"
314+
}
315+
}
316+
},
317+
"_attachments": {
318+
"foo": {
319+
"data": "AAAA"
320+
}
321+
}
322+
}`
323+
p, err := ParsePackage(strings.NewReader(packageJSON))
324+
require.NoError(t, err)
325+
require.Equal(t, "MIT", string(p.Metadata.License))
326+
})
301327
}

modules/packages/npm/metadata.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type Metadata struct {
1212
Name string `json:"name,omitempty"`
1313
Description string `json:"description,omitempty"`
1414
Author string `json:"author,omitempty"`
15-
License string `json:"license,omitempty"`
15+
License License `json:"license,omitempty"`
1616
ProjectURL string `json:"project_url,omitempty"`
1717
Keywords []string `json:"keywords,omitempty"`
1818
Dependencies map[string]string `json:"dependencies,omitempty"`

routers/web/repo/editor_cherry_pick.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ func CherryPick(ctx *context.Context) {
3636
ctx.Data["commit_message"] = "revert " + cherryPickCommit.Message()
3737
} else {
3838
ctx.Data["CherryPickType"] = "cherry-pick"
39-
splits := strings.SplitN(cherryPickCommit.Message(), "\n", 2)
40-
ctx.Data["commit_summary"] = splits[0]
41-
ctx.Data["commit_message"] = splits[1]
39+
ctx.Data["commit_summary"], ctx.Data["commit_message"], _ = strings.Cut(cherryPickCommit.Message(), "\n")
4240
}
4341

4442
ctx.HTML(http.StatusOK, tplCherryPick)

services/mailer/sender/sender.go

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44
package sender
55

66
import (
7+
"errors"
78
"io"
8-
9-
"code.gitea.io/gitea/modules/log"
10-
"code.gitea.io/gitea/modules/setting"
119
)
1210

1311
type Sender interface {
@@ -16,23 +14,17 @@ type Sender interface {
1614

1715
var Send = send
1816

19-
func send(sender Sender, msgs ...*Message) error {
20-
if setting.MailService == nil {
21-
log.Error("Mailer: Send is being invoked but mail service hasn't been initialized")
22-
return nil
17+
func send(sender Sender, msg *Message) error {
18+
m := msg.ToMessage()
19+
froms := m.GetFrom()
20+
to, err := m.GetRecipients()
21+
if err != nil {
22+
return err
2323
}
24-
for _, msg := range msgs {
25-
m := msg.ToMessage()
26-
froms := m.GetFrom()
27-
to, err := m.GetRecipients()
28-
if err != nil {
29-
return err
30-
}
3124

32-
// TODO: implement sending from multiple addresses
33-
if err := sender.Send(froms[0].Address, to, m); err != nil {
34-
return err
35-
}
25+
// TODO: implement sending from multiple addresses
26+
if len(froms) == 0 {
27+
return errors.New("no FROM specified")
3628
}
37-
return nil
29+
return sender.Send(froms[0].Address, to, m)
3830
}

templates/package/content/pypi.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div class="ui form">
55
<div class="field">
66
<label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.pypi.install"}}</label>
7-
<div class="markup"><pre class="code-block"><code>pip install --index-url <origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescriptor.Owner.Name}}/pypi/simple/"></origin-url> --extra-index-url https://pypi.org/ {{.PackageDescriptor.Package.Name}}</code></pre></div>
7+
<div class="markup"><pre class="code-block"><code>pip install --index-url <origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescriptor.Owner.Name}}/pypi/simple/"></origin-url> --extra-index-url https://pypi.org/simple {{.PackageDescriptor.Package.Name}}</code></pre></div>
88
</div>
99
<div class="field">
1010
<label>{{ctx.Locale.Tr "packages.registry.documentation" "PyPI" "https://docs.gitea.com/usage/packages/pypi/"}}</label>

0 commit comments

Comments
 (0)