• * BREAKING

    oleks released this 2026-04-18 22:46:51 +03:00

    • Correct swagger annotations for enums, status codes, and notification state (#37030)
    • Remove GET API registration-token (#36801)
    • Support Actions concurrency syntax (#32751)
    • Make PUBLIC_URL_DETECTION default to "auto" (#36955)
    • SECURITY
      • Bound PageSize in ListUnadoptedRepositories (#36884)
    • FEATURES
      • Support Actions concurrency syntax (#32751)
      • Add terraform state registry (#36710)
      • Instance-wide (global) info banner and maintenance mode (#36571)
      • Support rendering OpenAPI spec (#36449)
      • Add keyboard shortcuts for repository file and code search (#36416)
      • Add support for archive-upload rpc (#36391)
      • Add ability to download subpath archive (#36371)
      • Add workflow dependencies visualization (#26062) (#36248) & Restyle Workflow Graph (#36912)
      • Automatic generation of release notes (#35977)
      • Add "Go to file", "Delete Directory" to repo file list page (#35911)
      • Introduce "config edit-ini" sub command to help maintaining INI config file (#35735)
      • Add button to re-run failed jobs in Actions (#36924)
      • Support actions and reusable workflows from private repos (#32562)
      • Add summary to action runs view (#36883)
      • Add user badges (#36752)
      • Add configurable permissions for Actions automatic tokens (#36173)
      • Add per-runner "Disable/Pause" (#36776)
      • Feature non-zipped actions artifacts (action v7 / nodejs / npm v6.2.0) (#36786)
    • PERFORMANCE
      • WorkflowDispatch API optionally return runid (#36706)
      • Add render cache for SVG icons (#36863)
      • Load mentionValues asynchronously (#36739)
      • Lazy-load some Vue components, fix heatmap chunk loading on every page (#36719)
      • Load heatmap data asynchronously (#36622)
      • Use prev/next pagination for user profile activities page to speed up (#36642)
      • Refactor cat-file batch operations and support --batch-command approach (#35775)
      • Use merge tree to detect conflicts when possible (#36400)
    • ENHANCEMENTS
      • Implement logout redirection for reverse proxy auth setups (#36085) (#37171)
      • Adds option to force update new branch in contents routes (#35592)
      • Add viewer controller for mermaid (zoom, drag) (#36557)
      • Add code editor setting dropdowns (#36534)
      • Add elk layout support to mermaid (#36486)
      • Add resolve/unresolve review comment API endpoints (#36441)
      • Allow configuring default PR base branch (fixes #36412) (#36425)
      • Add support for RPM Errata (updateinfo.xml) (#37125)
      • Require additional user confirmation for making repo private (#36959)
      • Add actions.WORKFLOW_DIRS setting (#36619)
      • Avoid opening new tab when downloading actions logs (#36740)
      • Implements OIDC RP-Initiated Logout (#36724)
      • Show workflow link (#37070)
      • Desaturate dark theme background colors (#37056)
      • Refactor "org teams" page and help new users to "add member" to an org (#37051)
      • Add webhook name field to improve webhook identification (#37025) (#37040)
      • Make task list checkboxes clickable in the preview tab (#37010)
      • Improve severity labels in Actions logs and tweak colors (#36993)
      • Linkify URLs in Actions workflow logs (#36986)
      • Allow text selection on checkbox labels (#36970)
      • Support dark/light theme images in markdown (#36922)
      • Enable native dark mode for swagger-ui (#36899)
      • Rework checkbox styling, remove input border hover effect (#36870)
      • Refactor storage content-type handling of ServeDirectURL (#36804)
      • Use "Enable Gravatar" but not "Disable" (#36771)
      • Use case-insensitive matching for Git error "Not a valid object name" (#36728)
      • Add "Copy Source" to markup comment menu (#36726)
      • Change image transparency grid to CSS (#36711)
      • Add "Run" prefix for unnamed action steps (#36624)
      • Persist actions log time display settings in localStorage (#36623)
      • Use first commit title for multi-commit PRs and fix auto-focus title field (#36606)
      • Improve BuildCaseInsensitiveLike with lowercase (#36598)
      • Improve diff highlighting (#36583)
      • Exclude cancelled runs from failure-only email notifications (#36569)
      • Use full-file highlighting for diff sections (#36561)
      • Color command/error logs in Actions log (#36538)
      • Add paging headers (#36521)
      • Improve timeline entries for WIP prefix changes in pull requests (#36518)
      • Add FOLDER_ICON_THEME configuration option (#36496)
      • Normalize guessed languages for code highlighting (#36450)
      • Add chunked transfer encoding support for LFS uploads (#36380)
      • Indicate when only optional checks failed (#36367)
      • Add 'allow_maintainer_edit' API option for creating a pull request (#36283)
      • Support closing keywords with URL references (#36221)
      • Improve diff file headers (#36215)
      • Fix and enhance comment editor monospace toggle (#36181)
      • Add git.DIFF_RENAME_SIMILARITY_THRESHOLD option (#36164)
      • Add matching pair insertion to markdown textarea (#36121)
      • Add sorting/filtering to admin user search API endpoint (#36112)
      • Allow action user have read permission in public repo like other user (#36095)
      • Disable matchBrackets in monaco (#36089)
      • Use GitHub-style commit message for squash merge (#35987)
      • Make composer registry support tar.gz and tar.bz2 and fix bugs (#35958)
      • Add GITEA_PR_INDEX env variable to githooks (#35938)
      • Add proper error message if session provider can not be created (#35520)
      • Add button to copy file name in PR files (#35509)
      • Move X_FRAME_OPTIONS setting from cors to security section (#30256)
      • Add placeholder content for empty content page (#37114)
      • Add DEFAULT_DELETE_BRANCH_AFTER_MERGE setting (#36917)
      • Redirect to the only OAuth2 provider when no other login methods and fix various problems (#36901)
      • Add admin badge to navbar avatar (#36790)
      • Add never option to PUBLIC_URL_DETECTION configuration (#36785)
      • Add background and run count to actions list page (#36707)
      • Add icon to buttons "Close with Comment", "Close Pull Request", "Close Issue" (#36654)
      • Add support for in_progress event in workflow_run webhook (#36979)
      • Report commit status for pull_request_review events (#36589)
      • Render merged pull request title as such in dashboard feed (#36479)
      • Feature to be able to filter project boards by milestones (#36321)
      • Use user id in noreply emails (#36550)
      • Enable pagination on GiteaDownloader.getIssueReactions() (#36549)
      • Remove striped tables in UI (#36509)
      • Improve control char rendering and escape button styling (#37094)
      • Support legacy run/job index-based URLs and refactor migration 326 (#37008)
      • Add date to "No Contributions" tooltip (#36190)
      • Show edit page confirmation dialog on tree view file change (#36130)
      • Mention proc-receive in text for dashboard.resync_all_hooks func (#35991)
      • Reuse selectable style for wiki (#35990)
      • Support blue yellow colorblind theme (#35910)
      • Support selecting theme on the footer (#35741)
      • Improve online runner check (#35722)
      • Add quick approve button on PR page (#35678)
      • Enable commenting on expanded lines in PR diffs (#35662)
      • Print PR-Title into tooltip for actions (#35579)
      • Use explicit, stronger defaults for newly generated repo signing keys for Debian (#36236)
      • Improve the compare page (#36261)
      • Unify repo names in system notices (#36491)
      • Move package settings to package instead of being tied to version (#37026)
      • Add Actions API rerun endpoints for runs and jobs (#36768)
      • Add branch_count to repository API (#35351) (#36743)
      • Add created_by filter to SearchIssues (#36670)
      • Allow admins to rename non-local users (#35970)
      • Support updating branch via API (#35951)
      • Add an option to automatically verify SSH keys from LDAP (#35927)
      • Make "update file" API can create a new file when SHA is not set (#35738)
      • Update issue.go with labels documentation (labels content, not ids) (#35522)
      • Expose content_version for optimistic locking on issue and PR edits (#37035)
      • Pass ServeHeaderOptions by value instead of pointer, fine tune httplib tests (#36982)
    • BUGFIXES
      • Frontend iframe renderer framework: 3D models, OpenAPI (#37233) (#37273)
      • Fix CODEOWNERS absolute path matching. (#37244) (#37264)
      • Swift registry metadata: preserve more JSON fields and accept empty metadata (#37254) (#37261)
      • Fix user ssh key exporting and tests (#37256) (#37258)
      • Fix team member avatar size and add tooltip (#37253)
      • Fix commit title rendering in action run and blame (#37243) (#37251)
      • Fix corrupted JSON caused by goccy library (#37214) (#37220)
      • Add test for "fetch redirect", add CSS value validation for external render (#37207) (#37216)
      • Fix incorrect concurrency check (#37205) (#37215)
      • Fix handle missing base branch in PR commits API (#37193) (#37203)
      • Fix encoding for Matrix Webhooks (#37190) (#37201)
      • Fix handle fork-only commits in compare API (#37185) (#37199)
      • Indicate form field readonly via background, fix RunUser config (#37175, #37180) (#37178)
      • Report structurally invalid workflows to users (#37116) (#37164)
      • Fix API not persisting pull request unit config when has_pull_requests is not set (#36718)
      • Rename CSS variables and improve colorblind themes (#36353)
      • Hide add-matcher and remove-matcher from actions job logs (#36520)
      • Prevent navigation keys from triggering actions during IME composition (#36540)
      • Fix vertical alignment of .commit-sign-badge children (#36570)
      • Fix duplicate startup warnings in admin panel (#36641)
      • Fix CODEOWNERS review request attribution using comment metadata (#36348)
      • Fix HTML tags appearing in wiki table of contents (#36284)
      • Fix various bugs (#37096)
      • Fix various legacy problems (#37092)
      • Fix RPM Registry 404 when package name contains 'package' (#37087)
      • Merge some standalone Vite entries into index.js (#37085)
      • Fix various problems (#37077)
      • Fix issue label deletion with Actions tokens (#37013)
      • Hide delete branch or tag buttons in mirror or archived repositories. (#37006)
      • Fix org contact email not clearable once set (#36975)
      • Fix a bug when forking a repository in an organization (#36950)
      • Preserve sort order of exclusive labels from template repo (#36931)
      • Make container registry support Apple Container (basic auth) (#36920)
      • Fix the wrong push commits in the pull request when force push (#36914)
      • Add class "list-header-filters" to the div for projects (#36889)
      • Fix dbfs error handling (#36844)
      • Fix incorrect viewed files counter if reverted change was viewed (#36819)
      • Refactor avatar package, support default avatar fallback (#36788)
      • Fix README symlink resolution in subdirectories like .github (#36775)
      • Fix CSS stacking context issue in actions log (#36749)
      • Add gpg signing for merge rebase and update by rebase (#36701)
      • Delete non-exist branch should return 404 (#36694)
      • Fix TestActionsCollaborativeOwner (#36657)
      • Fix multi-arch Docker build SIGILL by splitting frontend stage (#36646)
      • Fix linguist-detectable attribute being ignored for configuration files (#36640)
      • Fix state desync in ComboMarkdownEditor (#36625)
      • Unify DEFAULT_SHOW_FULL_NAME output in templates and dropdown (#36597)
      • Pull Request Pusher should be the author of the merge (#36581)
      • Fix various version parsing problems (#36553)
      • Fix highlight diff result (#36539)
      • Fix mirror sync parser and fix mirror messages (#36504)
      • Fix bug when list pull request commits (#36485)
      • Fix various bugs (#36446)
      • Fix issue filter menu layout (#36426)
      • Restrict branch naming when new change matches with protection rules (#36405)
      • Fix link/origin referrer and login redirect (#36279)
      • Generate IDs for HTML headings without id attribute (#36233)
      • Use a migration test instead of a wrong test which populated the meta test repositories and fix a migration bug (#36160)
      • Fix issue close timeline icon (#36138)
      • Fix diff blob excerpt expansion (#35922)
      • Fix external render (#35727)
      • Fix review request webhook bug (#35339) (#35723)
      • Fix shutdown waitgroup panic (#35676)
      • Cleanup ActionRun creation (#35624)
      • Fix possible bug when migrating issues/pull requests (#33487)
      • Various fixes (#36697)
      • Apply notify/register mail flags during install load (#37120)
      • Repair duration display for bad stopped timestamps (#37121)
      • Fix(upgrade.sh): use HTTPS for GPG key import and restore SELinux context after upgrade (#36930)
      • Fix various trivial problems (#36921)
      • Fix various trivial problems (#36953)
      • Fix NuGet package upload error handling (#37074)
      • Fix CodeQL code scanning alerts (#36858)
      • Refactor issue sidebar and fix various problems (#37045)
      • Fix various problems (#37029)
      • Fix relative-time RangeError (#37021)
      • Fix chroma lexer mapping (#36629)
      • Fix typos and grammar in English locale (#36751)
      • Fix milestone/project text overflow in issue sidebar (#36741)
      • Fix no-content message not rendering after comment edit (#36733)
      • Fix theme loading in development (#36605)
      • Fix workflow run jobs API returning null steps (#36603)
      • Fix timeline event layout overflow with long content (#36595)
      • Fix minor UI issues in runner edit page (#36590)
      • Fix incorrect vendored detections (#36508)
      • Fix editorconfig not respected in PR Conversation view (#36492)
      • Don't create self-references in merged PRs (#36490)
      • Fix potential incorrect runID in run status update (#36437)
      • Fix file-tree ui error when adding files to repo without commits (#36312)
      • Improve image captcha contrast for dark mode (#36265)
      • Fix panic in blame view when a file has only a single commit (#36230)
      • Fix spelling error in migrate-storage cmd utility (#36226)
      • Fix code highlighting on blame page (#36157)
      • Fix nilnil in onedev downloader (#36154)
      • Fix actions lint (#36029)
      • Fix oauth2 session gob register (#36017)
      • Fix Arch repo pacman.conf snippet (#35825)
      • Fix a number of strictNullChecks-related issues (#35795)
      • Fix URLJoin, markup render link reoslving, sign-in/up/linkaccount page common data (#36861)
      • Hide delete directory button for mirror or archive repository and disable the menu item if user have no permission (#36384)
      • Update message severity colors, fix navbar double border (#37019)
      • Inline and lazy-load EasyMDE CSS, fix border colors (#36714)
      • Closed milestones with no issues now show as 100% completed (#36220)
      • Add test for ExtendCommentTreePathLength migration and fix bugs (#35791)
      • Only turn links to current instance into hash links (#36237)
      • Fix typos in code comments: doesnt, dont, wont (#36890)
    • REFACTOR
      • Clean up and improve non-gitea js error filter (#37148) (#37155)
      • Always show owner/repo name in compare page dropdowns (#37172) (#37200)
      • Remove dead CSS rules (#37173) (#37177)
      • Replace Monaco with CodeMirror (#36764)
      • Replace CSRF cookie with CrossOriginProtection (#36183)
      • Replace index with id in actions routes (#36842)
      • Remove unnecessary function parameter (#35765)
      • Move jobparser from act repository to Gitea (#36699)
      • Refactor compare router param parse (#36105)
      • Optimize 'refreshAccesses' to perform update without removing then adding (#35702)
      • Clean up checkbox cursor styles (#37016)
      • Remove undocumented support of signing key in the repository git configuration file (#36143)
      • Switch cmd/ to use constructor functions. (#36962)
      • Use relative-time to render absolute dates (#36238)
      • Some refactors about GetMergeBase (#36186)
      • Some small refactors (#36163)
      • Use gitRepo as parameter instead of repopath when invoking sign functions (#36162)
      • Move blame to gitrepo (#36161)
      • Move some functions to gitrepo package to reduce RepoPath reference directly (#36126)
      • Use gitrepo's clone and push when possible (#36093)
      • Remove mermaid margin workaround (#35732)
      • Move some functions to gitrepo package (#35543)
      • Move GetDiverging functions to gitrepo (#35524)
      • Use global lock instead of status pool for cron lock (#35507)
      • Use explicit mux instead of DefaultServeMux (#36276)
      • Use gitrepo's push function (#36245)
      • Pass request context to generateAdditionalHeadersForIssue (#36274)
      • Move assign project when creating pull request to the same database transaction (#36244)
      • Move catfile batch to a sub package of git module (#36232)
      • Use gitrepo.Repository instead of wikipath (#35398)
      • Use experimental go json v2 library (#35392)
      • Refactor template render (#36438)
      • Refactor GetRepoRawDiffForFile to avoid unnecessary pipe or goroutine (#36434)
      • Refactor text utility classes to Tailwind CSS (#36703)
      • Refactor git command stdio pipe (#36422)
      • Refactor git command context & pipeline (#36406)
      • Refactor git command stdio pipe (#36393)
      • Remove unused functions (#36672)
      • Refactor Actions Token Access (#35688)
      • Move commit related functions to gitrepo package (#35600)
      • Move archive function to repo_model and gitrepo (#35514)
      • Move some functions to gitrepo package (#35503)
      • Use git model to detect whether branch exist instead of gitrepo method (#35459)
      • Some refactor for repo path (#36251)
      • Extract helper functions from SearchIssues (#36158)
      • Refactor merge conan and container auth preserve actions taskID (#36560)
      • Refactor Nuget Auth to reuse Basic Auth Token Validation (#36558)
      • Refactor ActionsTaskID (#36503)
      • Refactor auth middleware (#36848)
      • Refactor code render and render control chars (#37078)
      • Clean up AppURL, remove legacy origin-url webcomponent (#37090)
      • Remove util.URLJoin and replace all callers with direct path concatenation (#36867)
      • Replace legacy tw-flex utility classes with flex-text-block/inline (#36778)
      • Mark unused&immature activitypub as "not implemented" (#36789)
    • TESTING
      • Add e2e tests for server push events (#36879)
      • Rework e2e tests (#36634)
      • Add e2e reaction test, improve accessibility, enable parallel testing (#37081)
      • Increase e2e test timeouts on CI to fix flaky tests (#37053)
    • BUILD
      • Upgrade go-git to v5.18.0 (#37269)
      • Replace rollup-plugin-license with rolldown-license-plugin (#37130) (#37158)
      • Bump min go version to 1.26.2 (#37139) (#37143)
      • Convert locale files from ini to json format (#35489)
      • Bump golangci-lint to 2.7.2, enable modernize stringsbuilder (#36180)
      • Port away from flake-utils (#35675)
      • Remove nolint (#36252)
      • Update the Unlicense copy to latest version (#36636)
      • Update to go 1.26.0 and golangci-lint 2.9.0 (#36588)
      • Replace google/go-licenses with custom generation (#36575)
      • Update go dependencies (#36548)
      • Bump appleboy/git-push-action from 1.0.0 to 1.2.0 (#36306)
      • Remove fomantic form module (#36222)
      • Bump setup-node to v6, re-enable cache (#36207)
      • Bump crowdin/github-action from 1 to 2 (#36204)
      • Revert "Bump alpine to 3.23 (#36185)" (#36202)
      • Update chroma to v2.21.1 (#36201)
      • Bump astral-sh/setup-uv from 6 to 7 (#36198)
      • Bump docker/build-push-action from 5 to 6 (#36197)
      • Bump aws-actions/configure-aws-credentials from 4 to 5 (#36196)
      • Bump dev-hanz-ops/install-gh-cli-action from 0.1.0 to 0.2.1 (#36195)
      • Add JSON linting (#36192)
      • Enable dependabot for actions (#36191)
      • Bump alpine to 3.23 (#36185)
      • Update chroma to v2.21.0 (#36171)
      • Update JS deps and eslint enhancements (#36147)
      • Update JS deps (#36091)
      • update golangci-lint to v2.7.0 (#36079)
      • Update JS deps, fix deprecations (#36040)
      • Update JS deps (#35978)
      • Add toolchain directive to go.mod (#35901)
      • Move gitea-vet to use go tool (#35878)
      • Update to go 1.25.4 (#35877)
      • Enable TypeScript strictNullChecks (#35843)
      • Enable vue/require-typed-ref eslint rule (#35764)
      • Update JS dependencies (#35759)
      • Move codeformat folder to tools (#35758)
      • Update dependencies (#35733)
      • Bump happy-dom from 20.0.0 to 20.0.2 (#35677)
      • Bump setup-go to v6 (#35660)
      • Update JS deps, misc tweaks (#35643)
      • Bump happy-dom from 19.0.2 to 20.0.0 (#35625)
      • Use bundled version of spectral (#35573)
      • Update JS and PY deps (#35565)
      • Bump github.com/wneessen/go-mail from 0.6.2 to 0.7.1 (#35557)
      • Migrate from webpack to vite (#37002)
      • Update JS dependencies and misc tweaks (#37064)
      • Update to eslint 10 (#36925)
      • Optimize Docker build with dependency layer caching (#36864)
      • Update JS deps (#36850)
      • Update tool dependencies and fix new lint issues (#36702)
      • Remove redundant linter rules (#36658)
      • Move Fomantic dropdown CSS to custom module (#36530)
      • Remove and forbid @ts-expect-error (#36513)
      • Refactor git command stderr handling (#36402)
      • Enable gocheckcompilerdirectives linter (#36156)
      • Replace lint-go-gopls with additional govet linters (#36028)
      • Update golangci-lint to v2.6.0 (#35801)
      • Misc tool tweaks (#35734)
      • Add cache to container build (#35697)
      • Upgrade vite (#37126)
      • Update setup-uv to v8.0.0 (#37101)
      • Upgrade go-git to v5.17.2 and related dependencies (#37060)
      • Raise minimum Node.js version to 22.18.0 (#37058)
      • Upgrade golang.org/x/image to v0.38.0 (#37054)
      • Update minimum go version to 1.26.1, golangci-lint to 2.11.2, fix test style (#36876)
      • Enable eslint concurrency (#36878)
      • Vendor relative-time-element as local web component (#36853)
      • Update material-icon-theme v5.32.0 (#36832)
      • Update Go dependencies (#36781)
      • Upgrade minimatch (#36760)
      • Remove i18n backport tool at the moment because of translation format changed (#36643)
      • Update emoji data for Unicode 16 (#36596)
      • Update JS dependencies, adjust webpack config, misc fixes (#36431)
      • Update material-icon-theme to v5.31.0 (#36427)
      • Update JS and PY deps (#36383)
      • Bump alpine to 3.23, add platforms to docker-dryrun (#36379)
      • Update JS deps (#36354)
      • Update goldmark to v1.7.16 (#36343)
      • Update chroma to v2.22.0 (#36342)
    • DOCS
      • Update AI Contribution Policy (#37022)
      • Update AGENTS.md with additional guidelines (#37018)
      • Add missing cron tasks to example ini (#37012)
      • Add AI Contribution Policy to CONTRIBUTING.md (#36651)
      • Minor punctuation improvement in CONTRIBUTING.md (#36291)
      • Add documentation for markdown anchor post-processing (#36443)
    • MISC
    Downloads