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.