check duplicate issue before report
This commit is contained in:
parent
0e9829e82c
commit
4f38b4aeeb
@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
import requests
|
import requests
|
||||||
|
from datetime import datetime, timedelta, UTC
|
||||||
|
|
||||||
|
|
||||||
def github_api_headers(**kwargs):
|
def github_api_headers(**kwargs):
|
||||||
@ -18,6 +19,23 @@ def report_issue(github_repository: str, title: str, body: str, **kwargs):
|
|||||||
print('report issue repository not found')
|
print('report issue repository not found')
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
|
if issue_check_id := kwargs.get('id'):
|
||||||
|
body = f'{body}\n----{issue_check_id}'
|
||||||
|
try:
|
||||||
|
response = requests.get(f'https://api.github.com/repos/{github_repository}/issues',
|
||||||
|
headers=github_api_headers(github_token=kwargs.get('github_token')),
|
||||||
|
params={
|
||||||
|
'state': 'open',
|
||||||
|
'since': (datetime.now(UTC) - timedelta(days=10)).strftime('%Y-%m-%dT%H:%M:%S') + 'Z',
|
||||||
|
'per_page': 100,
|
||||||
|
})
|
||||||
|
exist_issues = response.json()
|
||||||
|
for issue in exist_issues:
|
||||||
|
if issue.get('body').endswith(f'----{issue_check_id}'):
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
print(f'fetch from exist issues failed: {e}')
|
||||||
|
|
||||||
response = requests.post(f'https://api.github.com/repos/{github_repository}/issues',
|
response = requests.post(f'https://api.github.com/repos/{github_repository}/issues',
|
||||||
headers=github_api_headers(github_token=kwargs.get('github_token')),
|
headers=github_api_headers(github_token=kwargs.get('github_token')),
|
||||||
json={
|
json={
|
||||||
|
|||||||
15
main.py
15
main.py
@ -126,12 +126,6 @@ def parse(plugin: AddonInfo, **kwargs):
|
|||||||
force_download=True)
|
force_download=True)
|
||||||
details = addon_details(xpi_filepath)
|
details = addon_details(xpi_filepath)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
report_issue(kwargs.get('github_repository'),
|
|
||||||
title=f'Parse xpi detail failed',
|
|
||||||
body=f'url:{xpi_url}\n'
|
|
||||||
f'repo:{plugin.repo}\n'
|
|
||||||
f'reason:{e}',
|
|
||||||
github_token=kwargs.get('github_token'))
|
|
||||||
print(f'fetch addon detail of {plugin.repo} with {xpi_url} failed: {e}')
|
print(f'fetch addon detail of {plugin.repo} with {xpi_url} failed: {e}')
|
||||||
|
|
||||||
if details:
|
if details:
|
||||||
@ -156,12 +150,14 @@ def parse(plugin: AddonInfo, **kwargs):
|
|||||||
report_issue(kwargs.get('github_repository'),
|
report_issue(kwargs.get('github_repository'),
|
||||||
title=f'Parse {plugin.repo} of zotero version failed',
|
title=f'Parse {plugin.repo} of zotero version failed',
|
||||||
body=f'xpi:{plugin.repo}@{release.tagName} on {release.targetZoteroVersion}\n',
|
body=f'xpi:{plugin.repo}@{release.tagName} on {release.targetZoteroVersion}\n',
|
||||||
github_token=kwargs.get('github_token'))
|
github_token=kwargs.get('github_token'),
|
||||||
|
id=f'Parse min/max version failed: {plugin.repo}+{release.tagName}@{release.targetZoteroVersion}')
|
||||||
else:
|
else:
|
||||||
report_issue(kwargs.get('github_repository'),
|
report_issue(kwargs.get('github_repository'),
|
||||||
title=f'Parse {plugin.repo} addon details failed',
|
title=f'Parse {plugin.repo} addon details failed',
|
||||||
body=f'xpi:{plugin.repo}@{release.tagName} on {release.targetZoteroVersion}\n',
|
body=f'xpi:{plugin.repo}@{release.tagName} on {release.targetZoteroVersion}\n',
|
||||||
github_token=kwargs.get('github_token'))
|
github_token=kwargs.get('github_token'),
|
||||||
|
id=f'Parse details failed: {plugin.repo}+{release.tagName}@{release.targetZoteroVersion}')
|
||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -175,7 +171,8 @@ def parse(plugin: AddonInfo, **kwargs):
|
|||||||
f'min zotero Version:{invalid_release.minZoteroVersion}\n'
|
f'min zotero Version:{invalid_release.minZoteroVersion}\n'
|
||||||
f'max Zotero version:{invalid_release.maxZoteroVersion}'
|
f'max Zotero version:{invalid_release.maxZoteroVersion}'
|
||||||
f'expect Zotero version:{invalid_release.zotero_check_version}\n',
|
f'expect Zotero version:{invalid_release.zotero_check_version}\n',
|
||||||
github_token=kwargs.get('github_token'))
|
github_token=kwargs.get('github_token'),
|
||||||
|
id=f'Target zotero version not match: {plugin.repo}+{invalid_release.tagName}@{release.targetZoteroVersion}')
|
||||||
plugin.releases.remove(invalid_release)
|
plugin.releases.remove(invalid_release)
|
||||||
return plugin
|
return plugin
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user