A modern TUI for managing GitLab Pipeline Schedules
Features β’ Installation β’ Quick Start
π§ Project under development...
| Feature | Description |
|---|---|
| π Multi-Project Support | Manage pipeline schedules across multiple GitLab projects |
| π Full CRUD Operations | Create, read, update, and delete pipeline schedules |
| π― Vim-Style Navigation | Navigate with j/k or arrow keys |
| π Search & Filter | Quickly find schedules by description, branch, or cron |
| β¨οΈ Keyboard-Driven | All operations via intuitive keyboard shortcuts |
| π¨ Beautiful TUI | Modern terminal interface with colors and status indicators |
| π Secure | Tokens stored locally in ~/.config/glcron/ |
| Platform | Support | Notes |
|---|---|---|
| π macOS | β Available | Homebrew (Intel & Apple Silicon) |
| π§ Linux | β Available | Homebrew, DEB, RPM packages |
brew install nikitasova/glcron/glcron# Add GPG key
curl -fsSL https://nikitasova.github.io/glcron/repo/apt/glcron.gpg | sudo gpg --dearmor -o /usr/share/keyrings/glcron.gpg
# Add repository
echo "deb [signed-by=/usr/share/keyrings/glcron.gpg] https://nikitasova.github.io/glcron/repo/apt stable main" | sudo tee /etc/apt/sources.list.d/glcron.list
# Install
sudo apt update
sudo apt install glcron# Download from GitHub releases
curl -LO https://github.com/nikitasova/glcron/releases/latest/download/glcron_0.1.0-beta_linux_amd64.rpm
sudo rpm -i glcron_*.rpm# Clone the repository
git clone https://github.com/nikitasova/glcron.git
cd glcron
# Build
make build
# Or install to $GOPATH/bin
make installSoon...
glcronPress c to create a new configuration:
- Name: A friendly name (e.g., "My Project")
- Project URL:
https://gitlab.com/group/project - Token: Your GitLab Personal Access Token
- Go to GitLab β User Settings β Access Tokens
- Create a new token with
apiscope - Copy and use it when adding a configuration
β Note: You can create tokens with limited scopes, but
apiis required for full functionality.
β οΈ You also can create a token under project's parent group. http(s)://gitlab.yourdomain/[GROUP]/[project]
- Create GROUP token in GitLab
- add 'Project URL'
- add 'GROUP Access Token'
This will allow you to have a wider access across group's projects.
Select your configuration and start managing pipeline schedules!
| Key | Action |
|---|---|
β/β or j/k |
Navigate |
Enter |
Select configuration |
c |
Create new configuration |
e |
Edit configuration |
d |
Delete configuration |
q |
Quit |
| Key | Action |
|---|---|
β/β or j/k |
Navigate |
/ |
Search schedules |
c |
Create new schedule |
e or Enter |
Edit schedule |
d |
Delete schedule |
A |
Toggle active/inactive |
u |
Refresh from GitLab |
o |
Return to configurations |
q |
Quit |
| Key | Action |
|---|---|
Tab / Shift+Tab |
Next/Previous field |
Enter |
Select dropdown / Toggle checkbox |
Ctrl+S |
Save schedule |
Esc |
Cancel |
glcron stores configuration in
~/.config/glcron/glcron.json.
You can also manually edit the configuration file:
{
"configs": [
{
"name": "Test-1",
"project_url": "https://yourgitlab.com/yourgroup/yourproject-1",
"token": "token-1234567890abcdef",
"project_id": 1,
"base_url": "https://yourgitlab.com"
},
{
"name": "Test-2",
"project_url": "https://yourgitlab.com/yourgroup/yourproject-2",
"token": "token-1234567890abcdef",
"project_id": 2,
"base_url": "https://yourgitlab.com"
}
]
}# Run in development mode
make dev
# Build binary
make build
# Run tests
make test
# Format code
make fmt
# Build for all platforms
make build-all- Go 1.22+
- Terminal with color support
Contributions are welcome! Please feel free to submit a Pull Request.
- π΄ Fork the project
- π¨ Create your feature branch (
git checkout -b feat/amazing-feature) - π Commit your changes using Conventional Commits
- π§ͺ Run tests and linters (
make test quality-local) - π Push to the branch (
git push origin feat/amazing-feature) - π¬ Open a Pull Request
This project is licensed under the MIT License - see LICENSE for details.
- β Star the project
- π Report a bug
- π‘ Request a feature
- π£ Share the project with your friends
Thank you for your interrest ! π







