Seryn is a DevOps-focused CLI tool that standardizes Git workflows across repositories based on team structure and organizational rules.
It enables developers and platform teams to quickly initialize, enforce, and upgrade Git repositories to canonical Git collaboration workflows such as Centralized, Feature Branch, Gitflow, and Forking workflows.
Student Name:
Registration Number:
Course: CSE3253 – DevOps [PE6]
Semester: VI (2025–2026)
Project Type: Git & DevOps Automation
Difficulty Level: Intermediate
In many teams, Git workflows are applied inconsistently across repositories.
Setting up branches, repository rules, and CI pipelines manually for every new project is error-prone and time-consuming.
There is a need for a repeatable, automated, and configurable tool that can apply standardized Git collaboration workflows reliably across single or multiple repositories, while respecting real-world constraints of hosting platforms such as GitHub.
- Automate Git repository initialization and workflow setup
- Enforce consistent branching strategies across teams
- Generate standard repository files and CI pipelines automatically
- Support batch processing of multiple repositories
- Demonstrate practical DevOps concepts such as CI/CD, containerization, IaC, and monitoring
- CLI-based Git workflow standardization
- Supports four canonical Git workflows:
- Centralized workflow
- Feature Branch workflow
- Gitflow workflow
- Forking workflow (documentation and policy support)
- Automatic generation of README,
.gitignore, CONTRIBUTING.md, and CI configuration - Workflow-specific branch creation and enforcement rules
- Batch mode using Go concurrency for multi-repository setup
- Dockerized execution for portability
- Cloud-backed template storage (S3 simulation)
- Webhook notifications on completion
- Programming Language: Go (Golang)
- CLI Framework: Standard Go CLI (
flag,os,exec) - Configuration: YAML
- Version Control: Git
- CI/CD: GitHub Actions
- Containerization: Docker
- Infrastructure as Code: Terraform
- Security Scanning: Trivy
- Monitoring / Alerts: Webhooks (Slack / Discord)
- Git 2.30+
- Go 1.21+
- Docker 20.10+
- GitHub account (for CI/CD)
git clone https://github.com/mel-edo/devops-project-git-workflow-customizer.git
cd devops-project-git-workflow-customizergo run src/main.go --workflow gitflow --repo /path/to/projectdocker build -t seryn .
docker run -v $(pwd):/repo seryn apply --workflow trunkdevops-project-git-workflow-customizer/
│
├── README.md
├── LICENSE
├── .gitignore
│
├── src/
│ ├── main.go
│ ├── go.mod
│ ├── config/
│ │ └── config.yaml
│ └── internal/
│ ├── gitops/
│ ├── generator/
│ ├── monitoring/
│ └── utils/
│
├── infrastructure/
│ ├── docker/
│ │ └── Dockerfile
│ │ └── docker-compose.yml
│ └── terraform/
│ └── main.tf
│
├── pipelines/
│ └── .github/workflows/
│ └── ci-cd.yml
│
├── tests/
│ ├── unit/
│ └── test-data/
│
├── monitoring/
│ └── alerts/
│ └── alert-config.json
│
├── docs/
│ ├── project-plan.md
│ ├── user-guide.md
│ └── design-document.md
│
└── deliverables/Seryn can be configured using a YAML file:
default_branch: main
workflow: gitflow # centralized | feature | gitflow | forking
require_reviews: true
repositories:
- /repo/project-a
- /repo/project-bSeryn enforces workflows differently based on their nature. Centralized, Feature Branch, and Gitflow workflows are fully enforced at the repository level. The Forking workflow is supported through repository policies and documentation scaffolding, as it depends on platform-level permissions outside the scope of a local Git CLI.
- Single shared repository
- Developers push directly to
main - CI runs on every push to
main
mainis protected- Feature branches (
feature/*,fix/*) - Pull requests required for merging
- CI triggered on pull requests
- Long-lived
mainanddevelopbranches - Feature branches merged into
develop - CI triggered on pull requests to
develop
- Intended for open-source or external contributors
- Direct pushes to
mainare restricted - CONTRIBUTING.md documents fork-based contribution flow
- Enforcement is partial due to reliance on hosting-platform permissions
The GitHub Actions pipeline performs:
- Code linting and formatting
- Go build and test
- Docker image build
- Security scan using Trivy
Pipeline definition:
pipelines/.github/workflows/ci-cd.yml- Unit tests verify file generation and workflow application
- Test data stored in tests/test-data/
- Tests run automatically in CI
go test ./...After successful workflow application, Seryn sends a webhook notification containing:
- Repository name
- Applied workflow
- Status (success/failure)
Webhook configuration:
monitoring/alerts/alert-config.json- Multi-stage build for minimal image size
- Alpine Linux base image
- Provisions an S3 bucket to store workflow templates
- Simulates enterprise policy storage
main
└── develop
├── feature/*
├── hotfix/*- feat: New feature
- fix: Bug fix
- docs: Documentation
- refactor: Code refactoring
- chore: Maintenance tasks
- No hard-coded secrets
- Environment-based configuration
- Container image scanning with Trivy
- Principle of least privilege (Terraform)
A demo video demonstrating:
- Repository initialization
- Workflow application
- Batch processing
- CI/CD pipeline execution