86 lines
3.6 KiB
YAML
86 lines
3.6 KiB
YAML
name: Feature Request Greeting
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
greeting:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
issues: write
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Check if the issue is labeled as a Feature Request
|
|
id: check_feature_label
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH")
|
|
LABELS=$(gh issue view $ISSUE_NUMBER --json labels --jq '.labels[].name')
|
|
|
|
if echo "$LABELS" | grep -q 'enhancement'; then
|
|
echo "This issue is labeled as a feature request. Checking if the issue creator is the repository owner."
|
|
echo "skip_label_check=false" >> $GITHUB_ENV
|
|
else
|
|
echo "This issue is not labeled as a feature request. Skipping greeting message."
|
|
echo "skip_label_check=true" >> $GITHUB_ENV
|
|
fi
|
|
|
|
- name: Check if the user has submitted a feature request before
|
|
if: env.skip_label_check == 'false'
|
|
id: check_first_request
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
ISSUE_AUTHOR=$(jq -r '.issue.user.login' "$GITHUB_EVENT_PATH")
|
|
REPO_OWNER=$(jq -r '.repository.owner.login' "$GITHUB_EVENT_PATH")
|
|
ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH")
|
|
|
|
if [ "$ISSUE_AUTHOR" = "$REPO_OWNER" ]; then
|
|
echo "The issue creator is the repository owner. Skipping greeting message."
|
|
echo "skip_first_request=true" >> $GITHUB_ENV
|
|
else
|
|
echo "Checking for previous feature requests..."
|
|
# Get all issues (both open and closed) by the author except the current one
|
|
PREVIOUS_REQUESTS=$(gh issue list --author "$ISSUE_AUTHOR" --label "New Feature" --state all --json number --jq '. | map(select(.number != '$ISSUE_NUMBER')) | length')
|
|
echo "User $ISSUE_AUTHOR has submitted $PREVIOUS_REQUESTS feature request(s) previously"
|
|
|
|
if [ "$PREVIOUS_REQUESTS" -eq 0 ]; then
|
|
echo "This is the user's first feature request. Sending greeting message."
|
|
echo "skip_first_request=false" >> $GITHUB_ENV
|
|
else
|
|
echo "User has previous feature requests. Skipping greeting message."
|
|
echo "skip_first_request=true" >> $GITHUB_ENV
|
|
fi
|
|
fi
|
|
|
|
- name: Send Greeting Message
|
|
if: env.skip_label_check == 'false' && env.skip_first_request == 'false'
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
const issueNumber = context.payload.issue.number;
|
|
const message = `
|
|
**💡 Thank you for your feature request!**
|
|
Your request has been successfully submitted and is now under consideration. We value your input in shaping the future of Dantotsu.
|
|
|
|
**📈 What to Expect Next**
|
|
- Our team will review your request and assess its feasibility.
|
|
- We may reach out for additional details or clarification.
|
|
- Updates on the request will be provided, and it may be scheduled for future development.
|
|
|
|
**👥 Stay Connected**
|
|
- **[Discord](https://discord.com/invite/4HPZ5nAWwM)**: Join our community to discuss ideas and stay updated.
|
|
- **[Telegram](https://t.me/dantotsuapp)**: Connect with us directly for real-time updates.
|
|
|
|
We appreciate your suggestion and look forward to potentially implementing it!
|
|
`;
|
|
await github.rest.issues.createComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: issueNumber,
|
|
body: message
|
|
});
|