Files
firefly-iii/.github/workflows/issues-reply-old-versions.yml
2025-11-12 05:46:21 +01:00

116 lines
5.5 KiB
YAML

name: 'Issues - Respond to old versions'
# the workflow to execute on is comments that are newly created
on:
issues:
types: [ opened ]
# permissions needed for reacting to IssueOps commands on issues and PRs
permissions:
contents: read
pull-requests: write
issues: write
checks: read
jobs:
respond:
runs-on: ubuntu-latest
steps:
- id: ff3version
uses: pozetroninc/github-action-get-latest-release@master
with:
owner: firefly-iii
repo: firefly-iii
excludes: prerelease, draft
token: ${{ secrets.GITHUB_TOKEN }}
- id: importerversion
uses: pozetroninc/github-action-get-latest-release@master
with:
owner: firefly-iii
repo: data-importer
excludes: prerelease, draft
token: ${{ secrets.GITHUB_TOKEN }}
- run: |
ISSUE_BODY=$(gh issue view $NUMBER --json body)
# sure this can be done in a single step but still.
FFNOV="${{ steps.ff3version.outputs.release }}"
FFNOV="${FFNOV:1}"
DDNOV="${{ steps.importerversion.outputs.release }}"
DDNOV="${DDNOV:1}"
echo "Firefly III version is ${{ steps.ff3version.outputs.release }}, without v is $FFNOV"
echo "Data importer version is ${{ steps.ff3version.outputs.release }}, without v is $FFNOV"
# user includes no debug info at all, and does not mention current version.
# user includes no debug info at all, but does mention current version
# user includes debug info, but not the current version.
# user includes debug info, and the current version.
# first test: user includes no debug info at all, and does not mention current version.
if [[ $ISSUE_BODY == *"MZ2udTpin6FL"* && $ISSUE_BODY != *"Debug information generated at"* && $ISSUE_BODY != *${{ steps.ff3version.outputs.release }}* && $ISSUE_BODY != *${{ steps.importerversion.outputs.release }}* && $ISSUE_BODY != *$FFNOV* && $ISSUE_BODY != *$DDNOV* ]]; then
MESSAGE="Hi there!
This is an automated reply. \`Share and enjoy\`
You triggered an automated reply, because it looks like you didn't include the output from the \`/debug\` page. Would you be so kind as to do that? It helps the developers debug your issue more easily.
If you *did* include debug information or of if the debug information isn't relevant (or even reachable), my apologies for the intrusion."
gh issue comment "$NUMBER" --body "$MESSAGE"
echo "Triggered on first test"
exit 0
fi
# second test: user includes no debug info at all, but does mention current version
if [[ $ISSUE_BODY == *"MZ2udTpin6FL"* && $ISSUE_BODY != *"Debug information generated at"* && ( $ISSUE_BODY == *${{ steps.ff3version.outputs.release }}* || $ISSUE_BODY == *${{ steps.importerversion.outputs.release }}* || $ISSUE_BODY == *$FFNOV* || $ISSUE_BODY == *$DDNOV* ) ]]; then
MESSAGE="Hi there!
This is an automated reply. \`Share and enjoy\`
Thank you for running the latest version of Firefly III (or the data importer). You triggered an automated reply, because it looks like you didn't include the output from the \`/debug\` page. Would you be so kind as to do that? It helps the developers debug your issue more easily.
If you *did* include debug information or of if the debug information isn't relevant (or even reachable), my apologies for the intrusion."
gh issue comment "$NUMBER" --body "$MESSAGE"
echo "Triggered on second test"
exit 0
fi
# third test: user includes debug info, but not the current version.
if [[ $ISSUE_BODY == *"MZ2udTpin6FL"* && $ISSUE_BODY == *"Debug information generated at"* && $ISSUE_BODY != *${{ steps.ff3version.outputs.release }}* && $ISSUE_BODY != *${{ steps.importerversion.outputs.release }}* && $ISSUE_BODY != *$FFNOV* && $ISSUE_BODY != *$DDNOV* ]]; then
MESSAGE="Hi there!
This is an automated reply. \`Share and enjoy\`
Thank you for including debug information. You triggered an automated reply, because it looks like you're not running Firefly III version **${{ steps.ff3version.outputs.release }}** or version **${{ steps.importerversion.outputs.release }}** of the data importer.
Please make sure to upgrade to the latest version of Firefly III (or the data importer) *first*. This may already solve your issue.
If you *are* running the latest version, and this message is wrong, my apologies for the intrusion."
gh issue comment "$NUMBER" --body "$MESSAGE"
echo "Triggered on third test"
exit 0
fi
# fourth test: user includes debug info, and the current version.
if [[ $ISSUE_BODY == *"MZ2udTpin6FL"* && $ISSUE_BODY == *"Debug information generated at"* && ( $ISSUE_BODY == *${{ steps.ff3version.outputs.release }}* || $ISSUE_BODY == *${{ steps.importerversion.outputs.release }}* || $ISSUE_BODY == *$FFNOV* || $ISSUE_BODY == *$DDNOV* ) ]]; then
MESSAGE="Hi there!
This is an automated reply. \`Share and enjoy\`
Thank you for running the latest version of Firefly III (or the data importer)."
# gh issue comment "$NUMBER" --body "$MESSAGE"
echo "Triggered on fourth test"
exit 0
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}