mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix intermittent GPG Git test failure (#8968)
This commit is contained in:
		| @@ -79,8 +79,10 @@ func allowLFSFilters() []string { | |||||||
| 	return globalArgs | 	return globalArgs | ||||||
| } | } | ||||||
|  |  | ||||||
| func onGiteaRun(t *testing.T, callback func(*testing.T, *url.URL)) { | func onGiteaRun(t *testing.T, callback func(*testing.T, *url.URL), prepare ...bool) { | ||||||
| 	prepareTestEnv(t, 1) | 	if len(prepare) == 0 || prepare[0] { | ||||||
|  | 		prepareTestEnv(t, 1) | ||||||
|  | 	} | ||||||
| 	s := http.Server{ | 	s := http.Server{ | ||||||
| 		Handler: mac, | 		Handler: mac, | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -23,14 +23,7 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestGPGGit(t *testing.T) { | func TestGPGGit(t *testing.T) { | ||||||
| 	onGiteaRun(t, testGPGGit) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func testGPGGit(t *testing.T, u *url.URL) { |  | ||||||
| 	username := "user2" | 	username := "user2" | ||||||
| 	baseAPITestContext := NewAPITestContext(t, username, "repo1") |  | ||||||
|  |  | ||||||
| 	u.Path = baseAPITestContext.GitPath() |  | ||||||
|  |  | ||||||
| 	// OK Set a new GPG home | 	// OK Set a new GPG home | ||||||
| 	tmpDir, err := ioutil.TempDir("", "temp-gpg") | 	tmpDir, err := ioutil.TempDir("", "temp-gpg") | ||||||
| @@ -65,130 +58,218 @@ func testGPGGit(t *testing.T, u *url.URL) { | |||||||
| 	setting.Repository.Signing.SigningEmail = "gitea@fake.local" | 	setting.Repository.Signing.SigningEmail = "gitea@fake.local" | ||||||
| 	user := models.AssertExistsAndLoadBean(t, &models.User{Name: username}).(*models.User) | 	user := models.AssertExistsAndLoadBean(t, &models.User{Name: username}).(*models.User) | ||||||
|  |  | ||||||
| 	t.Run("Unsigned-Initial", func(t *testing.T) { | 	setting.Repository.Signing.InitialCommit = []string{"never"} | ||||||
| 		PrintCurrentTest(t) | 	setting.Repository.Signing.CRUDActions = []string{"never"} | ||||||
| 		setting.Repository.Signing.InitialCommit = []string{"never"} |  | ||||||
| 		testCtx := NewAPITestContext(t, username, "initial-unsigned") | 	baseAPITestContext := NewAPITestContext(t, username, "repo1") | ||||||
| 		t.Run("CreateRepository", doAPICreateRepository(testCtx, false)) | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
| 		t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | 		u.Path = baseAPITestContext.GitPath() | ||||||
| 			assert.NotNil(t, branch.Commit) |  | ||||||
| 			assert.NotNil(t, branch.Commit.Verification) | 		t.Run("Unsigned-Initial", func(t *testing.T) { | ||||||
| 			assert.False(t, branch.Commit.Verification.Verified) | 			PrintCurrentTest(t) | ||||||
| 			assert.Empty(t, branch.Commit.Verification.Signature) | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
| 		})) | 			t.Run("CreateRepository", doAPICreateRepository(testCtx, false)) | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"never"} | 			t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | ||||||
| 		t.Run("CreateCRUDFile-Never", crudActionCreateFile( | 				assert.NotNil(t, branch.Commit) | ||||||
| 			t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) { | 				assert.NotNil(t, branch.Commit.Verification) | ||||||
| 				assert.False(t, response.Verification.Verified) | 				assert.False(t, branch.Commit.Verification.Verified) | ||||||
|  | 				assert.Empty(t, branch.Commit.Verification.Signature) | ||||||
| 			})) | 			})) | ||||||
| 		t.Run("CreateCRUDFile-Never", crudActionCreateFile( | 			t.Run("CreateCRUDFile-Never", crudActionCreateFile( | ||||||
| 			t, testCtx, user, "never", "never2", "unsigned-never2.txt", func(t *testing.T, response api.FileResponse) { | 				t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) { | ||||||
| 				assert.False(t, response.Verification.Verified) | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 			t.Run("CreateCRUDFile-Never", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "never", "never2", "unsigned-never2.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"parentsigned"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("Unsigned-Initial-CRUD-ParentSigned", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 			t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "parentsigned", "parentsigned2", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"never"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("Unsigned-Initial-CRUD-Never", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			t.Run("CreateCRUDFile-Never", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "parentsigned", "parentsigned-never", "unsigned-never2.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"always"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("Unsigned-Initial-CRUD-Always", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			t.Run("CreateCRUDFile-Always", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.True(t, response.Verification.Verified) | ||||||
|  | 					assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | ||||||
|  | 				})) | ||||||
|  | 			t.Run("CreateCRUDFile-ParentSigned-always", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "parentsigned", "parentsigned-always", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.True(t, response.Verification.Verified) | ||||||
|  | 					assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"parentsigned"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("Unsigned-Initial-CRUD-ParentSigned", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			t.Run("CreateCRUDFile-Always-ParentSigned", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "always", "always-parentsigned", "signed-always-parentsigned.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.True(t, response.Verification.Verified) | ||||||
|  | 					assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.InitialCommit = []string{"always"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("AlwaysSign-Initial", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-always") | ||||||
|  | 			t.Run("CreateRepository", doAPICreateRepository(testCtx, false)) | ||||||
|  | 			t.Run("CheckMasterBranchSigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | ||||||
|  | 				assert.NotNil(t, branch.Commit) | ||||||
|  | 				assert.NotNil(t, branch.Commit.Verification) | ||||||
|  | 				assert.True(t, branch.Commit.Verification.Verified) | ||||||
|  | 				assert.Equal(t, "gitea@fake.local", branch.Commit.Verification.Signer.Email) | ||||||
| 			})) | 			})) | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"parentsigned"} | 		}) | ||||||
| 		t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( | 	}, false) | ||||||
| 			t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) { | 	setting.Repository.Signing.CRUDActions = []string{"never"} | ||||||
| 				assert.False(t, response.Verification.Verified) | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("AlwaysSign-Initial-CRUD-Never", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-always") | ||||||
|  | 			t.Run("CreateCRUDFile-Never", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.False(t, response.Verification.Verified) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"parentsigned"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("AlwaysSign-Initial-CRUD-ParentSigned-On-Always", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-always") | ||||||
|  | 			t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.True(t, response.Verification.Verified) | ||||||
|  | 					assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | ||||||
|  | 				})) | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	setting.Repository.Signing.CRUDActions = []string{"always"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("AlwaysSign-Initial-CRUD-Always", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-always") | ||||||
|  | 			t.Run("CreateCRUDFile-Always", crudActionCreateFile( | ||||||
|  | 				t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) { | ||||||
|  | 					assert.True(t, response.Verification.Verified) | ||||||
|  | 					assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | ||||||
|  | 				})) | ||||||
|  |  | ||||||
|  | 		}) | ||||||
|  | 	}, false) | ||||||
|  | 	var pr api.PullRequest | ||||||
|  | 	setting.Repository.Signing.Merges = []string{"commitssigned"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("UnsignedMerging", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			var err error | ||||||
|  | 			t.Run("CreatePullRequest", func(t *testing.T) { | ||||||
|  | 				pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "never2")(t) | ||||||
|  | 				assert.NoError(t, err) | ||||||
|  | 			}) | ||||||
|  | 			t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) | ||||||
|  | 			t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | ||||||
|  | 				assert.NotNil(t, branch.Commit) | ||||||
|  | 				assert.NotNil(t, branch.Commit.Verification) | ||||||
|  | 				assert.False(t, branch.Commit.Verification.Verified) | ||||||
|  | 				assert.Empty(t, branch.Commit.Verification.Signature) | ||||||
| 			})) | 			})) | ||||||
| 		t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( | 		}) | ||||||
| 			t, testCtx, user, "parentsigned", "parentsigned2", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) { | 	}, false) | ||||||
| 				assert.False(t, response.Verification.Verified) | 	setting.Repository.Signing.Merges = []string{"basesigned"} | ||||||
|  | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
|  | 		u.Path = baseAPITestContext.GitPath() | ||||||
|  |  | ||||||
|  | 		t.Run("BaseSignedMerging", func(t *testing.T) { | ||||||
|  | 			PrintCurrentTest(t) | ||||||
|  | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
|  | 			var err error | ||||||
|  | 			t.Run("CreatePullRequest", func(t *testing.T) { | ||||||
|  | 				pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "parentsigned2")(t) | ||||||
|  | 				assert.NoError(t, err) | ||||||
|  | 			}) | ||||||
|  | 			t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) | ||||||
|  | 			t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | ||||||
|  | 				assert.NotNil(t, branch.Commit) | ||||||
|  | 				assert.NotNil(t, branch.Commit.Verification) | ||||||
|  | 				assert.False(t, branch.Commit.Verification.Verified) | ||||||
|  | 				assert.Empty(t, branch.Commit.Verification.Signature) | ||||||
| 			})) | 			})) | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"never"} | 		}) | ||||||
| 		t.Run("CreateCRUDFile-Never", crudActionCreateFile( | 	}, false) | ||||||
| 			t, testCtx, user, "parentsigned", "parentsigned-never", "unsigned-never2.txt", func(t *testing.T, response api.FileResponse) { | 	setting.Repository.Signing.Merges = []string{"commitssigned"} | ||||||
| 				assert.False(t, response.Verification.Verified) | 	onGiteaRun(t, func(t *testing.T, u *url.URL) { | ||||||
| 			})) | 		u.Path = baseAPITestContext.GitPath() | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"always"} |  | ||||||
| 		t.Run("CreateCRUDFile-Always", crudActionCreateFile( | 		t.Run("CommitsSignedMerging", func(t *testing.T) { | ||||||
| 			t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) { | 			PrintCurrentTest(t) | ||||||
| 				assert.True(t, response.Verification.Verified) | 			testCtx := NewAPITestContext(t, username, "initial-unsigned") | ||||||
| 				assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | 			var err error | ||||||
| 			})) | 			t.Run("CreatePullRequest", func(t *testing.T) { | ||||||
| 		t.Run("CreateCRUDFile-ParentSigned-always", crudActionCreateFile( | 				pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "always-parentsigned")(t) | ||||||
| 			t, testCtx, user, "parentsigned", "parentsigned-always", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) { | 				assert.NoError(t, err) | ||||||
| 				assert.True(t, response.Verification.Verified) | 			}) | ||||||
| 				assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) | 			t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) | ||||||
| 			})) | 			t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"parentsigned"} | 				assert.NotNil(t, branch.Commit) | ||||||
| 		t.Run("CreateCRUDFile-Always-ParentSigned", crudActionCreateFile( | 				assert.NotNil(t, branch.Commit.Verification) | ||||||
| 			t, testCtx, user, "always", "always-parentsigned", "signed-always-parentsigned.txt", func(t *testing.T, response api.FileResponse) { | 				assert.True(t, branch.Commit.Verification.Verified) | ||||||
| 				assert.True(t, response.Verification.Verified) |  | ||||||
| 				assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) |  | ||||||
| 			})) |  | ||||||
| 	}) |  | ||||||
| 	t.Run("AlwaysSign-Initial", func(t *testing.T) { |  | ||||||
| 		PrintCurrentTest(t) |  | ||||||
| 		setting.Repository.Signing.InitialCommit = []string{"always"} |  | ||||||
| 		testCtx := NewAPITestContext(t, username, "initial-always") |  | ||||||
| 		t.Run("CreateRepository", doAPICreateRepository(testCtx, false)) |  | ||||||
| 		t.Run("CheckMasterBranchSigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { |  | ||||||
| 			assert.NotNil(t, branch.Commit) |  | ||||||
| 			assert.NotNil(t, branch.Commit.Verification) |  | ||||||
| 			assert.True(t, branch.Commit.Verification.Verified) |  | ||||||
| 			assert.Equal(t, "gitea@fake.local", branch.Commit.Verification.Signer.Email) |  | ||||||
| 		})) |  | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"never"} |  | ||||||
| 		t.Run("CreateCRUDFile-Never", crudActionCreateFile( |  | ||||||
| 			t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) { |  | ||||||
| 				assert.False(t, response.Verification.Verified) |  | ||||||
| 			})) |  | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"parentsigned"} |  | ||||||
| 		t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile( |  | ||||||
| 			t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) { |  | ||||||
| 				assert.True(t, response.Verification.Verified) |  | ||||||
| 				assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) |  | ||||||
| 			})) |  | ||||||
| 		setting.Repository.Signing.CRUDActions = []string{"always"} |  | ||||||
| 		t.Run("CreateCRUDFile-Always", crudActionCreateFile( |  | ||||||
| 			t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) { |  | ||||||
| 				assert.True(t, response.Verification.Verified) |  | ||||||
| 				assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email) |  | ||||||
| 			})) | 			})) | ||||||
|  |  | ||||||
| 	}) |  | ||||||
| 	t.Run("UnsignedMerging", func(t *testing.T) { |  | ||||||
| 		PrintCurrentTest(t) |  | ||||||
| 		testCtx := NewAPITestContext(t, username, "initial-unsigned") |  | ||||||
| 		var pr api.PullRequest |  | ||||||
| 		var err error |  | ||||||
| 		t.Run("CreatePullRequest", func(t *testing.T) { |  | ||||||
| 			pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "never2")(t) |  | ||||||
| 			assert.NoError(t, err) |  | ||||||
| 		}) | 		}) | ||||||
| 		setting.Repository.Signing.Merges = []string{"commitssigned"} | 	}, false) | ||||||
| 		t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) |  | ||||||
| 		t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { |  | ||||||
| 			assert.NotNil(t, branch.Commit) |  | ||||||
| 			assert.NotNil(t, branch.Commit.Verification) |  | ||||||
| 			assert.False(t, branch.Commit.Verification.Verified) |  | ||||||
| 			assert.Empty(t, branch.Commit.Verification.Signature) |  | ||||||
| 		})) |  | ||||||
| 		setting.Repository.Signing.Merges = []string{"basesigned"} |  | ||||||
| 		t.Run("CreatePullRequest", func(t *testing.T) { |  | ||||||
| 			pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "parentsigned2")(t) |  | ||||||
| 			assert.NoError(t, err) |  | ||||||
| 		}) |  | ||||||
| 		t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) |  | ||||||
| 		t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { |  | ||||||
| 			assert.NotNil(t, branch.Commit) |  | ||||||
| 			assert.NotNil(t, branch.Commit.Verification) |  | ||||||
| 			assert.False(t, branch.Commit.Verification.Verified) |  | ||||||
| 			assert.Empty(t, branch.Commit.Verification.Signature) |  | ||||||
| 		})) |  | ||||||
| 		setting.Repository.Signing.Merges = []string{"commitssigned"} |  | ||||||
| 		t.Run("CreatePullRequest", func(t *testing.T) { |  | ||||||
| 			pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "always-parentsigned")(t) |  | ||||||
| 			assert.NoError(t, err) |  | ||||||
| 		}) |  | ||||||
| 		t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index)) |  | ||||||
| 		t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) { |  | ||||||
| 			assert.NotNil(t, branch.Commit) |  | ||||||
| 			assert.NotNil(t, branch.Commit.Verification) |  | ||||||
| 			assert.True(t, branch.Commit.Verification.Verified) |  | ||||||
| 		})) |  | ||||||
|  |  | ||||||
| 	}) |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func crudActionCreateFile(t *testing.T, ctx APITestContext, user *models.User, from, to, path string, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) { | func crudActionCreateFile(t *testing.T, ctx APITestContext, user *models.User, from, to, path string, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user