Skip to content

Commit 424577a

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: [skip ci] Updated translations via Crowdin [skip ci] Updated translations via Crowdin Update stylelint, enable `report*` options (go-gitea#35236) Add `has_code` to repository REST API (go-gitea#35214) Upgrade go to 1.24.6 (go-gitea#35235)
2 parents 9d36f2e + d328e00 commit 424577a

File tree

11 files changed

+200
-8
lines changed

11 files changed

+200
-8
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module code.gitea.io/gitea
22

3-
go 1.24.5
3+
go 1.24.6
44

55
// rfc5280 said: "The serial number is an integer assigned by the CA to each certificate."
66
// But some CAs use negative serial number, just relax the check. related:

modules/structs/repo.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ type Repository struct {
8484
Updated time.Time `json:"updated_at"`
8585
ArchivedAt time.Time `json:"archived_at"`
8686
Permissions *Permission `json:"permissions,omitempty"`
87+
HasCode bool `json:"has_code"`
8788
HasIssues bool `json:"has_issues"`
8889
InternalTracker *InternalTracker `json:"internal_tracker,omitempty"`
8990
ExternalTracker *ExternalTracker `json:"external_tracker,omitempty"`
@@ -170,6 +171,8 @@ type EditRepoOption struct {
170171
Private *bool `json:"private,omitempty"`
171172
// either `true` to make this repository a template or `false` to make it a normal repository
172173
Template *bool `json:"template,omitempty"`
174+
// either `true` to enable code for this repository or `false` to disable it.
175+
HasCode *bool `json:"has_code,omitempty"`
173176
// either `true` to enable issues for this repository or `false` to disable them.
174177
HasIssues *bool `json:"has_issues,omitempty"`
175178
// set this structure to configure internal issue tracker

options/locale/locale_zh-CN.ini

Lines changed: 111 additions & 0 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
"material-icon-theme": "5.24.0",
103103
"nolyfill": "1.0.44",
104104
"postcss-html": "1.8.0",
105-
"stylelint": "16.23.0",
105+
"stylelint": "16.23.1",
106106
"stylelint-config-recommended": "17.0.0",
107107
"stylelint-declaration-block-no-ignored-properties": "2.8.0",
108108
"stylelint-declaration-strict-value": "1.10.11",

routers/api/v1/repo/repo.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,18 @@ func updateRepoUnits(ctx *context.APIContext, opts api.EditRepoOption) error {
869869
}
870870
}
871871

872+
if opts.HasCode != nil && !unit_model.TypeCode.UnitGlobalDisabled() {
873+
if *opts.HasCode {
874+
units = append(units, repo_model.RepoUnit{
875+
RepoID: repo.ID,
876+
Type: unit_model.TypeCode,
877+
Config: &repo_model.UnitConfig{},
878+
})
879+
} else {
880+
deleteUnitTypes = append(deleteUnitTypes, unit_model.TypeCode)
881+
}
882+
}
883+
872884
if opts.HasPullRequests != nil && !unit_model.TypePullRequests.UnitGlobalDisabled() {
873885
if *opts.HasPullRequests {
874886
// We do allow setting individual PR settings through the API, so

stylelint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ const cssVarFiles = [
1010

1111
export default defineConfig({
1212
extends: 'stylelint-config-recommended',
13+
reportUnscopedDisables: true,
14+
reportNeedlessDisables: true,
15+
reportInvalidScopeDisables: true,
1316
plugins: [
1417
'stylelint-declaration-strict-value',
1518
'stylelint-declaration-block-no-ignored-properties',

templates/swagger/v1_json.tmpl

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/integration/api_repo_edit_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,36 @@ func getRepoEditOptionFromRepo(repo *repo_model.Repository) *api.EditRepoOption
7676
allowFastForwardOnly = config.AllowFastForwardOnly
7777
}
7878
archived := repo.IsArchived
79+
hasProjects := false
80+
var projectsMode *string
81+
if unit, err := repo.GetUnit(db.DefaultContext, unit_model.TypeProjects); err == nil && unit != nil {
82+
hasProjects = true
83+
pm := string(unit.ProjectsConfig().ProjectsMode)
84+
projectsMode = &pm
85+
}
86+
hasCode := repo.UnitEnabled(db.DefaultContext, unit_model.TypeCode)
87+
hasPackages := repo.UnitEnabled(db.DefaultContext, unit_model.TypePackages)
88+
hasReleases := repo.UnitEnabled(db.DefaultContext, unit_model.TypeReleases)
89+
hasActions := false
90+
if unit, err := repo.GetUnit(db.DefaultContext, unit_model.TypeActions); err == nil && unit != nil {
91+
hasActions = true
92+
// TODO: expose action config of repo to api
93+
// actionsConfig = &api.RepoActionsConfig{
94+
// DisabledWorkflows: unit.ActionsConfig().DisabledWorkflows,
95+
// }
96+
}
7997
return &api.EditRepoOption{
8098
Name: &name,
8199
Description: &description,
82100
Website: &website,
83101
Private: &private,
84102
HasIssues: &hasIssues,
103+
HasProjects: &hasProjects,
104+
ProjectsMode: projectsMode,
105+
HasCode: &hasCode,
106+
HasPackages: &hasPackages,
107+
HasReleases: &hasReleases,
108+
HasActions: &hasActions,
85109
ExternalTracker: externalTracker,
86110
InternalTracker: internalTracker,
87111
HasWiki: &hasWiki,
@@ -108,6 +132,11 @@ func getNewRepoEditOption(opts *api.EditRepoOption) *api.EditRepoOption {
108132
private := !*opts.Private
109133
hasIssues := !*opts.HasIssues
110134
hasWiki := !*opts.HasWiki
135+
hasProjects := !*opts.HasProjects
136+
hasCode := !*opts.HasCode
137+
hasPackages := !*opts.HasPackages
138+
hasReleases := !*opts.HasReleases
139+
hasActions := !*opts.HasActions
111140
defaultBranch := "master"
112141
hasPullRequests := !*opts.HasPullRequests
113142
ignoreWhitespaceConflicts := !*opts.IgnoreWhitespaceConflicts
@@ -125,6 +154,11 @@ func getNewRepoEditOption(opts *api.EditRepoOption) *api.EditRepoOption {
125154
DefaultBranch: &defaultBranch,
126155
HasIssues: &hasIssues,
127156
HasWiki: &hasWiki,
157+
HasProjects: &hasProjects,
158+
HasCode: &hasCode,
159+
HasPackages: &hasPackages,
160+
HasReleases: &hasReleases,
161+
HasActions: &hasActions,
128162
HasPullRequests: &hasPullRequests,
129163
IgnoreWhitespaceConflicts: &ignoreWhitespaceConflicts,
130164
AllowMerge: &allowMerge,
@@ -156,6 +190,11 @@ func TestAPIRepoEdit(t *testing.T) {
156190

157191
// Test editing a repo1 which user2 owns, changing name and many properties
158192
origRepoEditOption := getRepoEditOptionFromRepo(repo1)
193+
assert.True(t, *origRepoEditOption.HasCode)
194+
assert.True(t, *origRepoEditOption.HasPackages)
195+
assert.True(t, *origRepoEditOption.HasProjects)
196+
assert.True(t, *origRepoEditOption.HasReleases)
197+
assert.True(t, *origRepoEditOption.HasActions)
159198
repoEditOption := getNewRepoEditOption(origRepoEditOption)
160199
req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo1.Name), &repoEditOption).
161200
AddTokenAuth(token2)
@@ -177,6 +216,11 @@ func TestAPIRepoEdit(t *testing.T) {
177216
assert.Equal(t, *repoEditOption.Archived, *repo1editedOption.Archived)
178217
assert.Equal(t, *repoEditOption.Private, *repo1editedOption.Private)
179218
assert.Equal(t, *repoEditOption.HasWiki, *repo1editedOption.HasWiki)
219+
assert.Equal(t, *repoEditOption.HasCode, *repo1editedOption.HasCode)
220+
assert.Equal(t, *repoEditOption.HasPackages, *repo1editedOption.HasPackages)
221+
assert.Equal(t, *repoEditOption.HasProjects, *repo1editedOption.HasProjects)
222+
assert.Equal(t, *repoEditOption.HasReleases, *repo1editedOption.HasReleases)
223+
assert.Equal(t, *repoEditOption.HasActions, *repo1editedOption.HasActions)
180224

181225
// Test editing repo1 to use internal issue and wiki (default)
182226
*repoEditOption.HasIssues = true
@@ -224,6 +268,11 @@ func TestAPIRepoEdit(t *testing.T) {
224268
assert.Equal(t, *repo1editedOption.ExternalTracker, *repoEditOption.ExternalTracker)
225269
assert.True(t, *repo1editedOption.HasWiki)
226270
assert.Equal(t, *repo1editedOption.ExternalWiki, *repoEditOption.ExternalWiki)
271+
assert.False(t, *repo1editedOption.HasCode)
272+
assert.False(t, *repo1editedOption.HasPackages)
273+
assert.False(t, *repo1editedOption.HasProjects)
274+
assert.False(t, *repo1editedOption.HasReleases)
275+
assert.False(t, *repo1editedOption.HasActions)
227276

228277
repoEditOption.ExternalTracker.ExternalTrackerStyle = "regexp"
229278
repoEditOption.ExternalTracker.ExternalTrackerRegexpPattern = `(\d+)`
@@ -272,6 +321,11 @@ func TestAPIRepoEdit(t *testing.T) {
272321
assert.NotNil(t, *repo1editedOption.ExternalTracker)
273322
assert.True(t, *repo1editedOption.HasWiki)
274323
assert.NotNil(t, *repo1editedOption.ExternalWiki)
324+
assert.False(t, *repo1editedOption.HasCode)
325+
assert.False(t, *repo1editedOption.HasPackages)
326+
assert.False(t, *repo1editedOption.HasProjects)
327+
assert.False(t, *repo1editedOption.HasReleases)
328+
assert.False(t, *repo1editedOption.HasActions)
275329

276330
// reset repo in db
277331
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, *repoEditOption.Name), &origRepoEditOption).

web_src/css/features/colorpicker.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
top: 50%;
1616
transform: translateY(-50%);
1717
border-radius: 2px;
18-
background: repeating-linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), repeating-linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa); /* stylelint-disable-line scale-unlimited/declaration-strict-value */
18+
background: repeating-linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), repeating-linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa);
1919
background-position: 0 0, 4px 4px;
2020
background-size: 8px 8px;
2121
}

0 commit comments

Comments
 (0)