Skip to content

Strava webhook subscription #11

Strava webhook subscription

Strava webhook subscription #11

name: Strava webhook subscription
on:
workflow_dispatch:
inputs:
action:
description: "Action to perform: 'view', 'create' or 'delete' subscription"
default: "view"
jobs:
setup-strava-webhook:
runs-on: ubuntu-22.04
steps:
- name: view subscription
if: ${{ github.event.inputs.action == 'view' }}
run: |
curl -sS -G https://www.strava.com/api/v3/push_subscriptions \
-d client_id=${STRAVA_CLIENT_ID} \
-d client_secret=${STRAVA_CLIENT_SECRET} | jq '.[] | .id'
env:
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_CLIENT_SECRET: ${{ secrets.STRAVA_CLIENT_SECRET }}
- name: create subscription
if: ${{ github.event.inputs.action == 'create' }}
run: |
curl -X POST https://www.strava.com/api/v3/push_subscriptions \
-F client_id=${STRAVA_CLIENT_ID} \
-F client_secret=${STRAVA_CLIENT_SECRET} \
-F verify_token=${STRAVA_VERIFY_TOKEN} \
-F callback_url=https://100-cims.vercel.app/api/strava/webhook
env:
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_CLIENT_SECRET: ${{ secrets.STRAVA_CLIENT_SECRET }}
STRAVA_VERIFY_TOKEN: ${{ secrets.STRAVA_VERIFY_TOKEN }}
- name: delete subscription
if: ${{ github.event.inputs.action == 'delete' }}
run: |
curl -sS -G https://www.strava.com/api/v3/push_subscriptions \
-d client_id=${STRAVA_CLIENT_ID} \
-d client_secret=${STRAVA_CLIENT_SECRET} | jq '.[] | .id' | xargs -I {} \
curl -X DELETE \
"https://www.strava.com/api/v3/push_subscriptions/{}?client_id=${STRAVA_CLIENT_ID}&client_secret=${STRAVA_CLIENT_SECRET}"
env:
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_CLIENT_SECRET: ${{ secrets.STRAVA_CLIENT_SECRET }}