name: Comment on Non-Sponsor Issue

on:
  issues:
    types: [opened]

jobs:
  comment:
    runs-on: ubuntu-latest
    steps:
      - name: Check Sponsor Status and Comment
        uses: actions/github-script@v7
        with:
          # github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            console.log("context:", context)
            let c = context
            const issueNumber = c.issue.number
            const issueCreator = c.payload.sender.login
            console.log("issueCreator:", issueCreator)
            const owner = c.repo.owner // this will be material-esm
            console.log("owner:", owner)
            const repo = c.repo.repo
            console.log("repo:", repo)
            try {
              let r = await github.rest.orgs.checkMembershipForUser({
                org: owner,
                username: issueCreator,
              });
              console.log("membership:", r)
              if(r.status == 204){
                console.log("user is a member")
                return
              }
            } catch(e) {
              console.log("error getting membership:", e)
            }
            if(owner == issueCreator){
              console.log("owner is issue creator")
              return
            }

            r = await github.graphql(`
              query {
                user(login:"${issueCreator}") {
                  sponsorshipForViewerAsSponsorable(activeOnly:true) {
                    tier {
                      name
                      monthlyPriceInDollars
                    }  
                  }
                }
              }`)
            console.log("r:", r)
            if(r.user?.sponsorshipForViewerAsSponsorable){
              // then this is a sponsor! 
              github.rest.issues.createComment({
                issue_number: c.issue.number,
                owner: c.repo.owner,
                repo: c.repo.repo,
                body: '👋 Thanks for being a sponsor! We will take a look at this issue right away.'
              })
            } else {
              const commentBody = `Thanks for the issue, @${issueCreator}!\n\nPlease consider supporting the project by becoming a sponsor: [GitHub Sponsors](https://github.com/sponsors/${owner}).\n\nSponsor issues get prioritized. If you get paid $100 per hour and this fix will save you an hour or more, then a $10 per month subscription for 10+ months will pay for itself.`
              github.rest.issues.createComment({
                issue_number: c.issue.number,
                owner: c.repo.owner,
                repo: c.repo.repo,
                body: commentBody,
              })
            }
