#!/bin/bash
TOKEN="$1"
LABURL="https://lab.civicrm.org"
HOOKURL="https://civicrm.org/civicrm/timetrack/gitlab"
GROUP_ID="extensions"
SECRET="ct/dev"
PROJECTS=$(curl -s --request GET --header "PRIVATE-TOKEN: $TOKEN" "$LABURL/api/v4/groups/$GROUP_ID/projects?per_page=100" | jq '.[].id')
IFS=$'\n'
for id in $PROJECTS; do
echo "Project: $id"
existing_hooks=$(curl -s --request GET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $TOKEN" $LABURL/api/v4/projects/$id/hooks | jq '.[] | "\(.id) \(.url)"')
for h in $existing_hooks; do
echo " Hook: $h"
hook_id=$(echo $h | awk '{print $1}' | sed -e 's/"//g')
if [[ $h =~ $HOOKURL ]]; then
echo " Removing: $hook_id"
curl -s --request DELETE -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $TOKEN" $LABURL/api/v4/projects/$id/hooks/$hook_id
fi
done
curl -s --request POST -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $TOKEN" $LABURL/api/v4/projects/$id/hooks -d "{\"url\": \"$HOOKURL\", \"enable_ssl_verification\": true, \"issues_events\": true, \"merge_requests_events\": true, \"push_events\": false, \"token\": \"$SECRET\" }"
done
Comments
Please register or sign in to add a comment.