Update print.yml #44
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# name: Process Project Submission | |
# on: | |
# issues: | |
# types: [closed] | |
# jobs: | |
# extract-and-update: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout Repository | |
# uses: actions/checkout@v4 | |
# - name: Extract Issue Data | |
# id: extract_data | |
# run: | | |
# ISSUE_BODY=$(echo "${{ github.event.issue.body }}" | tr -d '\r') | |
# # Function to extract values correctly | |
# extract_field() { | |
# echo "$ISSUE_BODY" | awk -v field="### $1" 'tolower($0) ~ tolower(field) {getline; print $0}' | sed 's/^[ \t]*//;s/[ \t]*$//' | |
# } | |
# # Extract fields from the issue body | |
# PROJECT_NAME=$(extract_field "Project Name") | |
# PROJECT_DESCRIPTION=$(extract_field "Project Description") | |
# PROJECT_URL=$(extract_field "Project URL") | |
# DISCORD_USERNAME=$(extract_field "Discord Username or Social Profile Link") | |
# GITHUB_REPO=$(extract_field "GitHub Repository URL") | |
# ADDITIONAL_INFO=$(extract_field "Additional Information") | |
# CONTACT_INFO=$(extract_field "Contact Information") | |
# # Debug: print extracted fields | |
# echo "Extracted PROJECT_NAME: $PROJECT_NAME" | |
# echo "Extracted PROJECT_DESCRIPTION: $PROJECT_DESCRIPTION" | |
# echo "Extracted PROJECT_URL: $PROJECT_URL" | |
# echo "Extracted DISCORD_USERNAME: $DISCORD_USERNAME" | |
# echo "Extracted GITHUB_REPO: $GITHUB_REPO" | |
# echo "Extracted ADDITIONAL_INFO: $ADDITIONAL_INFO" | |
# echo "Extracted CONTACT_INFO: $CONTACT_INFO" | |
# # Replace empty fields with JSON "null" | |
# [[ -z "$PROJECT_NAME" ]] && PROJECT_NAME="null" || PROJECT_NAME="\"$PROJECT_NAME\"" | |
# [[ -z "$PROJECT_DESCRIPTION" ]] && PROJECT_DESCRIPTION="null" || PROJECT_DESCRIPTION="\"$PROJECT_DESCRIPTION\"" | |
# [[ -z "$PROJECT_URL" ]] && PROJECT_URL="null" || PROJECT_URL="\"$PROJECT_URL\"" | |
# [[ -z "$DISCORD_USERNAME" ]] && DISCORD_USERNAME="null" || DISCORD_USERNAME="\"$DISCORD_USERNAME\"" | |
# [[ -z "$GITHUB_REPO" || "$GITHUB_REPO" == "No response" ]] && GITHUB_REPO="null" || GITHUB_REPO="\"$GITHUB_REPO\"" | |
# [[ -z "$ADDITIONAL_INFO" ]] && ADDITIONAL_INFO="null" || ADDITIONAL_INFO="\"$ADDITIONAL_INFO\"" | |
# [[ -z "$CONTACT_INFO" ]] && CONTACT_INFO="null" || CONTACT_INFO="\"$CONTACT_INFO\"" | |
# # Create a valid JSON entry | |
# NEW_ENTRY="{\"project_name\": $PROJECT_NAME, \"project_description\": $PROJECT_DESCRIPTION, \"project_url\": $PROJECT_URL, \"discord_username\": $DISCORD_USERNAME, \"github_repo\": $GITHUB_REPO, \"additional_info\": $ADDITIONAL_INFO, \"contact\": $CONTACT_INFO}" | |
# echo "Extracted Project Entry: $NEW_ENTRY" | |
# # Store JSON entry in an environment variable | |
# echo "NEW_ENTRY=$(echo "$NEW_ENTRY" | jq -c .)" >> $GITHUB_ENV | |
# - name: Update projects.json | |
# run: | | |
# if [ ! -f projects.json ]; then | |
# echo "[]" > projects.json | |
# fi | |
# # Append the new entry to the JSON file safely | |
# jq '. += [env.NEW_ENTRY | fromjson]' projects.json > tmp.json && mv tmp.json projects.json | |
# - name: Commit and Push Changes | |
# run: | | |
# git config --global user.name "github-actions" | |
# git config --global user.email "actions@github.com" | |
# if git diff --quiet projects.json; then | |
# echo "No changes to commit." | |
# exit 0 | |
# fi | |
# git add projects.json | |
# git commit -m "Add new project entry from issue #${{ github.event.issue.number }}" | |
# git push https://x-access-token:${{ secrets.PAT_TOKEN }}@github.com/${{ github.repository }}.git | |
# env: | |
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }} |