Skip to content

Commit 28b16f6

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: Fix PR creation via api between branches of same repo with head field namespaced (go-gitea#26986) Remove fomantic message module (go-gitea#29856) fix double border and border-radius on empty action steps (go-gitea#29845) add `.suppressed` link class (go-gitea#29847)
2 parents 49462d6 + ed02d1f commit 28b16f6

File tree

7 files changed

+136
-756
lines changed

7 files changed

+136
-756
lines changed

routers/api/v1/repo/pull.go

+2
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,8 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
10681068
return nil, nil, nil, nil, "", ""
10691069
}
10701070
headBranch = headInfos[1]
1071+
// The head repository can also point to the same repo
1072+
isSameRepo = ctx.Repo.Owner.ID == headUser.ID
10711073

10721074
} else {
10731075
ctx.NotFound()

tests/integration/api_pull_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,23 @@ func TestAPICreatePullSuccess(t *testing.T) {
126126
MakeRequest(t, req, http.StatusUnprocessableEntity) // second request should fail
127127
}
128128

129+
func TestAPICreatePullSameRepoSuccess(t *testing.T) {
130+
defer tests.PrepareTestEnv(t)()
131+
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
132+
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
133+
134+
session := loginUser(t, owner.Name)
135+
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
136+
137+
req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner.Name, repo.Name), &api.CreatePullRequestOption{
138+
Head: fmt.Sprintf("%s:pr-to-update", owner.Name),
139+
Base: "master",
140+
Title: "successfully create a PR between branches of the same repository",
141+
}).AddTokenAuth(token)
142+
MakeRequest(t, req, http.StatusCreated)
143+
MakeRequest(t, req, http.StatusUnprocessableEntity) // second request should fail
144+
}
145+
129146
func TestAPICreatePullWithFieldsSuccess(t *testing.T) {
130147
defer tests.PrepareTestEnv(t)()
131148
// repo10 have code, pulls units.

web_src/css/base.css

+11-70
Original file line numberDiff line numberDiff line change
@@ -149,24 +149,32 @@ a {
149149
text-decoration-skip-ink: all;
150150
}
151151

152-
/* muted link = only colored when hovered */
153-
/* silenced link = never colored */
152+
/* a = always colored, underlined on hover */
153+
/* a.muted = colored on hover, underlined on hover */
154+
/* a.suppressed = never colored, underlined on hover */
155+
/* a.silenced = never colored, never underlined */
154156

155157
a.muted,
158+
a.suppressed,
156159
a.silenced,
157160
.muted-links a {
158161
color: inherit;
159162
}
160163

161164
a:hover,
165+
a.suppressed:hover,
162166
a.muted:hover,
163167
a.muted:hover [class*="color-text"],
164168
.muted-links a:hover {
165169
color: var(--color-primary);
166170
}
167171

168-
a.silenced:hover {
172+
a.silenced:hover,
173+
a.suppressed:hover {
169174
color: inherit;
175+
}
176+
177+
a.silenced:hover {
170178
text-decoration: none;
171179
}
172180

@@ -502,73 +510,6 @@ ol.ui.list li,
502510
visibility: visible !important;
503511
}
504512

505-
.ui.message {
506-
background: var(--color-box-body);
507-
color: var(--color-text);
508-
box-shadow: none !important;
509-
border: 1px solid var(--color-secondary);
510-
}
511-
512-
.ui.info.message .header,
513-
.ui.blue.message .header {
514-
color: var(--color-blue);
515-
}
516-
517-
.ui.info.message,
518-
.ui.attached.info.message,
519-
.ui.blue.message,
520-
.ui.attached.blue.message {
521-
background: var(--color-info-bg);
522-
color: var(--color-info-text);
523-
border-color: var(--color-info-border);
524-
}
525-
526-
.ui.success.message .header,
527-
.ui.positive.message .header,
528-
.ui.green.message .header {
529-
color: var(--color-green);
530-
}
531-
532-
.ui.success.message,
533-
.ui.attached.success.message,
534-
.ui.positive.message,
535-
.ui.attached.positive.message {
536-
background: var(--color-success-bg);
537-
color: var(--color-success-text);
538-
border-color: var(--color-success-border);
539-
}
540-
541-
.ui.error.message .header,
542-
.ui.negative.message .header,
543-
.ui.red.message .header {
544-
color: var(--color-red);
545-
}
546-
547-
.ui.error.message,
548-
.ui.attached.error.message,
549-
.ui.red.message,
550-
.ui.attached.red.message,
551-
.ui.negative.message,
552-
.ui.attached.negative.message {
553-
background: var(--color-error-bg);
554-
color: var(--color-error-text);
555-
border-color: var(--color-error-border);
556-
}
557-
558-
.ui.warning.message .header,
559-
.ui.yellow.message .header {
560-
color: var(--color-yellow);
561-
}
562-
563-
.ui.warning.message,
564-
.ui.attached.warning.message,
565-
.ui.yellow.message,
566-
.ui.attached.yellow.message {
567-
background: var(--color-warning-bg);
568-
color: var(--color-warning-text);
569-
border-color: var(--color-warning-border);
570-
}
571-
572513
.ui.error.header {
573514
background: var(--color-error-bg) !important;
574515
color: var(--color-error-text) !important;

web_src/css/index.css

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
@import "./modules/divider.css";
1313
@import "./modules/svg.css";
1414
@import "./modules/flexcontainer.css";
15+
@import "./modules/message.css";
1516

1617
@import "./shared/flex-list.css";
1718
@import "./shared/milestone.css";

web_src/css/modules/message.css

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
.ui.message {
2+
background: var(--color-box-body);
3+
color: var(--color-text);
4+
border: 1px solid var(--color-secondary);
5+
position: relative;
6+
min-height: 1em;
7+
margin: 1em 0;
8+
padding: 1em 1.5em;
9+
border-radius: var(--border-radius);
10+
}
11+
12+
.ui.message:first-child {
13+
margin-top: 0;
14+
}
15+
16+
.ui.message:last-child {
17+
margin-bottom: 0;
18+
}
19+
20+
.ui.attached.message {
21+
margin-bottom: -1px;
22+
border-radius: var(--border-radius) var(--border-radius) 0 0;
23+
margin-left: -1px;
24+
margin-right: -1px;
25+
}
26+
27+
.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
28+
margin-top: -1px;
29+
border-radius: 0;
30+
}
31+
32+
.ui.bottom.attached.message {
33+
margin-top: -1px;
34+
border-radius: 0 0 var(--border-radius) var(--border-radius);
35+
}
36+
37+
.ui.bottom.attached.message:not(:last-child) {
38+
margin-bottom: 1em;
39+
}
40+
41+
.ui.info.message .header,
42+
.ui.blue.message .header {
43+
color: var(--color-blue);
44+
}
45+
46+
.ui.info.message,
47+
.ui.attached.info.message,
48+
.ui.blue.message,
49+
.ui.attached.blue.message {
50+
background: var(--color-info-bg);
51+
color: var(--color-info-text);
52+
border-color: var(--color-info-border);
53+
}
54+
55+
.ui.success.message .header,
56+
.ui.positive.message .header,
57+
.ui.green.message .header {
58+
color: var(--color-green);
59+
}
60+
61+
.ui.success.message,
62+
.ui.attached.success.message,
63+
.ui.positive.message,
64+
.ui.attached.positive.message {
65+
background: var(--color-success-bg);
66+
color: var(--color-success-text);
67+
border-color: var(--color-success-border);
68+
}
69+
70+
.ui.error.message .header,
71+
.ui.negative.message .header,
72+
.ui.red.message .header {
73+
color: var(--color-red);
74+
}
75+
76+
.ui.error.message,
77+
.ui.attached.error.message,
78+
.ui.red.message,
79+
.ui.attached.red.message,
80+
.ui.negative.message,
81+
.ui.attached.negative.message {
82+
background: var(--color-error-bg);
83+
color: var(--color-error-text);
84+
border-color: var(--color-error-border);
85+
}
86+
87+
.ui.warning.message .header,
88+
.ui.yellow.message .header {
89+
color: var(--color-yellow);
90+
}
91+
92+
.ui.warning.message,
93+
.ui.attached.warning.message,
94+
.ui.yellow.message,
95+
.ui.attached.yellow.message {
96+
background: var(--color-warning-bg);
97+
color: var(--color-warning-text);
98+
border-color: var(--color-warning-border);
99+
}

0 commit comments

Comments
 (0)