Add Belle Reservoir #93
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: Auto Theme Labeler | |
on: | |
issues: | |
types: [labeled] | |
jobs: | |
auto-label: | |
if: contains(github.event.issue.labels.*.name, 'Source Request') | |
runs-on: ubuntu-latest | |
env: | |
REPO: ${{ github.repository }} | |
ISSUE_NUMBER: ${{ github.event.issue.number }} | |
steps: | |
- name: Get Source Request URL | |
id: get_url | |
env: | |
ISSUE_BODY: ${{ github.event.issue.body }} | |
run: | | |
URL=$(echo "$ISSUE_BODY" | sed -n '/### Source link/,+2p' | sed '1,2d' | tr -d '[:space:]') | |
echo "URL=$URL" >> $GITHUB_OUTPUT | |
echo "Using URL: \`$URL\`" >> $GITHUB_STEP_SUMMARY | |
- name: Get User Agent | |
id: get_user_agent | |
run: | | |
CHROME_VERSION=$(curl -s https://chromiumdash.appspot.com/fetch_releases?channel=Stable\&platform=Windows\&num=1 | jq -r '.[0].version // "126.0.6478.36"') | |
echo "USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/$CHROME_VERSION Safari/537.36" >> $GITHUB_OUTPUT | |
- name: Get Base URL | |
id: get_base_url | |
env: | |
URL: ${{ steps.get_url.outputs.URL }} | |
run: | | |
BASE_URL=$(echo "$URL" | sed 's/https\?:\/\///' | cut -d'/' -f1) | |
echo "BASE_URL=$BASE_URL" >> $GITHUB_OUTPUT | |
echo "Using Base URL: \`$BASE_URL\`" >> $GITHUB_STEP_SUMMARY | |
- name: Check if URL is Valid | |
id: url_check | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
USER_AGENT: ${{ steps.get_user_agent.outputs.USER_AGENT }} | |
GH_TOKEN: ${{ github.token }} | |
OWNER: ${{ github.repository_owner }} | |
REPO_NAME: ${{ github.event.repository.name }} | |
run: | | |
check_url() { | |
local protocol=$1 | |
local url="${protocol}://${BASE_URL}" | |
if ! curl --output /dev/null --silent --head --fail "$url" -H "User-Agent: $USER_AGENT"; then | |
echo "❌ Error: Request Failed ($(curl --output /dev/null --silent --head --fail "$url" -H "User-Agent: $USER_AGENT" -w "%{http_code}"))" >> $GITHUB_STEP_SUMMARY | |
echo "URL is invalid or Cloudflare issue or site is down" >> $GITHUB_STEP_SUMMARY | |
curl -v "$url" -H "User-Agent: $USER_AGENT" > curl_output_${protocol}.txt 2>&1 | |
curl "$url" -H "User-Agent: $USER_AGENT" > curl_output_${protocol}.html | |
return 1 | |
fi | |
return 0 | |
} | |
if [[ -z "$BASE_URL" ]]; then | |
echo "url_valid=false" >> $GITHUB_OUTPUT | |
echo "❌ Error: URL Not Found" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
fi | |
if ! check_url "https" && check_url "http"; then | |
echo "url_valid=false" >> $GITHUB_OUTPUT | |
curl -v "$URL" -H "User-Agent: $USER_AGENT" > curl_output.txt 2>&1 | |
curl "$URL" -H "User-Agent: $USER_AGENT" > curl_output.html | |
gh issue comment $ISSUE_NUMBER -b ' | |
> [!WARNING] | |
> **Unable to Check for Themes** | |
> This issue may be due to Cloudflare protection on the website, an invalid URL, or the website being down. | |
*This message is for development purposes and can be ignored otherwise. [View GitHub Action](https://github.com/${{ env.OWNER }}/${{ env.REPO_NAME }}/actions/runs/${{ github.run_id }})* | |
' -R $REPO | |
exit 1 | |
fi | |
echo "url_valid=true" >> $GITHUB_OUTPUT | |
- name: Upload curl output | |
if: failure() | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: curl-output-${{ env.BASE_URL }} | |
path: | | |
./curl_output_http.txt | |
./curl_output_https.txt | |
./curl_output_http.html | |
./curl_output_https.html | |
- name: Check Madara theme | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_madara | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
USER_AGENT: ${{ steps.get_user_agent.outputs.USER_AGENT }} | |
run: | | |
if curl --location --output /dev/null --silent --head --fail "https://$BASE_URL/wp-content/themes/madara/style.css" -H "User-Agent: $USER_AGENT"; then | |
echo "madara=true" >> $GITHUB_OUTPUT | |
echo "✅ Madara Theme Detected" >> $GITHUB_STEP_SUMMARY | |
elif curl --location --output /dev/null --silent --head --fail "http://$BASE_URL/wp-content/themes/madara/style.css" -H "User-Agent: $USER_AGENT"; then | |
echo "madara=true" >> $GITHUB_OUTPUT | |
echo "✅ Madara Theme Detected" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "madara=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Check Lighnovelwp theme | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_lighnovelwp | |
env: | |
BASE_URL: ${{ steps.get_base_url.outputs.BASE_URL }} | |
USER_AGENT: ${{ steps.get_user_agent.outputs.USER_AGENT }} | |
run: | | |
if curl --location --output /dev/null --silent --head --fail "https://$BASE_URL/wp-content/themes/lightnovel/style.css" -H "User-Agent: $USER_AGENT"; then | |
echo "lighnovelwp=true" >> $GITHUB_OUTPUT | |
echo "✅ Lighnovelwp Theme Detected" >> $GITHUB_STEP_SUMMARY | |
elif curl --location --output /dev/null --silent --head --fail "http://$BASE_URL/wp-content/themes/lightnovel/style.css" -H "User-Agent: $USER_AGENT"; then | |
echo "lighnovelwp=true" >> $GITHUB_OUTPUT | |
echo "✅ Lighnovelwp Theme Detected" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "lighnovelwp=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Check if the site has multiple themes | |
if: steps.url_check.outputs.url_valid == 'true' | |
id: check_multiple_themes | |
env: | |
MADARA: ${{ steps.check_madara.outputs.madara }} | |
LIGHNOVELWP: ${{ steps.check_lighnovelwp.outputs.lighnovelwp }} | |
run: | | |
if [[ "$MADARA" == "true" && "$LIGHNOVELWP" == "true" ]]; then | |
echo "multiple_themes=true" >> $GITHUB_OUTPUT | |
echo "❌ Error: Multiple Themes Detected on Site" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
fi | |
echo "multiple_themes=false" >> $GITHUB_OUTPUT | |
- name: Add Label | |
if: steps.check_multiple_themes.outputs.multiple_themes == 'false' | |
env: | |
MADARA: ${{ steps.check_madara.outputs.madara }} | |
LIGHNOVELWP: ${{ steps.check_lighnovelwp.outputs.lighnovelwp }} | |
run: | | |
if [[ "$MADARA" == "true" ]]; then | |
gh issue edit $ISSUE_NUMBER --add-label "Theme: Madara" -R $REPO | |
elif [[ "$LIGHNOVELWP" == "true" ]]; then | |
gh issue edit $ISSUE_NUMBER --add-label "Theme: Lighnovelwp" -R $REPO | |
else | |
echo "No Theme Detected" >> $GITHUB_STEP_SUMMARY | |
fi |