mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add support for coder_git_auth data source (#6334)
* Add git auth providers schema * Pipe git auth providers to the schema * Add git auth providers to the API * Add gitauth endpoint to query authenticated state * Add endpoint to query git state * Use BroadcastChannel to automatically authenticate with Git * Add error validation for submitting the create workspace form * Fix panic on template dry-run * Add tests for the template version Git auth endpoint * Show error if no gitauth is configured * Add gitauth to cliui * Fix unused method receiver * Fix linting errors * Fix dbauthz querier test * Fix make gen * Add JavaScript test for git auth * Fix bad error message * Fix provisionerd test race See https://github.com/coder/coder/actions/runs/4277960646/jobs/7447232814 * Fix requested changes * Add comment to CreateWorkspacePageView
This commit is contained in:
@@ -24,6 +24,13 @@ type TemplateVersion struct {
|
||||
CreatedBy User `json:"created_by"`
|
||||
}
|
||||
|
||||
type TemplateVersionGitAuth struct {
|
||||
ID string `json:"id"`
|
||||
Type GitProvider `json:"type"`
|
||||
AuthenticateURL string `json:"authenticate_url"`
|
||||
Authenticated bool `json:"authenticated"`
|
||||
}
|
||||
|
||||
type ValidationMonotonicOrder string
|
||||
|
||||
const (
|
||||
@@ -108,6 +115,20 @@ func (c *Client) TemplateVersionRichParameters(ctx context.Context, version uuid
|
||||
return params, json.NewDecoder(res.Body).Decode(¶ms)
|
||||
}
|
||||
|
||||
// TemplateVersionGitAuth returns git authentication for the requested template version.
|
||||
func (c *Client) TemplateVersionGitAuth(ctx context.Context, version uuid.UUID) ([]TemplateVersionGitAuth, error) {
|
||||
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/templateversions/%s/gitauth", version), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
return nil, ReadBodyAsError(res)
|
||||
}
|
||||
var gitAuth []TemplateVersionGitAuth
|
||||
return gitAuth, json.NewDecoder(res.Body).Decode(&gitAuth)
|
||||
}
|
||||
|
||||
// TemplateVersionSchema returns schemas for a template version by ID.
|
||||
func (c *Client) TemplateVersionSchema(ctx context.Context, version uuid.UUID) ([]ParameterSchema, error) {
|
||||
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/templateversions/%s/schema", version), nil)
|
||||
|
||||
@@ -291,12 +291,26 @@ func (c *Client) WorkspaceAgentListeningPorts(ctx context.Context, agentID uuid.
|
||||
|
||||
// GitProvider is a constant that represents the
|
||||
// type of providers that are supported within Coder.
|
||||
// @typescript-ignore GitProvider
|
||||
type GitProvider string
|
||||
|
||||
func (g GitProvider) Pretty() string {
|
||||
switch g {
|
||||
case GitProviderAzureDevops:
|
||||
return "Azure DevOps"
|
||||
case GitProviderGitHub:
|
||||
return "GitHub"
|
||||
case GitProviderGitLab:
|
||||
return "GitLab"
|
||||
case GitProviderBitBucket:
|
||||
return "Bitbucket"
|
||||
default:
|
||||
return string(g)
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
GitProviderAzureDevops = "azure-devops"
|
||||
GitProviderGitHub = "github"
|
||||
GitProviderGitLab = "gitlab"
|
||||
GitProviderBitBucket = "bitbucket"
|
||||
GitProviderAzureDevops GitProvider = "azure-devops"
|
||||
GitProviderGitHub GitProvider = "github"
|
||||
GitProviderGitLab GitProvider = "gitlab"
|
||||
GitProviderBitBucket GitProvider = "bitbucket"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user