summaryrefslogtreecommitdiffstats
path: root/routers/api/actions/ping/ping.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/api/actions/ping/ping.go')
-rw-r--r--routers/api/actions/ping/ping.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/routers/api/actions/ping/ping.go b/routers/api/actions/ping/ping.go
new file mode 100644
index 0000000..13985c9
--- /dev/null
+++ b/routers/api/actions/ping/ping.go
@@ -0,0 +1,38 @@
+// Copyright 2022 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package ping
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+
+ "code.gitea.io/gitea/modules/log"
+
+ pingv1 "code.gitea.io/actions-proto-go/ping/v1"
+ "code.gitea.io/actions-proto-go/ping/v1/pingv1connect"
+ "connectrpc.com/connect"
+)
+
+func NewPingServiceHandler() (string, http.Handler) {
+ return pingv1connect.NewPingServiceHandler(&Service{})
+}
+
+var _ pingv1connect.PingServiceHandler = (*Service)(nil)
+
+type Service struct {
+ pingv1connect.UnimplementedPingServiceHandler
+}
+
+func (s *Service) Ping(
+ ctx context.Context,
+ req *connect.Request[pingv1.PingRequest],
+) (*connect.Response[pingv1.PingResponse], error) {
+ log.Trace("Content-Type: %s", req.Header().Get("Content-Type"))
+ log.Trace("User-Agent: %s", req.Header().Get("User-Agent"))
+ res := connect.NewResponse(&pingv1.PingResponse{
+ Data: fmt.Sprintf("Hello, %s!", req.Msg.Data),
+ })
+ return res, nil
+}