jmiller
91646c505b
Merge branch 'main' into dev
Branch Policy Check / Verify merge target (pull_request) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Failing after 8s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
PR RC Release / Build RC Release (pull_request) Successful in 30s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 4m43s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
2026-05-31 02:46:22 +00:00
jmiller
b994fcdb9a
Merge pull request 'fix(templates): AppSubUrl for feed URLs' ( #272 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: Build & Release / Promote to RC (pull_request) Failing after 8s
PR RC Release / Build RC Release (pull_request) Successful in 20s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
2026-05-31 02:39:45 +00:00
Jonathan Miller
6dc2c1dec7
fix(templates): use AppSubUrl+RepoLink for update feed URLs
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 3s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m17s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:39:10 -05:00
jmiller
4372e956de
Merge pull request 'fix: Permission.IsAdmin for licenses' ( #271 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 02:34:00 +00:00
Jonathan Miller
a61cdbe2f1
fix: use ctx.Repo.Permission.IsAdmin() for license admin checks
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
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) Failing after 6s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m13s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:33:34 -05:00
jmiller
ac4092fbab
Merge pull request 'feat(licenses): web UI for license management' ( #270 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 02:27:36 +00:00
Jonathan Miller
30197e4e97
feat(licenses): web UI for package creation, key generation, and revocation
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m20s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add full license management web forms to the Licenses page:
- "New Package" form: name, description, duration, max sites, channels
- "Generate Key" button per package: creates key with auto-expiry
- "Revoke" button per key: deactivates the key
- New key display: shows raw key once with copy instructions
- Update Feed URLs section: copyable Joomla/Dolibarr endpoint URLs
- Admin-only controls: forms only visible to repo admins
Ref #239
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:27:12 -05:00
jmiller
12132486a0
Merge pull request 'fix(routes): use optSignIn for licenses page' ( #269 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 02:20:29 +00:00
Jonathan Miller
3f29562938
fix(routes): use optSignIn for licenses page
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m24s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
The licenses page was using reqSignIn which blocks API token access
and redirects to login. Use optSignIn so the page is accessible.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:18:38 -05:00
jmiller
4a931dddab
Merge pull request 'fix(templates): use DateUtils.TimeSince in licenses template' ( #268 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 02:12:01 +00:00
Jonathan Miller
c6f42487b5
fix(templates): use DateUtils.TimeSince instead of DateTime
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 54s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Fix template error: function "DateTime" not defined. Use
DateUtils.TimeSince which is the correct template function.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:11:44 -05:00
jmiller
b101a2304a
Merge pull request 'feat(licenses): add Licenses tab, page, and stream config' ( #267 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 02:04:12 +00:00
Jonathan Miller
381952f6d2
feat(licenses): add Licenses tab and page for repos
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 54s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add a Licenses tab in the repo header that shows when license packages
exist for the repo's owner. The tab displays:
- License packages with name, duration, allowed channels, key count
- Issued keys with prefix, licensee, expiry, and status
Also includes:
- Org-level default update streams with per-repo override (#265 )
- Full Joomla channel names in update feeds
- Update Feed button on releases page
- DB migration v336 for update_stream_config table
The Licenses tab appears after Packages in the repo header, gated by
whether any license packages exist for the owner.
Ref #239 , #265
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 21:03:52 -05:00
jmiller
1c667d9da9
Merge pull request 'feat(updates): org-level default streams with per-repo override' ( #266 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 01:50:03 +00:00
Jonathan Miller
a88e3f8787
feat(updates): org-level default streams with per-repo override
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m29s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add configurable update streams at org and repo level:
- UpdateStreamConfig model: stores stream mode (joomla/custom) and
custom stream definitions (name, suffix, description)
- Resolution chain: repo override → org default → Joomla defaults
- MatchStreamFromTag: matches release tags to streams using configured
suffixes (longest match wins)
- Both Joomla XML and Dolibarr JSON generators use effective streams
- DB migration v336 creates update_stream_config table
- Default Joomla streams: stable, release-candidate, beta, alpha,
development
- Custom streams support any tag suffix (e.g. -lts, -nightly, -security)
Ref #265
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 20:49:46 -05:00
jmiller
4012f3bea9
chore: add .mokogitea/workflows/cascade-dev.yml from moko-platform [skip ci]
2026-05-31 01:45:42 +00:00
jmiller
ff72cd0cb0
Merge pull request 'feat(updates): use full Joomla channel names in update feeds' ( #264 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 01:32:01 +00:00
Jonathan Miller
50454db3fb
feat(updates): use full Joomla channel names in update feeds
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
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) Failing after 6s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m0s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Use the full Joomla convention for update stream tag names:
- dev → development
- rc → release-candidate
- alpha, beta, stable unchanged
Add NormalizeChannel() helper that maps shorthand names (dev, rc)
to full names so license key allowed_channels work with either
format. Applied in XML generation, JSON generation, and key
validation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 20:31:43 -05:00
jmiller
eab36f26aa
Merge pull request 'feat(ui): add Update Feed button on releases page' ( #263 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 01:24:10 +00:00
Jonathan Miller
4ce332d031
feat(ui): add Update Feed button on releases page
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 50s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add an "Update Feed" button next to the RSS link on the releases page
that links to the repo's updates.xml endpoint. Only shown on the
releases view (not tags).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 20:23:51 -05:00
jmiller
1b1ad35df4
Merge pull request 'fix(api): set IsActive=true when creating license packages' ( #262 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 01:19:13 +00:00
Jonathan Miller
426cffc224
fix(api): set IsActive=true when creating license packages
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 53s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Same bug as keys — packages were created with is_active=false
causing all key validation to reject even valid keys.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 20:18:11 -05:00
jmiller
0572e6a164
Merge pull request 'fix(api): set IsActive=true when creating license keys' ( #261 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 01:09:00 +00:00
Jonathan Miller
4e51f48285
fix(api): set IsActive=true when creating license keys
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 56s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Keys were created with is_active=false (DB default) because the API
handler didn't explicitly set IsActive. This caused all key validation
to fail.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 20:08:39 -05:00
jmiller
aa56925bba
Merge pull request 'feat(settings): releases visibility help text + issues dropdown' ( #260 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 00:59:26 +00:00
Jonathan Miller
fc895aa70d
feat(settings): add help text for releases visibility and update feeds
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 49s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Clarify that update feeds (updates.xml, dolibarr.json) are always
accessible regardless of the releases visibility setting. The
visibility dropdown controls whether the releases page is browsable
by anonymous visitors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 19:59:02 -05:00
jmiller
1db8435737
Merge pull request 'feat(settings): add visibility dropdown to issues unit' ( #259 ) from feat/inline-visibility-settings into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
2026-05-31 00:50:44 +00:00
Jonathan Miller
71a486b534
feat(settings): add visibility dropdown to issues unit
...
Branch Policy Check / Verify merge target (pull_request) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 1m5s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add the same inline visibility control (Private / Public) to the
issues section on the repo settings page. Now wiki, releases, and
issues all have visibility dropdowns.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 19:50:13 -05:00
jmiller
90b9af6e3e
Merge pull request 'feat(settings): inline visibility controls on repo settings page' ( #258 ) from feat/inline-visibility-settings into dev
...
Universal: Auto Version Bump / Version Bump (push) Has been skipped
feat(settings): inline visibility controls on repo settings page (#258 )
2026-05-31 00:42:06 +00:00
Jonathan Miller
a99af91ab4
feat(settings): inline visibility controls on repo settings page
...
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
PR RC Release / Build RC Release (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request) Successful in 58s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Add per-unit visibility dropdown (Private / Public) directly on the
repo settings page next to each unit's enable checkbox. This replaces
the need to navigate to a separate Public Access settings page.
Supported units: Code, Wiki, Issues, Releases. Each gets a dropdown
that controls AnonymousAccessMode — when set to Public, the unit is
readable by anonymous visitors even on private repos.
Closes #238
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-30 19:35:56 -05:00