mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			v1.24.7
			...
			v1.17.0-rc
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					710a1419fa | ||
| 
						 | 
					761db4d53e | ||
| 
						 | 
					2dc6571085 | ||
| 
						 | 
					1823bfde7c | ||
| 
						 | 
					ab9fcb0cf4 | ||
| 
						 | 
					2a48833f93 | ||
| 
						 | 
					a4b1967ea3 | ||
| 
						 | 
					8733f4b25a | ||
| 
						 | 
					a180d945eb | ||
| 
						 | 
					36ccb8829b | 
@@ -1,3 +1,6 @@
 | 
			
		||||
# config for changelog tool
 | 
			
		||||
# source: https://gitea.com/gitea/changelog
 | 
			
		||||
 | 
			
		||||
# The full repository name
 | 
			
		||||
repo: go-gitea/gitea
 | 
			
		||||
 | 
			
		||||
@@ -18,6 +21,10 @@ groups:
 | 
			
		||||
    name: SECURITY
 | 
			
		||||
    labels:
 | 
			
		||||
      - kind/security
 | 
			
		||||
  -
 | 
			
		||||
    name: FEDERATION
 | 
			
		||||
    labels:
 | 
			
		||||
      - theme/federation
 | 
			
		||||
  -
 | 
			
		||||
    name: FEATURES
 | 
			
		||||
    labels:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										275
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										275
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -4,6 +4,281 @@ This changelog goes through all the changes that have been made in each release
 | 
			
		||||
without substantial changes to our git log; to see the highlights of what has
 | 
			
		||||
been added to each release, please refer to the [blog](https://blog.gitea.io).
 | 
			
		||||
 | 
			
		||||
## [1.17.0-rc1](https://github.com/go-gitea/gitea/releases/tag/v1.17.0-rc1) - 2022-06-18
 | 
			
		||||
 | 
			
		||||
* BREAKING
 | 
			
		||||
  * Require go1.18 for Gitea 1.17 (#19918)
 | 
			
		||||
  * Make AppDataPath absolute against the AppWorkPath if it is not (#19815)
 | 
			
		||||
  * Nuke the incorrect permission report on /api/v1/notifications (#19761)
 | 
			
		||||
  * Refactor git module, make Gitea use internal git config (#19732)
 | 
			
		||||
  * Remove `RequireHighlightJS` field, update plantuml example. (#19615)
 | 
			
		||||
  * Increase minimal required git version to 2.0 (#19577)
 | 
			
		||||
  * Add a directory prefix `gitea-src-VERSION` to release-tar-file (#19396)
 | 
			
		||||
  * Use "main" as default branch name (#19354)
 | 
			
		||||
  * Make cron task no notice on success (#19221)
 | 
			
		||||
  * Add pam account authorization check (#19040)
 | 
			
		||||
  * Show messages for users if the ROOT_URL is wrong, show JavaScript errors (#18971)
 | 
			
		||||
  * Refactor mirror code & fix StartToMirror (#18904)
 | 
			
		||||
  * Remove deprecated SSH ciphers from default (#18697)
 | 
			
		||||
  * Add the possibility to allow the user to have a favicon which differs from the main logo (#18542)
 | 
			
		||||
  * Update reserved usernames list (#18438)
 | 
			
		||||
  * Support custom ACME provider (#18340)
 | 
			
		||||
  * Change initial TrustModel to committer (#18335)
 | 
			
		||||
  * Update HTTP status codes (#18063)
 | 
			
		||||
  * Upgrade Alpine from 3.13 to 3.15 (#18050)
 | 
			
		||||
  * Restrict email address validation (#17688) 
 | 
			
		||||
  * Refactor Router Logger (#17308)
 | 
			
		||||
* SECURITY
 | 
			
		||||
  * Remove deprecated SSH ciphers from default (#18697)
 | 
			
		||||
* FEDERATION
 | 
			
		||||
  * Return statistic information for nodeinfo (#19561)
 | 
			
		||||
  * Add Webfinger endpoint (#19462)
 | 
			
		||||
  * Store the foreign ID of issues during migration (#18446)
 | 
			
		||||
* FEATURES
 | 
			
		||||
  * Automatically render wiki TOC (#19873)
 | 
			
		||||
  * Adding button to link accounts from user settings (#19792)
 | 
			
		||||
  * Allow set default merge style while creating repo (#19751)
 | 
			
		||||
  * Auto merge pull requests when all checks succeeded (#9307 & #19648)
 | 
			
		||||
  * Improve reviewing PR UX (#19612)
 | 
			
		||||
  * Add support for rendering console output with colors (#19497)
 | 
			
		||||
  * Add Helm Chart registry (#19406)
 | 
			
		||||
  * Add Goroutine stack inspector to admin/monitor (#19207)
 | 
			
		||||
  * RSS/Atom support for Orgs & Repos (#17714 & #19055)
 | 
			
		||||
  * Add button for issue deletion (#19032)
 | 
			
		||||
  * Allow to mark files in a PR as viewed (#19007)
 | 
			
		||||
  * Add Index to comment for migrations and mirroring (#18806)
 | 
			
		||||
  * Add health check endpoint (#18465)
 | 
			
		||||
  * Add packagist webhook (#18224)
 | 
			
		||||
  * Add "Allow edits from maintainer" feature (#18002)
 | 
			
		||||
  * Add apply-patch, basic revert and cherry-pick functionality (#17902)
 | 
			
		||||
  * Add Package Registry (#16510)
 | 
			
		||||
  * Add LDAP group sync to Teams (#16299)
 | 
			
		||||
  * Pause queues (#15928)
 | 
			
		||||
  * Added auto-save whitespace behavior if it changed manually (#15566)
 | 
			
		||||
  * Find files in repo (#15028)
 | 
			
		||||
  * Provide configuration to allow camo-media proxying (#12802)
 | 
			
		||||
* API
 | 
			
		||||
  * Add endpoint to serve blob or LFS file content (#19689)
 | 
			
		||||
  * Add endpoint to check if team has repo access (#19540)
 | 
			
		||||
  * More commit info (#19252)
 | 
			
		||||
  * Allow to create file on empty repo (#19224)
 | 
			
		||||
  * Allow removing issues (#18879)
 | 
			
		||||
  * Add endpoint to query collaborators permission for a repository (#18761)
 | 
			
		||||
  * Return primary language and repository language stats API URL (#18396)
 | 
			
		||||
  * Implement http signatures support for the API (#17565)
 | 
			
		||||
* ENHANCEMENTS
 | 
			
		||||
  * Add dbconsistency checks for Stopwatches (#20010)
 | 
			
		||||
  * Add fetch.writeCommitGraph to gitconfig (#20006)
 | 
			
		||||
  * Add fgprof pprof profiler (#20005)
 | 
			
		||||
  * Move agit dependency (#19998)
 | 
			
		||||
  * Empty log queue on flush and close (#19994)
 | 
			
		||||
  * Remove tab/TabName usage where it's not needed (#19973)
 | 
			
		||||
  * Improve file header on mobile (#19945)
 | 
			
		||||
  * Move issues related files into models/issues (#19931)
 | 
			
		||||
  * Add breaking email restrictions checker in doctor (#19903)
 | 
			
		||||
  * Improve UX on modal for deleting an access token (#19894)
 | 
			
		||||
  * Add alt text to logo (#19892)
 | 
			
		||||
  * Move some code into models/git (#19879)
 | 
			
		||||
  * Remove customized (unmaintained) dropdown, improve aria a11y for dropdown (#19861)
 | 
			
		||||
  * Make user profile image show full image on mobile (#19840)
 | 
			
		||||
  * Replace blue button and label classes with primary (#19763)
 | 
			
		||||
  * Remove fomantic progress module (#19760)
 | 
			
		||||
  * Allows repo search to match against "owner/repo" pattern strings (#19754)
 | 
			
		||||
  * Move org functions (#19753)
 | 
			
		||||
  * Move almost all functions' parameter db.Engine to context.Context (#19748)
 | 
			
		||||
  * Show source/target branches on PR's list (#19747)
 | 
			
		||||
  * Use http.StatusTemporaryRedirect(307) when serve avatar directly (#19739)
 | 
			
		||||
  * Add doctor orphan check for orphaned pull requests without an existing base repo  (#19731)
 | 
			
		||||
  * Make Ctrl+Enter (quick submit) work for issue comment and wiki editor (#19729)
 | 
			
		||||
  * Update go-chi/cache to utilize Ping() (#19719)
 | 
			
		||||
  * Improve commit list/view on mobile (#19712)
 | 
			
		||||
  * Move some repository related code into sub package (#19711)
 | 
			
		||||
  * Use a better OlderThan for DeleteInactiveUsers (#19693)
 | 
			
		||||
  * Introduce eslint-plugin-jquery (#19690)
 | 
			
		||||
  * Tidy up `<head>` template (#19678)
 | 
			
		||||
  * Calculate filename hash only once (#19654)
 | 
			
		||||
  * Simplify `IsVendor` (#19626)
 | 
			
		||||
  * Add "Reference" section to Issue view sidebar (#19609)
 | 
			
		||||
  * Only set CanColorStdout / CanColorStderr to true if the stdout/stderr is a terminal (#19581)
 | 
			
		||||
  * Use for a repo action one database transaction (#19576)
 | 
			
		||||
  * Simplify loops to copy (#19569)
 | 
			
		||||
  * Added X-Mailer header to outgoing emails (#19562)
 | 
			
		||||
  * use middleware to open gitRepo (#19559)
 | 
			
		||||
  * Mute link in diff header (#19556)
 | 
			
		||||
  * Improve UI on mobile (#19546)
 | 
			
		||||
  * Fix Pull Request comment filename word breaks (#19535)
 | 
			
		||||
  * Permalink files In PR diff (#19534)
 | 
			
		||||
  * PullService lock via pullID (#19520)
 | 
			
		||||
  * Make repository file list useable on mobile (#19515)
 | 
			
		||||
  * more context for models  (#19511)
 | 
			
		||||
  * Allow package dump skipping (#19506)
 | 
			
		||||
  * Refactor readme file renderer (#19502)
 | 
			
		||||
  * By default force vertical tabs on mobile (#19486)
 | 
			
		||||
  * Github style following followers (#19482)
 | 
			
		||||
  * Improve action table indices (#19472)
 | 
			
		||||
  * Use horizontal tabs for repo header on mobile (#19468)
 | 
			
		||||
  * pass gitRepo down since its used for main repo and wiki (#19461)
 | 
			
		||||
  * Admin should not delete himself (#19423)
 | 
			
		||||
  * Use queue instead of memory queue in webhook send service (#19390)
 | 
			
		||||
  * Simplify the code to get issue count (#19380)
 | 
			
		||||
  * Add commit status popup to issuelist (#19375)
 | 
			
		||||
  * Add RSS Feed buttons to Repo, User and Org pages (#19370)
 | 
			
		||||
  * Add logic to switch between source/rendered on Markdown (#19356)
 | 
			
		||||
  * Move some helper files out of models (#19355)
 | 
			
		||||
  * Move access and repo permission to models/perm/access (#19350)
 | 
			
		||||
  * Disallow selecting the text of buttons (#19330)
 | 
			
		||||
  * Allow custom redirect for landing page (#19324)
 | 
			
		||||
  * Repository level enable package or disable (#19323)
 | 
			
		||||
  * Remove dependent on session auth for api/v1 routers (#19321)
 | 
			
		||||
  * Never use /api/v1 from Gitea UI Pages (#19318)
 | 
			
		||||
  * Remove legacy unmaintained packages, refactor to support change default locale (#19308)
 | 
			
		||||
  * Move milestone to models/issues/ (#19278)
 | 
			
		||||
  * Configure OpenSSH log level via Environment in Docker (#19274)
 | 
			
		||||
  * Move reaction to models/issues/ (#19264)
 | 
			
		||||
  * Make git.OpenRepository accept Context (#19260)
 | 
			
		||||
  * Move some issue methods as functions (#19255)
 | 
			
		||||
  * Show last cron messages on monitor page (#19223)
 | 
			
		||||
  * New cron task: delete old system notices (#19219)
 | 
			
		||||
  * Add Redis Sentinel Authentication Support (#19213)
 | 
			
		||||
  * Add auto logging of goroutine pid label (#19212)
 | 
			
		||||
  * Set OpenGraph title to DisplayName in profile pages  (#19206)
 | 
			
		||||
  * Add pprof labels in processes and for lifecycles (#19202)
 | 
			
		||||
  * Let web and API routes have different auth methods group (#19168)
 | 
			
		||||
  * Move init repository related functions to modules (#19159)
 | 
			
		||||
  * Feeds: render markdown to html (#19058)
 | 
			
		||||
  * Allow users to self-request a PR review (#19030)
 | 
			
		||||
  * Allow render HTML with css/js external links (#19017)
 | 
			
		||||
  * Fix script compatiable with OpenWrt (#19000)
 | 
			
		||||
  * Support ignore all santize for external renderer (#18984)
 | 
			
		||||
  * Add note to GPG key response if user has no keys (#18961)
 | 
			
		||||
  * Improve Stopwatch behavior (#18930)
 | 
			
		||||
  * Improve mirror iterator (#18928)
 | 
			
		||||
  * Uncapitalize errors (#18915)
 | 
			
		||||
  * Prevent Stats Indexer reporting error if repo dir missing (#18870)
 | 
			
		||||
  * Refactor SecToTime() function (#18863)
 | 
			
		||||
  * Replace deprecated String.prototype.substr() with String.prototype.slice() (#18796)
 | 
			
		||||
  * Move deletebeans into models/db (#18781)
 | 
			
		||||
  * Fix display time of milestones (#18753)
 | 
			
		||||
  * Add config option to disable "Update branch by rebase" (#18745)
 | 
			
		||||
  * Display template path of current page in dev mode (#18717)
 | 
			
		||||
  * Add number in queue status to monitor page (#18712)
 | 
			
		||||
  * Change git.cmd to RunWithContext (#18693)
 | 
			
		||||
  * Refactor i18n, use Locale to provide i18n/translation related functions (#18648)
 | 
			
		||||
  * Delete old git.NewCommand() and use it as git.NewCommandContext() (#18552)
 | 
			
		||||
  * Move organization related structs into sub package (#18518)
 | 
			
		||||
  * Warn at startup if the provided `SCRIPT_TYPE` is not on the PATH (#18467)
 | 
			
		||||
  * Use `CryptoRandomBytes` instead of `CryptoRandomString` (#18439)
 | 
			
		||||
  * Use explicit jQuery import, remove unused eslint globals (#18435)
 | 
			
		||||
  * Allow to filter repositories by language in explore, user and organization repositories lists (#18430)
 | 
			
		||||
  * Use base32 for 2FA scratch token (#18384)
 | 
			
		||||
  * Unexport var git.GlobalCommandArgs (#18376)
 | 
			
		||||
  * Don't underline commit status icon on hover (#18372)
 | 
			
		||||
  * Always use git command but not os.Command (#18363)
 | 
			
		||||
  * Switch to non-deprecation setting (#18358)
 | 
			
		||||
  * Set the LastModified header for raw files (#18356)
 | 
			
		||||
  * Refactor jwt.StandardClaims to RegisteredClaims (#18344)
 | 
			
		||||
  * Enable deprecation error for v1.17.0 (#18341)
 | 
			
		||||
  * Refactor httplib (#18338)
 | 
			
		||||
  * Limit max-height of CodeMirror editors for issue comment and wiki (#18271)
 | 
			
		||||
  * Validate migration files (#18203)
 | 
			
		||||
  * Format with gofumpt (#18184)
 | 
			
		||||
  * Allow custom default merge message with .gitea/default_merge_message/<merge_style>_TEMPLATE.md (#18177)
 | 
			
		||||
  * Prettify number of issues (#17760)
 | 
			
		||||
  * Add a "admin user generate-access-token" subcommand (#17722)
 | 
			
		||||
  * Move project files into models/project sub package (#17704)
 | 
			
		||||
  * Custom regexp external issues (#17624)
 | 
			
		||||
  * Add smtp password to install page (#17564)
 | 
			
		||||
  * Add config options to hide issue events (#17414)
 | 
			
		||||
  * Prevent double click new issue/pull/comment button (#16157)
 | 
			
		||||
  * Show issue assignee on project board (#15232)
 | 
			
		||||
* BUGFIXES
 | 
			
		||||
  * Alter hook_task TEXT fields to LONGTEXT (#20038) (#20041)
 | 
			
		||||
  * Respond with a 401 on git push when password isn't changed yet (#20026) (#20027)
 | 
			
		||||
  * Return 404 when tag is broken (#20017) (#20024)
 | 
			
		||||
  * Write Commit-Graphs in RepositoryDumper (#20004)
 | 
			
		||||
  * Use DisplayName() instead of FullName in Oauth Provider (#19991)
 | 
			
		||||
  * Don't buffer doctor logger (#19982)
 | 
			
		||||
  * Always try to fetch repo for mirrors (#19975)
 | 
			
		||||
  * Uppercase first languages letters (#19965)
 | 
			
		||||
  * Fix cli command restore-repo: "units" should be parsed as StringSlice (#19953)
 | 
			
		||||
  * Ensure minimum mirror interval is reported on settings page (#19895)
 | 
			
		||||
  * Exclude Archived repos from Dashboard Milestones (#19882)
 | 
			
		||||
  * gitconfig: set safe.directory = * (#19870)
 | 
			
		||||
  * Prevent NPE on update mirror settings (#19864)
 | 
			
		||||
  * Only return valid stopwatches to the EventSource (#19863)
 | 
			
		||||
  * Prevent NPE whilst migrating if there is a team request review (#19855)
 | 
			
		||||
  * Fix inconsistency in doctor output (#19836)
 | 
			
		||||
  * Fix release tag for webhook (#19830)
 | 
			
		||||
  * Add title attribute to dependencies in sidebar (#19807)
 | 
			
		||||
  * Estimate Action Count in Statistics (#19775)
 | 
			
		||||
  * Do not update user stars numbers unless fix is specified (#19750)
 | 
			
		||||
  * Improved ref comment link when origin is body/title (#19741)
 | 
			
		||||
  * Fix nodeinfo caching and prevent NPE if cache non-existent (#19721)
 | 
			
		||||
  * Fix duplicate entry error when add team member (#19702)
 | 
			
		||||
  * Fix sending empty notifications (#19589)
 | 
			
		||||
  * Update image URL for Discord webhook (#19536)
 | 
			
		||||
  * Don't let repo clone URL overflow (#19517)
 | 
			
		||||
  * Allow commit status popup on /pulls page (#19507)
 | 
			
		||||
  * Fix two UI bugs: JS error in imagediff.js, 500 error in diff/compare.tmpl (#19494)
 | 
			
		||||
  * Fix logging of Transfer API (#19456)
 | 
			
		||||
  * Fix panic in teams API when requesting members (#19360)
 | 
			
		||||
  * Refactor CSRF protection modules, make sure CSRF tokens can be up-to-date. (#19337)
 | 
			
		||||
  * An attempt to sync a non-mirror repo must give 400 (Bad Request) (#19300)
 | 
			
		||||
  * Move checks for pulls before merge into own function (#19271)
 | 
			
		||||
  * Fix `contrib/upgrade.sh` (#19222)
 | 
			
		||||
  * Set the default branch for repositories generated from templates (#19136)
 | 
			
		||||
  * Fix EasyMDE error when input Enter (#19004)
 | 
			
		||||
  * Don't clean up hardcoded `tmp` (#18983)
 | 
			
		||||
  * Delete related notifications on issue deletion too (#18953)
 | 
			
		||||
  * Fix trace log to show value instead of pointers (#18926)
 | 
			
		||||
  * Fix behavior or checkbox submission. (#18851)
 | 
			
		||||
  * Add `ContextUser` (#18798)
 | 
			
		||||
  * Fix some mirror bugs (#18649)
 | 
			
		||||
  * Quote MAKE to prevent path expansion with space error (#18622)
 | 
			
		||||
  * Preserve users if restoring a repository on the same Gitea instance (#18604)
 | 
			
		||||
  * Fix non-ASCII search on database  (#18437)
 | 
			
		||||
  * Automatically pause queue if index service is unavailable (#15066)
 | 
			
		||||
* TESTING
 | 
			
		||||
  * Allow postgres integration tests to run over unix pipe (#19875)
 | 
			
		||||
  * Prevent intermittent NPE in queue tests (#19301)
 | 
			
		||||
  * Add test for importing pull requests in gitea uploader for migrations (#18752)
 | 
			
		||||
  * Remove redundant comparison in repo dump/restore (#18660)
 | 
			
		||||
  * More repo dump/restore tests, including pull requests  (#18621)
 | 
			
		||||
  * Add test coverage for original author conversion during migrations (#18506)
 | 
			
		||||
* TRANSLATION
 | 
			
		||||
  * Update issue_no_dependencies description (#19112)
 | 
			
		||||
  * Refactor webhooks i18n (#18380)
 | 
			
		||||
* BUILD
 | 
			
		||||
  * Use alpine 3.16 (#19797)
 | 
			
		||||
  * Require node 14.0 (#19451)
 | 
			
		||||
* DOCS
 | 
			
		||||
  * Update documents (git/fomantic/db, etc) (#19868)
 | 
			
		||||
  * Update the ROOT documentation and error messages (#19832)
 | 
			
		||||
  * Update document to use FHS `/usr/local/bin/gitea` instead of `/app/...` for Docker (#19794)
 | 
			
		||||
  * Update documentation to disable duration settings with -1 instead of 0 (#19647)
 | 
			
		||||
  * Add warning to set SENDMAIL_ARGS to --  (#19102)
 | 
			
		||||
  * Update nginx reverse proxy docs (#18922)
 | 
			
		||||
  * Add example to render html files (#18736)
 | 
			
		||||
  * Make SSH passtrough documentation better (#18687)
 | 
			
		||||
  * Changelog 1.16.0 & 1.15.11 (#18468 & #18455)  (#18470)
 | 
			
		||||
  * Update the SSH passthrough documentation (#18366)
 | 
			
		||||
  * Add `contrib/upgrade.sh` (#18286)
 | 
			
		||||
* MISC
 | 
			
		||||
  * Fix aria for logo (#19955)
 | 
			
		||||
  * In code search, get code unit accessible repos in one (main) query (#19764)
 | 
			
		||||
  * Enable packages by default again (#19746)
 | 
			
		||||
  * Add tooltip to pending PR comments (#19662)
 | 
			
		||||
  * Improve sync performance for pull-mirrors (#19125)
 | 
			
		||||
  * Improve dashboard's repo list performance (#18963)
 | 
			
		||||
  * Avoid database lookups for `DescriptionHTML` (#18924)
 | 
			
		||||
  * Remove CodeMirror dependencies (#18911)
 | 
			
		||||
  * Disable unnecessary mirroring elements (#18527)
 | 
			
		||||
  * Disable unnecessary OpenID/OAuth2 elements (#18491)
 | 
			
		||||
  * Disable unnecessary GitHooks elements (#18485)
 | 
			
		||||
  * Change some logging levels (#18421)
 | 
			
		||||
  * Prevent showing webauthn error for every time visiting `/user/settings/security` (#18385)
 | 
			
		||||
  * Use correct translation key for errors (#18342)
 | 
			
		||||
 | 
			
		||||
## [1.16.8](https://github.com/go-gitea/gitea/releases/tag/v1.16.8) - 2022-05-16
 | 
			
		||||
 | 
			
		||||
* ENHANCEMENTS
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								cmd/dump.go
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								cmd/dump.go
									
									
									
									
									
								
							@@ -22,7 +22,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
 | 
			
		||||
	"gitea.com/go-chi/session"
 | 
			
		||||
	archiver "github.com/mholt/archiver/v3"
 | 
			
		||||
	"github.com/mholt/archiver/v3"
 | 
			
		||||
	"github.com/urfave/cli"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -439,10 +439,25 @@ func addRecursiveExclude(w archiver.Writer, insidePath, absPath string, excludeA
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// only copy regular files and symlink regular files, skip non-regular files like socket/pipe/...
 | 
			
		||||
			shouldAdd := file.Mode().IsRegular()
 | 
			
		||||
			if !shouldAdd && file.Mode()&os.ModeSymlink == os.ModeSymlink {
 | 
			
		||||
				target, err := filepath.EvalSymlinks(currentAbsPath)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
				targetStat, err := os.Stat(target)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
				shouldAdd = targetStat.Mode().IsRegular()
 | 
			
		||||
			}
 | 
			
		||||
			if shouldAdd {
 | 
			
		||||
				if err = addFile(w, currentInsidePath, currentAbsPath, verbose); err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2247,7 +2247,7 @@ PATH =
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;
 | 
			
		||||
;; Enable/Disable federation capabilities
 | 
			
		||||
; ENABLED = true
 | 
			
		||||
;ENABLED = false
 | 
			
		||||
;;
 | 
			
		||||
;; Enable/Disable user statistics for nodeinfo if federation is enabled
 | 
			
		||||
;SHARE_USER_STATISTICS = true
 | 
			
		||||
 
 | 
			
		||||
@@ -1088,7 +1088,7 @@ Task queue configuration has been moved to `queue.task`. However, the below conf
 | 
			
		||||
 | 
			
		||||
## Federation (`federation`)
 | 
			
		||||
 | 
			
		||||
- `ENABLED`: **true**: Enable/Disable federation capabilities
 | 
			
		||||
- `ENABLED`: **false**: Enable/Disable federation capabilities
 | 
			
		||||
- `SHARE_USER_STATISTICS`: **true**: Enable/Disable user statistics for nodeinfo if federation is enabled
 | 
			
		||||
 | 
			
		||||
## Packages (`packages`)
 | 
			
		||||
 
 | 
			
		||||
@@ -11,17 +11,20 @@ import (
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	api "code.gitea.io/gitea/modules/structs"
 | 
			
		||||
	"code.gitea.io/gitea/routers"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNodeinfo(t *testing.T) {
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
	setting.Federation.Enabled = true
 | 
			
		||||
	c = routers.NormalRoutes()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		setting.Federation.Enabled = false
 | 
			
		||||
		c = routers.NormalRoutes()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		req := NewRequestf(t, "GET", "/api/v1/nodeinfo")
 | 
			
		||||
		resp := MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var nodeinfo api.NodeInfo
 | 
			
		||||
 
 | 
			
		||||
@@ -389,6 +389,8 @@ var migrations = []Migration{
 | 
			
		||||
	NewMigration("allow to view files in PRs", addReviewViewedFiles),
 | 
			
		||||
	// v216 -> v217
 | 
			
		||||
	NewMigration("Improve Action table indices", improveActionTableIndices),
 | 
			
		||||
	// v217 -> v218
 | 
			
		||||
	NewMigration("Alter hook_task table TEXT fields to LONGTEXT", alterHookTaskTextFieldsToLongText),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetCurrentDBVersion returns the current db version
 | 
			
		||||
 
 | 
			
		||||
@@ -42,26 +42,5 @@ func (a *improveActionTableIndicesAction) TableIndices() []*schemas.Index {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func improveActionTableIndices(x *xorm.Engine) error {
 | 
			
		||||
	{
 | 
			
		||||
		type Action struct {
 | 
			
		||||
			ID          int64 `xorm:"pk autoincr"`
 | 
			
		||||
			UserID      int64 `xorm:"INDEX"` // Receiver user id.
 | 
			
		||||
			OpType      int
 | 
			
		||||
			ActUserID   int64 `xorm:"INDEX"` // Action user id.
 | 
			
		||||
			RepoID      int64 `xorm:"INDEX"`
 | 
			
		||||
			CommentID   int64 `xorm:"INDEX"`
 | 
			
		||||
			IsDeleted   bool  `xorm:"INDEX NOT NULL DEFAULT false"`
 | 
			
		||||
			RefName     string
 | 
			
		||||
			IsPrivate   bool               `xorm:"INDEX NOT NULL DEFAULT false"`
 | 
			
		||||
			Content     string             `xorm:"TEXT"`
 | 
			
		||||
			CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
 | 
			
		||||
		}
 | 
			
		||||
		if err := x.Sync2(&Action{}); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		if err := x.DropIndexes(&Action{}); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return x.Sync2(&improveActionTableIndicesAction{})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								models/migrations/v217.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								models/migrations/v217.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package migrations
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
 | 
			
		||||
	"xorm.io/xorm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func alterHookTaskTextFieldsToLongText(x *xorm.Engine) error {
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
	if err := sess.Begin(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if setting.Database.UseMySQL {
 | 
			
		||||
		if _, err := sess.Exec("ALTER TABLE `hook_task` CHANGE `payload_content` `payload_content` LONGTEXT, CHANGE `request_content` `request_content` LONGTEXT, change `response_content` `response_content` LONGTEXT"); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return sess.Commit()
 | 
			
		||||
}
 | 
			
		||||
@@ -105,7 +105,7 @@ type HookTask struct {
 | 
			
		||||
	HookID          int64
 | 
			
		||||
	UUID            string
 | 
			
		||||
	api.Payloader   `xorm:"-"`
 | 
			
		||||
	PayloadContent  string `xorm:"TEXT"`
 | 
			
		||||
	PayloadContent  string `xorm:"LONGTEXT"`
 | 
			
		||||
	EventType       HookEventType
 | 
			
		||||
	IsDelivered     bool
 | 
			
		||||
	Delivered       int64
 | 
			
		||||
@@ -113,9 +113,9 @@ type HookTask struct {
 | 
			
		||||
 | 
			
		||||
	// History info.
 | 
			
		||||
	IsSucceed       bool
 | 
			
		||||
	RequestContent  string        `xorm:"TEXT"`
 | 
			
		||||
	RequestContent  string        `xorm:"LONGTEXT"`
 | 
			
		||||
	RequestInfo     *HookRequest  `xorm:"-"`
 | 
			
		||||
	ResponseContent string        `xorm:"TEXT"`
 | 
			
		||||
	ResponseContent string        `xorm:"LONGTEXT"`
 | 
			
		||||
	ResponseInfo    *HookResponse `xorm:"-"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ package context
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/auth"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
@@ -41,6 +42,10 @@ func Toggle(options *ToggleOptions) func(ctx *Context) {
 | 
			
		||||
 | 
			
		||||
			if ctx.Doer.MustChangePassword {
 | 
			
		||||
				if ctx.Req.URL.Path != "/user/settings/change_password" {
 | 
			
		||||
					if strings.HasPrefix(ctx.Req.UserAgent(), "git") {
 | 
			
		||||
						ctx.Error(http.StatusUnauthorized, ctx.Tr("auth.must_change_password"))
 | 
			
		||||
						return
 | 
			
		||||
					}
 | 
			
		||||
					ctx.Data["Title"] = ctx.Tr("auth.must_change_password")
 | 
			
		||||
					ctx.Data["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password"
 | 
			
		||||
					if ctx.Req.URL.Path != "/user/events" {
 | 
			
		||||
 
 | 
			
		||||
@@ -942,6 +942,10 @@ func RepoRefByType(refType RepoRefType, ignoreNotExistErr ...bool) func(*Context
 | 
			
		||||
 | 
			
		||||
				ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetTagCommit(refName)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					if git.IsErrNotExist(err) {
 | 
			
		||||
						ctx.NotFound("GetTagCommit", err)
 | 
			
		||||
						return
 | 
			
		||||
					}
 | 
			
		||||
					ctx.ServerError("GetTagCommit", err)
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
@@ -201,10 +201,10 @@ func checkDBConsistency(ctx context.Context, logger log.Logger, autofix bool) er
 | 
			
		||||
			"oauth2_authorization_code", "oauth2_grant", "oauth2_authorization_code.grant_id=oauth2_grant.id"),
 | 
			
		||||
		// find stopwatches without existing user
 | 
			
		||||
		genericOrphanCheck("Orphaned Stopwatches without existing User",
 | 
			
		||||
			"stopwatch", "user", "stopwatch.user_id=user.id"),
 | 
			
		||||
			"stopwatch", "user", "stopwatch.user_id=`user`.id"),
 | 
			
		||||
		// find stopwatches without existing issue
 | 
			
		||||
		genericOrphanCheck("Orphaned Stopwatches without existing Issue",
 | 
			
		||||
			"stopwatch", "issue", "stopwatch.issue_id=issue.id"),
 | 
			
		||||
			"stopwatch", "issue", "stopwatch.issue_id=`issue`.id"),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	for _, c := range consistencyChecks {
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/exec"
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -337,7 +338,7 @@ func configSetNonExist(key, value string) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func configAddNonExist(key, value string) error {
 | 
			
		||||
	_, _, err := NewCommand(DefaultContext, "config", "--fixed-value", "--get", key, value).RunStdString(nil)
 | 
			
		||||
	_, _, err := NewCommand(DefaultContext, "config", "--get", key, regexp.QuoteMeta(value)).RunStdString(nil)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		// already exist
 | 
			
		||||
		return nil
 | 
			
		||||
@@ -357,7 +358,7 @@ func configUnsetAll(key, value string) error {
 | 
			
		||||
	_, _, err := NewCommand(DefaultContext, "config", "--get", key).RunStdString(nil)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		// exist, need to remove
 | 
			
		||||
		_, _, err = NewCommand(DefaultContext, "config", "--global", "--fixed-value", "--unset-all", key, value).RunStdString(nil)
 | 
			
		||||
		_, _, err = NewCommand(DefaultContext, "config", "--global", "--unset-all", key, regexp.QuoteMeta(value)).RunStdString(nil)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("failed to unset git global config %s, err: %w", key, err)
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -78,4 +78,10 @@ func TestGitConfig(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	assert.NoError(t, configUnsetAll("test.key-b", "val-2b"))
 | 
			
		||||
	assert.False(t, gitConfigContains("key-b = val-2b"))
 | 
			
		||||
 | 
			
		||||
	assert.NoError(t, configSet("test.key-x", "*"))
 | 
			
		||||
	assert.True(t, gitConfigContains("key-x = *"))
 | 
			
		||||
	assert.NoError(t, configSetNonExist("test.key-x", "*"))
 | 
			
		||||
	assert.NoError(t, configUnsetAll("test.key-x", "*"))
 | 
			
		||||
	assert.False(t, gitConfigContains("key-x = *"))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ var (
 | 
			
		||||
		Enabled             bool
 | 
			
		||||
		ShareUserStatistics bool
 | 
			
		||||
	}{
 | 
			
		||||
		Enabled:             true,
 | 
			
		||||
		Enabled:             false,
 | 
			
		||||
		ShareUserStatistics: true,
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -878,6 +878,11 @@ func DeleteIssue(ctx *context.Context) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if issue.IsPull {
 | 
			
		||||
		ctx.Redirect(fmt.Sprintf("%s/pulls", ctx.Repo.Repository.HTMLURL()), http.StatusSeeOther)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.Redirect(fmt.Sprintf("%s/issues", ctx.Repo.Repository.HTMLURL()), http.StatusSeeOther)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -149,7 +149,7 @@ func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_m
 | 
			
		||||
 | 
			
		||||
	// delete pull request related git data
 | 
			
		||||
	if issue.IsPull {
 | 
			
		||||
		if err := gitRepo.RemoveReference(fmt.Sprintf("%s%d", git.PullPrefix, issue.PullRequest.Index)); err != nil {
 | 
			
		||||
		if err := gitRepo.RemoveReference(fmt.Sprintf("%s%d/head", git.PullPrefix, issue.PullRequest.Index)); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user