d3134b1c53
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Successful in 9s
Generic: Project CI / Lint & Validate (pull_request) Successful in 15s
Universal: PR Check / Secret Scan (pull_request) Successful in 1m5s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Adds a single per-org repository-defaults config, applied to a repo when it is
created in or transferred into the org via a notifier (services/org):
- ForcePrivate — force new/transferred repos private (Repository.IsPrivate).
- PR defaults (when ApplyPRDefaults) — allowed merge styles, default merge
style, and auto-delete-branch-after-merge, written to the repo's pull-requests
unit config via repo_service.UpdateRepositoryUnits.
Best-effort: the notifier logs and swallows errors, so a defaults bug can never
break repository creation or transfer.
- models/git/org_repo_defaults.go: OrgRepoDefaults model + CRUD + migration 365.
- API: GET/PATCH/DELETE /orgs/{org}/repo_defaults.
- services/org/notifier.go: CreateRepository/TransferRepository -> apply defaults;
registered from routers/init.go (org_service.Init()).
Stacked on #730/#729/#728 for migration ordering (this = 365). Swagger omitted.
Note: no Go toolchain available locally, so not compiled/gofmt'd/tested here.
Hand-verified: gofmt (tabs, no blank-in-block, struct/DTO alignment), imports
used, no Init() collision in services/org, migration contiguous (365), notifier
signatures match the Notifier interface.
Claude-Session: https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT
33 lines
1.4 KiB
Go
33 lines
1.4 KiB
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package structs
|
|
|
|
// OrgRepoDefaults represents an organization's default repository settings
|
|
type OrgRepoDefaults struct {
|
|
OrgID int64 `json:"org_id"`
|
|
ForcePrivate bool `json:"force_private"`
|
|
ApplyPRDefaults bool `json:"apply_pr_defaults"`
|
|
AllowMerge bool `json:"allow_merge"`
|
|
AllowRebase bool `json:"allow_rebase"`
|
|
AllowRebaseMerge bool `json:"allow_rebase_merge"`
|
|
AllowSquash bool `json:"allow_squash"`
|
|
AllowFastForwardOnly bool `json:"allow_fast_forward_only"`
|
|
DefaultMergeStyle string `json:"default_merge_style"`
|
|
DeleteBranchAfterMerge bool `json:"delete_branch_after_merge"`
|
|
}
|
|
|
|
// EditOrgRepoDefaultsOption options for editing an org's repo defaults. Only fields
|
|
// that are set will be changed.
|
|
type EditOrgRepoDefaultsOption struct {
|
|
ForcePrivate *bool `json:"force_private"`
|
|
ApplyPRDefaults *bool `json:"apply_pr_defaults"`
|
|
AllowMerge *bool `json:"allow_merge"`
|
|
AllowRebase *bool `json:"allow_rebase"`
|
|
AllowRebaseMerge *bool `json:"allow_rebase_merge"`
|
|
AllowSquash *bool `json:"allow_squash"`
|
|
AllowFastForwardOnly *bool `json:"allow_fast_forward_only"`
|
|
DefaultMergeStyle *string `json:"default_merge_style"`
|
|
DeleteBranchAfterMerge *bool `json:"delete_branch_after_merge"`
|
|
}
|