This repository contains a collection of useful scripts for various tasks and integrations. Below you'll find detailed information about each component and how to use them.
Scripts can be run directly from the repository without installation:
# Pattern
./<provider>/<script-name>.sh [arguments]
# Examples
./gitlab/mr-create.sh main -m "Fix user authentication"
./clickup/task-get.sh -t 987654321 -me -s "in progress"
./clickup/team-get.sh -s "john" -c "name,email"
For convenience, scripts can be installed system-wide to /usr/local/lib/scripts
and run with the scripts
command:
# Pattern after installation
scripts <provider> <action>
# Examples after installation
scripts gitlab mr-create <target_branch> [-m "MR Title"]
scripts clickup task-get -t 987654321 -me -s "in progress"
The repository includes an installation script (install.sh
) that:
- Installs the scripts to
/usr/local/lib/scripts
- Sets up auto-completion for the scripts
- Requires root privileges to install
- Adds necessary bash completion configurations
To install, run:
sudo ./install.sh
To update the scripts to the latest version, you can use the update command:
sudo scripts update
The update process:
- Downloads the latest version from GitHub
- Uninstalls the current version
- Installs the new version
- Requires root privileges to update
To remove the scripts from your system, you can use the uninstall command:
sudo scripts uninstall [flag]
Available flags:
-v, --verbose
: Show detailed information about what's being removed
Alternatively, you can run the uninstall script directly:
sudo ./uninstall.sh
A script to automate merge request creation in GitLab.
Features:
- Automatically creates merge requests from current branch
- Uses GitLab API with private token authentication
- Extracts commit message as MR title by default
- Supports custom MR title with -m flag
- Supports custom target branch selection
- Requires
GITLAB_PRIVATE_TOKEN
environment variable - Uses git config for PROJECT_ID and ASSIGNEE_ID
Usage:
mr-create.sh [target-branch] [-m "MR Title"]
mr-create.sh -m "MR Title" [target-branch]
Required Git Configuration:
# Set your GitLab project ID
git config --worktree --add remote.origin.projectid <PROJECT_ID>
# Set your GitLab user ID for assignment
git config --worktree --add remote.origin.assigneeid <ASSIGNEE_ID>
Note: GitLab numeric User ID can be found at https://gitlab.com/api/v4/users?username=
Manages ClickUp tasks through command line interface.
Features:
- Updates task status in ClickUp
- Handles multiple task IDs
- Requires
CU_PERSONAL_TOKEN
environment variable - Supports parent task relationships
Usage:
task-update.sh [task-ids] [status]
Retrieves tasks from ClickUp lists or teams with filtering options.
Features:
- Gets tasks from a specific list or team
- Filters tasks by assignees, status, or current user
- Supports
--only-me
flag to filter by authenticated user - Requires
CU_PERSONAL_TOKEN
environment variable - Displays task ID, name, status, assignees, and URL
Usage:
task-get.sh -l <LIST_ID> [-a <ASSIGNEE_IDS>] [-s <STATUS>] [-me] # Get tasks from specific list
task-get.sh -t <TEAM_ID> [-a <ASSIGNEE_IDS>] [-s <STATUS>] [-me] # Get tasks from team
Examples:
# Get all tasks from a list
scripts clickup task-get -l 123456789
# Get tasks assigned to specific users from a list
scripts clickup task-get -l 123456789 -a "12345,67890"
# Get your tasks from team with specific status
scripts clickup task-get -t 987654321 -me -s "in progress"
# Get tasks assigned to you from a list
scripts clickup task-get -l 123456789 -me
Lists ClickUp teams and their members in organized tables.
Features:
- Shows teams with ID and name headers
- Displays members in tables under each team
- Case-insensitive sorting by member name
- Column selection and filtering options
- Search members by name (case-insensitive)
- Filter teams by member email
Usage:
team-get.sh [-e <EMAIL>] [-s <SEARCH>] [-c <COLUMNS>]
Examples:
# Show all teams and members
scripts clickup team-get
# Show only specific columns
scripts clickup team-get -c "name,email"
# Search for members by name
scripts clickup team-get -s "john"
# Filter teams by member email
scripts clickup team-get -e "example.com"
# Combine filters
scripts clickup team-get -e "example.com" -s "smith" -c "name,email"
Available columns: id
, name
, email
, status
Retrieves current user information from ClickUp.
Features:
- Shows your ClickUp user ID, username, email, and color
- Useful for finding your user ID for assignee filtering
- Requires
CU_PERSONAL_TOKEN
environment variable
Usage:
scripts clickup user-info
Lists spaces within a ClickUp team.
Features:
- Shows all spaces in a team
- Displays space ID and name
- Requires
CU_PERSONAL_TOKEN
environment variable
Usage:
space-get.sh -t <TEAM_ID>
Example:
scripts clickup space-get -t 987654321
Retrieves lists from a ClickUp space.
Features:
- Shows all lists in a space
- Displays list ID, name, and task count
- Requires
CU_PERSONAL_TOKEN
environment variable
Usage:
list-get.sh -s <SPACE_ID>
Example:
scripts clickup list-get -s 123456789
Sends messages to Microsoft Teams channels via webhooks.
Features:
- Sends messages to Teams channels
- Uses webhook URLs for authentication
- Simple POST request implementation
Usage:
message-send.sh
Some unneccesary commands
- Bash shell environment
curl
for API requestsjq
for JSON processingrsync
for installationunzip
for update process- Proper environment variables set for various integrations
The following environment variables are required for different scripts:
GITLAB_PRIVATE_TOKEN
: For GitLab operationsCU_PERSONAL_TOKEN
: For ClickUp operations
- All scripts are executable shell scripts
- Each script performs input validation
- Error handling is implemented for API responses
- Scripts follow a consistent pattern for environment variable checking
This documentation was generated by Amazon Q with minimal modifications.