mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix order by parameter (#19849)
Upgrade builder to v0.3.11 Upgrade xorm to v1.3.1 and fixed some hidden bugs. Replace #19821 Replace #19834 Included #19850 Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										4
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.mod
									
									
									
									
									
								
							@@ -98,8 +98,8 @@ require (
 | 
			
		||||
	gopkg.in/yaml.v2 v2.4.0
 | 
			
		||||
	mvdan.cc/xurls/v2 v2.4.0
 | 
			
		||||
	strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251
 | 
			
		||||
	xorm.io/builder v0.3.10
 | 
			
		||||
	xorm.io/xorm v1.2.5
 | 
			
		||||
	xorm.io/builder v0.3.11
 | 
			
		||||
	xorm.io/xorm v1.3.1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										118
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								go.sum
									
									
									
									
									
								
							@@ -82,6 +82,7 @@ gitea.com/lunny/levelqueue v0.4.1 h1:RZ+AFx5gBsZuyqCvofhAkPQ9uaVDPJnsULoJZIYaJNw
 | 
			
		||||
gitea.com/lunny/levelqueue v0.4.1/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU=
 | 
			
		||||
gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s=
 | 
			
		||||
gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU=
 | 
			
		||||
gitee.com/travelliu/dm v1.8.11192/go.mod h1:DHTzyhCrM843x9VdKVbZ+GKXGRbKM2sJ4LxihRxShkE=
 | 
			
		||||
github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121 h1:r3qt8PCHnfjOv9PN3H+XXKmDA1dfFMIN1AislhlA/ps=
 | 
			
		||||
github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121/go.mod h1:Ock8XgA7pvULhIaHGAk/cDnRfNrF9Jey81nPcc403iU=
 | 
			
		||||
github.com/6543/go-version v1.3.1 h1:HvOp+Telns7HWJ2Xo/05YXQSB2bE0WmVgbHqwMPZT4U=
 | 
			
		||||
@@ -636,7 +637,7 @@ github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/V
 | 
			
		||||
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
 | 
			
		||||
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
 | 
			
		||||
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
 | 
			
		||||
github.com/goccy/go-json v0.7.4/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 | 
			
		||||
github.com/goccy/go-json v0.8.1/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 | 
			
		||||
github.com/goccy/go-json v0.9.5/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 | 
			
		||||
github.com/goccy/go-json v0.9.6/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 | 
			
		||||
github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM=
 | 
			
		||||
@@ -1126,7 +1127,7 @@ github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.7/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
 | 
			
		||||
@@ -1918,6 +1919,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
 | 
			
		||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
@@ -2281,31 +2283,113 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
 | 
			
		||||
honnef.co/go/tools v0.1.4/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
 | 
			
		||||
lukechampine.com/uint128 v1.1.1 h1:pnxCASz787iMf+02ssImqk6OLt+Z5QHMoZyUXR4z6JU=
 | 
			
		||||
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
 | 
			
		||||
modernc.org/cc/v3 v3.33.6 h1:r63dgSzVzRxUpAJFPQWHy1QeZeY1ydNENUDaBx1GqYc=
 | 
			
		||||
modernc.org/cc/v3 v3.33.6/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/ccgo/v3 v3.9.5 h1:dEuUSf8WN51rDkprFuAqjfchKEzN0WttP/Py3enBwjk=
 | 
			
		||||
modernc.org/cc/v3 v3.33.9/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.33.11/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.34.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.4/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.5/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.7/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.8/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.10/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.15/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.16/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.17/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/cc/v3 v3.35.18 h1:rMZhRcWrba0y3nVmdiQ7kxAgOOSq2m2f2VzjHLgEs6U=
 | 
			
		||||
modernc.org/cc/v3 v3.35.18/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
 | 
			
		||||
modernc.org/ccgo/v3 v3.9.5/go.mod h1:umuo2EP2oDSBnD3ckjaVUXMrmeAw8C8OSICVa0iFf60=
 | 
			
		||||
modernc.org/ccgo/v3 v3.10.0/go.mod h1:c0yBmkRFi7uW4J7fwx/JiijwOjeAeR2NoSaRVFPmjMw=
 | 
			
		||||
modernc.org/ccgo/v3 v3.11.0/go.mod h1:dGNposbDp9TOZ/1KBxghxtUp/bzErD0/0QW4hhSaBMI=
 | 
			
		||||
modernc.org/ccgo/v3 v3.11.1/go.mod h1:lWHxfsn13L3f7hgGsGlU28D9eUOf6y3ZYHKoPaKU0ag=
 | 
			
		||||
modernc.org/ccgo/v3 v3.11.3/go.mod h1:0oHunRBMBiXOKdaglfMlRPBALQqsfrCKXgw9okQ3GEw=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.4/go.mod h1:Bk+m6m2tsooJchP/Yk5ji56cClmN6R1cqc9o/YtbgBQ=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.6/go.mod h1:0Ji3ruvpFPpz+yu+1m0wk68pdr/LENABhTrDkMDWH6c=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.8/go.mod h1:Hq9keM4ZfjCDuDXxaHptpv9N24JhgBZmUG5q60iLgUo=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.11/go.mod h1:0jVcmyDwDKDGWbcrzQ+xwJjbhZruHtouiBEvDfoIsdg=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.14/go.mod h1:GhTu1k0YCpJSuWwtRAEHAol5W7g1/RRfS4/9hc9vF5I=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.18/go.mod h1:jvg/xVdWWmZACSgOiAhpWpwHWylbJaSzayCqNOJKIhs=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.20/go.mod h1:aKEdssiu7gVgSy/jjMastnv/q6wWGRbszbheXgWRHc8=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.21/go.mod h1:ydgg2tEprnyMn159ZO/N4pLBqpL7NOkJ88GT5zNU2dE=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.22/go.mod h1:nyDVFMmMWhMsgQw+5JH6B6o4MnZ+UQNw1pp52XYFPRk=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.25/go.mod h1:UaLyWI26TwyIT4+ZFNjkyTbsPsY3plAEB6E7L/vZV3w=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.29/go.mod h1:FXVjG7YLf9FetsS2OOYcwNhcdOLGt8S9bQ48+OP75cE=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.36/go.mod h1:uP3/Fiezp/Ga8onfvMLpREq+KUjUmYMxXPO8tETHtA8=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.38/go.mod h1:93O0G7baRST1vNj4wnZ49b1kLxt0xCW5Hsa2qRaZPqc=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.43/go.mod h1:k+DqGXd3o7W+inNujK15S5ZYuPoWYLpF5PYougCmthU=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.46/go.mod h1:UZe6EvMSqOxaJ4sznY7b23/k13R8XNlyWsO5bAmSgOE=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.47/go.mod h1:m8d6p0zNps187fhBwzY/ii6gxfjob1VxWb919Nk1HUk=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.50/go.mod h1:bu9YIwtg+HXQxBhsRDE+cJjQRuINuT9PUK4orOco/JI=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.51/go.mod h1:gaIIlx4YpmGO2bLye04/yeblmvWEmE4BBBls4aJXFiE=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.53/go.mod h1:8xWGGTFkdFEWBEsUmi+DBjwu/WLy3SSOrqEmKUjMeEg=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.54/go.mod h1:yANKFTm9llTFVX1FqNKHE0aMcQb1fuPJx6p8AcUx+74=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.55/go.mod h1:rsXiIyJi9psOwiBkplOaHye5L4MOOaCjHg1Fxkj7IeU=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.56/go.mod h1:ljeFks3faDseCkr60JMpeDb2GSO3TKAmrzm7q9YOcMU=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.57/go.mod h1:hNSF4DNVgBl8wYHpMvPqQWDQx8luqxDnNGCMM4NFNMc=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.60/go.mod h1:k/Nn0zdO1xHVWjPYVshDeWKqbRWIfif5dtsIOCUVMqM=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.65/go.mod h1:D6hQtKxPNZiY6wDBtehSGKFKmyXn53F8nGTpH+POmS4=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.66/go.mod h1:jUuxlCFZTUZLMV08s7B1ekHX5+LIAurKTTaugUr/EhQ=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.67/go.mod h1:Bll3KwKvGROizP2Xj17GEGOTrlvB1XcVaBrC90ORO84=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.73/go.mod h1:hngkB+nUUqzOf3iqsM48Gf1FZhY599qzVg1iX+BT3cQ=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.81/go.mod h1:p2A1duHoBBg1mFtYvnhAnQyI6vL0uw5PGYLSIgF6rYY=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.82 h1:wudcnJyjLj1aQQCXF3IM9Gz2X6UNjw+afIghzdtn0v8=
 | 
			
		||||
modernc.org/ccgo/v3 v3.12.82/go.mod h1:ApbflUfa5BKadjHynCficldU1ghjen84tuM5jRynB7w=
 | 
			
		||||
modernc.org/ccorpus v1.11.1/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
 | 
			
		||||
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
 | 
			
		||||
modernc.org/libc v1.7.13-0.20210308123627-12f642a52bb8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
 | 
			
		||||
modernc.org/libc v1.9.8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
 | 
			
		||||
modernc.org/libc v1.9.11 h1:QUxZMs48Ahg2F7SN41aERvMfGLY2HU/ADnB9DC4Yts8=
 | 
			
		||||
modernc.org/libc v1.9.11/go.mod h1:NyF3tsA5ArIjJ83XB0JlqhjTabTCHm9aX4XMPHyQn0Q=
 | 
			
		||||
modernc.org/libc v1.11.0/go.mod h1:2lOfPmj7cz+g1MrPNmX65QCzVxgNq2C5o0jdLY2gAYg=
 | 
			
		||||
modernc.org/libc v1.11.2/go.mod h1:ioIyrl3ETkugDO3SGZ+6EOKvlP3zSOycUETe4XM4n8M=
 | 
			
		||||
modernc.org/libc v1.11.5/go.mod h1:k3HDCP95A6U111Q5TmG3nAyUcp3kR5YFZTeDS9v8vSU=
 | 
			
		||||
modernc.org/libc v1.11.6/go.mod h1:ddqmzR6p5i4jIGK1d/EiSw97LBcE3dK24QEwCFvgNgE=
 | 
			
		||||
modernc.org/libc v1.11.11/go.mod h1:lXEp9QOOk4qAYOtL3BmMve99S5Owz7Qyowzvg6LiZso=
 | 
			
		||||
modernc.org/libc v1.11.13/go.mod h1:ZYawJWlXIzXy2Pzghaf7YfM8OKacP3eZQI81PDLFdY8=
 | 
			
		||||
modernc.org/libc v1.11.16/go.mod h1:+DJquzYi+DMRUtWI1YNxrlQO6TcA5+dRRiq8HWBWRC8=
 | 
			
		||||
modernc.org/libc v1.11.19/go.mod h1:e0dgEame6mkydy19KKaVPBeEnyJB4LGNb0bBH1EtQ3I=
 | 
			
		||||
modernc.org/libc v1.11.24/go.mod h1:FOSzE0UwookyT1TtCJrRkvsOrX2k38HoInhw+cSCUGk=
 | 
			
		||||
modernc.org/libc v1.11.26/go.mod h1:SFjnYi9OSd2W7f4ct622o/PAYqk7KHv6GS8NZULIjKY=
 | 
			
		||||
modernc.org/libc v1.11.27/go.mod h1:zmWm6kcFXt/jpzeCgfvUNswM0qke8qVwxqZrnddlDiE=
 | 
			
		||||
modernc.org/libc v1.11.28/go.mod h1:Ii4V0fTFcbq3qrv3CNn+OGHAvzqMBvC7dBNyC4vHZlg=
 | 
			
		||||
modernc.org/libc v1.11.31/go.mod h1:FpBncUkEAtopRNJj8aRo29qUiyx5AvAlAxzlx9GNaVM=
 | 
			
		||||
modernc.org/libc v1.11.34/go.mod h1:+Tzc4hnb1iaX/SKAutJmfzES6awxfU1BPvrrJO0pYLg=
 | 
			
		||||
modernc.org/libc v1.11.37/go.mod h1:dCQebOwoO1046yTrfUE5nX1f3YpGZQKNcITUYWlrAWo=
 | 
			
		||||
modernc.org/libc v1.11.39/go.mod h1:mV8lJMo2S5A31uD0k1cMu7vrJbSA3J3waQJxpV4iqx8=
 | 
			
		||||
modernc.org/libc v1.11.42/go.mod h1:yzrLDU+sSjLE+D4bIhS7q1L5UwXDOw99PLSX0BlZvSQ=
 | 
			
		||||
modernc.org/libc v1.11.44/go.mod h1:KFq33jsma7F5WXiYelU8quMJasCCTnHK0mkri4yPHgA=
 | 
			
		||||
modernc.org/libc v1.11.45/go.mod h1:Y192orvfVQQYFzCNsn+Xt0Hxt4DiO4USpLNXBlXg/tM=
 | 
			
		||||
modernc.org/libc v1.11.47/go.mod h1:tPkE4PzCTW27E6AIKIR5IwHAQKCAtudEIeAV1/SiyBg=
 | 
			
		||||
modernc.org/libc v1.11.49/go.mod h1:9JrJuK5WTtoTWIFQ7QjX2Mb/bagYdZdscI3xrvHbXjE=
 | 
			
		||||
modernc.org/libc v1.11.51/go.mod h1:R9I8u9TS+meaWLdbfQhq2kFknTW0O3aw3kEMqDDxMaM=
 | 
			
		||||
modernc.org/libc v1.11.53/go.mod h1:5ip5vWYPAoMulkQ5XlSJTy12Sz5U6blOQiYasilVPsU=
 | 
			
		||||
modernc.org/libc v1.11.54/go.mod h1:S/FVnskbzVUrjfBqlGFIPA5m7UwB3n9fojHhCNfSsnw=
 | 
			
		||||
modernc.org/libc v1.11.55/go.mod h1:j2A5YBRm6HjNkoSs/fzZrSxCuwWqcMYTDPLNx0URn3M=
 | 
			
		||||
modernc.org/libc v1.11.56/go.mod h1:pakHkg5JdMLt2OgRadpPOTnyRXm/uzu+Yyg/LSLdi18=
 | 
			
		||||
modernc.org/libc v1.11.58/go.mod h1:ns94Rxv0OWyoQrDqMFfWwka2BcaF6/61CqJRK9LP7S8=
 | 
			
		||||
modernc.org/libc v1.11.70/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw=
 | 
			
		||||
modernc.org/libc v1.11.71/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw=
 | 
			
		||||
modernc.org/libc v1.11.75/go.mod h1:dGRVugT6edz361wmD9gk6ax1AbDSe0x5vji0dGJiPT0=
 | 
			
		||||
modernc.org/libc v1.11.82/go.mod h1:NF+Ek1BOl2jeC7lw3a7Jj5PWyHPwWD4aq3wVKxqV1fI=
 | 
			
		||||
modernc.org/libc v1.11.86/go.mod h1:ePuYgoQLmvxdNT06RpGnaDKJmDNEkV7ZPKI2jnsvZoE=
 | 
			
		||||
modernc.org/libc v1.11.87 h1:PzIzOqtlzMDDcCzJ5cUP6h/Ku6Fa9iyflP2ccTY64aE=
 | 
			
		||||
modernc.org/libc v1.11.87/go.mod h1:Qvd5iXTeLhI5PS0XSyqMY99282y+3euapQFxM7jYnpY=
 | 
			
		||||
modernc.org/mathutil v1.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
 | 
			
		||||
modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
 | 
			
		||||
modernc.org/mathutil v1.4.0 h1:GCjoRaBew8ECCKINQA2nYjzvufFW9YiEuuB+rQ9bn2E=
 | 
			
		||||
modernc.org/mathutil v1.4.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
 | 
			
		||||
modernc.org/memory v1.0.4 h1:utMBrFcpnQDdNsmM6asmyH/FM9TqLPS7XF7otpJmrwM=
 | 
			
		||||
modernc.org/mathutil v1.4.1 h1:ij3fYGe8zBF4Vu+g0oT7mB06r8sqGWKuJu1yXeR4by8=
 | 
			
		||||
modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
 | 
			
		||||
modernc.org/memory v1.0.4/go.mod h1:nV2OApxradM3/OVbs2/0OsP6nPfakXpi50C7dcoHXlc=
 | 
			
		||||
modernc.org/memory v1.0.5 h1:XRch8trV7GgvTec2i7jc33YlUI0RKVDBvZ5eZ5m8y14=
 | 
			
		||||
modernc.org/memory v1.0.5/go.mod h1:B7OYswTRnfGg+4tDH1t1OeUNnsy2viGTdME4tzd+IjM=
 | 
			
		||||
modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A=
 | 
			
		||||
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
 | 
			
		||||
modernc.org/sqlite v1.11.2 h1:ShWQpeD3ag/bmx6TqidBlIWonWmQaSQKls3aenCbt+w=
 | 
			
		||||
modernc.org/sqlite v1.11.2/go.mod h1:+mhs/P1ONd+6G7hcAs6irwDi/bjTQ7nLW6LHRBsEa3A=
 | 
			
		||||
modernc.org/sqlite v1.14.2 h1:ohsW2+e+Qe2To1W6GNezzKGwjXwSax6R+CrhRxVaFbE=
 | 
			
		||||
modernc.org/sqlite v1.14.2/go.mod h1:yqfn85u8wVOE6ub5UT8VI9JjhrwBUUCNyTACN0h6Sx8=
 | 
			
		||||
modernc.org/strutil v1.1.1 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs=
 | 
			
		||||
modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
 | 
			
		||||
modernc.org/tcl v1.5.5/go.mod h1:ADkaTUuwukkrlhqwERyq0SM8OvyXo7+TjFz7yAF56EI=
 | 
			
		||||
modernc.org/tcl v1.8.13/go.mod h1:V+q/Ef0IJaNUSECieLU4o+8IScapxnMyFV6i/7uQlAY=
 | 
			
		||||
modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk=
 | 
			
		||||
modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
 | 
			
		||||
modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
 | 
			
		||||
modernc.org/z v1.2.19/go.mod h1:+ZpP0pc4zz97eukOzW3xagV/lS82IpPN9NGG5pNF9vY=
 | 
			
		||||
mvdan.cc/xurls/v2 v2.4.0 h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=
 | 
			
		||||
mvdan.cc/xurls/v2 v2.4.0/go.mod h1:+GEjq9uNjqs8LQfM9nVnM8rff0OQ5Iash5rzX+N1CSg=
 | 
			
		||||
pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4=
 | 
			
		||||
@@ -2318,8 +2402,8 @@ sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 | 
			
		||||
sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
 | 
			
		||||
strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 h1:mUcz5b3FJbP5Cvdq7Khzn6J9OCUQJaBwgBkCR+MOwSs=
 | 
			
		||||
strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251/go.mod h1:FJGmPh3vz9jSos1L/F91iAgnC/aejc0wIIrF2ZwJxdY=
 | 
			
		||||
xorm.io/builder v0.3.9/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
 | 
			
		||||
xorm.io/builder v0.3.10 h1:Rvkncad3Lo9YIVqCbgIf6QnpR/HcW3IEr0AANNpuyMQ=
 | 
			
		||||
xorm.io/builder v0.3.10/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
 | 
			
		||||
xorm.io/xorm v1.2.5 h1:tqN7OhN8P9xi52qBb76I8m5maAJMz/SSbgK2RGPCPbo=
 | 
			
		||||
xorm.io/xorm v1.2.5/go.mod h1:fTG8tSjk6O1BYxwuohZUK+S1glnRycsCF05L1qQyEU0=
 | 
			
		||||
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
 | 
			
		||||
xorm.io/builder v0.3.11 h1:naLkJitGyYW7ZZdncsh/JW+HF4HshmvTHTyUyPwJS00=
 | 
			
		||||
xorm.io/builder v0.3.11/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
 | 
			
		||||
xorm.io/xorm v1.3.1 h1:z5egKrDoOLqZFhMjcGF4FBHiTmE5/feQoHclfhNidfM=
 | 
			
		||||
xorm.io/xorm v1.3.1/go.mod h1:9NbjqdnjX6eyjRRhh01GHm64r6N9shTb/8Ak3YRt8Nw=
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,6 @@ func TestAPIAdminCreateAndDeleteSSHKey(t *testing.T) {
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{
 | 
			
		||||
		ID:          newPublicKey.ID,
 | 
			
		||||
		Name:        newPublicKey.Title,
 | 
			
		||||
		Content:     newPublicKey.Key,
 | 
			
		||||
		Fingerprint: newPublicKey.Fingerprint,
 | 
			
		||||
		OwnerID:     keyOwner.ID,
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -116,11 +116,13 @@ func TestCreateUserKey(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	var newPublicKey api.PublicKey
 | 
			
		||||
	DecodeJSON(t, resp, &newPublicKey)
 | 
			
		||||
	fingerprint, err := asymkey_model.CalcFingerprint(rawKeyBody.Key)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{
 | 
			
		||||
		ID:          newPublicKey.ID,
 | 
			
		||||
		OwnerID:     user.ID,
 | 
			
		||||
		Name:        rawKeyBody.Title,
 | 
			
		||||
		Content: rawKeyBody.Key,
 | 
			
		||||
		Fingerprint: fingerprint,
 | 
			
		||||
		Mode:        perm.AccessModeWrite,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -84,12 +84,13 @@ func createNewReleaseUsingAPI(t *testing.T, session *TestSession, token string,
 | 
			
		||||
 | 
			
		||||
	var newRelease api.Release
 | 
			
		||||
	DecodeJSON(t, resp, &newRelease)
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, &models.Release{
 | 
			
		||||
	rel := &models.Release{
 | 
			
		||||
		ID:      newRelease.ID,
 | 
			
		||||
		TagName: newRelease.TagName,
 | 
			
		||||
		Title:   newRelease.Title,
 | 
			
		||||
		Note:    newRelease.Note,
 | 
			
		||||
	})
 | 
			
		||||
	}
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, rel)
 | 
			
		||||
	assert.EqualValues(t, newRelease.Note, rel.Note)
 | 
			
		||||
 | 
			
		||||
	return &newRelease
 | 
			
		||||
}
 | 
			
		||||
@@ -137,12 +138,13 @@ func TestAPICreateAndUpdateRelease(t *testing.T) {
 | 
			
		||||
	resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
 | 
			
		||||
	DecodeJSON(t, resp, &newRelease)
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, &models.Release{
 | 
			
		||||
	rel := &models.Release{
 | 
			
		||||
		ID:      newRelease.ID,
 | 
			
		||||
		TagName: newRelease.TagName,
 | 
			
		||||
		Title:   newRelease.Title,
 | 
			
		||||
		Note:    newRelease.Note,
 | 
			
		||||
	})
 | 
			
		||||
	}
 | 
			
		||||
	unittest.AssertExistsAndLoadBean(t, rel)
 | 
			
		||||
	assert.EqualValues(t, rel.Note, newRelease.Note)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAPICreateReleaseToDefaultBranch(t *testing.T) {
 | 
			
		||||
 
 | 
			
		||||
@@ -109,6 +109,11 @@ func TestAPISearchRepo(t *testing.T) {
 | 
			
		||||
				user2: {count: 7, repoName: "big_test_"},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name: "RepositoriesByName", requestURL: fmt.Sprintf("/api/v1/repos/search?q=%s&private=false", "user2/big_test_"), expectedResults: expectedResults{
 | 
			
		||||
				user2: {count: 2, repoName: "big_test_"},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name: "RepositoriesAccessibleAndRelatedToUser", requestURL: fmt.Sprintf("/api/v1/repos/search?uid=%d", user.ID), expectedResults: expectedResults{
 | 
			
		||||
				nil:   {count: 5},
 | 
			
		||||
 
 | 
			
		||||
@@ -492,7 +492,7 @@ func notifyWatchers(ctx context.Context, actions ...*Action) error {
 | 
			
		||||
		if act.Repo.Owner.IsOrganization() && act.ActUserID != act.Repo.Owner.ID {
 | 
			
		||||
			act.ID = 0
 | 
			
		||||
			act.UserID = act.Repo.Owner.ID
 | 
			
		||||
			if _, err = e.InsertOne(act); err != nil {
 | 
			
		||||
			if err = db.Insert(ctx, act); err != nil {
 | 
			
		||||
				return fmt.Errorf("insert new actioner: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -545,7 +545,7 @@ func notifyWatchers(ctx context.Context, actions ...*Action) error {
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if _, err = e.InsertOne(act); err != nil {
 | 
			
		||||
			if err = db.Insert(ctx, act); err != nil {
 | 
			
		||||
				return fmt.Errorf("insert new action: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,7 @@ func (key *PublicKey) AuthorizedString() string {
 | 
			
		||||
 | 
			
		||||
func addKey(ctx context.Context, key *PublicKey) (err error) {
 | 
			
		||||
	if len(key.Fingerprint) == 0 {
 | 
			
		||||
		key.Fingerprint, err = calcFingerprint(key.Content)
 | 
			
		||||
		key.Fingerprint, err = CalcFingerprint(key.Content)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
@@ -95,7 +95,7 @@ func addKey(ctx context.Context, key *PublicKey) (err error) {
 | 
			
		||||
func AddPublicKey(ownerID int64, name, content string, authSourceID int64) (*PublicKey, error) {
 | 
			
		||||
	log.Trace(content)
 | 
			
		||||
 | 
			
		||||
	fingerprint, err := calcFingerprint(content)
 | 
			
		||||
	fingerprint, err := CalcFingerprint(content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,7 @@ func HasDeployKey(keyID, repoID int64) bool {
 | 
			
		||||
 | 
			
		||||
// AddDeployKey add new deploy key to database and authorized_keys file.
 | 
			
		||||
func AddDeployKey(repoID int64, name, content string, readOnly bool) (*DeployKey, error) {
 | 
			
		||||
	fingerprint, err := calcFingerprint(content)
 | 
			
		||||
	fingerprint, err := CalcFingerprint(content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -76,7 +76,8 @@ func calcFingerprintNative(publicKeyContent string) (string, error) {
 | 
			
		||||
	return ssh.FingerprintSHA256(pk), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func calcFingerprint(publicKeyContent string) (string, error) {
 | 
			
		||||
// CalcFingerprint calculate public key's fingerprint
 | 
			
		||||
func CalcFingerprint(publicKeyContent string) (string, error) {
 | 
			
		||||
	// Call the method based on configuration
 | 
			
		||||
	var (
 | 
			
		||||
		fnName, fp string
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,6 @@ func DeleteOrphanedIssueLabels() error {
 | 
			
		||||
	_, err := db.GetEngine(db.DefaultContext).
 | 
			
		||||
		NotIn("label_id", builder.Select("id").From("label")).
 | 
			
		||||
		Delete(IssueLabel{})
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -95,7 +94,8 @@ func CountOrphanedIssues() (int64, error) {
 | 
			
		||||
	return db.GetEngine(db.DefaultContext).Table("issue").
 | 
			
		||||
		Join("LEFT", "repository", "issue.repo_id=repository.id").
 | 
			
		||||
		Where(builder.IsNull{"repository.id"}).
 | 
			
		||||
		Count("id")
 | 
			
		||||
		Select("COUNT(`issue`.`id`)").
 | 
			
		||||
		Count()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeleteOrphanedIssues delete issues without a repo
 | 
			
		||||
@@ -141,7 +141,8 @@ func CountOrphanedObjects(subject, refobject, joinCond string) (int64, error) {
 | 
			
		||||
	return db.GetEngine(db.DefaultContext).Table("`"+subject+"`").
 | 
			
		||||
		Join("LEFT", "`"+refobject+"`", joinCond).
 | 
			
		||||
		Where(builder.IsNull{"`" + refobject + "`.id"}).
 | 
			
		||||
		Count("id")
 | 
			
		||||
		Select("COUNT(`" + subject + "`.`id`)").
 | 
			
		||||
		Count()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeleteOrphanedObjects delete subjects with have no existing refobject anymore
 | 
			
		||||
 
 | 
			
		||||
@@ -41,12 +41,11 @@ type Engine interface {
 | 
			
		||||
	Delete(...interface{}) (int64, error)
 | 
			
		||||
	Exec(...interface{}) (sql.Result, error)
 | 
			
		||||
	Find(interface{}, ...interface{}) error
 | 
			
		||||
	Get(interface{}) (bool, error)
 | 
			
		||||
	Get(beans ...interface{}) (bool, error)
 | 
			
		||||
	ID(interface{}) *xorm.Session
 | 
			
		||||
	In(string, ...interface{}) *xorm.Session
 | 
			
		||||
	Incr(column string, arg ...interface{}) *xorm.Session
 | 
			
		||||
	Insert(...interface{}) (int64, error)
 | 
			
		||||
	InsertOne(interface{}) (int64, error)
 | 
			
		||||
	Iterate(interface{}, xorm.IterFunc) error
 | 
			
		||||
	Join(joinOperator string, tablename interface{}, condition string, args ...interface{}) *xorm.Session
 | 
			
		||||
	SQL(interface{}, ...interface{}) *xorm.Session
 | 
			
		||||
@@ -59,7 +58,7 @@ type Engine interface {
 | 
			
		||||
	Sync2(...interface{}) error
 | 
			
		||||
	Select(string) *xorm.Session
 | 
			
		||||
	NotIn(string, ...interface{}) *xorm.Session
 | 
			
		||||
	OrderBy(string) *xorm.Session
 | 
			
		||||
	OrderBy(interface{}, ...interface{}) *xorm.Session
 | 
			
		||||
	Exist(...interface{}) (bool, error)
 | 
			
		||||
	Distinct(...string) *xorm.Session
 | 
			
		||||
	Query(...interface{}) ([]map[string][]byte, error)
 | 
			
		||||
 
 | 
			
		||||
@@ -1221,8 +1221,8 @@ func sortIssuesSession(sess *xorm.Session, sortType string, priorityRepoID int64
 | 
			
		||||
			Desc("issue.id")
 | 
			
		||||
	case "priorityrepo":
 | 
			
		||||
		sess.OrderBy("CASE "+
 | 
			
		||||
			"WHEN issue.repo_id = " + strconv.FormatInt(priorityRepoID, 10) + " THEN 1 " +
 | 
			
		||||
			"ELSE 2 END ASC").
 | 
			
		||||
			"WHEN issue.repo_id = ? THEN 1 "+
 | 
			
		||||
			"ELSE 2 END ASC", priorityRepoID).
 | 
			
		||||
			Desc("issue.created_unix").
 | 
			
		||||
			Desc("issue.id")
 | 
			
		||||
	case "project-column-sorting":
 | 
			
		||||
@@ -2124,7 +2124,7 @@ func (issue *Issue) BlockedByDependencies(ctx context.Context) (issueDeps []*Dep
 | 
			
		||||
		Join("INNER", "issue_dependency", "issue_dependency.dependency_id = issue.id").
 | 
			
		||||
		Where("issue_id = ?", issue.ID).
 | 
			
		||||
		// sort by repo id then created date, with the issues of the same repo at the beginning of the list
 | 
			
		||||
		OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
 | 
			
		||||
		OrderBy("CASE WHEN issue.repo_id = ? THEN 0 ELSE issue.repo_id END, issue.created_unix DESC", issue.RepoID).
 | 
			
		||||
		Find(&issueDeps)
 | 
			
		||||
 | 
			
		||||
	for _, depInfo := range issueDeps {
 | 
			
		||||
@@ -2142,7 +2142,7 @@ func (issue *Issue) BlockingDependencies(ctx context.Context) (issueDeps []*Depe
 | 
			
		||||
		Join("INNER", "issue_dependency", "issue_dependency.issue_id = issue.id").
 | 
			
		||||
		Where("dependency_id = ?", issue.ID).
 | 
			
		||||
		// sort by repo id then created date, with the issues of the same repo at the beginning of the list
 | 
			
		||||
		OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
 | 
			
		||||
		OrderBy("CASE WHEN issue.repo_id = ? THEN 0 ELSE issue.repo_id END, issue.created_unix DESC", issue.RepoID).
 | 
			
		||||
		Find(&issueDeps)
 | 
			
		||||
 | 
			
		||||
	for _, depInfo := range issueDeps {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
package migrations
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
@@ -86,22 +87,24 @@ func setDefaultPasswordToArgon2(x *xorm.Engine) error {
 | 
			
		||||
		}
 | 
			
		||||
		return x.Sync2(new(User))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tempTableName := "tmp_recreate__user"
 | 
			
		||||
	column.Default = "'argon2'"
 | 
			
		||||
 | 
			
		||||
	createTableSQL, _, err := x.Dialect().CreateTableSQL(context.Background(), x.DB(), table, tempTableName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
	if err := sess.Begin(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tempTableName := "tmp_recreate__user"
 | 
			
		||||
	column.Default = "'argon2'"
 | 
			
		||||
 | 
			
		||||
	createTableSQL, _ := x.Dialect().CreateTableSQL(table, tempTableName)
 | 
			
		||||
	for _, sql := range createTableSQL {
 | 
			
		||||
		if _, err := sess.Exec(sql); err != nil {
 | 
			
		||||
	if _, err := sess.Exec(createTableSQL); err != nil {
 | 
			
		||||
		log.Error("Unable to create table %s. Error: %v\n", tempTableName, err, createTableSQL)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	}
 | 
			
		||||
	for _, index := range table.Indexes {
 | 
			
		||||
		if _, err := sess.Exec(x.Dialect().CreateIndexSQL(tempTableName, index)); err != nil {
 | 
			
		||||
			log.Error("Unable to create indexes on temporary table %s. Error: %v", tempTableName, err)
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ func convertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error {
 | 
			
		||||
		},
 | 
			
		||||
		Length:         16,
 | 
			
		||||
		Nullable:       true, // To keep compatible as nullable
 | 
			
		||||
		DefaultIsEmpty: true,
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -51,6 +52,7 @@ func convertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error {
 | 
			
		||||
		},
 | 
			
		||||
		Length:         16,
 | 
			
		||||
		Nullable:       true, // To keep compatible as nullable
 | 
			
		||||
		DefaultIsEmpty: true,
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,5 +22,6 @@ func convertAvatarURLToText(x *xorm.Engine) error {
 | 
			
		||||
			Name: schemas.Text,
 | 
			
		||||
		},
 | 
			
		||||
		Nullable:       true,
 | 
			
		||||
		DefaultIsEmpty: true,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ func migrateUserPasswordSalt(x *xorm.Engine) error {
 | 
			
		||||
		Length: 32,
 | 
			
		||||
		// MySQL will like us again.
 | 
			
		||||
		Nullable:       true,
 | 
			
		||||
		DefaultIsEmpty: true,
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -35,5 +36,6 @@ func migrateUserPasswordSalt(x *xorm.Engine) error {
 | 
			
		||||
		},
 | 
			
		||||
		Length:         32,
 | 
			
		||||
		Nullable:       true,
 | 
			
		||||
		DefaultIsEmpty: true,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,9 +25,8 @@ func addCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_m
 | 
			
		||||
		RepoID: repo.ID,
 | 
			
		||||
		UserID: u.ID,
 | 
			
		||||
	}
 | 
			
		||||
	e := db.GetEngine(ctx)
 | 
			
		||||
 | 
			
		||||
	has, err := e.Get(collaboration)
 | 
			
		||||
	has, err := db.GetByBean(ctx, collaboration)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if has {
 | 
			
		||||
@@ -35,7 +34,7 @@ func addCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_m
 | 
			
		||||
	}
 | 
			
		||||
	collaboration.Mode = perm.AccessModeWrite
 | 
			
		||||
 | 
			
		||||
	if _, err = e.InsertOne(collaboration); err != nil {
 | 
			
		||||
	if err = db.Insert(ctx, collaboration); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -556,12 +556,15 @@ func searchRepositoryByCondition(ctx context.Context, opts *SearchRepoOptions, c
 | 
			
		||||
		opts.OrderBy = db.SearchOrderByAlphabetically
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	args := make([]interface{}, 0)
 | 
			
		||||
	if opts.PriorityOwnerID > 0 {
 | 
			
		||||
		opts.OrderBy = db.SearchOrderBy(fmt.Sprintf("CASE WHEN owner_id = %d THEN 0 ELSE owner_id END, %s", opts.PriorityOwnerID, opts.OrderBy))
 | 
			
		||||
		opts.OrderBy = db.SearchOrderBy(fmt.Sprintf("CASE WHEN owner_id = ? THEN 0 ELSE owner_id END, %s", opts.OrderBy))
 | 
			
		||||
		args = append(args, opts.PriorityOwnerID)
 | 
			
		||||
	} else if strings.Count(opts.Keyword, "/") == 1 {
 | 
			
		||||
		// With "owner/repo" search times, prioritise results which match the owner field
 | 
			
		||||
		orgName := strings.Split(opts.Keyword, "/")[0]
 | 
			
		||||
		opts.OrderBy = db.SearchOrderBy(fmt.Sprintf("CASE WHEN owner_name LIKE '%s' THEN 0 ELSE 1 END, %s", orgName, opts.OrderBy))
 | 
			
		||||
		opts.OrderBy = db.SearchOrderBy(fmt.Sprintf("CASE WHEN owner_name LIKE ? THEN 0 ELSE 1 END, %s", opts.OrderBy))
 | 
			
		||||
		args = append(args, orgName)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess := db.GetEngine(ctx)
 | 
			
		||||
@@ -577,7 +580,7 @@ func searchRepositoryByCondition(ctx context.Context, opts *SearchRepoOptions, c
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess = sess.Where(cond).OrderBy(opts.OrderBy.String())
 | 
			
		||||
	sess = sess.Where(cond).OrderBy(opts.OrderBy.String(), args...)
 | 
			
		||||
	if opts.PageSize > 0 {
 | 
			
		||||
		sess = sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user