simple python client for the spacelift.io GraphQL API
Project description
Spacelift Client
Simple client library for working with the spacelift.io API.
Essential features:
- Read operations for Spaces, Contexts, Stacks, and Blueprints
- Create operations for Spaces, Contexts, and Stacks (from Blueprints)
- Trigger a run for a Stack
Install
pip install spacelift
Usage
from spacelift import Spacelift
def main():
sl = Spacelift(
base_url="https://ORGNAME.app.spacelift.io/graphql",
key_id="01HCJMP<API_KEY_ID ~26CHAR LONG>",
key_secret="e355ae6fd5<API_KEY_SECRET ~64 CHAR LONG>"
)
result = sl.get_stacks()
print(result)
result = sl.get_stacks(query_fields=["id", "name", "branch", "namespace", "repository", "state"])
print(result)
if __name__ == "__main__":
main()
$ python main.py
[{'id': 'demo-stack', 'space': 'legacy'}]
[{'id': 'demo-stack', 'name': 'Demo stack', 'branch': 'showcase', 'namespace': 'spacelift-io', 'repository': 'onboarding', 'state': 'FINISHED'}]
$
Relevant Methods
from spacelift import Spacelift
sl = Spacelift()
sl.get_stacks()
sl.get_stack_by_id(stack_id)
sl.get_spaces()
sl.get_space_by_id(space_id)
sl.get_contexts()
sl.get_context_by_id(context_id)
sl.get_blueprints()
sl.get_blueprint_by_id(blueprint_id)
sl.create_stack_from_blueprint(blueprint_id, inputs=[{'id': 'bp_var1', 'value': 'bp_var1_value'}])
sl.trigger_run(stack_id)
Environment Variables
the Spacelift object can also infer its parameters from the following environment variables:
SPACELIFT_BASE_URL="https://ORGNAME.app.spacelift.io/graphql"
SPACELIFT_KEY_ID="01HCJMP<API_KEY_ID ~26CHAR LONG>"
SPACELIFT_KEY_SECRET="e355ae6fd5<API_KEY_SECRET ~64 CHAR LONG>"
API Keys
Currently, this depends on the API Key workflow here.
The Current Spacelift.io documentation doesn't clearly specify this, but the API Key ID is the 26 character code that
appears after the name in the web UI. It does not appear at all in the downloaded .config file.
The required Secret value is the first code (64 characters long) that appears in the downloaded .config file.
Raw GraphQL
The Spacelift object also has a _execute method that accepts a raw GraphQL query object. This can be created by
sending a valid GraphQL query string to gql.gql() from the gql package. This is
necessary for more advanced queries.
Mocked Version
There's also a mocked version MockedSpacelift that can be used for testing. It offers mocked versions of all the
CRUD methods without any real API calls.
Development
Publishing
poetry build
poetry publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spacelift-1.1.2.tar.gz.
File metadata
- Download URL: spacelift-1.1.2.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.5 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39b2675f2d75e82209a754b60205c4f1091f6103c16b2b56e61ed8ca41d5b5bd
|
|
| MD5 |
71c8e469982de82ebb9a5db37ad28527
|
|
| BLAKE2b-256 |
0c6b3bbe826e12daa4a41342db885077157e8c150a2a69def35877bc32ec57fa
|
File details
Details for the file spacelift-1.1.2-py3-none-any.whl.
File metadata
- Download URL: spacelift-1.1.2-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.5 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bd1b49e2f1d101990ac0fddb788a6dd147612a33206c16ca84310f2730a8e4e
|
|
| MD5 |
8412230fb21cf8f913fcca48f6300f24
|
|
| BLAKE2b-256 |
eaaefe5ceb248b769eb61d572fa9ebb646f131363728efd16124f7d116e72c27
|