Files
teleport/lib/services/git_server.go
T
STeve (Xin) Huang fae535b3df GitHub Proxy part 2: git_server resource, service, and RBAC (#49393)
* git_server resource and role.allow.github_permissions

* implicit RO on KindGitServer

* review comments

* fix ut

* make -C integrations/operator crd

* fix ut again

* make crds-up-to-date and make -C integrations/terraform docs
2024-11-27 16:12:30 +00:00

60 lines
2.3 KiB
Go

/*
* Teleport
* Copyright (C) 2024 Gravitational, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package services
import (
"context"
"github.com/gravitational/teleport/api/types"
)
// GitServerGetter defines interface for fetching git servers.
type GitServerGetter interface {
// GetGitServer returns Git servers by name.
GetGitServer(ctx context.Context, name string) (types.Server, error)
// ListGitServers returns all Git servers matching filter.
ListGitServers(ctx context.Context, pageSize int, pageToken string) ([]types.Server, string, error)
}
// GitServers defines an interface for managing git servers.
type GitServers interface {
GitServerGetter
// CreateGitServer creates a Git server resource.
CreateGitServer(ctx context.Context, item types.Server) (types.Server, error)
// UpdateGitServer updates a Git server resource.
UpdateGitServer(ctx context.Context, item types.Server) (types.Server, error)
// UpsertGitServer updates a Git server resource, creating it if it doesn't exist.
UpsertGitServer(ctx context.Context, item types.Server) (types.Server, error)
// DeleteGitServer removes the specified Git server resource.
DeleteGitServer(ctx context.Context, name string) error
// DeleteAllGitServers removes all Git server resources.
DeleteAllGitServers(ctx context.Context) error
}
// MarshalGitServer marshals the Git Server resource to JSON.
func MarshalGitServer(server types.Server, opts ...MarshalOption) ([]byte, error) {
return MarshalServer(server, opts...)
}
// UnmarshalGitServer unmarshals the Git Server resource from JSON.
func UnmarshalGitServer(bytes []byte, opts ...MarshalOption) (types.Server, error) {
return UnmarshalServer(bytes, types.KindGitServer, opts...)
}