Skip to content

Amazon Q Developer plugin support #94

Description

@ewega

Summary

Add Amazon Q Developer as a supported DevOps tool in the CLI. Amazon Q Developer is AWS's AI coding assistant — the primary competitor to GitHub Copilot — providing AI coding metrics (suggestions, chat interactions, code reviews, inline completions).

Upstream Plugin

q_dev in incubator-devlake/backend/plugins/q_dev/

Property Value
Plugin slug q_dev
Auth AWS credentials (AccessKeyId + SecretAccessKey) — completely different from all other plugins
Scope type S3 Slices (time-based data prefixes in S3 buckets)
Scope ID field id
Default endpoint N/A (S3-based, not REST endpoint)
Remote-scope API TBD
Connection test TBD
Extra fields Region, Bucket, IdentityStoreId, IdentityStoreRegion

Why v0.4.x

This is the most complex plugin to integrate due to:

  1. Completely different auth model — requires AWS AccessKeyId + SecretAccessKey pair, not a single token or username/password
  2. S3-based data retrieval — scopes are S3 path prefixes, not REST API resources
  3. Additional identity resolution — IAM Identity Center integration for mapping user UUIDs to names
  4. May need a new auth type on ConnectionDef (e.g., "AwsCredentials") beyond what Generalize auth model for multi-plugin support #85 introduces

Placing this in v0.4.x keeps it on the multi-tool/plugin expansion track instead of the AI-powered operations line. It is still complex, but the work is fundamentally plugin/auth integration rather than an AI command surface.

Dependencies

Blocked by:

Changes

  • Add ConnectionDef for q_dev in connectionRegistry:
    • Custom auth fields for AWS credentials
    • TokenPrompt: "AWS Secret Access Key" (or restructure for two-field auth)
    • EnvVarNames: []string{"AWS_SECRET_ACCESS_KEY"}
    • Additional env vars: AWS_ACCESS_KEY_ID, AWS_REGION
    • ScopeFunc: scopeQDevHandler
  • Implement scopeQDevHandler:
    • S3 path-based scope selection (year/month/account)
    • May need a custom scope struct for S3 slice metadata
  • Potentially extend ConnectionDef auth model for AWS-style credentials
  • Set Available: true

Acceptance Criteria

  • gh devlake configure connection add --plugin q_dev creates an Amazon Q Developer connection with AWS credentials
  • Q Developer appears in interactive plugin picker
  • Q Developer scopes select S3 data paths
  • go build ./..., go test ./..., go vet ./... pass

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions