mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00: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 | 	gopkg.in/yaml.v2 v2.4.0 | ||||||
| 	mvdan.cc/xurls/v2 v2.4.0 | 	mvdan.cc/xurls/v2 v2.4.0 | ||||||
| 	strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 | 	strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 | ||||||
| 	xorm.io/builder v0.3.10 | 	xorm.io/builder v0.3.11 | ||||||
| 	xorm.io/xorm v1.2.5 | 	xorm.io/xorm v1.3.1 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | 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/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 h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= | ||||||
| gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= | 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 h1:r3qt8PCHnfjOv9PN3H+XXKmDA1dfFMIN1AislhlA/ps= | ||||||
| github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121/go.mod h1:Ock8XgA7pvULhIaHGAk/cDnRfNrF9Jey81nPcc403iU= | 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= | 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/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 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= | ||||||
| github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= | 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.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.6/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= | ||||||
| github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= | 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.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.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.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 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= | ||||||
| github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= | 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= | 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-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-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-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-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-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/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= | 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 h1:pnxCASz787iMf+02ssImqk6OLt+Z5QHMoZyUXR4z6JU= | ||||||
| lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= | 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/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.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/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.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.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.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= | ||||||
| modernc.org/mathutil v1.2.2/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/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.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 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A= | ||||||
| modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= | modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= | ||||||
| modernc.org/sqlite v1.11.2 h1:ShWQpeD3ag/bmx6TqidBlIWonWmQaSQKls3aenCbt+w= | modernc.org/sqlite v1.14.2 h1:ohsW2+e+Qe2To1W6GNezzKGwjXwSax6R+CrhRxVaFbE= | ||||||
| modernc.org/sqlite v1.11.2/go.mod h1:+mhs/P1ONd+6G7hcAs6irwDi/bjTQ7nLW6LHRBsEa3A= | 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 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs= | ||||||
| modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= | 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 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= | ||||||
| modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= | 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 h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc= | ||||||
| mvdan.cc/xurls/v2 v2.4.0/go.mod h1:+GEjq9uNjqs8LQfM9nVnM8rff0OQ5Iash5rzX+N1CSg= | 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= | 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= | 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 h1:mUcz5b3FJbP5Cvdq7Khzn6J9OCUQJaBwgBkCR+MOwSs= | ||||||
| strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251/go.mod h1:FJGmPh3vz9jSos1L/F91iAgnC/aejc0wIIrF2ZwJxdY= | 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.11-0.20220531020008-1bd24a7dc978/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | ||||||
| xorm.io/builder v0.3.10 h1:Rvkncad3Lo9YIVqCbgIf6QnpR/HcW3IEr0AANNpuyMQ= | xorm.io/builder v0.3.11 h1:naLkJitGyYW7ZZdncsh/JW+HF4HshmvTHTyUyPwJS00= | ||||||
| xorm.io/builder v0.3.10/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | xorm.io/builder v0.3.11/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | ||||||
| xorm.io/xorm v1.2.5 h1:tqN7OhN8P9xi52qBb76I8m5maAJMz/SSbgK2RGPCPbo= | xorm.io/xorm v1.3.1 h1:z5egKrDoOLqZFhMjcGF4FBHiTmE5/feQoHclfhNidfM= | ||||||
| xorm.io/xorm v1.2.5/go.mod h1:fTG8tSjk6O1BYxwuohZUK+S1glnRycsCF05L1qQyEU0= | 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{ | 	unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{ | ||||||
| 		ID:          newPublicKey.ID, | 		ID:          newPublicKey.ID, | ||||||
| 		Name:        newPublicKey.Title, | 		Name:        newPublicKey.Title, | ||||||
| 		Content:     newPublicKey.Key, |  | ||||||
| 		Fingerprint: newPublicKey.Fingerprint, | 		Fingerprint: newPublicKey.Fingerprint, | ||||||
| 		OwnerID:     keyOwner.ID, | 		OwnerID:     keyOwner.ID, | ||||||
| 	}) | 	}) | ||||||
|   | |||||||
| @@ -116,11 +116,13 @@ func TestCreateUserKey(t *testing.T) { | |||||||
|  |  | ||||||
| 	var newPublicKey api.PublicKey | 	var newPublicKey api.PublicKey | ||||||
| 	DecodeJSON(t, resp, &newPublicKey) | 	DecodeJSON(t, resp, &newPublicKey) | ||||||
|  | 	fingerprint, err := asymkey_model.CalcFingerprint(rawKeyBody.Key) | ||||||
|  | 	assert.NoError(t, err) | ||||||
| 	unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{ | 	unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{ | ||||||
| 		ID:          newPublicKey.ID, | 		ID:          newPublicKey.ID, | ||||||
| 		OwnerID:     user.ID, | 		OwnerID:     user.ID, | ||||||
| 		Name:        rawKeyBody.Title, | 		Name:        rawKeyBody.Title, | ||||||
| 		Content: rawKeyBody.Key, | 		Fingerprint: fingerprint, | ||||||
| 		Mode:        perm.AccessModeWrite, | 		Mode:        perm.AccessModeWrite, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -84,12 +84,13 @@ func createNewReleaseUsingAPI(t *testing.T, session *TestSession, token string, | |||||||
|  |  | ||||||
| 	var newRelease api.Release | 	var newRelease api.Release | ||||||
| 	DecodeJSON(t, resp, &newRelease) | 	DecodeJSON(t, resp, &newRelease) | ||||||
| 	unittest.AssertExistsAndLoadBean(t, &models.Release{ | 	rel := &models.Release{ | ||||||
| 		ID:      newRelease.ID, | 		ID:      newRelease.ID, | ||||||
| 		TagName: newRelease.TagName, | 		TagName: newRelease.TagName, | ||||||
| 		Title:   newRelease.Title, | 		Title:   newRelease.Title, | ||||||
| 		Note:    newRelease.Note, | 	} | ||||||
| 	}) | 	unittest.AssertExistsAndLoadBean(t, rel) | ||||||
|  | 	assert.EqualValues(t, newRelease.Note, rel.Note) | ||||||
|  |  | ||||||
| 	return &newRelease | 	return &newRelease | ||||||
| } | } | ||||||
| @@ -137,12 +138,13 @@ func TestAPICreateAndUpdateRelease(t *testing.T) { | |||||||
| 	resp = session.MakeRequest(t, req, http.StatusOK) | 	resp = session.MakeRequest(t, req, http.StatusOK) | ||||||
|  |  | ||||||
| 	DecodeJSON(t, resp, &newRelease) | 	DecodeJSON(t, resp, &newRelease) | ||||||
| 	unittest.AssertExistsAndLoadBean(t, &models.Release{ | 	rel := &models.Release{ | ||||||
| 		ID:      newRelease.ID, | 		ID:      newRelease.ID, | ||||||
| 		TagName: newRelease.TagName, | 		TagName: newRelease.TagName, | ||||||
| 		Title:   newRelease.Title, | 		Title:   newRelease.Title, | ||||||
| 		Note:    newRelease.Note, | 	} | ||||||
| 	}) | 	unittest.AssertExistsAndLoadBean(t, rel) | ||||||
|  | 	assert.EqualValues(t, rel.Note, newRelease.Note) | ||||||
| } | } | ||||||
|  |  | ||||||
| func TestAPICreateReleaseToDefaultBranch(t *testing.T) { | func TestAPICreateReleaseToDefaultBranch(t *testing.T) { | ||||||
|   | |||||||
| @@ -109,6 +109,11 @@ func TestAPISearchRepo(t *testing.T) { | |||||||
| 				user2: {count: 7, repoName: "big_test_"}, | 				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{ | 			name: "RepositoriesAccessibleAndRelatedToUser", requestURL: fmt.Sprintf("/api/v1/repos/search?uid=%d", user.ID), expectedResults: expectedResults{ | ||||||
| 				nil:   {count: 5}, | 				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 { | 		if act.Repo.Owner.IsOrganization() && act.ActUserID != act.Repo.Owner.ID { | ||||||
| 			act.ID = 0 | 			act.ID = 0 | ||||||
| 			act.UserID = act.Repo.Owner.ID | 			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) | 				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) | 				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) { | func addKey(ctx context.Context, key *PublicKey) (err error) { | ||||||
| 	if len(key.Fingerprint) == 0 { | 	if len(key.Fingerprint) == 0 { | ||||||
| 		key.Fingerprint, err = calcFingerprint(key.Content) | 		key.Fingerprint, err = CalcFingerprint(key.Content) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			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) { | func AddPublicKey(ownerID int64, name, content string, authSourceID int64) (*PublicKey, error) { | ||||||
| 	log.Trace(content) | 	log.Trace(content) | ||||||
|  |  | ||||||
| 	fingerprint, err := calcFingerprint(content) | 	fingerprint, err := CalcFingerprint(content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -116,7 +116,7 @@ func HasDeployKey(keyID, repoID int64) bool { | |||||||
|  |  | ||||||
| // AddDeployKey add new deploy key to database and authorized_keys file. | // AddDeployKey add new deploy key to database and authorized_keys file. | ||||||
| func AddDeployKey(repoID int64, name, content string, readOnly bool) (*DeployKey, error) { | func AddDeployKey(repoID int64, name, content string, readOnly bool) (*DeployKey, error) { | ||||||
| 	fingerprint, err := calcFingerprint(content) | 	fingerprint, err := CalcFingerprint(content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -76,7 +76,8 @@ func calcFingerprintNative(publicKeyContent string) (string, error) { | |||||||
| 	return ssh.FingerprintSHA256(pk), nil | 	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 | 	// Call the method based on configuration | ||||||
| 	var ( | 	var ( | ||||||
| 		fnName, fp string | 		fnName, fp string | ||||||
|   | |||||||
| @@ -86,7 +86,6 @@ func DeleteOrphanedIssueLabels() error { | |||||||
| 	_, err := db.GetEngine(db.DefaultContext). | 	_, err := db.GetEngine(db.DefaultContext). | ||||||
| 		NotIn("label_id", builder.Select("id").From("label")). | 		NotIn("label_id", builder.Select("id").From("label")). | ||||||
| 		Delete(IssueLabel{}) | 		Delete(IssueLabel{}) | ||||||
|  |  | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -95,7 +94,8 @@ func CountOrphanedIssues() (int64, error) { | |||||||
| 	return db.GetEngine(db.DefaultContext).Table("issue"). | 	return db.GetEngine(db.DefaultContext).Table("issue"). | ||||||
| 		Join("LEFT", "repository", "issue.repo_id=repository.id"). | 		Join("LEFT", "repository", "issue.repo_id=repository.id"). | ||||||
| 		Where(builder.IsNull{"repository.id"}). | 		Where(builder.IsNull{"repository.id"}). | ||||||
| 		Count("id") | 		Select("COUNT(`issue`.`id`)"). | ||||||
|  | 		Count() | ||||||
| } | } | ||||||
|  |  | ||||||
| // DeleteOrphanedIssues delete issues without a repo | // 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+"`"). | 	return db.GetEngine(db.DefaultContext).Table("`"+subject+"`"). | ||||||
| 		Join("LEFT", "`"+refobject+"`", joinCond). | 		Join("LEFT", "`"+refobject+"`", joinCond). | ||||||
| 		Where(builder.IsNull{"`" + refobject + "`.id"}). | 		Where(builder.IsNull{"`" + refobject + "`.id"}). | ||||||
| 		Count("id") | 		Select("COUNT(`" + subject + "`.`id`)"). | ||||||
|  | 		Count() | ||||||
| } | } | ||||||
|  |  | ||||||
| // DeleteOrphanedObjects delete subjects with have no existing refobject anymore | // DeleteOrphanedObjects delete subjects with have no existing refobject anymore | ||||||
|   | |||||||
| @@ -41,12 +41,11 @@ type Engine interface { | |||||||
| 	Delete(...interface{}) (int64, error) | 	Delete(...interface{}) (int64, error) | ||||||
| 	Exec(...interface{}) (sql.Result, error) | 	Exec(...interface{}) (sql.Result, error) | ||||||
| 	Find(interface{}, ...interface{}) error | 	Find(interface{}, ...interface{}) error | ||||||
| 	Get(interface{}) (bool, error) | 	Get(beans ...interface{}) (bool, error) | ||||||
| 	ID(interface{}) *xorm.Session | 	ID(interface{}) *xorm.Session | ||||||
| 	In(string, ...interface{}) *xorm.Session | 	In(string, ...interface{}) *xorm.Session | ||||||
| 	Incr(column string, arg ...interface{}) *xorm.Session | 	Incr(column string, arg ...interface{}) *xorm.Session | ||||||
| 	Insert(...interface{}) (int64, error) | 	Insert(...interface{}) (int64, error) | ||||||
| 	InsertOne(interface{}) (int64, error) |  | ||||||
| 	Iterate(interface{}, xorm.IterFunc) error | 	Iterate(interface{}, xorm.IterFunc) error | ||||||
| 	Join(joinOperator string, tablename interface{}, condition string, args ...interface{}) *xorm.Session | 	Join(joinOperator string, tablename interface{}, condition string, args ...interface{}) *xorm.Session | ||||||
| 	SQL(interface{}, ...interface{}) *xorm.Session | 	SQL(interface{}, ...interface{}) *xorm.Session | ||||||
| @@ -59,7 +58,7 @@ type Engine interface { | |||||||
| 	Sync2(...interface{}) error | 	Sync2(...interface{}) error | ||||||
| 	Select(string) *xorm.Session | 	Select(string) *xorm.Session | ||||||
| 	NotIn(string, ...interface{}) *xorm.Session | 	NotIn(string, ...interface{}) *xorm.Session | ||||||
| 	OrderBy(string) *xorm.Session | 	OrderBy(interface{}, ...interface{}) *xorm.Session | ||||||
| 	Exist(...interface{}) (bool, error) | 	Exist(...interface{}) (bool, error) | ||||||
| 	Distinct(...string) *xorm.Session | 	Distinct(...string) *xorm.Session | ||||||
| 	Query(...interface{}) ([]map[string][]byte, error) | 	Query(...interface{}) ([]map[string][]byte, error) | ||||||
|   | |||||||
| @@ -1220,9 +1220,9 @@ func sortIssuesSession(sess *xorm.Session, sortType string, priorityRepoID int64 | |||||||
| 			Desc("issue.created_unix"). | 			Desc("issue.created_unix"). | ||||||
| 			Desc("issue.id") | 			Desc("issue.id") | ||||||
| 	case "priorityrepo": | 	case "priorityrepo": | ||||||
| 		sess.OrderBy("CASE " + | 		sess.OrderBy("CASE "+ | ||||||
| 			"WHEN issue.repo_id = " + strconv.FormatInt(priorityRepoID, 10) + " THEN 1 " + | 			"WHEN issue.repo_id = ? THEN 1 "+ | ||||||
| 			"ELSE 2 END ASC"). | 			"ELSE 2 END ASC", priorityRepoID). | ||||||
| 			Desc("issue.created_unix"). | 			Desc("issue.created_unix"). | ||||||
| 			Desc("issue.id") | 			Desc("issue.id") | ||||||
| 	case "project-column-sorting": | 	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"). | 		Join("INNER", "issue_dependency", "issue_dependency.dependency_id = issue.id"). | ||||||
| 		Where("issue_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 | 		// 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) | 		Find(&issueDeps) | ||||||
|  |  | ||||||
| 	for _, depInfo := range 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"). | 		Join("INNER", "issue_dependency", "issue_dependency.issue_id = issue.id"). | ||||||
| 		Where("dependency_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 | 		// 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) | 		Find(&issueDeps) | ||||||
|  |  | ||||||
| 	for _, depInfo := range issueDeps { | 	for _, depInfo := range issueDeps { | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ | |||||||
| package migrations | package migrations | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
| @@ -86,22 +87,24 @@ func setDefaultPasswordToArgon2(x *xorm.Engine) error { | |||||||
| 		} | 		} | ||||||
| 		return x.Sync2(new(User)) | 		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() | 	sess := x.NewSession() | ||||||
| 	defer sess.Close() | 	defer sess.Close() | ||||||
| 	if err := sess.Begin(); err != nil { | 	if err := sess.Begin(); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  | 	if _, err := sess.Exec(createTableSQL); err != nil { | ||||||
| 	tempTableName := "tmp_recreate__user" |  | ||||||
| 	column.Default = "'argon2'" |  | ||||||
|  |  | ||||||
| 	createTableSQL, _ := x.Dialect().CreateTableSQL(table, tempTableName) |  | ||||||
| 	for _, sql := range createTableSQL { |  | ||||||
| 		if _, err := sess.Exec(sql); err != nil { |  | ||||||
| 		log.Error("Unable to create table %s. Error: %v\n", tempTableName, err, createTableSQL) | 		log.Error("Unable to create table %s. Error: %v\n", tempTableName, err, createTableSQL) | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	} |  | ||||||
| 	for _, index := range table.Indexes { | 	for _, index := range table.Indexes { | ||||||
| 		if _, err := sess.Exec(x.Dialect().CreateIndexSQL(tempTableName, index)); err != nil { | 		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) | 			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, | 		Length:         16, | ||||||
| 		Nullable:       true, // To keep compatible as nullable | 		Nullable:       true, // To keep compatible as nullable | ||||||
|  | 		DefaultIsEmpty: true, | ||||||
| 	}); err != nil { | 	}); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @@ -51,6 +52,7 @@ func convertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error { | |||||||
| 		}, | 		}, | ||||||
| 		Length:         16, | 		Length:         16, | ||||||
| 		Nullable:       true, // To keep compatible as nullable | 		Nullable:       true, // To keep compatible as nullable | ||||||
|  | 		DefaultIsEmpty: true, | ||||||
| 	}); err != nil { | 	}); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -22,5 +22,6 @@ func convertAvatarURLToText(x *xorm.Engine) error { | |||||||
| 			Name: schemas.Text, | 			Name: schemas.Text, | ||||||
| 		}, | 		}, | ||||||
| 		Nullable:       true, | 		Nullable:       true, | ||||||
|  | 		DefaultIsEmpty: true, | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -24,6 +24,7 @@ func migrateUserPasswordSalt(x *xorm.Engine) error { | |||||||
| 		Length: 32, | 		Length: 32, | ||||||
| 		// MySQL will like us again. | 		// MySQL will like us again. | ||||||
| 		Nullable:       true, | 		Nullable:       true, | ||||||
|  | 		DefaultIsEmpty: true, | ||||||
| 	}); err != nil { | 	}); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @@ -35,5 +36,6 @@ func migrateUserPasswordSalt(x *xorm.Engine) error { | |||||||
| 		}, | 		}, | ||||||
| 		Length:         32, | 		Length:         32, | ||||||
| 		Nullable:       true, | 		Nullable:       true, | ||||||
|  | 		DefaultIsEmpty: true, | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -25,9 +25,8 @@ func addCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_m | |||||||
| 		RepoID: repo.ID, | 		RepoID: repo.ID, | ||||||
| 		UserID: u.ID, | 		UserID: u.ID, | ||||||
| 	} | 	} | ||||||
| 	e := db.GetEngine(ctx) |  | ||||||
|  |  | ||||||
| 	has, err := e.Get(collaboration) | 	has, err := db.GetByBean(ctx, collaboration) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} else if has { | 	} else if has { | ||||||
| @@ -35,7 +34,7 @@ func addCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_m | |||||||
| 	} | 	} | ||||||
| 	collaboration.Mode = perm.AccessModeWrite | 	collaboration.Mode = perm.AccessModeWrite | ||||||
|  |  | ||||||
| 	if _, err = e.InsertOne(collaboration); err != nil { | 	if err = db.Insert(ctx, collaboration); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -556,12 +556,15 @@ func searchRepositoryByCondition(ctx context.Context, opts *SearchRepoOptions, c | |||||||
| 		opts.OrderBy = db.SearchOrderByAlphabetically | 		opts.OrderBy = db.SearchOrderByAlphabetically | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	args := make([]interface{}, 0) | ||||||
| 	if opts.PriorityOwnerID > 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 { | 	} else if strings.Count(opts.Keyword, "/") == 1 { | ||||||
| 		// With "owner/repo" search times, prioritise results which match the owner field | 		// With "owner/repo" search times, prioritise results which match the owner field | ||||||
| 		orgName := strings.Split(opts.Keyword, "/")[0] | 		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) | 	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 { | 	if opts.PageSize > 0 { | ||||||
| 		sess = sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize) | 		sess = sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize) | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Lunny Xiao
					Lunny Xiao