Compare commits

...

3 Commits

Author SHA1 Message Date
gitea-actions[bot] 1903565d66 chore(release): build 06.14.00-rc [skip ci] 2026-06-14 19:56:36 +00:00
gitea-actions[bot] d419033384 chore(version): pre-release bump to 06.13.02-dev [skip ci] 2026-06-14 19:55:02 +00:00
Jonathan Miller c453310834 fix: set correct <client> per extension type in Joomla update feed (#611)
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 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 5s
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) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 9s
Generic: Project CI / Lint & Validate (push) Successful in 31s
Generic: Project CI / Lint & Validate (pull_request) Successful in 28s
PR RC Release / Build RC Release (pull_request) Failing after 1m11s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 1m14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 2m6s
Universal: Build & Release / Promote to RC (pull_request) Successful in 17s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
2026-06-14 14:53:53 -05:00
4 changed files with 21 additions and 43 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.13.01</version>
<version>06.14.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.13.01
# VERSION: 06.14.00
# BRIEF: Auto-create feature branch when an issue is opened
name: "Universal: Issue Branch"
+3 -34
View File
@@ -1,9 +1,11 @@
# Changelog
## [Unreleased]
All notable changes to MokoGitea are documented here. Versions follow the format
`v{upstream}-moko.{major}.{minor}` (e.g. `v1.26.1-moko.06.03`).
## [Unreleased]
## [06.14.00] --- 2026-06-14
* FEATURES
* feat(api): issue status/priority/type exposed in REST API - GET/PATCH on issues now includes status_id, priority_id, type_id with resolved names
@@ -194,36 +196,3 @@ All notable changes to MokoGitea are documented here. Versions follow the format
* fix(updates): correct dlid prefix and align XML with Joomla standard
* INFRASTRUCTURE
* fix(ci): auto-deploy to production on merge to main (#235)
## [v1.26.1-moko.04] - 2026-05-24
* SECURITY
* Backport 12 upstream v1.26.2 security fixes:
* golang.org/x/net v0.55.0 security update (#140)
* Token scope enforcement on raw/media/attachment downloads (#141)
* OAuth PKCE hardening and refresh token replay protection (#142)
* Wiki git write and LFS token access enforcement (#143)
* Public-only token filtering in API queries (#144)
* Artifact signature payload hardening (#146)
* AWS credentials encryption (#161)
* Mermaid v11.15.0 security update (#162)
* Composer package permission check (#164)
* BUGFIXES
* fix(actions): nil pointer dereference in concurrency during PR creation (#136)
* fix(ui): actions runs list broken row layout (#138)
* fix: scheduled action panic with null event payload
* fix: treat email addresses case-insensitively
* fix: .mod lexer panic — removed invalid AMPL mapping
* FEATURES
* Joomla-style updates.xml with channel selection
* Update checker with configurable CHANNEL setting
* Admin dashboard update banner with docker pull command
* Upstream bug sync workflow — daily automated issue creation
* PR RC release workflow — auto-build RC on PR to main
* INFRASTRUCTURE
* New 3-part versioning: v{upstream}-moko.{major}.{minor}.{patch}
* Branding updates: error pages, home page, settings link
* Deploy workflow updated for new version format
* PROCESS
* Created `type: bug` and `upstream` labels for automated issue tracking
* Closed 24 upstream bug/security issues after backporting
+16 -7
View File
@@ -422,13 +422,22 @@ func GenerateJoomlaXML(ctx context.Context, repo *repo_model.Repository, require
infoURL = meta.SupportURL
}
// Joomla <client> element: packages use client_id=0 in #__extensions,
// so we must output <client>0</client> for Joomla to match the update
// to the installed extension. Other types default to "site" (client_id=0)
// or "administrator" (client_id=1).
client := "site"
if extType == "package" {
client = "0"
// Joomla <client> element must match the client_id stored in #__extensions.
// Joomla's update finder matches by (element, type, client_id, folder) —
// a mismatch causes extension_id=0 and the update never shows.
//
// Joomla hardcodes client_id per extension type in the installer adapters:
// component → client_id=1 (ComponentAdapter.php:900)
// package → client_id=0 (PackageAdapter.php:548)
// plugin → client_id=0 (PluginAdapter.php:492)
// library → client_id=0 (LibraryAdapter.php:420)
// file → client_id=0 (FileAdapter.php:422)
// module → client_id from manifest (0=site, 1=admin)
// template → client_id from manifest (0=site, 1=admin)
client := "site" // default: client_id=0
switch extType {
case "component":
client = "administrator" // client_id=1
}
u := xmlUpdate{