選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

api_repo_hook_test.go 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "fmt"
  6. "net/http"
  7. "testing"
  8. auth_model "code.gitea.io/gitea/models/auth"
  9. repo_model "code.gitea.io/gitea/models/repo"
  10. "code.gitea.io/gitea/models/unittest"
  11. user_model "code.gitea.io/gitea/models/user"
  12. api "code.gitea.io/gitea/modules/structs"
  13. "code.gitea.io/gitea/tests"
  14. "github.com/stretchr/testify/assert"
  15. )
  16. func TestAPICreateHook(t *testing.T) {
  17. defer tests.PrepareTestEnv(t)()
  18. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 37})
  19. owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
  20. // user1 is an admin user
  21. session := loginUser(t, "user1")
  22. token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
  23. req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/%s", owner.Name, repo.Name, "hooks"), api.CreateHookOption{
  24. Type: "gitea",
  25. Config: api.CreateHookOptionConfig{
  26. "content_type": "json",
  27. "url": "http://example.com/",
  28. },
  29. AuthorizationHeader: "Bearer s3cr3t",
  30. }).AddTokenAuth(token)
  31. resp := MakeRequest(t, req, http.StatusCreated)
  32. var apiHook *api.Hook
  33. DecodeJSON(t, resp, &apiHook)
  34. assert.Equal(t, "http://example.com/", apiHook.Config["url"])
  35. assert.Equal(t, "Bearer s3cr3t", apiHook.AuthorizationHeader)
  36. }