A comprehensive Development Experience (DX) template repository that provides a structured framework and essential tools to streamline the software development process.
- 1. Details
- 2. Contribute
- 3. Troubleshoot
- 4. References
-
Distributed version control system for tracking source code changes.
-
Git extension for managing large files (assets, binaries) outside normal Git history.
-
Task automation tool to manage build processes and workflows.
-
Containerization tool to run applications in isolated container environments and execute container-based tasks.
Contribution guidelines and project management tools.
AI Agents are automated tools that assist in various development tasks such as code generation, testing, and documentation.
-
Insights and Details
-
Usage and Instructions
-
Implicit Invocation
AI Agents can be implicitly invoked based on file paths, programming languages, or specific keywords in user prompts.
.github/skills/<skill-name>/SKILL.md -
Explicit Invocation
AI Agents can be explicitly invoked by specifying the skill name in user prompts.
@agent <skill-name> <task-description>
-
Make is a automation tool that defines and manages tasks to streamline development workflows.
-
Insights and Details
- Makefile
Makefile defining tasks for building, testing, and managing the project.
- Makefile
-
Usage and Instructions
-
Tasks
make help[!NOTE]
- Each task description must begin with
##to be included in the task list.
$ make help Tasks A collection of tasks used in the current project. Usage make <task> bootstrap Initialize a software development workspace with requisites setup Install and configure all dependencies essential for development teardown Remove development artifacts and restore the host to its pre-setup state - Each task description must begin with
-
-
Insights and Details
- scripts/
Provides scripts to bootstrap, setup, and teardown a software development workspace with requisites.
- scripts/
-
Usage and Instructions
-
Tasks
make bootstrap
make setup
make teardown
-
-
Insights and Details
- .devcontainer/
Provides Dev Containers as a consistent development environment using Docker containers.
- .devcontainer/
-
Usage and Instructions
-
Tasks
# TODO # make devcontainer-go # make devcontainer-cpp # make devcontainer-python
-
Semantic-Release automates the release process by analyzing commit messages to determine the next version number, generating changelog and release notes, and publishing the release.
-
Insights and Details
- .releaserc.json
Configuration file for Semantic-Release specifying release rules and plugins.
- .releaserc.json
-
Usage and Instructions
-
CI/CD
uses: sentenz/actions/semantic-release@latest
-
Renovate automates dependency updates by creating merge requests for outdated dependencies, libraries and packages.
-
Insights and Details
- renovate.json
Configuration file for Renovate specifying update rules and schedules.
- renovate.json
-
Usage and Instructions
-
CI/CD
uses: sentenz/actions/renovate@latest
-
Dependabot automates dependency updates by creating pull requests for outdated dependencies, libraries and packages.
-
Insights and Details
- .github/dependabot.yml
Configuration file for Dependabot specifying update rules and schedules.
- .github/dependabot.yml
SOPS (Secrets OPerationS) is a tool for managing and encrypting sensitive data such as passwords, API keys, and other secrets.
-
Insights and Details
- .sops.yaml
Configuration file for SOPS specifying encryption rules and key management.
- .sops.yaml
-
Usage and Instructions
-
GPG Key Pair Generation
-
Tasks
Generate a new key pair to be used with SOPS.
[!NOTE] The UID can be customized via the
SECRETS_SOPS_UIDvariable (defaults tosops-dx).make secrets-gpg-generate SECRETS_SOPS_UID=<uid>
-
-
GPG Public Key Fingerprint
-
Tasks
Print the GPG Public Key fingerprint associated with a given UID.
make secrets-gpg-show SECRETS_SOPS_UID=<uid>
-
The GPG UID is required for populating in
.sops.yaml.creation_rules: - pgp: "<fingerprint>" # <uid>
-
-
SOPS Encrypt/Decrypt
-
Tasks
Encrypt/decrypt one or more files in place using SOPS.
make secrets-sops-encrypt <files>
make secrets-sops-decrypt <files>
-
-
Docker containerization tool to run applications in isolated container environments and execute container-based tasks.
-
Insights and Details
- Dockerfile
Dockerfile defining the container image for the project.
- Dockerfile
-
Usage and Instructions
-
CI/CD
# TODO -
Tasks
# TODO
-
Conftest is a Policy as Code (PaC) tool to streamline policy management for improved development, security and audit capability.
-
Insights and Details
-
Configuration file for Conftest specifying policy paths and output formats.
-
Directory contains Rego policies for Conftest to enforce best practices and compliance standards.
-
-
Usage and Instructions
-
CI/CD
uses: sentenz/actions/regal@latest
uses: sentenz/actions/conftest@latest
-
Tasks
make policy-regal-lint <filepath>
make policy-conftest-test <filepath>
-
Trivy is a comprehensive security scanner for vulnerabilities, misconfigurations, and compliance issues in container images, filesystems, and source code.
-
Insights and Details
-
Configuration file for Trivy specifying scan settings and options.
-
File specifying vulnerabilities to ignore during Trivy scans.
-
-
Usage and Instructions
-
CI/CD
uses: sentenz/actions/trivy@latest
-
Tasks
make sast-trivy-fs <path>
make sast-trivy-sbom-cyclonedx-fs <path>
make sast-trivy-sbom-scan <sbom_path>
make sast-trivy-sbom-license <sbom_path>
-
TODO
- Sentenz Template DX repository.
- Sentenz Template C++ repository.
- Sentenz Actions repository.
- Sentenz Manager Tools article.