mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 11:01:25 +01:00
fix: address verified review findings (terminal-forms-1)
Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
21 files changed
+329
-53
No files matched your search
@@ -63,6 +63,8 @@ func TestCreateSelectablesLoadWriteFieldsOnlyWithPush(t *testing.T) {
|
||||
switch r.URL.Path {
|
||||
case "/api/v1/repos/alice/project":
|
||||
_, _ = fmt.Fprintf(w, `{"full_name":"alice/project","permissions":{"push":%t,"pull":true}}`, push)
|
||||
case "/api/v1/orgs/alice":
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
case "/api/v1/repos/alice/project/issue_templates":
|
||||
_, _ = w.Write([]byte(`[{"name":"Bug","title":"t","content":"c"}]`))
|
||||
case "/api/v1/repos/alice/project/assignees":
|
||||
@@ -124,3 +126,30 @@ func TestViewPermissionsKeepsRepositorySchemaSeparate(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, RepositoryPermissions{Admin: true, Push: true, Pull: true}, permissions)
|
||||
}
|
||||
|
||||
func TestCreateSelectablesIncludeOrganizationLabels(t *testing.T) {
|
||||
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.URL.Path {
|
||||
case "/api/v1/repos/acme/service":
|
||||
_, _ = w.Write([]byte(`{"full_name":"acme/service","permissions":{"push":true,"pull":true}}`))
|
||||
case "/api/v1/orgs/acme":
|
||||
_, _ = w.Write([]byte(`{"id":5,"name":"acme"}`))
|
||||
case "/api/v1/repos/acme/service/assignees", "/api/v1/repos/acme/service/milestones":
|
||||
_, _ = w.Write([]byte(`[]`))
|
||||
case "/api/v1/repos/acme/service/labels":
|
||||
_, _ = w.Write([]byte(`[]`))
|
||||
case "/api/v1/orgs/acme/labels":
|
||||
if r.URL.Query().Get("page") == "2" {
|
||||
_, _ = w.Write([]byte(`[]`))
|
||||
return
|
||||
}
|
||||
_, _ = w.Write([]byte(`[{"id":9,"name":"needs-triage"}]`))
|
||||
default:
|
||||
t.Errorf("unexpected path %s", r.URL.Path)
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
}
|
||||
}))
|
||||
result, err := (Pulls{Client: client, Repository: "acme/service"}).CreateSelectables(context.Background())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []Label{{ID: 9, Name: "needs-triage"}}, result.Labels)
|
||||
}
|
||||
@@ -5,6 +5,7 @@ package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"gitea.dev/tea/internal/transport"
|
||||
)
|
||||
@@ -37,6 +38,15 @@ func loadCreateSelectables(ctx context.Context, client *transport.Client, reposi
|
||||
}); err != nil {
|
||||
return result, err
|
||||
}
|
||||
result.Labels, err = (Labels{Client: client, Repository: repository}).All(ctx)
|
||||
if result.Labels, err = (Labels{Client: client, Repository: repository}).All(ctx); err != nil {
|
||||
return result, err
|
||||
}
|
||||
// Like --label, offer the labels shared by the organization that owns the repository.
|
||||
owner, _, _ := strings.Cut(repository, "/")
|
||||
if _, isOrg, err := organization(ctx, client, owner); err != nil || !isOrg {
|
||||
return result, err
|
||||
}
|
||||
orgLabels, err := (Labels{Client: client, Organization: owner}).All(ctx)
|
||||
result.Labels = append(result.Labels, orgLabels...)
|
||||
return result, err
|
||||
}
|
||||
Reference in new issue
Block a user