Skip to content

Commit b913e00

Browse files
authored
Merge pull request #13 from sclorg/fix_logging_reamd
Fix logging reamd
2 parents aab2aaf + affedf5 commit b913e00

20 files changed

Lines changed: 259 additions & 261 deletions

.auto-merger.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ github:
2525
approval_labels:
2626
- "READY-to-MERGE"
2727
gitlab:
28-
namespace: "redhat/rhel/containers"
28+
namespace: "redhat/rhel/containers"

.github/workflows/python-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
name: Tox test
1414
strategy:
1515
matrix:
16-
tox_env: [py38, py39, py310, py311, py312]
16+
tox_env: [py311, py312, py313]
1717
# Use GitHub's Linux Docker host
1818
runs-on: ubuntu-latest
1919
steps:

.pre-commit-config.yaml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
repos:
66
- repo: https://github.com/pre-commit/pre-commit-hooks
7-
rev: v2.2.3
7+
rev: v4.4.0
88
hooks:
99
- id: check-added-large-files
1010
- id: check-ast
@@ -13,11 +13,19 @@ repos:
1313
- id: detect-private-key
1414
- id: end-of-file-fixer
1515
- id: trailing-whitespace
16-
- id: flake8
17-
args:
18-
- --max-line-length=120
19-
- repo: https://github.com/pre-commit/mirrors-mypy
20-
rev: v0.711
16+
- repo: https://github.com/PyCQA/flake8
17+
rev: 6.0.0
2118
hooks:
22-
- id: mypy
23-
args: [--no-strict-optional, --ignore-missing-imports]
19+
- id: flake8
20+
additional_dependencies: [
21+
"flake8-blind-except==0.2.0",
22+
"flake8-mutable==1.2.0",
23+
"pep8-naming==0.11.1",
24+
]
25+
args:
26+
- --max-line-length=120
27+
- repo: https://github.com/psf/black
28+
rev: 23.3.0
29+
hooks:
30+
- id: black
31+
args: [--line-length=120]

README.md

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,36 +82,25 @@ the email service is configured, then the results are send to corresponding emai
8282

8383
# Automatic pull request merger
8484

85-
This option is used for analysation pull request in the specific namespace and repositories mentioned
85+
This option is used for analyzation pull request in the specific namespace and repositories mentioned
8686
in configuration file. At the end `auto-merger` provides the output into command line.
8787

8888
```bash
89-
$ auto-merger pr-checker --help
90-
Usage: auto-merger pr-checker [OPTIONS]
89+
$ auto-merger merger --help
90+
Usage: auto-merger merger [OPTIONS]
9191
9292
Options:
9393
--send-email TEXT Specify email addresses to which the mail will be sent.
9494
--help Show this message and exit.
9595
9696
```
9797

98-
The real output from `auto-merger pr-checker` could be:
98+
The real output from `auto-merger merger` could be:
9999
```bash
100-
s2i-ruby-container
101-
------
102-
103-
https://github.com/sclorg/s2i-ruby-container/pull/570 pr/missing-review pr/failing-ci
104-
https://github.com/sclorg/s2i-ruby-container/pull/569 dependencies ruby pr/missing-review
100+
SUMMARY
101+
https://github.com/sclorg/mariadb-container/pull/262 -> CAN BE MERGED
102+
Let's try to merge 262....
105103
106-
s2i-nodejs-container
107-
------
108-
109-
https://github.com/sclorg/s2i-nodejs-container/pull/463 pr/missing-review pr/failing-ci
110-
https://github.com/sclorg/s2i-nodejs-container/pull/236 pr/missing-review
111-
112-
113-
Pull requests that can be merged or missing 2 approvals
114-
https://github.com/sclorg/s2i-python-container/pull/574 - Missing 2 APPROVAL
115104
```
116105

117106
In case user specifies `--send-email`, multipletimes, and the system where is auto-merger running

auto-merger

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ from auto_merger.exceptions import AutoMergerConfigException
3737

3838
logger = logging.getLogger("auto-merger")
3939

40+
4041
@click.group("auto-merger")
4142
@click.option("-d", "--debug", is_flag=True, default=False, help="Enable debug logs")
4243
@click.pass_context
@@ -56,12 +57,14 @@ def auto_merger(ctx, debug):
5657
sys.exit(10)
5758
ctx.obj = c
5859
logger.debug(f"auto_merger Debug: {ctx.obj.debug}")
60+
ctx.obj.debug = debug
5961
if ctx.obj.debug:
6062
setup_logger(level=logging.DEBUG)
6163
else:
6264
setup_logger(level=logging.INFO)
6365
logger.debug("Let's get analyses")
6466

67+
6568
auto_merger.add_command(pr_checker)
6669
auto_merger.add_command(merger)
6770

auto_merger/api.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@
2222

2323
import logging
2424

25-
from typing import List
26-
2725
from auto_merger.pr_checker import PRStatusChecker
2826
from auto_merger.config import Config
2927
from auto_merger.merger import AutoMerger
3028

31-
logger = logging.getLogger("auto-merger")
29+
logger = logging.getLogger(__name__)
30+
3231

33-
def pull_request_checker(config: Config, send_email: List[str]) -> int:
32+
def pull_request_checker(config: Config, send_email: list[str] | None) -> int:
3433
"""
3534
Checks NVR from brew build against pulp
3635
"""
36+
logger.debug(f"Configuration: {config.__str__()}")
3737
pr_status_checker = PRStatusChecker(config=config)
3838
ret_value = pr_status_checker.check_all_containers()
3939
if ret_value != 0:
@@ -46,8 +46,8 @@ def pull_request_checker(config: Config, send_email: List[str]) -> int:
4646
return ret_value
4747

4848

49-
def merger(config: Config, send_email: List[str]) -> int:
50-
logger.debug(f"merger: {config.__str__()}")
49+
def merger(config: Config, send_email: list[str] | None) -> int:
50+
logger.debug(f"Configuration: {config.__str__()}")
5151
auto_merger = AutoMerger(config=config)
5252
ret_value = auto_merger.check_all_containers()
5353
if ret_value != 0:
@@ -57,4 +57,4 @@ def merger(config: Config, send_email: List[str]) -> int:
5757
if send_email:
5858
if not auto_merger.send_results(send_email):
5959
return 1
60-
return ret_value
60+
return ret_value

auto_merger/cli/merger.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,17 @@
2828
from auto_merger.config import pass_config
2929
from auto_merger import api
3030

31-
logger = logging.getLogger("auto-merger")
31+
32+
logger = logging.getLogger(__name__)
33+
3234

3335
@click.command("merger")
34-
@click.option("--send-email", multiple=True, help="Specify email addresses to which the mail will be sent.")
36+
@click.option(
37+
"--send-email",
38+
multiple=True,
39+
help="Specify email addresses to which the mail will be sent.",
40+
)
3541
@pass_config
3642
def merger(config, send_email):
37-
3843
ret_value = api.merger(config=config, send_email=send_email)
3944
sys.exit(ret_value)
40-

auto_merger/cli/pr_checker.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,12 @@
3232

3333

3434
@click.command("pr-checker")
35-
@click.option("--send-email", multiple=True, help="Specify email addresses to which the mail will be sent.")
35+
@click.option(
36+
"--send-email",
37+
multiple=True,
38+
help="Specify email addresses to which the mail will be sent.",
39+
)
3640
@pass_config
3741
def pr_checker(config, send_email):
3842
ret_value = api.pull_request_checker(config=config, send_email=send_email)
3943
sys.exit(ret_value)
40-

auto_merger/config.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,23 @@
2121
# SOFTWARE.
2222

2323
import logging
24-
import yaml
2524
import click
2625

2726
from yaml import safe_load
2827

2928
from pathlib import Path
30-
from typing import Dict
3129

32-
from auto_merger.exceptions import AutoMergerConfigException, AutoMergerNetworkException
30+
from auto_merger.exceptions import AutoMergerConfigException
3331

3432

3533
logger = logging.getLogger("auto-merger")
3634

3735

3836
class Config:
39-
4037
def __init__(self):
4138
self.debug: bool = True
42-
self.github: Dict = {}
43-
self.gitlab: Dict = {}
39+
self.github: dict = {}
40+
self.gitlab: dict = {}
4441

4542
@classmethod
4643
def get_default_config(cls) -> "Config":
@@ -70,7 +67,7 @@ def get_from_dict(cls, raw_dict: dict) -> "Config":
7067
return config
7168

7269
def __repr__(self):
73-
return f"Config(debug={self.debug}, github={self.github}, " \
74-
f"gitlab={self.gitlab})"
70+
return f"Config(debug={self.debug}, github={self.github}, " f"gitlab={self.gitlab})"
71+
7572

7673
pass_config = click.make_pass_decorator(Config)

auto_merger/email.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@
2323
import smtplib
2424
import logging
2525

26-
from email.mime.application import MIMEApplication
2726
from email.mime.multipart import MIMEMultipart
2827
from email.mime.text import MIMEText
29-
from typing import List
3028

3129
logger = logging.getLogger(__name__)
3230

33-
class EmailSender:
3431

35-
def __init__(self, recipient_email: List[str] = None):
32+
class EmailSender:
33+
def __init__(self, recipient_email=None):
34+
if recipient_email is None:
35+
recipient_email = []
3636
self.recipient_email = recipient_email
3737
self.mime_msg = MIMEMultipart()
3838
self.send_from = ""
39-
self.send_to = ""
39+
self.send_to = [""]
4040

4141
def create_email_msg(self, subject_msg: str):
4242
if not self.recipient_email:
@@ -50,14 +50,17 @@ def create_email_msg(self, subject_msg: str):
5050
self.mime_msg["To"] = ", ".join(self.send_to)
5151
self.mime_msg["Subject"] = subject_msg
5252

53-
def send_email(self, subject_msg, body: List[str] = None):
53+
def send_email(self, subject_msg, body=None):
54+
if body is None:
55+
body = []
5456
whole_body = "".join(body)
55-
msg = ("<html><head><style>table, th, td {border: 1px solid black;}</style></head>"
56-
f"<body>{whole_body}</body></html>")
57+
msg = (
58+
"<html><head><style>table, th, td {border: 1px solid black;}</style></head>"
59+
f"<body>{whole_body}</body></html>"
60+
)
5761
self.create_email_msg(subject_msg)
5862
self.mime_msg.attach(MIMEText(msg, "html"))
5963
smtp = smtplib.SMTP("127.0.0.1")
6064
smtp.sendmail(self.send_from, self.send_to, self.mime_msg.as_string())
6165
smtp.close()
62-
print("Sending email finished")
63-
66+
logger.info("Sending email finished")

0 commit comments

Comments
 (0)