-
-
Notifications
You must be signed in to change notification settings - Fork 6
83 lines (67 loc) · 3.79 KB
/
update-projects.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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 }}