diff --git a/.github/scripts/upcoming_api_releases.sh b/.github/scripts/upcoming_api_releases.sh deleted file mode 100755 index f1a85a2d19..0000000000 --- a/.github/scripts/upcoming_api_releases.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -set -eou pipefail - -# This script checks for upcoming API version releases within the next 3 weeks. -# It performs the following steps: -# 1. Fetches and parses the `versions.json` file using in the `mongodb/openapi` repository on the `dev` branch -# 2. Gets the current date in seconds since epoch. -# 3. Determines if the system is macOS or Linux to use the appropriate `date` command format. -# 4. Iterates through each date in the `version_dates`: -# a. Converts the date to seconds since epoch. -# b. Calculates the difference in days between the date and the current date. -# c. Checks if the date is within 3 weeks (21 days) and adds it to the list if it is. -# 5. Outputs the API versions that will be released in the next 3 weeks to the GitHub Actions output variable if any are found. - - -URL="https://raw.githubusercontent.com/mongodb/openapi/dev/openapi/v2/versions.json" - -# Fetch the version.json file -response=$(curl -s "${URL}") - -# Parse the version_dates from the JSON response using jq -version_dates=$(echo "${response}" | jq -r '.[]') - -# Initialize an empty list to store version_dates within 3 weeks -version_dates_within_3_weeks=() - -# Get the current date in seconds since epoch -current_date=$(date +%s) - -# Determine if the system is macOS or Linux -if [[ "$(uname)" == "Darwin" ]]; then - # macOS date command format - date_command="date -j -f %Y-%m-%d" -else - # Linux date command format - date_command="date -d" -fi - -# Iterate through each date -for version_date in ${version_dates}; do - # Convert the date to seconds since epoch with explicit format - date_in_seconds=$($date_command "${version_date}" +%s 2>/dev/null) - - # Calculate the difference in days between the date and the current date - diff_in_days=$(( (date_in_seconds - current_date) / (60 * 60 * 24) )) - - # Check if the date is within 3 weeks (21 days) - if [[ "${diff_in_days}" -ge 0 && "${diff_in_days}" -le 21 ]]; then - # Add the date to the list if within 3 weeks - version_dates_within_3_weeks+=("${version_date}") - fi -done - -if [[ ${#version_dates_within_3_weeks[@]} -gt 0 ]]; then - echo "API Versions that will be release in the next 3 weeks: ${version_dates_within_3_weeks[*]}" - echo api_versions="${version_dates_within_3_weeks[*]}" >> "${GITHUB_OUTPUT:?}" -else - echo "No API Versions that will be released within the next 3 weeks." -fi diff --git a/.github/workflows/api-versions-reminder.yml b/.github/workflows/api-versions-reminder.yml index 01b1048cf0..fd8562faa8 100644 --- a/.github/workflows/api-versions-reminder.yml +++ b/.github/workflows/api-versions-reminder.yml @@ -6,38 +6,6 @@ on: - cron: '0 9 * * 1' # at 9:00 UTC on Monday jobs: - new-api-version-reminder: - name: New API Version Release Reminder - runs-on: ubuntu-latest - steps: - - name: Checkout repository (dev branch) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - sparse-checkout: - .github/scripts/upcoming_api_releases.sh - - - name: Install Python - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 - with: - python-version: '3.12' - - - name: Check if there are upcoming API versions releases - id: check-api-versions - run: .github/scripts/upcoming_api_releases.sh - - # Send Slack notification only if the Jira ticket was created - - name: Send Slack Notification - if: steps.check-api-versions.outputs.api_versions != null - env: - SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID_APIX_2 }} - SLACK_BEARER_TOKEN: ${{ secrets.SLACK_BEARER_TOKEN }} - API_VERSIONS: ${{ steps.check-api-versions.outputs.api_versions }} - run: | - message_id=$(curl -X POST -H 'Authorization: Bearer '"${SLACK_BEARER_TOKEN}" \ - -H 'Content-type: application/json' \ - --data '{"channel":"'"${SLACK_CHANNEL_ID}"'","text":"The following API Versions are scheduled to be released in the next 3 weeks: '"${API_VERSIONS}"'.","parse": "full",}' https://slack.com/api/chat.postMessage | jq '.ts') - echo "message_id=${message_id}" - sunset-api-version-reminder: name: Sunset APIs Reminder runs-on: ubuntu-latest