Add PKCE, token-body extras, AuthURL templating to OAuth2 → Add settings structs for Pattern-2 connector providers

- Add PKCE, token-body extras, AuthURL templating to OAuth2
- Add 13 connector provider enum values
- Add scopes, display names, name resolvers for 13 providers
- Add settings structs for Pattern-2 connector providers

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-05-17 17:22:48 +02:00
parent 3ff66757ad
commit 0147acd9f0
10 changed files with 1334 additions and 5 deletions

View File

@@ -49,6 +49,42 @@ type (
AccountID string `json:"account_id"`
Region string `json:"region"`
}
GitLabConnectorSettings struct {
GroupID string `json:"group_id"`
}
BitbucketConnectorSettings struct {
Workspace string `json:"workspace"`
}
HerokuConnectorSettings struct {
TeamID string `json:"team_id"`
}
PagerDutyConnectorSettings struct {
Subdomain string `json:"subdomain"`
}
AsanaConnectorSettings struct {
WorkspaceGID string `json:"workspace_gid"`
}
SnykConnectorSettings struct {
OrgID string `json:"org_id"`
}
NetlifyConnectorSettings struct {
AccountSlug string `json:"account_slug"`
}
ClickUpConnectorSettings struct {
TeamID string `json:"team_id"`
}
VercelConnectorSettings struct {
TeamID string `json:"team_id"`
}
)
// SetSettings marshals a typed settings struct into the connector's RawSettings.
@@ -124,6 +160,87 @@ func (c *Connector) OnePasswordUsersAPISettings() (OnePasswordUsersAPISettings,
return s, nil
}
// GitLabSettings unmarshals the connector's RawSettings into GitLabConnectorSettings.
func (c *Connector) GitLabSettings() (GitLabConnectorSettings, error) {
var s GitLabConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// BitbucketSettings unmarshals the connector's RawSettings into BitbucketConnectorSettings.
func (c *Connector) BitbucketSettings() (BitbucketConnectorSettings, error) {
var s BitbucketConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// HerokuSettings unmarshals the connector's RawSettings into HerokuConnectorSettings.
func (c *Connector) HerokuSettings() (HerokuConnectorSettings, error) {
var s HerokuConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// PagerDutySettings unmarshals the connector's RawSettings into PagerDutyConnectorSettings.
func (c *Connector) PagerDutySettings() (PagerDutyConnectorSettings, error) {
var s PagerDutyConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// AsanaSettings unmarshals the connector's RawSettings into AsanaConnectorSettings.
func (c *Connector) AsanaSettings() (AsanaConnectorSettings, error) {
var s AsanaConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// SnykSettings unmarshals the connector's RawSettings into SnykConnectorSettings.
func (c *Connector) SnykSettings() (SnykConnectorSettings, error) {
var s SnykConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// NetlifySettings unmarshals the connector's RawSettings into NetlifyConnectorSettings.
func (c *Connector) NetlifySettings() (NetlifyConnectorSettings, error) {
var s NetlifyConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// ClickUpSettings unmarshals the connector's RawSettings into ClickUpConnectorSettings.
func (c *Connector) ClickUpSettings() (ClickUpConnectorSettings, error) {
var s ClickUpConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
// VercelSettings unmarshals the connector's RawSettings into VercelConnectorSettings.
func (c *Connector) VercelSettings() (VercelConnectorSettings, error) {
var s VercelConnectorSettings
if err := c.unmarshalSettings(&s); err != nil {
return s, err
}
return s, nil
}
func (c *Connector) unmarshalSettings(v any) error {
if len(c.RawSettings) == 0 || string(c.RawSettings) == "null" {
return nil