Skip to content

Name commit and PR dynamically #44

Name commit and PR dynamically

Name commit and PR dynamically #44

name: Regenerate TidalApi Code
on:
push:
env:
TARGET_BRANCH: michael/mainTesting
permissions:
contents: write
pull-requests: write
jobs:
openapi-code-generation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get link to released openapi-generator fork .jar
id: get_release
run: |
REPO_OWNER="tidal-music"
REPO_NAME="openapi-generator"
curl -s -H -v "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/releases/latest" > release_info.json
# Extract the download URL for the desired asset (example: 'my-asset.zip')
ASSET_URL=$(jq -r '.assets[] | select(.name == "openapi-generator-cli.jar") | .browser_download_url' release_info.json)
echo "::set-output name=asset_url::$ASSET_URL"
- name: Download generator binary
run: |
REPO_OWNER="organization"
REPO_NAME="another-repo"
ASSET_URL=${{ steps.get_release.outputs.asset_url }}
curl -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/octet-stream" \
-o tidalapi/bin/openapi-generator-cli.jar \
"$ASSET_URL"
- name: Run the TidalAPI code generation
run: |
cd tidalapi
chmod +x ./bin/openapi-generator-cli.jar
python ./bin/generate-api-files.py ./bin/generate-api-config.json
git status
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
- name: List changed files in directory
id: check_changes
env:
DIRECTORY: "tidalapi/src/main/kotlin/com/tidal/sdk/tidalapi/generated"
run: |
# Ensure the target branch is fetched
git fetch origin ${{ env.TARGET_BRANCH }}
# Perform the diff against the target branch
changed_files=$(git diff --name-only origin/${{ env.TARGET_BRANCH }} -- "${{ env.DIRECTORY }}")
changed_file_count=$(echo "$changed_files" | grep -v '^$' | wc -l)
if [ "$changed_file_count" -eq 0 ]; then
echo "No files changed in the specified directory."
echo "changes_detected=false" >> $GITHUB_OUTPUT
else
echo "Files changed in the specified directory:"
echo "$changed_files"
echo "changes_detected=true" >> $GITHUB_OUTPUT
echo "changed_files=$changed_files" >> $GITHUB_OUTPUT
echo "changed_file_count=$changed_file_count" >> $GITHUB_OUTPUT
fi
- name: Commit changes
id: commit_changes
if: steps.check_changes.outputs.changes_detected == 'true'
run: |
git config user.email "svc-github-tidal-music-tools@block.xyz"
git config user.name "TIDAL Music Tools"
timestamp=$(date +"%Y-%m-%d-%H-%M-%S")
BRANCH_NAME="tidal-music-tools/Update-Tidal-Api-$timestamp"
git checkout -b $BRANCH_NAME
# Generate commit message with the number of changed files in the title and the list in the body
COMMIT_TITLE="Add ${{ steps.check_changes.outputs.changed_file_count }} files via GitHub Actions"
COMMIT_BODY="Changed files:\n${{ steps.check_changes.outputs.changed_files }}"
git add .
git commit -m "$COMMIT_TITLE"$'\n\n'"$COMMIT_BODY"
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
- name: Push changes
if: steps.check_changes.outputs.changes_detected == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_NAME: ${{ steps.commit_changes.outputs.branch_name }}
run: |
git push --set-upstream origin "${{env.BRANCH_NAME}}"
- name: Create Pull Request via API
if: steps.check_changes.outputs.changes_detected == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHANGED_FILES: ${{ steps.check_changes.outputs.changed_files }}
CHANGED_FILE_COUNT: ${{ steps.check_changes.outputs.changed_file_count }}
BRANCH_NAME: ${{ steps.commit_changes.outputs.branch_name }}
run: |

Check failure on line 109 in .github/workflows/regenerate_tidalapi_module.yml

View workflow run for this annotation

GitHub Actions / Regenerate TidalApi Code

Invalid workflow file

The workflow is not valid. .github/workflows/regenerate_tidalapi_module.yml (Line: 109, Col: 14): Unrecognized named-value: 'TARGET_BRANCH'. Located at position 1 within expression: TARGET_BRANCH
PR_TITLE="Update Tidal API - ${{env.CHANGED_FILE_COUNT}} files changed"
PR_BODY="Automatic PR to update TidalApi module.\n\nChanged files:\n${{ env.CHANGED_FILES }}"
PR_DATA=$(jq -n --arg title "$PR_TITLE" \
--arg head "${{env.BRANCH_NAME}}" \
--arg base "${{ TARGET_BRANCH }}" \
--arg body "$PR_BODY" \
'{title: $title, head: $head, base: $base, body: $body}')
echo $PR_DATA
curl -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
-d "$PR_DATA" \
https://api.github.com/repos/${{ github.repository }}/pulls