Skip to content

nikitasova/glcron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

glcron logo

glcron

A modern TUI for managing GitLab Pipeline Schedules

Release License Stars Forks Go Version

Features β€’ Installation β€’ Quick Start

🚧 Project under development...

✨ Features

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

Platform Support Notes
🍎 macOS βœ… Available Homebrew (Intel & Apple Silicon)
🐧 Linux βœ… Available Homebrew, DEB, RPM packages

πŸ“¦ Installation

Homebrew (macOS/Linux)

brew install nikitasova/glcron/glcron

Debian/Ubuntu (APT)

# 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

Fedora/RHEL (RPM)

# 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

From Source

# Clone the repository
git clone https://github.com/nikitasova/glcron.git
cd glcron

# Build
make build

# Or install to $GOPATH/bin
make install

πŸš€ Quick Start

glcron demo video

Soon...

1. Run glcron

glcron

2. Add a GitLab Configuration

Press 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

Creating a GitLab Token

  1. Go to GitLab β†’ User Settings β†’ Access Tokens
  2. Create a new token with api scope
  3. Copy and use it when adding a configuration

❗ Note: You can create tokens with limited scopes, but api is required for full functionality.

GitLab Token Creation


⚠️ You also can create a token under project's parent group. http(s)://gitlab.yourdomain/[GROUP]/[project]

  1. Create GROUP token in GitLab
  2. add 'Project URL'
  3. add 'GROUP Access Token'

This will allow you to have a wider access across group's projects.


Empty config list

Add new config

3. Manage Schedules

Select your configuration and start managing pipeline schedules!

πŸ“– Usage

Screenshots

Configuration List
Configuration List

Schedule List
Schedule List

Create Schedule
Edit Schedule

Edit Schedule
Edit Schedule

Keyboard Shortcuts

Configuration Screen

Key Action
↑/↓ or j/k Navigate
Enter Select configuration
c Create new configuration
e Edit configuration
d Delete configuration
q Quit

Schedule List Screen

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

Edit Schedule Screen

Key Action
Tab / Shift+Tab Next/Previous field
Enter Select dropdown / Toggle checkbox
Ctrl+S Save schedule
Esc Cancel

βš™οΈ Configuration

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"
      }
    ]
  }

πŸ› οΈ Development

# 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

πŸ“‹ Requirements

  • Go 1.22+
  • Terminal with color support

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. 🍴 Fork the project
  2. πŸ”¨ Create your feature branch (git checkout -b feat/amazing-feature)
  3. πŸ“ Commit your changes using Conventional Commits
  4. πŸ§ͺ Run tests and linters (make test quality-local)
  5. πŸš€ Push to the branch (git push origin feat/amazing-feature)
  6. πŸ“¬ Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see LICENSE for details.

❀️‍πŸ”₯ Support

Thank you for your interrest ! 😊

About

Gitlab Cron (glcron) - TUI tool to manage Gitlab's scheduled tasks

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Contributors