Merge branch '18947-githttpd'
[arvados.git] / services / githttpd / cmd.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package githttpd
6
7 import (
8         "context"
9
10         "git.arvados.org/arvados.git/lib/service"
11         "git.arvados.org/arvados.git/sdk/go/arvados"
12         "git.arvados.org/arvados.git/sdk/go/arvadosclient"
13         "github.com/prometheus/client_golang/prometheus"
14 )
15
16 var Command = service.Command(arvados.ServiceNameGitHTTP, newHandler)
17
18 func newHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg *prometheus.Registry) service.Handler {
19         client, err := arvados.NewClientFromConfig(cluster)
20         if err != nil {
21                 return service.ErrorHandler(ctx, cluster, err)
22         }
23         ac, err := arvadosclient.New(client)
24         if err != nil {
25                 return service.ErrorHandler(ctx, cluster, err)
26         }
27         return &authHandler{
28                 clientPool: &arvadosclient.ClientPool{Prototype: ac},
29                 cluster:    cluster,
30                 handler:    newGitHandler(ctx, cluster),
31         }
32 }