Comprehensive API


#1

The CircleCI REST API provides access to basic functions, like:

  • triggering builds
  • querying status of builds
  • downloading artifacts

However, covers only a small fraction of the functionality provided by CircleCI. For example, there seems to be no way to manipulate these things from the API:

  • AWS credentials
  • environment variables
  • API keys
  • project settings, like “permissive builds”

I have use cases for all of these things. Were these things automatable through the API, I could implement functionality otherwise missing in CircleCI, rather than submitting feature requests and hoping they get implemented someday.

For example: I’d like to add AWS credentials to my builds, but I can’t because:

- It's very tedious to configure, manually clicking through a bunch of projects
- There's no automated way to rotate these keys. Any employee could write down these keys, keep them after their employment has been terminated, and use them for evil.

I’m finding more uses for CircleCI API keys also. However again they are tedious to create and there’s no way to automatically rotate them.


#2

The docs aren’t organized well, but if go to the bottom of the page, you’ll see there are endpoints for managing environment variables: https://circleci.com/docs/api/

Definitely agree, though. It’s a huge pain to manage and integrate CircleCI into a workflow, especially for a larger organization without being able to program against the service. I spend a silly amount of time managing projects and doing repetitive work. It’s highly tempting to move my entire company off of CircleCI due to this.


#3