Skip to content

Commit

Permalink
fix(open_issue): sanity issue resolve
Browse files Browse the repository at this point in the history
  • Loading branch information
Wabri committed Mar 5, 2024
1 parent 75893d3 commit 46870f2
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 15 deletions.
12 changes: 6 additions & 6 deletions workflows/check_outdate_deps/check_outdate_deps.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env bash

pip3 install -r $REQUIREMENT_FILE
input=`pip3 list --outdated`
pip3 install -r "$REQUIREMENT_FILE"
input=$(pip3 list --outdated)

compare_versions() {
local version1=$1
Expand All @@ -12,8 +12,8 @@ compare_versions() {
read -ra version2_splitted <<< "$version2"

for ((i=0;i<${#version1_splitted[@]};i++)); do
delta=$(( ${version1_splitted[i]} - ${version2_splitted[i]} ))
if (( $delta != 0 )); then
delta=$(( version1_splitted[i] - version2_splitted[i] ))
if (( delta != 0 )); then
echo $delta
return
fi
Expand All @@ -27,8 +27,8 @@ while read -r line; do
version="${BASH_REMATCH[2]}"
latest="${BASH_REMATCH[3]}"

if [ $(compare_versions "$version" "$latest") -lt 0 ]; then
./workflows/check_outdate_deps/open_issue.py $package $version $latest
if [ "$(compare_versions "$version" "$latest")" -lt 0 ]; then
./workflows/check_outdate_deps/open_issue.py "$package" "$version" "$latest"
fi
fi
done <<< "$input"
20 changes: 11 additions & 9 deletions workflows/check_outdate_deps/open_issue.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
#!/usr/bin/env python3
#!/usr/bin/env python

import argparse
import requests
import os
import json


def get_description(requirement_file, package, latest):
return f"""The package {package} is outdated in {requirement_file}. The latest version is {latest}. Please update the package to the latest version.
Check the package [here](https://pypi.org/project/{package}/{latest}/) for more information.
"""


def get_title(requirement_file, package_name, current_version, latest_version):
return f"Dependency outdated in {requirement_file}: {package_name}:{current_version} -> {latest_version}"


if __name__ == '__main__':
# Arguments parsing
parser = argparse.ArgumentParser(description="Open issue with the correct argument")
Expand All @@ -25,19 +28,19 @@ def get_title(requirement_file, package_name, current_version, latest_version):
# Environment variable
repo = os.environ.get("GITHUB_REPOSITORY")
requirement_file = str(os.environ.get("REQUIREMENT_FILE"))

# Define the title
issue_title = get_title(requirement_file, args.package, args.version, args.latest)

# The double quote on the issue_title is necessary to avoid duplicate issues
query = f"repo:{repo} type:issue in:title \"{issue_title}\""

# Send the query
response = requests.get("https://api.github.com/search/issues", params={"q": query})
data = response.json()

# There is this error that we somehow try to avoid
# {'message': "API rate limit exceeded for 93.45.31.205. (But here's the good news: Authenticated requests get a higher rate limit. Check
# {'message': "API rate limit exceeded for 93.45.31.205. (But here's the good news: Authenticated requests get a higher rate limit. Check
# out the documentation for more details.)", 'documentation_url': 'https://docs.github.com/rest/overview/resources-in-the-rest-api#rat
# e-limiting'}
if data["total_count"] > 0:
Expand All @@ -47,12 +50,11 @@ def get_title(requirement_file, package_name, current_version, latest_version):
token = os.environ.get("GITHUB_TOKEN")
issue = {"title": issue_title, "body": issue_description}
headers = {"Authorization": f"token {token}"}

response = requests.post(f"https://api.github.com/repos/{repo}/issues", headers=headers, data=json.dumps(issue))

# Check the response
if response.status_code == 201:
print("Issue created successfully.")
else:
print(f"Failed to create issue. Status code: {response.status_code}.")

0 comments on commit 46870f2

Please sign in to comment.