Merge branch '18696-rnaseq-training' refs #18696
[arvados.git] / services / arv-git-httpd / server.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package main
6
7 import (
8         "net/http"
9
10         "git.arvados.org/arvados.git/sdk/go/arvados"
11         "git.arvados.org/arvados.git/sdk/go/health"
12         "git.arvados.org/arvados.git/sdk/go/httpserver"
13 )
14
15 type server struct {
16         httpserver.Server
17         cluster *arvados.Cluster
18 }
19
20 func (srv *server) Start() error {
21         mux := http.NewServeMux()
22         mux.Handle("/", &authHandler{handler: newGitHandler(srv.cluster), cluster: srv.cluster})
23         mux.Handle("/_health/", &health.Handler{
24                 Token:  srv.cluster.ManagementToken,
25                 Prefix: "/_health/",
26         })
27
28         var listen arvados.URL
29         for listen = range srv.cluster.Services.GitHTTP.InternalURLs {
30                 break
31         }
32
33         srv.Handler = mux
34         srv.Addr = listen.Host
35         return srv.Server.Start()
36 }