Skip to content
Snippets Groups Projects
setup-labels 1.9 KiB
Newer Older
## This script sets up labels for issues in your GitHub repository.
##
## Syntax:
##
##     $ tools/setup-label OWNER REPO
##
## Parameters:
##
## - OWNER: GitHub username of the owner of the repository
## - REPO: the name of the repository
##
## Example:
##
## For set up the labels at https://github.com/wking/swc-modular-shell use
##
##     $ tools/setup-label wking swc-modular-shell

if test $# -lt 2
then
    echo "Missing parameters."
    echo
    grep '^##' tools/setup-labels | sed 's/## //' | sed 's/##//'
    exit 1
fi

OWNER=$1
REPO=$2
GITHUB_URL=https://github.com/${OWNER}/${REPO}
LABELS=(getting-started working-in-progress discussion)
COLORS=(fbca04 f7c6c7 5319e7)
# Test if repository exists
curl -s --head ${GITHUB_URL} | head -n 1 | grep -q "HTTP/1.[01] [23].."
if test $? -ne 0
then
    echo "ERROR: this repository doesn't exist"
    exit $?
fi
echo "Before setup the labels for ${GITHUB_URL}"
echo "you must provide some informations."
echo "Your GitHub username:"
read USERNAME
echo "Your GitHub password:"
read -s PASSWORD
# Create labels
for INDEX in $(seq 1 ${#LABELS[*]})
    curl -s -f -X POST \
        -u ${USERNAME}:${PASSWORD} \
        -d "{\"name\":\"${LABELS[${INDEX}]}\",\"color\":\"${COLORS[${INDEX}]}\"}" \
        "https://api.github.com/repos/${OWNER}/${REPO}/labels" > /dev/null
    if test $? -ne 0
    then
        echo "Failed when trying to create the label ${LABELS[${INDEX}]}."
        echo "Probably the label ${LABELS[${INDEX}]} already exists."
        echo "Please check at ${GITHUB_URL}/labels or run"
        echo
        echo "    $ curl -X POST -u ${USERNAME} -d \"{\"name\":\"${LABELS[${INDEX}]}\",\"color\":\"${COLORS[${INDEX}]}\"}\" \"https://api.github.com/repos/${OWNER}/${REPO}/labels\""
        echo
        echo "to get more information of the error. If you find a bug"
        echo "report it at https://github.com/swcarpentry/lesson-template/."
    fi