diff --git a/.github/workflows/issue_closer.yml b/.github/workflows/issue_closer.yml index 44782fa45b..d3784944f6 100644 --- a/.github/workflows/issue_closer.yml +++ b/.github/workflows/issue_closer.yml @@ -8,132 +8,7 @@ jobs: comment: runs-on: ubuntu-latest steps: - - name: Get the latest version. - run: | - tag=$(git ls-remote --tags git://github.com/$GITHUB_REPOSITORY | cut -f 2 | tail -n1) - echo $tag - echo "LATEST_TAG=$tag" >> $GITHUB_ENV - - - name: Get the latest macOS version. - shell: python - run: | - import subprocess; - from xml.dom import minidom; - - url = "https://osx.telegram.org/updates/versions.xml"; - subprocess.check_call("wget %s" % url, shell=True); - - xmldoc = minidom.parse('versions.xml'); - itemlist = xmldoc.getElementsByTagName('enclosure'); - ver = itemlist[0].attributes['sparkle:shortVersionString'].value; - print(ver); - - open(os.environ['GITHUB_ENV'], "a").write("LATEST_MACOS=" + ver); - - - name: Check a version from an issue. - uses: actions/github-script@0.4.0 + - name: Process an issue. + uses: desktop-app/action_issue_closer@master with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - let errorStr = "Version not found."; - - function maxIndexOf(str, i) { - let index = str.indexOf(i); - return (index == -1) ? Number.MAX_SAFE_INTEGER : index; - } - - let item1 = "Version of Telegram Desktop"; - let item2 = "Installation source"; - let item3 = "Used theme"; - let item4 = "
"; - let body = context.payload.issue.body; - - console.log("Body of issue:\n" + body); - let index1 = body.indexOf(item1); - let index2 = Math.min( - Math.min( - maxIndexOf(body, item2), - maxIndexOf(body, item3)), - maxIndexOf(body, item4)); - - console.log("Index 1: " + index1); - console.log("Index 2: " + index2); - - if (index1 == -1) { - console.log(errorStr); - return; - } - - function parseVersion(str) { - let pattern = /[0-9]\.[0-9][0-9.]{0,}/g; - return str.match(pattern); - } - function firstNum(version) { - return version[0].split(".")[0]; - } - - let issueVer = parseVersion(body.substring(index1 + item1.length, index2)); - - if (issueVer == undefined) { - console.log(errorStr); - return; - } - console.log("Version from issue: " + issueVer[0]); - - let latestVer = parseVersion(process.env.LATEST_TAG); - - if (latestVer == undefined) { - console.log(errorStr); - return; - } - console.log("Version from tags: " + latestVer[0]); - - let issueNum = firstNum(issueVer); - let latestNum = firstNum(latestVer); - - let macos_ver = process.env.LATEST_MACOS; - console.log("Telegram for MacOS version from website: " + macos_ver); - - if (issueNum <= latestNum && issueNum < macos_ver) { - console.log("Seems the version of this issue is fine!"); - return; - } - if (issueNum > macos_ver) { - let message = `Seems like it's neither the Telegram Desktop\ - nor the Telegram for macOS version. - `; - console.log(message); - return; - } - - let message = ` - Sorry, but according to the version you specify in this issue, \ - you are using the [Telegram for macOS](https://macos.telegram.org), \ - not the [Telegram Desktop](https://desktop.telegram.org). - You can report your issue to [the group](https://t.me/macswift) \ - or to [the repository of Telegram for macOS](https://github.com/overtake/TelegramSwift). - - **If I made a mistake and closed your issue wrongly, please reopen it. Thanks!** - `; - - let params = { - owner: context.issue.owner, - repo: context.issue.repo, - issue_number: context.issue.number - }; - - github.issues.createComment({ - ...params, - body: message - }); - - github.issues.addLabels({ - ...params, - labels: ['TG macOS Swift'] - }); - - github.issues.update({ - ...params, - state: 'closed' - }); - + token: ${{ secrets.GITHUB_TOKEN }}