From 52e24167e5ebe0297f7630e9daecd6ffc9570a99 Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 8 Mar 2023 20:24:23 -0500 Subject: [PATCH] Test renderReadmeFile (#23185) Add test coverage to the important features of [`routers.web.repo.renderReadmeFile`](https://github.com/go-gitea/gitea/blob/067b0c2664d127c552ccdfd264257caca4907a77/routers/web/repo/view.go#L273); namely that: - it can handle looking in docs/, .gitea/, and .github/ - it can handle choosing between multiple competing READMEs - it prefers the localized README to the markdown README to the plaintext README - it can handle broken symlinks when processing all the options - it uses the name of the symlink, not the name of the target of the symlink --- models/db/iterate_test.go | 2 +- models/db/list_test.go | 4 +- models/fixtures/repo_unit.yml | 6 + models/fixtures/repository.yml | 13 +++ models/fixtures/user.yml | 2 +- .../user2/readme-test.git/HEAD | 1 + .../user2/readme-test.git/config | 4 + .../user2/readme-test.git/info/exclude | 6 + .../user2/readme-test.git/info/refs | 21 ++++ .../12/11481f7314efbfe4e44703170d96c8fac8172b | Bin 0 -> 169 bytes .../17/2343566bf11fc71ba4acf8d2ea70d12bc1d037 | Bin 0 -> 214 bytes .../1a/48cae3f18ccd9c929e6608f67087dbaac3cf9e | Bin 0 -> 167 bytes .../1e/1e08102cf1b1fc01c069c88ee75445974363ab | Bin 0 -> 83 bytes .../21/470f9b3e8ff24e0fa083d2dbc447f4c3401355 | 2 + .../23/65bfe0c5714e2e3f2d53bb302b10d8d5b4fc7d | Bin 0 -> 175 bytes .../38/9d08c6a71d024a91f14089007cd789cd977ca6 | Bin 0 -> 48 bytes .../3a/a8f4e0e1a535f0f9e0ae40e6ec1bce42642bc4 | Bin 0 -> 140 bytes .../3b/23d7f1a9cb904cb46f5f2272bfa5ed5f871fb9 | 1 + .../50/6ff7310f420e878595b4bc8f11688e3f0ae14e | Bin 0 -> 166 bytes .../58/3eb775c596858380273492759d39081d65d029 | Bin 0 -> 169 bytes .../60/ea618ae7d4ecbe9c1962591c7da1b05bb1a5c8 | 3 + .../6a/b05db4c52530726c1856eb558228e9d1949e7f | Bin 0 -> 169 bytes .../71/60a063b5544b5a78131b94f47bfd200046eda2 | Bin 0 -> 167 bytes .../75/6c70c97047d8aeb11ca3c71edd9fb76cefee9c | Bin 0 -> 28 bytes .../7f/2b9f991d99362eb827b67f4ae2f5fbc5fa2271 | Bin 0 -> 211 bytes .../7f/792e709143fb0f021da2371e5f40d1bcc284fd | Bin 0 -> 166 bytes .../82/817856dadc7f6b944633e1b77d5b6e302dde06 | Bin 0 -> 51 bytes .../8b/4149e7dede3cd53ba11c64c88b057c5fe2c200 | Bin 0 -> 169 bytes .../93/54813d81053c14afe878a9f056b937ec42bb48 | Bin 0 -> 28 bytes .../9c/72c10e55e7d6ea21f591aa424e2625e8ad8094 | Bin 0 -> 136 bytes .../a3/cd04bb110e17591ac04e156c7df2c2f5c96fa6 | Bin 0 -> 82 bytes .../b0/e851a5619e2d6cee1da25a15ab67305f0861ec | Bin 0 -> 76 bytes .../b4/4c8eb00bdaf0522de61e591fee5f66851ef4b5 | Bin 0 -> 112 bytes .../b8/eaa80ad86072e1f23d2638842154ce9aceff8d | Bin 0 -> 77 bytes .../d5/34f914944c3c943a6bdb677d869ac54934928d | Bin 0 -> 31 bytes .../e2/f9904cd97b4045feecfffef5a426e9461bee70 | Bin 0 -> 117 bytes .../e3/a6fd8fe49e323ee10017f72b777a53fbd8076f | 3 + .../e7/bf02fcfa7a86f7fe9e8158b55d58ddf9d877ec | Bin 0 -> 171 bytes .../ea/57c91ddb8b4ac705b5ac4c34c7a48f2d0fc180 | Bin 0 -> 77 bytes .../fe/495ea336f079ef2bed68648d0ba9a37cdbd4aa | Bin 0 -> 197 bytes .../readme-test.git/objects/info/commit-graph | Bin 0 -> 2612 bytes .../user2/readme-test.git/objects/info/packs | 2 + ...d634b76f8154310cccb52537a0195e43166.bitmap | Bin 0 -> 1642 bytes ...33bd634b76f8154310cccb52537a0195e43166.idx | Bin 0 -> 4012 bytes ...3bd634b76f8154310cccb52537a0195e43166.pack | Bin 0 -> 7854 bytes .../user2/readme-test.git/packed-refs | 22 ++++ .../refs/heads/fallbacks-broken-symlinks | 1 + tests/integration/repo_test.go | 105 ++++++++++++++++++ 48 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/HEAD create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/config create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/info/exclude create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/info/refs create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/12/11481f7314efbfe4e44703170d96c8fac8172b create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/17/2343566bf11fc71ba4acf8d2ea70d12bc1d037 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/1a/48cae3f18ccd9c929e6608f67087dbaac3cf9e create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/1e/1e08102cf1b1fc01c069c88ee75445974363ab create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/21/470f9b3e8ff24e0fa083d2dbc447f4c3401355 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/23/65bfe0c5714e2e3f2d53bb302b10d8d5b4fc7d create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/38/9d08c6a71d024a91f14089007cd789cd977ca6 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/3a/a8f4e0e1a535f0f9e0ae40e6ec1bce42642bc4 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/3b/23d7f1a9cb904cb46f5f2272bfa5ed5f871fb9 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/50/6ff7310f420e878595b4bc8f11688e3f0ae14e create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/58/3eb775c596858380273492759d39081d65d029 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/60/ea618ae7d4ecbe9c1962591c7da1b05bb1a5c8 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/6a/b05db4c52530726c1856eb558228e9d1949e7f create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/71/60a063b5544b5a78131b94f47bfd200046eda2 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/75/6c70c97047d8aeb11ca3c71edd9fb76cefee9c create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/7f/2b9f991d99362eb827b67f4ae2f5fbc5fa2271 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/7f/792e709143fb0f021da2371e5f40d1bcc284fd create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/82/817856dadc7f6b944633e1b77d5b6e302dde06 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/8b/4149e7dede3cd53ba11c64c88b057c5fe2c200 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/93/54813d81053c14afe878a9f056b937ec42bb48 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/9c/72c10e55e7d6ea21f591aa424e2625e8ad8094 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/a3/cd04bb110e17591ac04e156c7df2c2f5c96fa6 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/b0/e851a5619e2d6cee1da25a15ab67305f0861ec create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/b4/4c8eb00bdaf0522de61e591fee5f66851ef4b5 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/b8/eaa80ad86072e1f23d2638842154ce9aceff8d create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/d5/34f914944c3c943a6bdb677d869ac54934928d create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/e2/f9904cd97b4045feecfffef5a426e9461bee70 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/e3/a6fd8fe49e323ee10017f72b777a53fbd8076f create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/e7/bf02fcfa7a86f7fe9e8158b55d58ddf9d877ec create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/ea/57c91ddb8b4ac705b5ac4c34c7a48f2d0fc180 create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/fe/495ea336f079ef2bed68648d0ba9a37cdbd4aa create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/info/commit-graph create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/info/packs create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/pack/pack-8933bd634b76f8154310cccb52537a0195e43166.bitmap create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/pack/pack-8933bd634b76f8154310cccb52537a0195e43166.idx create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/objects/pack/pack-8933bd634b76f8154310cccb52537a0195e43166.pack create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/packed-refs create mode 100644 tests/gitea-repositories-meta/user2/readme-test.git/refs/heads/fallbacks-broken-symlinks diff --git a/models/db/iterate_test.go b/models/db/iterate_test.go index a713fe0d8b..6bcf740c23 100644 --- a/models/db/iterate_test.go +++ b/models/db/iterate_test.go @@ -25,7 +25,7 @@ func TestIterate(t *testing.T) { return nil }) assert.NoError(t, err) - assert.EqualValues(t, 83, repoCnt) + assert.EqualValues(t, 84, repoCnt) err = db.Iterate(db.DefaultContext, nil, func(ctx context.Context, repoUnit *repo_model.RepoUnit) error { reopUnit2 := repo_model.RepoUnit{ID: repoUnit.ID} diff --git a/models/db/list_test.go b/models/db/list_test.go index ffef1e4948..1295692cec 100644 --- a/models/db/list_test.go +++ b/models/db/list_test.go @@ -35,11 +35,11 @@ func TestFind(t *testing.T) { var repoUnits []repo_model.RepoUnit err := db.Find(db.DefaultContext, &opts, &repoUnits) assert.NoError(t, err) - assert.EqualValues(t, 83, len(repoUnits)) + assert.EqualValues(t, 84, len(repoUnits)) cnt, err := db.Count(db.DefaultContext, &opts, new(repo_model.RepoUnit)) assert.NoError(t, err) - assert.EqualValues(t, 83, cnt) + assert.EqualValues(t, 84, cnt) repoUnits = make([]repo_model.RepoUnit, 0, 10) newCnt, err := db.FindAndCount(db.DefaultContext, &opts, &repoUnits) diff --git a/models/fixtures/repo_unit.yml b/models/fixtures/repo_unit.yml index 503b8c9ddf..ef0b7c1a94 100644 --- a/models/fixtures/repo_unit.yml +++ b/models/fixtures/repo_unit.yml @@ -569,3 +569,9 @@ type: 3 config: "{\"IgnoreWhitespaceConflicts\":false,\"AllowMerge\":true,\"AllowRebase\":true,\"AllowRebaseMerge\":true,\"AllowSquash\":true}" created_unix: 946684810 + +- + id: 84 + repo_id: 56 + type: 1 + created_unix: 946684810 diff --git a/models/fixtures/repository.yml b/models/fixtures/repository.yml index dd8facb7a3..32ba8744d4 100644 --- a/models/fixtures/repository.yml +++ b/models/fixtures/repository.yml @@ -1634,3 +1634,16 @@ is_private: true num_issues: 1 status: 0 + +- + id: 56 + owner_id: 2 + owner_name: user2 + lower_name: readme-test + name: readme-test + default_branch: master + is_empty: false + is_archived: false + is_private: true + status: 0 + num_issues: 0 diff --git a/models/fixtures/user.yml b/models/fixtures/user.yml index c6081f07d0..ce54defacd 100644 --- a/models/fixtures/user.yml +++ b/models/fixtures/user.yml @@ -66,7 +66,7 @@ num_followers: 2 num_following: 1 num_stars: 2 - num_repos: 11 + num_repos: 12 num_teams: 0 num_members: 0 visibility: 0 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/HEAD b/tests/gitea-repositories-meta/user2/readme-test.git/HEAD new file mode 100644 index 0000000000..cb089cd89a --- /dev/null +++ b/tests/gitea-repositories-meta/user2/readme-test.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/config b/tests/gitea-repositories-meta/user2/readme-test.git/config new file mode 100644 index 0000000000..07d359d07c --- /dev/null +++ b/tests/gitea-repositories-meta/user2/readme-test.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/info/exclude b/tests/gitea-repositories-meta/user2/readme-test.git/info/exclude new file mode 100644 index 0000000000..a5196d1be8 --- /dev/null +++ b/tests/gitea-repositories-meta/user2/readme-test.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/info/refs b/tests/gitea-repositories-meta/user2/readme-test.git/info/refs new file mode 100644 index 0000000000..fd5f1b98eb --- /dev/null +++ b/tests/gitea-repositories-meta/user2/readme-test.git/info/refs @@ -0,0 +1,21 @@ +ea9ef877d1d88af76682d8798418081264f10cfc refs/heads/fallbacks +0d4c14db927c9ffba01fa7e126cc748b5c02c01e refs/heads/fallbacks2 +c66d5b07c2063d3268707f22226c708b589574ef refs/heads/fallbacks3 +89f8426e9eb5eff35c09b3565836c8f8e15d0ce9 refs/heads/fallbacks4 +b0e902496eae435ad03c92a5d479f916ef2d4893 refs/heads/fallbacks5 +84a5500b5cc040b11daf53fc42c542a99589dc76 refs/heads/fallbacks6 +cf406a96e416d7de5c4c1bbfffdd672300c822bf refs/heads/fallbacks7 +0d6ac644b969e9199915a492da9dba08c179fd23 refs/heads/fallbacks8 +5038febc0c57215beb3748d7ae4091a25a4acc93 refs/heads/fallbacks9 +9134e1f178ca4cccf1a197142646f2d7627e8cd5 refs/heads/i18n +744d2441e55bc0010d6b340d303f0106a627ad29 refs/heads/master +3c492566170b057e962c025515ab38bbd7444077 refs/heads/plain +3882d6373a0882a6739b3cd9b24d21c630621234 refs/heads/sp-ace +bf5ed898252eaa50dcc01108ed4417c3ea98a294 refs/heads/special-subdir-.gitea +c03543573ab088ce1cf7090a387d2be621426234 refs/heads/special-subdir-.github +e75957ad9b7e6ed16dda183529ec283db0bbc5fe refs/heads/special-subdir-docs +46f5d5ab33d701642e08c713fab42af89fdd4fea refs/heads/special-subdir-nested +9c0f872256b839c2b97ec22fd348d87b14045513 refs/heads/subdir +d7a854fff61e45b98234d7aa79ecbcb1619cd3dd refs/heads/symlink +30b9c0ed4b1039dbd99f3fb537b84ca507e0549d refs/heads/symlink-loop +41489b7be5c2244d2b7b524dcb31caf3bd1f9ccc refs/heads/txt diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/12/11481f7314efbfe4e44703170d96c8fac8172b b/tests/gitea-repositories-meta/user2/readme-test.git/objects/12/11481f7314efbfe4e44703170d96c8fac8172b new file mode 100644 index 0000000000000000000000000000000000000000..b9009e32444a4be9dd189dc611880aef4f0d8b02 GIT binary patch literal 169 zcmV;a09OBa0iDh{4#F@Hg<)!+VlF^5cDzMGh>nhm3wW6!5zeCE6x^N&aRSP}_?}*x z$8o5jv^vz42%^@>Q$&n8FdC&YSxKgoOk~(vZzQpfMl4~ase)tIDRS6J-Eu@mC38@% z+YM{XGNz=w<}AWi`+0@ike+becG}Ylr)kgT@yp9Hm-kpplfoIKb07%!ZqC`y+u{{YMSK(^sz);i_ygQEL^6jO{e zZ)T|OdloQidXa+}u3^&C%r0_dLlI5zT9cjVdJPI4;ld-0N)2~^a1pQ=J^Bfq!Z3~o z?QE2G+S%wGd&01gUFN6;e@dzcd}mtW>+ERa1Kvxwm)p~R-s|?W%XT6E0opo;IHEQ1 zrmzpv-&5(-e><$1pB+PcWT6C7fy-^nEkR)NXJg0^Yk3t|OMO7<>Y3fI4E-nwH)(L3 Q1#$sOxp3p*7x&_1XWgo56#xJL literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/1a/48cae3f18ccd9c929e6608f67087dbaac3cf9e b/tests/gitea-repositories-meta/user2/readme-test.git/objects/1a/48cae3f18ccd9c929e6608f67087dbaac3cf9e new file mode 100644 index 0000000000000000000000000000000000000000..d8522ae6d3319a48188c99be269b1622f89e7030 GIT binary patch literal 167 zcmV;Y09gNc0iBLJ4#GeT1*!KGz5vMHFGvW{(NS>$uj3^V`6(;~wQSQ#Wl?XVw^_WIdC{=~CF{HkG3G*4BvEG1Qud8i zPT0`8r3PIx{HpD=z_pVHTwbf%>H^1c#ohgf=XvViL+y9MC!m;82sTlGEe1p*-=}r8 V{%@F@J}VUN`^@rqnhyv1PZ>ILQ$7Fy literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/1e/1e08102cf1b1fc01c069c88ee75445974363ab b/tests/gitea-repositories-meta/user2/readme-test.git/objects/1e/1e08102cf1b1fc01c069c88ee75445974363ab new file mode 100644 index 0000000000000000000000000000000000000000..d4152e535edee4dede53f2b78c5890f6010635bb GIT binary patch literal 83 zcmV-Z0IdIb0V^p=O;s>AWH2-^Ff%bx2y%6F@pWa`@t!|y#UeLtnFArh>nhm3v8SkFzih!6D0#a;)ZwSdIk(g4FWSNYUKu$Lz9@WCDOc?~pa~)axw&jwzZiIq1 zuJ+oU1dS;ror2~UDQriI8Ozu=MS&TJnUm0s>m16&U;JVSO-V6h$?=c d=3@Q7p&qhjh#mKnw6N{t&`+;TeE>rzQOAB&RpI~u literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/38/9d08c6a71d024a91f14089007cd789cd977ca6 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/38/9d08c6a71d024a91f14089007cd789cd977ca6 new file mode 100644 index 0000000000000000000000000000000000000000..c5929ae89288aa30a1a891326bc8bb9f340640f8 GIT binary patch literal 48 zcmV-00MGw;0V^p=O;s>9W-u`T0tLPF%#zeZ2HRsE+r`do2(@WGwr9=%yg1I;B`E+G GZx5ikFcZ80 literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/3a/a8f4e0e1a535f0f9e0ae40e6ec1bce42642bc4 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/3a/a8f4e0e1a535f0f9e0ae40e6ec1bce42642bc4 new file mode 100644 index 0000000000000000000000000000000000000000..106393d722517fe5c97ef75e78200b79654ea7ab GIT binary patch literal 140 zcmV;70CWF%0V^p=O;s>7Hf1m|00ITQ^vsgfLg 27Q. (c"onM<[6_^橼ZTU n qO*3{N\ \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/50/6ff7310f420e878595b4bc8f11688e3f0ae14e b/tests/gitea-repositories-meta/user2/readme-test.git/objects/50/6ff7310f420e878595b4bc8f11688e3f0ae14e new file mode 100644 index 0000000000000000000000000000000000000000..a7f4501ea2e8b7d2c984dcf2f926497f5b9597b3 GIT binary patch literal 166 zcmV;X09pTd0iBLH4#F@H0IB_o{Q%M0@p{)1LUeRge84!%A#y1=1;58aynu3w8BLys z;ZeYOw<(J%By>uA70(!0I5Gw7qT1ldv)C*w>PWMh)1qSml2$Lwlqm+OAn3UD(J{rY zjVQJY)S-(et>r!~aC+n?9M`Jeb%EVjvAO;5Fi-t^D1DRD9&D&pvcw*?NQfqXPfNA_ UZb3S3j)Us8UW4?((1W7)${?*IS* literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/58/3eb775c596858380273492759d39081d65d029 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/58/3eb775c596858380273492759d39081d65d029 new file mode 100644 index 0000000000000000000000000000000000000000..a2dadacf8ac5c581336a8fec56846cc07f12f8ac GIT binary patch literal 169 zcmV;a09OBa0iBL9Zo@DP06Xgy{6Gv+kwgh7if-95^#c^eG(qe*aOEMtk5S|W8E?45 z={!xB4nFvgzL>#2mxfuBFg5f+3Y{omE{Lp+bJ13qRg$~QVz&+nO%i1>Zo#x#Q7XyD zLds33Vyu-UYId^r^Sr?EqE|Sqn|ihdK5rWizc2j0&*Nk2!քLuUl#qlQ,ꔡlCBn$6XDɹbbҖR0y[/On +i21Ї@epdiޭ殯 !<N \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/6a/b05db4c52530726c1856eb558228e9d1949e7f b/tests/gitea-repositories-meta/user2/readme-test.git/objects/6a/b05db4c52530726c1856eb558228e9d1949e7f new file mode 100644 index 0000000000000000000000000000000000000000..3e4c8247d906f07f3985a58a76b08000a1d661f2 GIT binary patch literal 169 zcmV;a09OBa0V^p=O;s>7H)Sv}00ITQ^vsgfLxl>Fpkh6NdXlWfkP XQ?xj?zbJXp^RpMsW-0*yojgaTO}bCn literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/71/60a063b5544b5a78131b94f47bfd200046eda2 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/71/60a063b5544b5a78131b94f47bfd200046eda2 new file mode 100644 index 0000000000000000000000000000000000000000..477d5b1f1f4312265b57e9f6403dc133ddd83c81 GIT binary patch literal 167 zcmV;Y09gNc0iBLJ4#F@H1*v_Cy#UcVvDZdIh>nhm3)tov5Y9)zDY!im;slga%xKcs z_m4`gX*YES$XOR9!)OuX!4Zru$`1C59MBmbSfhP8}43Q9A$t literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/75/6c70c97047d8aeb11ca3c71edd9fb76cefee9c b/tests/gitea-repositories-meta/user2/readme-test.git/objects/75/6c70c97047d8aeb11ca3c71edd9fb76cefee9c new file mode 100644 index 0000000000000000000000000000000000000000..3ef17969867f6a1e4c2138ae8d469601e3c1fb5f GIT binary patch literal 28 kcmbDbEm{|z*nLb?q@?IA8^a9ULSw;^I5j2 zc&p%o+tfuBJoByuMYT+x3YJ!pHK0Znn?-|*!DR{N!HZ56B6Un0C?RF%JjK?dO*X}j zld@1Q5=+~m;aBbF16`jPaYEJa*lGXHNtRod7H)Sv}00ITQ^vsgfLqpAZcI(ND9+HwZ@WUXx$Eao>!0_~^7Hf1m|00ITQ^vsgfL$*TcJIW-;CK0dJk literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/a3/cd04bb110e17591ac04e156c7df2c2f5c96fa6 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/a3/cd04bb110e17591ac04e156c7df2c2f5c96fa6 new file mode 100644 index 0000000000000000000000000000000000000000..6d9bc2a7664fe2968b95869b01587b4eaa61a4fe GIT binary patch literal 82 zcmV-Y0ImOc0V^p=O;s?nWH2-`00M;|S4S6LSH0X6h6P%IvU?Y)CvG|R|7KUck;K%O or+%1#)#R6Cq!uv*co<)>wEEN6zbbUcs*pz-KP}|_02Heo?n7)OQvd(} literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/b0/e851a5619e2d6cee1da25a15ab67305f0861ec b/tests/gitea-repositories-meta/user2/readme-test.git/objects/b0/e851a5619e2d6cee1da25a15ab67305f0861ec new file mode 100644 index 0000000000000000000000000000000000000000..2f88dbd361ae06a6ca6202ea1441b965b36a145a GIT binary patch literal 76 zcmV-S0JHyi0V^p=O;s>6VK6ZO0tLPF%#zeZ2HRsE+r`do2(@WGwr9=%yg1I;B`FXE iDf!9848easzi??;<(R6yt3=9gw&*v>c|QTPTpYU4?IQ>P literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/b4/4c8eb00bdaf0522de61e591fee5f66851ef4b5 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/b4/4c8eb00bdaf0522de61e591fee5f66851ef4b5 new file mode 100644 index 0000000000000000000000000000000000000000..55bb8491afef625eeeb1af14dd0b3cd87974c3f3 GIT binary patch literal 112 zcmV-$0FVE80V^p=O;xb8U@$QN0tLPF%#zeZ2HRsE+r`do2(@WGwr9=%yg1I;B`Jmm z24*HE3PG-pF21e|m#6VK6ZO0tLPF%#zeZ2HRsE+r`do2(@WGwr9=%yg1I;B`FXE jDf!983=1;&CfS@nr)Y6(e^K(H=VvdN%~S#at56)Q)g~dT literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/d5/34f914944c3c943a6bdb677d869ac54934928d b/tests/gitea-repositories-meta/user2/readme-test.git/objects/d5/34f914944c3c943a6bdb677d869ac54934928d new file mode 100644 index 0000000000000000000000000000000000000000..7bb434442f72d254b112e2740ebf900a8bcd1e73 GIT binary patch literal 31 ncmb7Fk>(@G5`XFAXi5hUst`{6b8%sw0Rmmf%9Jnzj)s0?^SW} zGS5X5u$toh+*F3eXIXX&@`*=E9q<#)sr_{5>&g6OP%}!35_1dkb29T%8JyT;7#ALA Xn11m|__kh3)c literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/e3/a6fd8fe49e323ee10017f72b777a53fbd8076f b/tests/gitea-repositories-meta/user2/readme-test.git/objects/e3/a6fd8fe49e323ee10017f72b777a53fbd8076f new file mode 100644 index 0000000000..2307ba82dc --- /dev/null +++ b/tests/gitea-repositories-meta/user2/readme-test.git/objects/e3/a6fd8fe49e323ee10017f72b777a53fbd8076f @@ -0,0 +1,3 @@ +xM +1 a=E.m Νwh#"A&L \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/e7/bf02fcfa7a86f7fe9e8158b55d58ddf9d877ec b/tests/gitea-repositories-meta/user2/readme-test.git/objects/e7/bf02fcfa7a86f7fe9e8158b55d58ddf9d877ec new file mode 100644 index 0000000000000000000000000000000000000000..9f898ef87387dc17cf15c794fd48d43921ddccbc GIT binary patch literal 171 zcmV;c095~Y0hNw94#F@H0IB_o{Q!~e_>>T$qod*j>&==(ITf6O-xHyHfO3i%4b9`& z70^bX%E}DM7z&)EObupfwQkrcwozqfo1F_*aW=_{1y`O5C^UhP>#PD%6DjJ*&dHFS zm%%p)k!s431#YFCS9o;P!+qP;mRGn;J65j)Z_7M<#xhidS5VG-YgKImoTZgg(C@VD Z)}IaSwLco-$?pOghan;L;tL^5Pf1exQLg|1 literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/ea/57c91ddb8b4ac705b5ac4c34c7a48f2d0fc180 b/tests/gitea-repositories-meta/user2/readme-test.git/objects/ea/57c91ddb8b4ac705b5ac4c34c7a48f2d0fc180 new file mode 100644 index 0000000000000000000000000000000000000000..d1eff52868d457865f396c829e7060972f4f3ac8 GIT binary patch literal 77 zcmV-T0J8sh0V^p=O;s>6VK6ZO0tLPF%#zeZ2HRsE+r`do2(@WGwr9=%yg1I;B`FXE jDf!9841Xgw?YVe?)2-mtT+c<4vwUKHHtqxfy8Rtw@<$_V literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/fe/495ea336f079ef2bed68648d0ba9a37cdbd4aa b/tests/gitea-repositories-meta/user2/readme-test.git/objects/fe/495ea336f079ef2bed68648d0ba9a37cdbd4aa new file mode 100644 index 0000000000000000000000000000000000000000..48c0b5a4d621e0a9c34ca50ef4b53faef90a273a GIT binary patch literal 197 zcmV;$06PD80iBLJPQ@?~0I7Y7y#P>Y-s!xWb5UIux&=!md zok5Mp23L*FH7h!0+BunNQl#0@|UUJE@yI8Fu3E9=ePaS1ZSueRL>V&THmX~BZ zXAu#($kCCqBqKt*L|K=Nw~~KnZ|P zf&<{ACxOssOx04S;V(9RP8#G~A=4U)Xb(wDJY3T7nZ85_Ou`{akXD->`ay za&A)3#lKLu!i75OwA|ZUd+6H>nUbrIXOcE*-km8ns;V2`rm*=@H{0^M=?xl3rr+hF zS@c6wb5wNR;R{>3uQ_OQjl2~JTc~>bROO^1&l^bWR4y{B=8=h^R(2O62J3Yl){5ht^S8jPDZebm&BS3*q8@vv`6-rM6r z38LeT{ftyqnfW6PwcOWj!4A4sgY-HC_5cBEWQmZ@TV1^71jk8^QAaFWadpSMb%XWg z)VSV|xLNCf?CTR#40O4xyGhfmz!Ni^NDxehHPc!qe^0}$vU$Ptjy&C!B_E4-y|KBz zDzbhYZAs#EhQC&sFtkgq-OW$eTVLqZTel1~PFB4=lAe=N zXH0T4FFn<&@d_<#c68k{ZEJ4=mr0kYm$vxPHz*2^_YX>NPYs^9Puze0sS58ggSNc( zZQsv2pb1~gD{y)HQj<~@P2d%VkJXfUWp(uR+ZHsd_T?88{7qH#JqY#VPv>qP+T~V! zAu^zy*`sE>W=!9rw7OwoBzrcroge>dUo=1bgc?fGXA(0%M{0$Bb#|vt6?&Kkm%d1w zM+WO~iQM*G4rvz6IV#F%exjsc=7tYkXF-c2Kmii^b1toSo3)h=3uo==7I?daX~dq< z8-xD`k)sa@nch+9M#K?Z;$v37bBLivediU!lkIRViyRCjq+b>Y2ZyZk%cD*me;)Uw zqMxi0*s&F^PA^X$qQJdR zvLLR*{mQ(t=T32lMo?xBadWgX#?Jke8nugG*l~;5wC+C+4nfRrG2rYj7#zbQBTC0w zm*Y>c;aRqH9xpvsMBq~upEGj(|5RjqPLvSh5d-kdM2H*%NXR@0u*|ktc6M8!B#-aa zy=kp%zyp2pz4i{^)xAOvjc{xRQl{lNZ^ zl1x(S`14sV+#f~GN=V2w+2E1spi*3|v-b4K-4#xi`joyHZ@6cP95qPjU-N9vq$!Z^ zbl`AV#Kt>ODMK%b1A*e_**45bJEo;hBK$#&FLErP6ik;}Gzi6=?S#-=>S}b#x#;_d zyxy=R{jRc9Z&BM)}oa&s`^2#(p{C_wHO-qBEUUAAK3! zsCLhM8D^@puZw37_i52O3XpJze5Dn}Qoq`w)u1UioYQC@QgH=k3zwkC!9ha*QV+`o zIcceS*5u96Juy;)@_Bi2RCvCL99>ArBsZGRjbe`ZwpWx7Q8qxCNBjbx6pPo`9vUv) zdS=9$l}LS=JLnD=*8u*ARJMV-@`A?H{6=+qnAWL7yt$wa-+cTn7MX0HfM(mdGm zq$(y={%HjMXbD9I3%|F}qVr%Np?`8%C9+v5+**50%|em`>N;0W_Q5DY_|I`klmd(zc({)W?oJYUpPyG z6e8N4A9!&sl3wXP6MXyTd@Li1%l%_mC!%%ck43avE%`;)i6}rsUCc4js`6Us@$+)!}#h{-^N?Hkg|Pu0GgCJ|a`Nf;)U4g7SG4N{s8@}f6cC1uq? z9`z)fRZ>L9OrkXa_p;#>7R z;6Y|?RjS-(w8#;w3Qyv&jXdr{@?eOXjXdN- z^75J!u^2O>G#%>tphuF6<@jf7(8`m)79=4>dt{j`$*mG;rMssJbFwvBDNWOyJ25}C zB+=r>kdcplWd(cgzn{Me#n^U^htLSaPl5mav{GRcZ18K``&Q9Pg^i|uLXW2U*oi5* z9e+pgnKaYZBdLSX^{9L!7Q`?@8JtgQ#AhqV>krw+vGWa_5BcP}D{YMQXmYVQ@|bgk zJz0OvHtg{e)Bw`XDOt~6ZnNzg8V`OLSkp@R2Htuk)t9@iavyjdxrB-I!q$cUiGlFT Q;i<^JXLsg%iu-^52STaSZ~y=R literal 0 HcmV?d00001 diff --git a/tests/gitea-repositories-meta/user2/readme-test.git/objects/pack/pack-8933bd634b76f8154310cccb52537a0195e43166.idx b/tests/gitea-repositories-meta/user2/readme-test.git/objects/pack/pack-8933bd634b76f8154310cccb52537a0195e43166.idx new file mode 100644 index 0000000000000000000000000000000000000000..561e0f2e9d241a658eca432443f071acb88482ce GIT binary patch literal 4012 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