kelvintaywl / terraform-provider-circleci

(Unofficial) Terraform Provider for CircleCI
https://registry.terraform.io/providers/kelvintaywl/circleci/latest
Mozilla Public License 2.0
12 stars 3 forks source link

Support for Project Resource #24

Closed kelvintaywl closed 1 year ago

kelvintaywl commented 1 year ago

background

By supporting Project as a resource, it would mean that users can:

I understand, from https://github.com/mrolla/terraform-provider-circleci/issues/15, that you can effectively set up (create) a Project via the follow-project CircleCI v1.1 API.

Concerns

There are a few concerns I feel that needs to be addressed. I've arranged this based on importance below.

1. No update or delete API endpoints

There are no public API endpoints to modify or delete an existing project.

Likely, the CircleCI UI uses a GraphQL API to handle project settings (e.g., enable Dynamic Configuration). Importantly, there is no UI feature nor API to delete an existing project.

Without these dependencies, implementing a Project resource feels "incomplete"; In terms of developer experience, you may be able to create a Project, but cannot effective tear it down, or modify it.

2. Legacy v1.1. API

The follow-project CircleCI v1.1 API is ultimately on CircleCI's legacy v1.1 API.

Right now, this tool uses https://github.com/kelvintaywl/circleci-go-sdk to make API calls to CircleCI. This SDK accounts only for the CircleCI v2 API.

Going into solution space, I would prefer making a separate SDK for the v1.1 API endpoint(s).