Skip to content

CircleCI plugin support #92

@ewega

Description

@ewega

Summary

Add CircleCI as a supported DevOps tool in the CLI. CircleCI is a popular cloud CI/CD platform providing build and deployment data for DORA metrics (deployment frequency, change failure rate).

Upstream Plugin

circleci in incubator-devlake/backend/plugins/circleci/

Property Value
Plugin slug circleci
Auth AccessToken (custom header: Circle-Token)
Scope type Projects (Id string, includes Slug and OrganizationId)
Scope ID field id
Default endpoint https://circleci.com/api/v2/
Remote-scope API Yes
Connection test Yes

Dependencies

Blocked by:

Not blocked by #85 — CircleCI uses AccessToken, compatible with current auth model. The custom header format (Circle-Token) is handled by the DevLake backend.

Changes

  • Add ConnectionDef for circleci in connectionRegistry:
    • Endpoint: "https://circleci.com/api/v2/"
    • SupportsTest: true
    • TokenPrompt: "CircleCI personal API token"
    • EnvVarNames: []string{"CIRCLECI_TOKEN", "CIRCLE_TOKEN"}
    • EnvFileKeys: []string{"CIRCLECI_TOKEN", "CIRCLE_TOKEN"}
    • ScopeIDField: "id"
    • ScopeFunc: scopeCircleCIHandler
  • Implement scopeCircleCIHandler:
    • Use client.ListRemoteScopes("circleci", connID, "", "") to list projects
    • Let user select projects interactively
    • PUT selected projects as scopes
  • Set Available: true

Acceptance Criteria

  • gh devlake configure connection add --plugin circleci creates a CircleCI connection
  • CircleCI appears in interactive plugin picker
  • CircleCI scopes list projects for selection
  • Connection test works
  • go build ./..., go test ./..., go vet ./... pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions