Add API.md (3200+ lines) with complete REST API documentation covering authentication, repository management, issues, pull requests, organizations, package registry, Actions, and Vault APIs. Includes code examples and error handling.
Add GUIDE.md with user-focused documentation for getting started, repository operations, collaboration workflows, and CI/CD setup.
Implement documentation tab in repository view with automatic detection and rendering of API.md and GUIDE.md files alongside README. Add locale strings and template for doc tab navigation.
Add repository setting to hide files and folders starting with "." from non-admin users in the code browser. Admins can still see dotfiles displayed dimmed. Includes database migration, settings form, filtering logic for tree views and file listings, and locale strings.
Allow repository admins to hide specific folders from the code browser for non-admin users. Hidden folders are shown dimmed to admins but completely hidden from regular users. Includes database migration, settings UI, tree filtering logic, and frontend support for toggling visibility.
Introduces a new "limited" visibility level between public and private. Limited repos are publicly browseable but restrict clone, fork, and archive downloads to collaborators only. Adds database migration, UI controls in settings, enforcement in git HTTP and SSH handlers, and corresponding locale strings.
Add ability for organizations to preconfigure default package metadata (authors, company, copyright, icon) that AI tools can use when building packages. Includes database model, org settings UI with icon upload, MCP tool for retrieving defaults with repo-specific URLs, and localization strings.
Add "Cancel All" button to waiting jobs view to cancel all waiting/blocked jobs at once, with optional label filtering. Improve individual job cancellation to preserve label filter in redirect URL and provide better error feedback.
Enhance waiting jobs view with waiting duration display, stuck job indicators (>30 min), and matching runner detection to identify orphaned jobs. Add ability to cancel waiting/blocked jobs directly from the queue view. Show which runners can satisfy each job's label requirements.
Adds a new page to view all waiting/blocked jobs for a specific runner label. This helps administrators identify which jobs are queued for particular runner labels and diagnose runner capacity issues.
Implements public package discovery page in the Explore menu. Shows public and global packages with pagination, filtering by type, and search. Adds admin setting to enable/disable the packages tab. Updates package search to support PublicOrGlobal filter for showing packages that are either public OR global. Includes new locale strings and templates.
Enables updating secret descriptions without changing the value by making the data field optional during updates. Displays global secrets as read-only in org/user/repo secret pages for visibility. Adds validation to require data only when creating new secrets. Updates locale strings for the new functionality.
Implements comprehensive package visibility settings with migration v337. Adds database models for package and version-level access control, updates web UI templates for settings/list/view pages, and includes locale strings for the new features. Also adds .gitsecrets-ignore file to track false positives from secret scanning.
Removes UTF-8 BOM (Byte Order Mark) characters from the beginning of all locale JSON files. The BOM is unnecessary for UTF-8 files and can cause parsing issues in some tools.
Updates locale strings across all language files to replace "Gitea" branding with "GitCaddy". This is part of the rebranding effort and affects user-facing messages related to authentication, installation, and repository settings.
Adds a "Manage Runners" button to the actions workflow run page for repository admins. This provides quick access to the runners settings page directly from the workflow execution view.
Adds ExternalUserID and ExternalSource fields to issues table to allow external apps to track their own user identifiers when creating issues via API. Includes database migration v336, search filters, JSON API endpoint, and UI filter option. Adds locale strings across all 28 languages for external user filtering.
Implements release channel filtering (stable/prerelease/any) with new GetLatestReleaseByRepoIDAndChannel function. Adds JSON API endpoint for applications to check for updates programmatically. Includes tooltip translations across all 28 locales and UI updates to release list and header templates.
Updates pinned repos management links to point to correct settings page. Improves new secret page layout with flexbox and adds description. Adds missing context user data for org settings. Enhances license tab styling and adds missing locale string for view file action.
Implements a settings page for organization admins to manage pinned repositories. Adds ability to pin/unpin repos, reorder them via drag-and-drop, and view currently pinned repos. Includes new routes, templates, locale strings, and helper function IsErrOrgPinnedRepoAlreadyExist for error handling.
Add is_global flag to packages allowing them to be accessible at root URLs without owner prefix. Include database migration, package settings UI, admin bulk operations, and automatic repository matching. This enables cleaner package URLs for organization-wide packages.
- Fix sync-vault.sh to export SERVER_DIR and VAULT_PATH for Python heredoc
- Sync all vault translations including vault.type_file and vault.compare keys
- Add compare.tmpl template for version comparison feature
- Update vault templates from vault plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds new UI features including edit secret form, hidden/raw value views, copy functionality, and type filtering. Updates locale files across all supported languages with new translation keys for vault features.
Displays a warning message to admins when vault master key is not configured. Adds ConfigurablePlugin interface for plugins to report configuration status, and implements IsConfigured() and GetConfigurationError() service methods. Warning appears on vault pages with instructions to add MASTER_KEY to app.ini.
Adds translations for license scanning, linking, and creation features across all supported locales. Includes new strings for file detection, overwrite warnings, and confirmation messages. Also adds missing repo.file and repo.editor.commit_message translations.
Add organization-level license management with new settings page and locale strings across all languages. Add AI feature detection helpers (IsAIEnabled, IsAICodeReviewEnabled, IsAIIssueTriageEnabled) to template functions. Add license scanning functionality to repository settings.
Integrate GitCaddy AI service with support for code review, issue triage, documentation generation, code explanation, and chat interface. Add AI client module with HTTP communication, configuration settings, API routes (web and REST), service layer, and UI templates for issue sidebar. Include comprehensive configuration options in app.example.ini for enabling/disabling features and service connection settings.
Adds a "Move to Vault" button to the file view toolbar that allows
developers to move sensitive files directly into encrypted Vault storage.
Features:
- Button appears next to Edit/Delete when Vault plugin is loaded
- Confirmation page shows file details and warnings
- File is encrypted and stored in Vault as type "file"
- File is then deleted from the repository with a commit
- 50MB file size limit for vault storage
Files added:
- routers/web/repo/vault_move.go - Handler for move-to-vault action
- templates/repo/editor/move_to_vault.tmpl - Confirmation page
Files modified:
- routers/web/repo/view_file.go - Added CanMoveToVault permission check
- templates/repo/view_file.tmpl - Added Move to Vault button
- routers/web/web.go - Registered /_move-to-vault/* route
- services/forms/repo_form_editor.go - Added MoveToVaultForm
- options/locale/locale_en-US.json - Added translation keys
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds a "Repos" link next to Settings in the repo navbar that links back
to the owner's (org/user) home page showing their repositories list.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add license tier badge (solo/pro/enterprise) with color coding
- Add descriptions under menu items
- Add license info card showing tier, max secrets, versions, retention
- Add translations for 12 languages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds optional group_header field to organizations for categorizing them on the explore page (e.g., "Enterprise", "Community", "Partners"). Includes database migration, organization settings form field, and grouped display template. Groups are sorted alphabetically with ungrouped organizations shown last. Users can toggle grouping view with show_groups parameter.
Updates translation strings across 30 locale files including custom_keys.json and various language locales (cs-CZ, de-DE, el-GR, en-US, es-ES, fa-IR, fi-FI, fr-FR, ga-IE, hi-IN, etc.). Changes include adding new translation keys and normalizing JSON formatting by removing trailing spaces in key-value pairs.
Adds a Site Admin page to view loaded plugins with:
- Plugin name, version, description
- Features (Database, Web UI, API, Repository, Licensed)
- License status for licensed plugins
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add AI Learning admin section for viewing/editing error patterns
- Add server status tiles to admin dashboard (CPU load, memory, disk)
- Auto-refresh dashboard tiles using HTMX
- Fix error template text (GitCaddy Server)
- Dark mode compatibility for all new UI elements
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created runnerRequestTimestamp helper function
- Simplified RunnerRequestBandwidthTest and RunnerRequestCleanup
- Fixed golangci-lint dupl errors
- Fixed line endings in locale file
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add CleanupRequestedAt field to runner model
- Add RunnerRequestCleanup handler to set cleanup timestamp
- Add force-cleanup route for POST requests
- Add orange Force Cleanup button next to Check Bandwidth
- Runner will check this timestamp and perform cleanup when set
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add GetCurrentTaskByRunnerID and GetCurrentTasksForRunners functions
- Update RunnersStatusJSON to include current task info for each runner
- Add Current Task column to runner list showing running job duration
- Add wait time display to queue depth (shows oldest waiting job age)
- Queue labels now show: label: N (Xh Ym) for jobs waiting time
- Auto-refreshing every 30 seconds via AJAX polling
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add GetQueueDepthByLabels function to query waiting jobs by labels
- Add QueueDepthJSON endpoint to return queue depth data
- Update runner_list.tmpl to show queue depth with visual indicators
- Show warnings for jobs waiting > 30 minutes (stuck jobs)
- Labels colored by severity: blue (normal), yellow (>5 waiting), red (stuck)
- Add queue_depth locale string
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Clear Running button to delete stuck running workflow runs
- Disk usage now filters by selected workflow
- Clear buttons only appear when corresponding status has runs
- Rename ActionsDiskUsage to DiskUsage (lint fix)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Adds a button to clear successful workflow runs older than a configurable
number of days (1, 3, 5, 7, 14, or 30 days), defaulting to 5 days.
- Add ClearOldSuccess handler in view.go
- Add DeleteSuccessRunsOlderThan service function
- Add GetSuccessRunIDsOlderThan model function
- Add route /clear-old-success
- Add translations for clear_old_success and clear_old_success_confirm
- Update list.tmpl with dropdown selector and button
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add disk usage statistics endpoint (GET /actions/disk-usage)
- Add Clear Cancelled button to delete all cancelled workflow runs
- Add Clear Failed button to delete all failed workflow runs
- Show disk usage breakdown by status on Actions page sidebar
- Repo admins only feature
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add unhealthy status display on runners list page (yellow color when online but unhealthy)
- Add is_healthy field to RunnersStatusJSON API response
- Add CPUInfo struct to RunnerCapability for CPU load monitoring
- Add CPU tile to runner edit page showing load percentage and CPU count
- Add real-time JavaScript polling for CPU tile updates
- Add locale string for unhealthy status
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix home.tmpl to properly show promotional content when selected
- Fix line endings and indentation in all templates
- Fix locale file line endings
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add full UI-based landing page configuration (Brand, Hero, Content, Social, Pricing, Footer, Theme)
- Replace old templates with new designs: open-source-hero, minimalist-docs, saas-conversion, bold-marketing
- Add pricing section support to all landing page templates
- Add social links with icons to footer across all templates
- Fix footer copyright to use configured value from settings
- Add copyright symbol button in Footer & CTA settings
- Fix ThemeStruct missing HideExploreUsers and HelpURL fields
- Replace Gitea logo with GitCaddy icon in navbar, favicon, and assets
- Add testimonials array with random selection to templates
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated promotional content translations for:
- German (de-DE)
- French (fr-FR)
- Spanish (es-ES)
- Portuguese (pt-BR, pt-PT)
- Chinese Simplified (zh-CN)
- Chinese Traditional (zh-TW)
- Japanese (ja-JP)
- Russian (ru-RU)
- Italian (it-IT)
- Korean (ko-KR)
- Dutch (nl-NL)
- Polish (pl-PL)
- Turkish (tr-TR)
- Ukrainian (uk-UA)
All other locale files retain English GitCaddy branding text.
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>