diff --git a/.github/workflows/postman-metrics.yml b/.github/workflows/postman-metrics.yml deleted file mode 100644 index a079fabcd2..0000000000 --- a/.github/workflows/postman-metrics.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Compare and Send Postman Fork Data - -on: - schedule: - - cron: '0 10 ? * 1' - workflow_dispatch: - -jobs: - compare-and-send-forks: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Fetch previous run's data from cache - uses: actions/cache/restore@v4 - with: - path: ./tools/postman/openapi/fork-data.json - key: fork-data-${{ github.run_id }} - restore-keys: | - fork-data- - - - name: Save previous run's data to file - working-directory: ./tools/postman/openapi - run: | - if [ -f fork-data.json ]; then - mv fork-data.json previous-fork-data.json - fi - - - name: Fetch current fork data - working-directory: ./tools/postman - env: - POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }} - WORKSPACE_ID: ${{ secrets.WORKSPACE_ID }} - run: make fetch_forks - - - name: Compare data.json with previous run's data - working-directory: ./tools/postman - run: make compare_forks - - - name: Send fork data to Slack - working-directory: ./tools/postman - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - run: make send_forks - - - name: Save current fork totals to cache - uses: actions/cache/save@v4 - with: - path: ./tools/postman/openapi/fork-data.json - key: fork-data-${{ github.run_id }} diff --git a/tools/postman/Makefile b/tools/postman/Makefile index e0c188d89c..cff840cf7b 100644 --- a/tools/postman/Makefile +++ b/tools/postman/Makefile @@ -35,21 +35,6 @@ build: fetch_openapi convert_to_collection .PHONY: build_and_upload build_and_upload: build transform_collection upload_collection -.PHONY: fetch_forks -fetch_forks: - ./scripts/fetch-forks.sh - -.PHONY: compare_forks -compare_forks: - ./scripts/compare-forks.sh - -.PHONY: send_forks -send_forks: - ./scripts/send-fork-data.sh - -.PHONY: compare_and_send_forks -compare_and_send_forks: compare_forks send_forks - .PHONY: clean clean: rm ./openapi/*; rm ./tmp/* diff --git a/tools/postman/README.md b/tools/postman/README.md index 6be5fa32b4..570f98b695 100644 --- a/tools/postman/README.md +++ b/tools/postman/README.md @@ -53,7 +53,7 @@ Our Postman collection generation has several limitations, meaning some manual u ## Postman folder structure -- `openapi` - Where the OpenAPI Spec, version information, and fork files are stored +- `openapi` - Where the OpenAPI Spec and version information are stored - `tmp` - Where the Postman Collection is generated and the temporary working files are stored - `scripts` - Where the Bash scripts are stored - `validation` - Where the files for spectral validation of the generated collection is stored diff --git a/tools/postman/scripts/compare-forks.sh b/tools/postman/scripts/compare-forks.sh deleted file mode 100755 index 60c5e9a3da..0000000000 --- a/tools/postman/scripts/compare-forks.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -######################################################### -# Compare number of forks for each collection to the previous week -# Environment variables: -# OPENAPI_FOLDER - folder for saving openapi file -# FORKS_DATA_FILE - file containing a list fork metrics for each collection -# PREVIOUS_FORKS_DATA_FILE - file containing the previous fork metrics -# MESSAGE_FILE - file where the message to send to Slack will be stored -######################################################### - -OPENAPI_FOLDER=${OPENAPI_FOLDER:-"../openapi"} -FORKS_DATA_FILE=${FORKS_DATA_FILE:-"fork-data.json"} -PREV_FORKS_DATA_FILE=${PREV_FORKS_DATA_FILE:-"previous-fork-data.json"} -MESSAGE_FILE=${MESSAGE_FILE:-"message.json"} - -pushd "${OPENAPI_FOLDER}" - -collection_ids=$(jq -r '.collections[].id' "$FORKS_DATA_FILE") - -message="" - -echo "Comparing fork data" -for collection_id in $collection_ids; do - collection_name=$(jq -r --arg id "$collection_id" '.collections[] | select(.id==$id) | .name' "$FORKS_DATA_FILE") - - current_forks=$(jq -r --arg id "$collection_id" '.collections[] | select(.id==$id) | .forks' "$FORKS_DATA_FILE") - - if [ -f "$PREV_FORKS_DATA_FILE" ]; then - previous_forks=$(jq -r --arg id "$collection_id" '.collections[] | select(.id==$id) | .forks' "$PREV_FORKS_DATA_FILE") - if [[ ! $previous_forks ]]; then - previous_forks=0 - fi - else - previous_forks=0 - fi - - difference=$((current_forks - previous_forks)) - - message+=$'\n\n'"$collection_name currently has a total of $current_forks forks. That is a difference of $difference from the last update" -done - -jq -n --arg message "$message" '{updates: $message}' > "$MESSAGE_FILE" - -popd -0 diff --git a/tools/postman/scripts/fetch-forks.sh b/tools/postman/scripts/fetch-forks.sh deleted file mode 100755 index 658d21ad3f..0000000000 --- a/tools/postman/scripts/fetch-forks.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -######################################################### -# Fetch number of forks of each collection -# Environment variables: -# OPENAPI_FOLDER - folder for saving openapi file -# COLLECTIONS_LIST_FILE - file containing a list of collections in the Postman Workspace -# FORKS_DATA_FILE - file containing a list fork metrics for each collection -# POSTMAN_API_KEY - API Key for Postman API -# WORKSPACE_ID - Identifier for current Postman Workspace -######################################################### - -OPENAPI_FOLDER=${OPENAPI_FOLDER:-"../openapi"} -COLLECTIONS_LIST_FILE=${COLLECTIONS_LIST_FILE:-"collections-list.json"} -FORKS_DATA_FILE=${FORKS_DATA_FILE:-"fork-data.json"} - -pushd "${OPENAPI_FOLDER}" - -echo "Fetching list of current collections" -curl --show-error --retry 5 --fail --silent -o "${COLLECTIONS_LIST_FILE}" \ - --location "https://api.getpostman.com/collections?workspace=${WORKSPACE_ID}" \ - --header "X-API-Key: ${POSTMAN_API_KEY}" - -collection_ids=$(jq -r '.collections[].id' "$COLLECTIONS_LIST_FILE") - -echo '{"collections": []}' > "$FORKS_DATA_FILE" - -for collection_id in $collection_ids; do - collection_name=$(jq -r --arg id "$collection_id" '.collections[] | select(.id==$id).name' "$COLLECTIONS_LIST_FILE") - - echo "Fetching fork data for collection: $collection_name" - response=$(curl --silent --retry 5 -w "%{http_code}" -o "current-collection.json" \ - --location "https://api.getpostman.com/collections/${collection_id}/forks" \ - --header "X-API-Key: ${POSTMAN_API_KEY}") - - http_code=${response: -3} - - if [ "$http_code" = "200" ]; then - forks=$(jq '.meta.total' current-collection.json) - else - forks=0 - fi - - # Add the ID, Name, Forks for current collection to JSON file - fork_data=$(jq -n --arg id "$collection_id" --arg name "$collection_name" --arg forks "$forks" \ - '{id: $id, name: $name, forks: $forks}') - - jq --argjson data "$fork_data" '.collections += [$data]' "$FORKS_DATA_FILE" > temp-"$FORKS_DATA_FILE" - mv temp-"$FORKS_DATA_FILE" "$FORKS_DATA_FILE" - -done - -popd -0 diff --git a/tools/postman/scripts/send-fork-data.sh b/tools/postman/scripts/send-fork-data.sh deleted file mode 100755 index 6a68e68c6a..0000000000 --- a/tools/postman/scripts/send-fork-data.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -######################################################### -# Send the Fork metrics message to Slack -# Environment variables: -# OPENAPI_FOLDER - folder for saving openapi file -# MESSAGE_FILE - file where the message to send to Slack will be stored -######################################################### - -OPENAPI_FOLDER=${OPENAPI_FOLDER:-"../openapi"} -MESSAGE_FILE=${MESSAGE_FILE:-"message.json"} - -pushd "${OPENAPI_FOLDER}" - -echo "Sending update to Slack" -curl --show-error --retry 5 --fail --silent \ - --location "$SLACK_WEBHOOK_URL" \ - --header "Content-Type: application/json" \ - --data "@${MESSAGE_FILE}" - -popd -0