Metadata-Version: 2.4
Name: cici-tools
Version: 0.14.0
Summary: Continuous Integration Catalog Interface
Author-email: Digital Safety Research Institute <contact@dsri.org>
License: Apache-2.0
Project-URL: Home, https://gitlab.com/saferatday0/cici
Project-URL: Issues, https://gitlab.com/saferatday0/cici/-/issues
Keywords: ci,pipeline,python
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: appdirs
Requires-Dist: attrs
Requires-Dist: cattrs<25.0.0
Requires-Dist: jinja2
Requires-Dist: jsonschema
Requires-Dist: markdown
Requires-Dist: msgspec
Requires-Dist: python-decouple
Requires-Dist: ruamel.yaml
Requires-Dist: termcolor
Dynamic: license-file

# cici pipeline

Build and publish CI/CD pipeline components with cici.

cici, short for Continuous Integration Catalog Interface, is a framework and
toolkit for managing the integration and lifecycle of packaged CI/CD
components in a software delivery pipeline.

cici enables the efficient sharing of CI/CD code in an organization, and
eliminates a major source of friction that otherwise leads to poor adoption of
automation and DevOps practices.

cici is a foundational component of [saferatday0](https://saferatday0.dev/)
and powers the [saferatday0 library](https://gitlab.com/saferatday0/library).

## Targets

| Name                        | [GitLab include](https://docs.gitlab.com/ee/ci/yaml/includes.html) | [pre-commit hook](https://pre-commit.com/) | Description                                               |
| --------------------------- | ------------------------------------------------------------------ | ------------------------------------------ | --------------------------------------------------------- |
| [cici-bundle](#cici-bundle) | ✓                                                                  | ✓                                          | Bundle GitLab CI/CD includes into single files.           |
| [cici-readme](#cici-readme) | ✓                                                                  | ✓                                          | Generate READMEs for CI pipelines.                        |
| [cici-update](#cici-update) | ✓                                                                  | ✓                                          | Update GitLab CI/CD includes to latest released versions. |

### `cici-bundle`

Bundle GitLab CI/CD includes into single files.

As a GitLab include:

```yaml
# .gitlab-ci.yml
include:
  - project: saferatday0/cici
    file:
      - cici-bundle.yml
```

As a pre-commit hook:

```yaml
# .pre-commit-config.yaml
repos:
  - repo: https://gitlab.com/saferatday0/cici
    rev: ""
    hooks:
      - id: cici-bundle
```

### `cici-readme`

Generate READMEs for CI pipelines.

As a GitLab include:

```yaml
# .gitlab-ci.yml
include:
  - project: saferatday0/cici
    file:
      - cici-readme.yml
```

As a pre-commit hook:

```yaml
# .pre-commit-config.yaml
repos:
  - repo: https://gitlab.com/saferatday0/cici
    rev: ""
    hooks:
      - id: cici-readme
```

### `cici-update`

Update GitLab CI/CD includes to latest released versions.

As a GitLab include:

```yaml
# .gitlab-ci.yml
include:
  - project: saferatday0/cici
    file:
      - cici-update.yml
```

As a pre-commit hook:

```yaml
# .pre-commit-config.yaml
repos:
  - repo: https://gitlab.com/saferatday0/cici
    rev: ""
    hooks:
      - id: cici-update
```
