image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] :toc: macro :toc-title: Contents :toclevels: 3 :icons: font :source-highlighter: rouge :experimental: :url-repo: https://github.com/hyperpolymath/Universal-Project-Manager :url-mirror: https://gitlab.com/overarch-underpin/managers/universal-project-manager
A comprehensive, language-agnostic CI/CD framework that automatically detects project configurations and provides unified scripts for building, testing, linting, and deploying across multiple platforms.
This repository contains a complete, working CI/CD infrastructure framework. Below is a comprehensive breakdown of all implemented components.
Seven production-ready shell scripts comprising ~2,500+ lines of code:
| Script | Functionality | Status |
|---|---|---|
|
Auto-detection engine — Scans repositories to identify languages, package managers, test frameworks, and build systems. Outputs results as text or JSON. |
✅ Complete |
|
Dependency installer — Installs project dependencies using the detected package manager (npm/yarn/pnpm/bun, pip/pipenv/poetry, bundler, cargo, go modules, maven/gradle, composer, dotnet). |
✅ Complete |
|
Unified test runner — Executes tests across all supported frameworks with coverage reporting. Supports |
✅ Complete |
|
Code quality checker — Runs language-appropriate linters with optional auto-fix capability. Supports |
✅ Complete |
|
Build orchestrator — Compiles/packages projects using detected build systems. Supports |
✅ Complete |
|
Event-driven mirror sync — Synchronizes repositories between platforms (GitHub ↔ GitLab). Supports branch and tag propagation, dry-run mode. |
✅ Complete |
|
Sync verification — Validates that two remotes are synchronized. Generates detailed verification reports with discrepancy detection. |
✅ Complete |
The detection engine (detect.sh) recognizes:
| JavaScript |
|
| TypeScript |
|
| Python |
|
| Ruby |
|
| Go |
|
| Rust |
|
| Java |
|
| Kotlin |
|
| C |
|
| C++ |
|
| C# |
|
| PHP |
|
| Shell |
|
| Swift |
|
| Ecosystem | Package Managers | Detection Method |
|---|---|---|
Node.js |
npm, yarn, pnpm, bun |
Lock files ( |
Python |
pip, pipenv, poetry |
Config files ( |
Ruby |
Bundler |
|
Go |
Go Modules |
|
Rust |
Cargo |
|
Java/Kotlin |
Maven, Gradle |
|
PHP |
Composer |
|
.NET |
NuGet/dotnet |
|
| Language | Frameworks Detected |
|---|---|
JavaScript/TypeScript |
Jest, Mocha, Vitest, AVA, npm test scripts |
Python |
pytest, unittest, tox, nose |
Ruby |
RSpec, Minitest |
Go |
go test (built-in) |
Rust |
cargo test (built-in) |
Java |
JUnit (via Maven/Gradle) |
PHP |
PHPUnit |
.NET |
xUnit, NUnit, MSTest |
Shell |
BATS (Bash Automated Testing System) |
-
Make/CMake — C/C++ projects
-
npm scripts — Node.js build commands
-
Webpack/Vite/Rollup/esbuild — JavaScript bundlers
-
TypeScript compiler (tsc) — TS compilation
-
Python build — Wheel generation
-
Cargo — Rust compilation
-
Maven/Gradle — Java packaging
-
Docker/Docker Compose — Container builds
The .github/workflows/ci.yml workflow provides:
-
Automatic language detection on every push
-
Matrix testing across multiple OS and language versions
-
Dependency caching for faster builds
-
Code coverage reporting (Codecov integration)
-
Build artifact uploads
-
Docker image builds
-
Automatic releases on version tags
-
Event-driven mirror sync to GitLab
| Component | Description |
|---|---|
|
17 test cases covering language detection, package manager detection, test framework detection, build system detection, PRIMARY_LANGUAGE assignment, and JSON output generation |
|
Test orchestrator that runs BATS tests and shellcheck static analysis on all CI scripts. Auto-installs BATS if missing. |
| Document | Purpose |
|---|---|
|
Quick start guide with usage examples |
|
This comprehensive documentation (AsciiDoc format) |
|
Development roadmap from MVP through v2.0 |
|
Configuration guide for GitHub/GitLab secrets (SSH keys, tokens) |
|
Security policy and vulnerability reporting |
|
Contributor Covenant Code of Conduct v2.0 |
|
Citation formats for academic/professional use (BibTeX, APA, MLA, etc.) |
┌─────────────────────────────────────────────────────────────────────┐
│ Universal Project Manager │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Detection Engine │ │
│ │ detect.sh → Languages, Package Managers, Test Frameworks │ │
│ └───────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Setup Manager │ │
│ │ setup.sh → Install dependencies using detected PM │ │
│ └───────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌─────────────────────┼─────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Test │ │ Lint │ │ Build │ │
│ │ test.sh │ │ lint.sh │ │ build.sh │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Mirror Sync │ │
│ │ sync-mirror.sh ←→ verify-mirror.sh │ │
│ │ GitHub ←────────────────────────────→ GitLab │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘cp -r ci-scripts/ /path/to/your/project/
chmod +x /path/to/your/project/ci-scripts/*.sh./ci-scripts/detect.sh[INFO] Detecting project configuration in: /your/project
[SUCCESS] Detection complete!
Languages detected: javascript,typescript
Primary language: javascript
Package managers: npm
Test frameworks: jest
Build systems: npm-scripts,webpack.
├── ci-scripts/
│ ├── detect.sh # Auto-detection engine
│ ├── setup.sh # Dependency installer
│ ├── test.sh # Unified test runner
│ ├── lint.sh # Code quality checker
│ ├── build.sh # Build orchestrator
│ ├── sync-mirror.sh # Mirror synchronization
│ └── verify-mirror.sh # Sync verification
├── tests/
│ ├── test_detect.bats # BATS test suite (17 tests)
│ └── run_tests.sh # Test orchestrator
├── .github/
│ ├── workflows/
│ │ ├── ci.yml # Main CI/CD workflow
│ │ └── codeql.yml # Security scanning
│ └── dependabot.yml # Dependency updates
├── docs/
│ └── CITATIONS.adoc # Citation formats
├── .gitlab-ci.yml # GitLab CI configuration
├── README.adoc # This file
├── README.md # Quick start guide
├── ROADMAP.adoc # Development roadmap
├── SECRETS.md # Secrets configuration
├── SECURITY.md # Security policy
└── CODE_OF_CONDUCT.md # Community guidelines| Variable | Description | Default |
|---|---|---|
|
Project root directory |
Script’s parent directory |
|
CI environment flag |
|
|
Enable coverage reporting |
|
|
Enable verbose output |
|
|
Auto-fix lint issues |
|
|
Build mode ( |
|
UPM includes event-driven repository mirroring between GitHub and GitLab.
-
Generate an SSH key:
ssh-keygen -t ed25519 -C "github-to-gitlab-mirror" -f gitlab_mirror_key -
Add the public key to GitLab as a deploy key with write access
-
Add secrets to GitHub:
-
GITLAB_SSH_PRIVATE_KEY: Contents ofgitlab_mirror_key -
GITLAB_MIRROR_URL:git@gitlab.com:your/repo.git
-
-
Push to main/master to trigger sync
See SECRETS.md for detailed instructions.
See ROADMAP.adoc for the complete development roadmap.
| Milestone | Status |
|---|---|
Core CI scripts |
✅ Complete |
GitHub Actions workflow |
✅ Complete |
GitLab CI configuration |
✅ Complete |
Mirror sync |
✅ Complete |
Documentation |
🔄 In Progress |
Test coverage (80%+) |
📋 Planned |
Configuration file (upm.yml) |
📋 Planned |
CLI wrapper tool |
📋 Planned |
-
✓ Auto-detection for 10+ languages
-
✓ GitHub Actions workflow
-
✓ GitLab CI configuration
-
✓ Mirror sync support
-
❏ Configuration file support
-
❏ CLI wrapper tool
-
CodeQL — Automated security scanning
-
Dependabot — Automated dependency updates
-
SAST — Static Application Security Testing
See SECURITY.md for the security policy.
Contributions are welcome! Please read CODE_OF_CONDUCT.md first.
-
Fork the repository
-
Create a feature branch
-
Make your changes
-
Run tests:
./tests/run_tests.sh -
Submit a pull request
This project is licensed under the Palimpsest-MPL-1.0 License — see LICENSE for details.