Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tranphuquy19/gs-duplicator

Gitlab Tools | Gitlab env variable Dropdown & Duplicate pipeline schedule | Mirror of: https://gitlab.com/tranphuquy19/gs-duplicator
https://github.com/tranphuquy19/gs-duplicator

cicd devops devops-tools extension gitlab pipeline tools-and-automation userscript

Last synced: 2 days ago
JSON representation

Gitlab Tools | Gitlab env variable Dropdown & Duplicate pipeline schedule | Mirror of: https://gitlab.com/tranphuquy19/gs-duplicator

Awesome Lists containing this project

README

        

# Gitlab Schedule Duplicator

Gitlab Schedule Duplicator is a user script that allows you easily duplicate, create, or update the Gitlab pipeline schedule.

- [Gitlab Schedule Duplicator](#gitlab-schedule-duplicator)
- [Features](#features)
- [Installation \& Update](#installation--update)
- [Usage](#usage)
- [Create or duplicate a schedule](#create-or-duplicate-a-schedule)
- [Edit a schedule](#edit-a-schedule)
- [Contributing](#contributing)
- [License](#license)

## Features

![feature 1](imgs/feature-1.png)

![feature 2](imgs/feature-2.png)

## Installation & Update

1. Install a user script manager:
- Install [Tampermonkey](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) extension for Chrome.
- Install [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) extension for Firefox.
2. Install/Update the script:
1. Click [here](https://gitlab.com/tranphuquy19/gs-duplicator/-/raw/main/dist/gs-duplicator.min.user.js) to install from the raw file.

2. Go to [Greasy Fork - Gitlab Schedule Duplicator](https://greasyfork.org/en/scripts/459307-gitlab-schedule-duplicator) to install from Greasy Fork.
3. Go to Gitlab and enjoy!

## Usage

### Create or duplicate a schedule

1. Go to the pipeline page.
2. Click the "Duplicate" button to duplicate the schedule. The schedule will be created with the same configuration as the current pipeline. Provide access token if the browser requests it. The access token needs to have the `api` scope. Click [here](https://gitlab.com/-/profile/personal_access_tokens) to create a new access token.

### Edit a schedule

Note: The dropdown option is extracted from the variable description of the CiConfig (aka. `.gitlab-ci.yml`) file.


The description of the variable must be in the following format:

```yaml
variables:
MY_VARIABLE:
value: "option1"
# The options are wrapped in square brackets and separated by commas (,). Must be at the beginning of the line.
description: "[option1, option2, option3] - description" # <- this is the description
```

Following options will be replaced by the corresponding values:

| Text | Description |
|---------------------------------|-----------------------------------------|
| `$glBranches()` | Returns all branches of current project |
| `$glBranches(:gitlabProjectId)` | Returns all branches of a project by Id |

| And that's it! Discover more features by yourself.

## Contributing

I'm open to any contributions. Feel free to open an issue or a pull request. Thank you! <3

## License

[MIT](LICENSE) © [Quy P. TRAN](https://github.com/tranphuquy19)