Compare commits

...

8 Commits

Author SHA1 Message Date
gitea-actions[bot] f329466d1c chore(release): build 06.15.00 [skip ci] 2026-06-12 03:21:49 +00:00
jmiller 05a89339e1 Merge pull request 'chore: update changelog with 06.15.00 features' (#614) from fix/changelog-update into main
Generic: Project CI / Tests (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Project CI / Lint & Validate (push) Successful in 41s
Deploy MokoGitea / deploy (push) Failing after 6m22s
2026-06-12 03:19:12 +00:00
Jonathan Miller 75e640dd17 chore: update changelog with 06.15.00 features (#597, #598)
Generic: Project CI / Tests (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Branch Policy Check / Verify merge target (pull_request) Failing after 2s
Universal: PR Check / Branch Policy (pull_request) Failing after 3s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 18s
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 3s
Generic: Repo Health / Access control (push) Successful in 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
PR RC Release / Build RC Release (pull_request) Failing after 1m30s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 1m41s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 4m54s
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
2026-06-11 22:18:44 -05:00
gitea-actions[bot] 09f17439ec chore(release): build 06.15.00 [skip ci] 2026-06-12 03:00:57 +00:00
jmiller 9d45a767e7 Merge pull request 'feat(issues): make status_id, priority_id, type_id required on create (#598)' (#613) from feature/598-required-issue-metadata into main 2026-06-12 02:59:37 +00:00
jmiller ece24c6d38 Merge pull request 'feat(custom-fields): add required flag UI and API validation (#597)' (#612) from feature/597-required-custom-fields into main
Generic: Project CI / Tests (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Project CI / Lint & Validate (push) Successful in 47s
Deploy MokoGitea / deploy (push) Failing after 6m52s
2026-06-12 02:59:10 +00:00
Jonathan Miller e0d4f5fd15 fix: handle SetIssueStatusID/PriorityID/TypeID errors on create
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Generic: Project CI / Tests (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Branch Policy Check / Verify merge target (pull_request) Failing after 2s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 13s
Generic: Project CI / Lint & Validate (pull_request) Successful in 50s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 1m36s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 4m36s
Explicit caller-provided values now return 500 on failure instead of
silently discarding the error. Default auto-assignment still uses
best-effort (log and continue) since it's a fallback.
2026-06-11 21:57:39 -05:00
Jonathan Miller cbaca15cda feat(issues): make status_id, priority_id, type_id required on create (#598)
Generic: Project CI / Tests (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Branch Policy Check / Verify merge target (pull_request) Failing after 4s
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Universal: PR Check / Branch Policy (pull_request) Failing after 6s
Universal: PR Check / Validate PR (pull_request) Failing after 19s
Generic: Project CI / Lint & Validate (pull_request) Successful in 42s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 4s
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 3m21s
PR RC Release / Build RC Release (pull_request) Failing after 2m55s
- Change CreateIssueOption fields from *int64 (optional) to int64
- API auto-assigns org defaults when value is 0
- MCP gitea_issue_create now requires status_id, priority_id, type_id
  (pass 0 for org default)
- Keep optional on gitea_issue_update (partial updates)

Co-Authored-By: Moko Consulting <hello@mokoconsulting.tech>
2026-06-11 21:49:37 -05:00
5 changed files with 41 additions and 35 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<name>MokoGitea</name>
<org>MokoConsulting</org>
<description>Moko fork of Gitea - adding project board REST API endpoints and custom enhancements</description>
<version>06.14.00</version>
<version>06.15.00</version>
<version-prefix>v1.26.1+MOKO</version-prefix>
<license spdx="GPL-3.0-or-later">GNU General Public License v3</license>
</identity>
+1 -1
View File
@@ -5,7 +5,7 @@
# FILE INFORMATION
# DEFGROUP: Gitea.Workflow
# INGROUP: mokoplatform.Automation
# VERSION: 06.14.00
# VERSION: 06.15.00
# BRIEF: Auto-create feature branch when an issue is opened
name: "Universal: Issue Branch"
+19 -21
View File
@@ -2,7 +2,21 @@
## [Unreleased]
## [06.14.00] --- 2026-06-11
## [06.15.00] --- 2026-06-12
## [06.15.00] --- 2026-06-12
* FEATURES
* feat(custom-fields): required flag UI and API validation (#597, PR #612)
* Required checkbox in org custom field settings
* Red asterisk indicator on required fields
* API returns 422 when required custom fields are missing
* Validation runs before issue creation (no orphaned issues)
* feat(issues): make status_id, priority_id, type_id required on issue create (#598, PR #613)
* `CreateIssueOption` fields changed from optional `*int64` to `int64`
* Auto-assigns org defaults when value is 0
* MCP `gitea_issue_create` now requires these fields (pass 0 for defaults)
* Explicit metadata errors now return 500 instead of being silently discarded
## [06.14.00] --- 2026-06-11
@@ -11,14 +25,16 @@
* fix(ui): raw file button opens in new tab with rel="noopener noreferrer" (#581, PR #600)
* fix: update server feed generation bugs (#601, PR #605)
* default targetplatform changed from `(5|6)\\..*` to `6\\..*` for Joomla 6 compat
* `<client>` element changed from string to numeric `0`/`1`
* `<client>` uses string values `site`/`administrator` per Joomla update spec (#611)
* pre-release version suffix number preserved (e.g. `-rc2` not `-rc`)
* feed generator uses `FullElementName()` for auto-constructed element names
* fix: wiki API sub-page support and content response (#606, #607, PR #608)
* wiki routes use wildcard to support pages with path separators
* `ListWikiPages` returns pages in subdirectories
* error logging for empty content_base64 responses
* fix: remove `swapoff -a` from deploy workflow that caused MySQL crashes
* fix: deploy workflow clones wrong repo and runs swapoff (#609)
* removed `swapoff -a` that crashed MySQL during deploys
* fixed source repo URL from MokoGitea to MokoGitea-APP
* MCP
* metadata update tool now exposes element_name, display_name, description, license_name, language fields
@@ -43,21 +59,3 @@ All notable changes to MokoGitea are documented here. Versions follow the format
* MIGRATIONS
* migration 354: add wiki_mode and wiki_url columns to user table for org wiki settings
## [v1.26.1-moko.06.12] - 2026-06-07
* FEATURES
* feat(security): dependency vulnerability scanner - parses go.mod, package.json, composer.json, requirements.txt and checks against OSV.dev API (#551)
* feat(cdn): built-in CDN for release asset delivery via cdn.mokoconsulting.tech with per-asset public/private toggles (#561)
* feat(cdn): IP/CIDR and referrer domain allowlists for CDN abuse prevention
* feat(cdn): releases in update streams excluded from CDN (update server takes precedence)
* FIXES
* fix(licensing): hide "Require license key" option for Joomla update servers (Joomla limitation)
* fix(settings): remove duplicate description from manifest page (#559)
* INFRASTRUCTURE
* chore: rename moko-platform to MokoPlatform across codebase (#548)
* CDN CNAME: cdn.mokoconsulting.tech with auto-TLS via Let's Encrypt
* Nginx reverse proxy for CDN hostname on production server
* DreamHost MCP server path and API key configured
+4 -4
View File
@@ -114,10 +114,10 @@ type CreateIssueOption struct {
Closed bool `json:"closed"`
// custom field values keyed by field name
CustomFields map[string]string `json:"custom_fields,omitempty"`
// org-level issue metadata IDs
StatusID *int64 `json:"status_id,omitempty"`
PriorityID *int64 `json:"priority_id,omitempty"`
TypeID *int64 `json:"type_id,omitempty"`
// org-level issue metadata IDs (auto-assigned from org defaults when 0)
StatusID int64 `json:"status_id"`
PriorityID int64 `json:"priority_id"`
TypeID int64 `json:"type_id"`
}
// EditIssueOption options for editing an issue
+16 -8
View File
@@ -766,11 +766,13 @@ func CreateIssue(ctx *context.APIContext) {
}
// Set org-level issue metadata (status/priority/type).
// If not provided, auto-assign the org default.
if form.StatusID != nil && *form.StatusID > 0 {
_ = issues_model.SetIssueStatusID(ctx, issue.ID, *form.StatusID)
// Use provided value if > 0, otherwise auto-assign org default.
if form.StatusID > 0 {
if err := issues_model.SetIssueStatusID(ctx, issue.ID, form.StatusID); err != nil {
ctx.APIErrorInternal(err)
return
}
} else {
// Auto-assign first non-closing status.
if defs, err := issues_model.GetIssueStatusDefsByOrg(ctx, ctx.Repo.Repository.OwnerID); err == nil {
for _, d := range defs {
if !d.ClosesIssue {
@@ -780,8 +782,11 @@ func CreateIssue(ctx *context.APIContext) {
}
}
}
if form.PriorityID != nil && *form.PriorityID > 0 {
_ = issues_model.SetIssuePriorityID(ctx, issue.ID, *form.PriorityID)
if form.PriorityID > 0 {
if err := issues_model.SetIssuePriorityID(ctx, issue.ID, form.PriorityID); err != nil {
ctx.APIErrorInternal(err)
return
}
} else {
if defs, err := issues_model.GetIssuePriorityDefsByOrg(ctx, ctx.Repo.Repository.OwnerID); err == nil {
for _, d := range defs {
@@ -792,8 +797,11 @@ func CreateIssue(ctx *context.APIContext) {
}
}
}
if form.TypeID != nil && *form.TypeID > 0 {
_ = issues_model.SetIssueTypeID(ctx, issue.ID, *form.TypeID)
if form.TypeID > 0 {
if err := issues_model.SetIssueTypeID(ctx, issue.ID, form.TypeID); err != nil {
ctx.APIErrorInternal(err)
return
}
} else {
if defs, err := issues_model.GetIssueTypeDefsByOrg(ctx, ctx.Repo.Repository.OwnerID); err == nil {
for _, d := range defs {