Metadata-Version: 2.1
Name: ci-cd-apier
Version: 0.9.91
Summary: ci-cd-APIer -- Flask-like API framework for GitLab CI/CD pipelines
Author-email: Adam Hlavacek <git@adamhlavacek.com>
Project-URL: Homepage, https://github.com/esoadamo/ci-cd-apier
Project-URL: Issues, https://github.com/esoadamo/ci-cd-apier/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: ssage ==1.5.0

# ci-cd-APIer

APIer is a library that allows you to launch its backend code with Flask-like syntax using GitLab CI/CD.
All the requests and responses are processed with e2e encryption using [age](https://age-encryption.org/),
so nobody has access to the data except the sender (web page) and the receiver (GitLab job in memory).

## Usage example

**To see the full example, take a look at the [example repository](https://gitlab.com/esoadamo/ci-cd-apier-example/).**

Whenever the client calls a backend via APIer script, e.g.:

```js
const APIer = new APIer(
    '$AGE_PUBLIC_KEY$',
    '$GITLAB_PIPELINE_ENDPOINT$',
    '$GITLAB_TOKEN$'
);

const totalSum = await APIer.sendRequest('sumNumbers', [1, 2, 3, 4, 5]);
```

A pipeline is triggered. Example code that handles the request in the pipeline may be:

```python
app = APIER(environ["AGE_SECRET_KEY"])

@app.route("echo")
def endpoint_echo(data: any) -> str:
    return f"You said: {data}. Enjoy :)"
    
@app.route("sumNumbers")
def endpoint_sum(data: list[int]) -> str:
    return str(sum(data))

app.process_requests()
```
