Conversation
|
Report bugs in Issues The following are automatically added:
Available user actions:
Supported /retest check runs
Supported labels
|
WalkthroughThis pull request introduces several updates across multiple files in the repository. Key changes include modifications to the Changes
Possibly related issues
Possibly related PRs
Suggested labels
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Outside diff range and nitpick comments (12)
tox.ini (1)
11-16: LGTM with a minor suggestion for improvement.The addition of the
pytestenvironment aligns well with the PR objective to add a simple test. Using poetry for dependency management is a good practice.Consider adding the
--verboseflag to the pytest command for more detailed test output:[testenv:pytest] deps = poetry commands = poetry install - poetry run pytest webhook_server_container/tests + poetry run pytest webhook_server_container/tests --verboseThis will provide more information during test runs, which can be helpful for debugging and understanding test results.
pyproject.toml (1)
66-69: LGTM! Consider documenting pytest version upgrade if applicable.The addition of test dependencies aligns well with the PR objective to add a simple test for
get_size. The use of pytest and pytest-mock will facilitate effective unit testing.If this is an upgrade from a previous pytest 7.x version, consider adding a note in the project's changelog or documentation about this major version upgrade, as it might introduce breaking changes for existing tests.
webhook_server_container/utils/helpers.py (4)
90-91: LGTM! Consider moving logger initialization.The changes to use a local logger instead of a global one are good. This allows for more flexible and context-specific logging.
Consider moving the logger initialization to the beginning of the function to avoid creating a new logger on each function call:
def run_command(...): logger = get_logger_with_params(name="helpers") # Rest of the function...This would slightly improve performance, especially if the function is called frequently.
Also applies to: 95-95, 114-114, 119-119, 124-124
155-156: LGTM! Consider moving logger initialization.The changes to use a local logger instead of a global one are good. This allows for more flexible and context-specific logging.
Similar to the previous function, consider moving the logger initialization to the beginning of the function:
def get_api_with_highest_rate_limit(config: Config, repository_name: str = "") -> Tuple[Github | None, str | None]: logger = get_logger_with_params(name="helpers") # Rest of the function...This would slightly improve performance, especially if the function is called frequently.
Also applies to: 170-170, 176-176
181-182: LGTM! Consider moving logger initialization.The changes to use a local logger instead of a global one are good. This allows for more flexible and context-specific logging.
As with the previous functions, consider moving the logger initialization to the beginning of the function:
def log_rate_limit(rate_limit: RateLimit, api_user: str) -> None: logger = get_logger_with_params(name="helpers") # Rest of the function...This would slightly improve performance, especially if the function is called frequently.
Also applies to: 201-201, 203-203
Line range hint
206-221: Update docstring for consistency with logger changes.While the implementation of this function hasn't changed, the docstring still references the global
LOGGER. For consistency with the changes made to other functions, consider updating the docstring.Update the docstring as follows:
def get_future_results(futures: List["Future"]) -> None: """ result must return Tuple[bool, str, Callable] where the Callable is a logging function (e.g., logger.info, logger.error, etc.) """ # Rest of the function...This change reflects the move from a global
LOGGERto localloggerinstances used in other functions.webhook_server_container/utils/github_repository_settings.py (3)
160-162: LGTM with a suggestion: Consistent logging improvements, but consider securityThe changes maintain consistency with previous functions, enhancing modularity and readability. However, be cautious about logging sensitive information.
Consider masking the docker username and password in the log message to prevent potential security risks. You could use a helper function to mask sensitive data:
def mask_sensitive_data(data: str) -> str: return data[:3] + '*' * (len(data) - 3) if len(data) > 3 else '***' # Usage logger.info(f"Login in to docker.io with username {mask_sensitive_data(docker_username)}")Also applies to: 167-167
283-284: LGTM with a minor suggestion: Consistent logging improvementsThese changes maintain consistency with previous functions, enhancing modularity and readability. Great job!
Consider reformatting the multi-line f-string in the warning log message for better readability:
logger.warning( f"{repository}: [PR:{pull_request.number}] {check_run.name} status is {IN_PROGRESS_STR}. " f"Setting check run {check_run.name} to {QUEUED_STR}" )This small change improves code readability without changing functionality.
Also applies to: 288-288, 292-292, 297-303
307-309: LGTM with a minor suggestion: Consistent logging improvementsThese changes maintain consistency with previous functions, enhancing modularity and readability. Well done!
Consider reformatting the multi-line f-string in the error log message for better readability:
logger.error( f"Repository {repository_name} not found by manage-repositories-app. " "Make sure the app is installed (https://github.com/apps/manage-repositories-app)" )This small change improves code readability without changing functionality.
Also applies to: 322-325
webhook_server_container/libs/github_api.py (3)
620-633: Improved readability and maintainability of theget_sizemethodThe refactored
get_sizemethod is a significant improvement over the previous implementation. It uses a more readable and maintainable approach to determine the size label for a pull request.Pros:
- The use of lists for
threshold_sizesandprefixesmakes the code more flexible and easier to modify in the future.- The logic is more straightforward and easier to understand at a glance.
- The method is more concise, reducing the overall line count.
Suggestions for further improvement:
- Consider using a dictionary to map thresholds to labels, which could make the code even more concise and easier to maintain.
- Add a brief comment explaining the size calculation logic for future maintainers.
Here's a potential further refactoring using a dictionary:
def get_size(self) -> str: """Calculates size label based on additions and deletions.""" size = self.pull_request.additions + self.pull_request.deletions # Define size thresholds and their corresponding labels size_labels = { } for threshold, label in sorted(size_labels.items()): if size < threshold: return f"{SIZE_LABEL_PREFIX}{label}" return f"{SIZE_LABEL_PREFIX}XXL"This version is even more concise and easier to maintain, as adding or modifying size thresholds only requires updating the
size_labelsdictionary.
665-671: Improved logging inadd_size_labelmethodThe addition of a debug log when no size label is found is a good improvement. It enhances the observability of the code and will aid in troubleshooting.
Suggestion for further improvement:
Consider logging the calculated size value along with the message. This would provide more context for debugging.Consider modifying the debug log as follows:
self.logger.debug(f"{self.log_prefix} Size label not found. Calculated size: {self.pull_request.additions + self.pull_request.deletions}")This will provide more information for debugging purposes if a size label is not assigned as expected.
635-663: Consider removing commented-out codeThe old implementation of the
get_sizemethod is kept as a comment. While this can be useful for reference in the short term, it's generally not a good practice to keep large blocks of commented-out code in the long term.Suggestions:
- If this code is kept for historical reasons, consider moving it to the commit message or pull request description.
- If it's no longer needed, remove it entirely to reduce code clutter.
Remove the commented-out code if it's no longer needed:
- # def get_size(self) -> str: - # """Calculate size label based on additions and deletions.""" - # size: int = self.pull_request.additions + self.pull_request.deletions - # if size < 20: - # _label = "XS" - # - # elif size < 50: - # _label = "S" - # - # elif size < 100: - # _label = "M" - # - # elif size < 300: - # _label = "L" - # - # elif size < 500: - # _label = "XL" - # - # else: - # _label = "XXL" - # - # return f"{SIZE_LABEL_PREFIX}{_label}" - # # size = self.pull_request.additions + self.pull_request.deletions - # # prefixes = ["XS", "S", "M", "L", "XL", "XXL"] - # # for prefix in prefixes: - # # if size < 20 * (prefix[:-1].upper() == "S") + 10: - # # return f"{SIZE_LABEL_PREFIX}{prefix}" - # # - # # return ""
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
🔇 Files ignored due to path filters (1)
poetry.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
- .gitignore (1 hunks)
- .pre-commit-config.yaml (1 hunks)
- pyproject.toml (1 hunks)
- tox.ini (1 hunks)
- webhook_server_container/libs/github_api.py (1 hunks)
- webhook_server_container/tests/test_github_api.py (1 hunks)
- webhook_server_container/utils/github_repository_settings.py (9 hunks)
- webhook_server_container/utils/helpers.py (5 hunks)
🔇 Additional comments not posted (16)
tox.ini (3)
2-2: LGTM: Updated envlist aligns with PR objectives.The addition of
unused-codeandpytestenvironments in theenvlistis appropriate for the PR's goal of adding a simple test. This change ensures that both unused code checks and the new test will be run as part of the tox execution.
5-9: Approve unused code check with a clarification request.The addition of the
unused-codeenvironment is a good practice for maintaining code quality. However, could you please clarify why functions with the prefix 'process_webhook' are being excluded from the unused code check?To ensure this exclusion is intentional and necessary, please run the following command:
#!/bin/bash # Description: Check for the usage of functions with 'process_webhook' prefix echo "Searching for 'process_webhook' function definitions:" rg --type python '^\s*def\s+process_webhook' echo "\nSearching for 'process_webhook' function calls:" rg --type python 'process_webhook\w*\('This will help us understand if these functions are indeed used and require exclusion from the unused code check.
1-16: Overall LGTM, but test file forget_sizeis missing.The changes to
tox.iniimprove the project's testing infrastructure and align with the PR objectives. However, the PR title mentions adding a simple test forget_size, but the specific test file is not included in this review.To ensure the test for
get_sizehas been added, please run the following command:This will help us verify that the test for
get_sizehas been added as mentioned in the PR title.webhook_server_container/tests/test_github_api.py (2)
10-18: LGTM: Mock classes are well-defined.The
RepositoryandPullRequestmock classes are appropriately defined with the necessary attributes for testing purposes. They are simple and focused, which is good for unit testing.
5-5: Verify the import ofosfromstringcolor.ops.The import of
osfromstringcolor.opsis unusual. Typically,osis a built-in Python module. Please verify if this import is correct or if it should be changed toimport os..gitignore (1)
149-149: LGTM. Please clarify the relation to PR objectives.The addition of
tests/manifests/log-colors.jsonto the.gitignorefile is a good practice. It suggests that this file is generated during tests and should not be tracked in version control.However, I noticed that the PR title mentions adding a simple test for
get_size, which doesn't seem directly related to this change. Could you please clarify how this.gitignoreupdate relates to the PR objectives?To verify if there are any related changes, let's run the following script:
This script will help us understand if there are any related changes that might explain the connection between the PR objectives and this
.gitignoreupdate.webhook_server_container/utils/github_repository_settings.py (10)
44-47: LGTM: Improved logging and string formattingThe changes here improve code modularity by using a function-specific logger and enhance readability with f-strings. Good job!
65-67: LGTM: Consistent logging improvementsThese changes align with the previous function, enhancing modularity and readability. Well done!
71-71: LGTM: Consistent string formattingThe use of f-strings here maintains consistency with previous changes and improves code readability.
Also applies to: 74-74
133-135: LGTM: Consistent logging improvementsThese changes maintain consistency with previous functions, enhancing modularity and readability.
150-150: LGTM: Consistent string formattingThe use of f-strings here maintains consistency with previous changes and improves code readability.
Also applies to: 153-153
192-195: LGTM: Consistent logging improvementsThese changes maintain consistency with previous functions, enhancing modularity and readability.
Also applies to: 199-199
206-206: LGTM: Consistent string formattingThe use of f-strings here maintains consistency with previous changes and improves code readability.
Also applies to: 212-212, 215-215
245-245: LGTM: Consistent string formattingThe use of f-strings here maintains consistency with previous changes and improves code readability.
Also applies to: 248-248, 250-250
330-331: LGTM: Consistent logging improvementsThese changes in the main block maintain consistency with previous functions, enhancing modularity and readability. Good job!
Also applies to: 342-342
Line range hint
1-342: Overall assessment: Excellent improvements in logging and string formattingThe changes made throughout this file consistently improve code modularity, readability, and maintainability. The replacement of the global logger with function-specific loggers and the use of f-strings for log messages are positive changes that align with best practices.
A few minor suggestions were made for further improvements:
- Consider masking sensitive data in log messages (e.g., docker credentials).
- Some multi-line f-strings could be formatted for better readability.
These small refinements aside, the changes are well-implemented and improve the overall quality of the code. Great work!
|
/retest tox |
|
/verified |
There was a problem hiding this comment.
Actionable comments posted: 11
🧹 Outside diff range and nitpick comments (2)
webhook_server_container/tests/manifests/config.yaml (2)
47-50: Suggestion: Add comment explaining tox configurationThe tox configuration for different branches is clear, but it might benefit from a brief explanation.
Consider adding a comment to explain the purpose of these settings:
tox: # Define which tox environments to run based on the target branch main: all # Run all tests when targeting the main branch dev: testenv1,testenv2 # Run specific environments for the dev branch
53-60: Suggestion: Add comment explaining protected branches configurationThe protected branches configuration is clear, but it might benefit from a brief explanation of its purpose and the significance of including or excluding certain runs.
Consider adding a comment to explain the configuration:
protected-branches: # Define protection rules for specific branches dev: [] # No specific rules for dev branch main: # Rules for the main branch # Specify which checks must pass before merging include-runs: - "pre-commit.ci - pr" - "WIP" # Specify which checks can be skipped exclude-runs: - "SonarCloud Code Analysis"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
- .gitignore (1 hunks)
- webhook_server_container/tests/manifests/config.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- .gitignore
🔇 Additional comments not posted (1)
webhook_server_container/tests/manifests/config.yaml (1)
41-47: Events configuration looks goodThe events configuration appears to be well-structured and appropriate. It clearly defines which events the webhook should listen for.
| name: my-org/test-repo | ||
| log-level: DEBUG # Override global log-level for repository | ||
| log-file: test-repo.log # Override global log-file for repository | ||
| slack_webhook_url: <Slack webhook url> # Send notification to slack on several operations |
There was a problem hiding this comment.
Security concern: Slack webhook URL exposed
The Slack webhook URL is exposed in plain text. This could be a security risk if the configuration file is compromised.
Consider using an environment variable for the Slack webhook URL:
slack_webhook_url: ${SLACK_WEBHOOK_URL}| container: | ||
| username: <registry username> | ||
| password: <registry_password> | ||
| repository: <registry_repository_full_path> | ||
| tag: <image_tag> | ||
| release: true # Push image to registry on new release with release as the tag | ||
| build-args: # build args to send to podman build command | ||
| - my-build-arg1=1 | ||
| - my-build-arg2=2 | ||
| args: # args to send to podman build command | ||
| - --format docker | ||
|
|
There was a problem hiding this comment.
Security concern and clarity improvements for container configuration
-
The container username and password are exposed in plain text, which is a security risk.
-
The configuration could benefit from comments explaining the purpose of certain settings.
-
Replace sensitive information with environment variables:
container:
username: ${CONTAINER_REGISTRY_USERNAME}
password: ${CONTAINER_REGISTRY_PASSWORD}- Add comments to explain the purpose of certain settings:
container:
# ... (username and password as above)
repository: <registry_repository_full_path>
tag: <image_tag>
release: true # Push image to registry on new release, using the release as the tag
build-args: # Arguments passed to the container build process
- my-build-arg1=1
- my-build-arg2=2
args: # Additional arguments for the podman build command
- --format docker # Ensure the built image is compatible with DockerThese changes will improve security and make the configuration more self-explanatory.
| log-file: webhook-server.log # Set global log file, change take effect immediately without server restart | ||
|
|
||
| github-app-id: 123456 # GitHub app id | ||
| github-toekns: |
There was a problem hiding this comment.
Fix typo in 'github-tokens' key
There's a typo in the key "github-toekns".
Please correct it to "github-tokens":
-github-toekns:
+github-tokens:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| github-toekns: | |
| github-tokens: |
|
/verified |
|
New container for quay.io/myakove/github-webhook-server:latest published |
* chore(deps): update poetry-deps (#415) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * enable to run tox with specific python version * [pre-commit.ci] pre-commit autoupdate (#416) updates: - [github.com/astral-sh/ruff-pre-commit: v0.3.5 → v0.3.7](astral-sh/ruff-pre-commit@v0.3.5...v0.3.7) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.28 * chore(deps): update poetry-deps (#417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * welcome msg: add not supported retest in repository do not have any * poetry update * chore(deps): update poetry-deps (#419) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#420) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.29 * chore(deps): update poetry-deps (#421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#422) updates: - [github.com/astral-sh/ruff-pre-commit: v0.3.7 → v0.4.1](astral-sh/ruff-pre-commit@v0.3.7...v0.4.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * do not block merge if PR merked as mergable by github * User can set extra required labels to set PR as ca be merged (#424) * Release 1.0.30 * dockerfile add * Release 1.0.31 * chore(deps): update poetry-deps (#426) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * can-be-mrged: check if pr mergeable_state is clean * can-be-mrged: check if pr mergeable_state is clean * can-be-mrged: remove check if pr mergeable_state is clean * chore(deps): update poetry-deps (#430) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix reviewers per folders * chore(deps): update poetry-deps (#433) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#432) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.1 → v0.4.2](astral-sh/ruff-pre-commit@v0.4.1...v0.4.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Support create jira issues to track PR lifecycle (#428) * Support create jira issues to track PR lifecycle * Add color to Jira label * Add logs for jira actions * PR lifecycle in jira * Open story under epic if provided * Fix duplicate log filter * Update readme * jira: add repo name to title * Release 1.0.32 * parent_commiter should be commiter of last commit * chore(deps): update poetry-deps (#435) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency pyhelper-utils to ^0.0.14 (#434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.33 * chore(deps): update poetry-deps (#437) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * add last_commiter var * set jira assignee only if user in jira mapping * chore(deps): update dependency pyhelper-utils to ^0.0.15 (#436) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Meni Yakove <441263+myakove@users.noreply.github.com> * Fix return in init * Release 1.0.34 * chore(deps): update poetry-deps (#438) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * set labels on private repos * set labels on private repos * set labels on private repos * Release 1.0.35 * check_if_can_be_merged: check only required runs (#439) * [pre-commit.ci] pre-commit autoupdate (#441) updates: - [github.com/Yelp/detect-secrets: v1.4.0 → v1.5.0](Yelp/detect-secrets@v1.4.0...v1.5.0) - [github.com/astral-sh/ruff-pre-commit: v0.4.2 → v0.4.3](astral-sh/ruff-pre-commit@v0.4.2...v0.4.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.36 * Fix fstring * Release 1.0.37 * chore(deps): update poetry-deps (#442) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#443) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.3 → v0.4.4](astral-sh/ruff-pre-commit@v0.4.3...v0.4.4) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.38 * fix push to pypi * poetry update * chore(deps): update dependency pyhelper-utils to ^0.0.17 (#444) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.39 * pypi: save dist dir as arg * Release 1.0.40 * chore(deps): update dependency pyhelper-utils to ^0.0.18 (#445) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix when no jira issue label * chore(deps): update dependency requests to v2.32.0 (#446) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency requests to v2.32.1 (#447) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.41 * set self.all_required_status_checks to [] in init * chore(deps): update dependency requests to v2.32.2 (#449) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency pyhelper-utils to ^0.0.19 (#448) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#450) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.42 * chore(deps): update poetry-deps (#452) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency pyhelper-utils to ^0.0.20 (#451) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.43 * chore(deps): update poetry-deps (#454) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency pyhelper-utils to ^0.0.21 (#453) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.44 * [pre-commit.ci] pre-commit autoupdate (#455) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.4 → v0.4.5](astral-sh/ruff-pre-commit@v0.4.4...v0.4.5) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.45 * chore(deps): update poetry-deps (#457) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * update renovate.json * chore(deps): update poetry-deps (#458) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#459) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#460) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * do not comment when unsuported label passed from the user * push container: push from main branch if pull request was merged * chore(deps): update poetry-deps (#461) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * build container: checkout the right branch if PR is merged (#462) * build container: checkout the right branch if PR is merged * no-cache for merged PRs * Use uwsgi to run the app (#464) * Use uwsgi to run the app * Use uwsgi to run the app * Use uwsgi to run the app * Use uwsgi to run the app * Use uwsgi to run the app * [pre-commit.ci] pre-commit autoupdate (#466) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.5 → v0.4.7](astral-sh/ruff-pre-commit@v0.4.5...v0.4.7) - [github.com/gitleaks/gitleaks: v8.18.2 → v8.18.3](gitleaks/gitleaks@v8.18.2...v8.18.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#467) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.46 * Fix upload to pypi * Fix upload to pypi * Fix upload to pypi * Release 1.0.47 * remove unused function skip_repo * Tox add unused-code check * remove commented lines * Release 1.0.48 * [pre-commit.ci] pre-commit autoupdate (#468) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.7 → v0.4.8](astral-sh/ruff-pre-commit@v0.4.7...v0.4.8) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.49 * Fix container release push * chore(deps): update poetry-deps (#469) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update poetry * update renovate file * chore(deps): update poetry-deps (#471) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Meni Yakove <441263+myakove@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#472) updates: - [github.com/PyCQA/flake8: 7.0.0 → 7.1.0](PyCQA/flake8@7.0.0...7.1.0) - [github.com/astral-sh/ruff-pre-commit: v0.4.8 → v0.4.9](astral-sh/ruff-pre-commit@v0.4.8...v0.4.9) - [github.com/gitleaks/gitleaks: v8.18.3 → v8.18.4](gitleaks/gitleaks@v8.18.3...v8.18.4) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#473) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * log success when test run success (#474) * Release 1.0.50 * chore(deps): update poetry-deps (#476) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#477) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * delete pr tag on merge/close of a pr (#478) * delete pr tag on merge/close of a pr * updates based on review comments * fixing some commands * determine registry url from container_repository value * address review comment * update based on comments received * remove verify_stderr * updates * [pre-commit.ci] pre-commit autoupdate (#479) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.9 → v0.4.10](astral-sh/ruff-pre-commit@v0.4.9...v0.4.10) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.51 * remove sonarcload workflow * Move to using FastAPI (#480) * Move to using FastAPI * update post function * remove label module * add missing host and port * Fix request type * remove uneeded code * Fix logger calls --------- Co-authored-by: rnetser <rnetser@redhat.com> * delete_remote_tag_for_merged_or_closed_pr: run only when repo have container * Fix delete pr cintainer tag when merged/closed * Fix delete pr container tag when merged/closed * Release 1.0.52 * support log file * add some typing, fix delete tag * chore(deps): update poetry-deps (#482) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.53 * Fix delete tag * create webhhok: remove duplicate log * [pre-commit.ci] pre-commit autoupdate (#483) updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.10 → v0.5.0](astral-sh/ruff-pre-commit@v0.4.10...v0.5.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Meni Yakove <441263+myakove@users.noreply.github.com> * Add more typing * Add future in branch protection (#484) * Use future in branch protection * fix arg * fix arg * unused * unused remove * update sleep * chore(deps): update poetry-deps (#488) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.54 * Add Typing (#486) * Add typing * Add typing * fix type * remove DockerHub * ad mypy * update return type * update return type * More typing * More typing * More typing * More typing * More typing * update return type * update return type * More typing * More typing * More typing * Remove can be merged lable when check failed * Fix call check_run process * improve check if can be merged * improve process pull request speed * add pr number to log when check run reset to queued on startup * pass log to get_future_results * Fix delete tag for merged PR * Set log warn when set check run to queued * update poetry * Fix add reviewers * Fix add reviewers * fix release for container * fix release for container * fix release for container --------- Co-authored-by: Meni Yakove <myakove@gmail.com> * Release 1.0.55 * move process to function (#490) * move process to function * improve can_be_mrged calls * chore(deps): update poetry-deps (#489) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#492) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.0 → v0.5.1](astral-sh/ruff-pre-commit@v0.5.0...v0.5.1) - [github.com/pre-commit/mirrors-mypy: v1.10.0 → v1.10.1](pre-commit/mirrors-mypy@v1.10.0...v1.10.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Add comment when reviewer failed to be added (#493) * Add command arguments to the build-and-push-container (#495) * Add command arguments to the build-and-push-container * Podman fix * chore(deps): update poetry-deps (#496) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#499) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.1 → v0.5.2](astral-sh/ruff-pre-commit@v0.5.1...v0.5.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Set approve label only if reviewer is part of approvers (#497) * Set approve label only if reviewer is part of approvers * Update the readme * Add missing typing * Fix missing {} in fstring * Fix missing {} in fstring * fix can be merged check * Add support to pass log level * Fix where is no last commiter in commit (#501) * chore(deps): update poetry-deps (#500) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.56 * chore(deps): update poetry-deps (#505) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#506) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.2 → v0.5.4](astral-sh/ruff-pre-commit@v0.5.2...v0.5.4) - [github.com/pre-commit/mirrors-mypy: v1.10.1 → v1.11.0](pre-commit/mirrors-mypy@v1.10.1...v1.11.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * ProcessGithubWehook: do not use @ignore_exceptions (#503) * ProcessGithubWehook: do not use @ignore_exceptions * fail if any exeption in from process() * remove @ignore_exceptions from all files * fix some typing * Improve logging (#507) * Improve logging * Add color to repository name in the log * Add color to repository name in the log * convert some logger info to debug * convert some logger info to debug * Function to get logger * Function to get logger * More logging debug * log api rate only if below minimum * More debug logs * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * Use string-color for log_prefix * always read config when creating logger to support switch levels without restart * Try to fix log console colors * Update example config * set wip label based on title (#509) * wip label - add missing f-string (#511) * Release 1.0.57 * chore(deps): update poetry-deps (#513) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#514) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.58 * chore(deps): update poetry-deps (#515) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update tox configuration to run tests based on pull request parent branch * Release 1.0.59 * chore(deps): update poetry-deps (#516) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix remove lgtm by on pr sync * Set log file zise to 10mb * [pre-commit.ci] pre-commit autoupdate (#517) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.4 → v0.5.5](astral-sh/ruff-pre-commit@v0.5.4...v0.5.5) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Extract some code to function (#518) * Extract some code to function * Improve error msg of build and push container command * No limit log file size * Log file zise set to 50MB * fix check if user command supported * fix check if user command supported * Rename _process_verified to more clrean name * log file, no size limi * Improve no ready to merged output * Use one logger for all * Fix BUILD_AND_PUSH_CONTAINER_STR user command * Fix BUILD_AND_PUSH_CONTAINER_STR user command * Fix BUILD_AND_PUSH_CONTAINER_STR user command * chore(deps): update poetry-deps (#520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#522) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#523) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Extract to functions, run in parallel (#524) * Extract to functions, run in parallel * Extract to functions, run in parallel * Extract to functions, run in parallel * Remove time loggers * [pre-commit.ci] pre-commit autoupdate (#526) updates: - [github.com/PyCQA/flake8: 7.1.0 → 7.1.1](PyCQA/flake8@7.1.0...7.1.1) - [github.com/astral-sh/ruff-pre-commit: v0.5.5 → v0.5.6](astral-sh/ruff-pre-commit@v0.5.5...v0.5.6) - [github.com/pre-commit/mirrors-mypy: v1.11.0 → v1.11.1](pre-commit/mirrors-mypy@v1.11.0...v1.11.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#527) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix mypy pre-commit types deps issues * chore(deps): update poetry-deps (#528) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Remove unused code (#529) * Release 1.0.60 * chore(deps): update poetry-deps (#531) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#532) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.6 → v0.5.7](astral-sh/ruff-pre-commit@v0.5.6...v0.5.7) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#533) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#534) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.61 * chore(deps): update poetry-deps (#535) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.62 * chore(deps): update poetry-deps (#536) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#538) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#537) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.7 → v0.6.1](astral-sh/ruff-pre-commit@v0.5.7...v0.6.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * run rm -rf /run/containers/storage /run/libpod on server start * chore(deps): update poetry-deps (#539) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * add back k3d to the container * Add docker to the container (#540) * chore(deps): update poetry-deps (#542) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#543) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#544) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#545) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.1 → v0.6.2](astral-sh/ruff-pre-commit@v0.6.1...v0.6.2) - [github.com/pre-commit/mirrors-mypy: v1.11.1 → v1.11.2](pre-commit/mirrors-mypy@v1.11.1...v1.11.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.63 * chore(deps): update poetry-deps (#546) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.64 * chore(deps): update poetry-deps (#547) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.65 * [pre-commit.ci] pre-commit autoupdate (#548) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.2 → v0.6.3](astral-sh/ruff-pre-commit@v0.6.2...v0.6.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#549) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#550) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#551) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#552) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.3 → v0.6.4](astral-sh/ruff-pre-commit@v0.6.3...v0.6.4) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#553) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#554) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#556) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#557) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Only approvers should be able to set `hold` lable on PR (#558) * Release 1.0.66 * chore(deps): update poetry-deps (#560) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#561) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.4 → v0.6.5](astral-sh/ruff-pre-commit@v0.6.4...v0.6.5) - [github.com/gitleaks/gitleaks: v8.18.4 → v8.19.2](gitleaks/gitleaks@v8.18.4...v8.19.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#562) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Release 1.0.67 * chore(deps): update poetry-deps (#563) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * update poetry * chore(deps): update poetry-deps (#564) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat(github_api): refactor size label calculation (#565) * chore(deps): update poetry-deps (#567) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#569) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#568) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.5 → v0.6.7](astral-sh/ruff-pre-commit@v0.6.5...v0.6.7) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Add simple test for `get_size` (#570) * Add simple test for `get_size` * Add simple test for `get_size` * fix type * Fix config path for test when running inside container * revert config path for tests * add config.yaml for tests * fix typo * chore(deps): update poetry-deps (#572) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * remove k3d from dockerfile * Set PR as auto-merge when commiter is part of auth-merged users (#574) * fix pre-commit mypy exlude regex * [pre-commit.ci] pre-commit autoupdate (#576) updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.7 → v0.6.8](astral-sh/ruff-pre-commit@v0.6.7...v0.6.8) - [github.com/gitleaks/gitleaks: v8.19.2 → v8.19.3](gitleaks/gitleaks@v8.19.2...v8.19.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Release 1.0.68 * chore(deps): update poetry-deps (#577) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update poetry-deps (#578) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#581) updates: - [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](pre-commit/pre-commit-hooks@v4.6.0...v5.0.0) - [github.com/astral-sh/ruff-pre-commit: v0.6.8 → v0.6.9](astral-sh/ruff-pre-commit@v0.6.8...v0.6.9) - [github.com/gitleaks/gitleaks: v8.19.3 → v8.20.1](gitleaks/gitleaks@v8.19.3...v8.20.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Run check if can be merged when hold label is add/removed (#582) * check if pr is already set to auto merge before enable (#586) * check if pr is already set to automerge before enable * do not raise if label not exists in remove label * set_pull_request_automerge: do not fail on exception * use `uv` instead of `poetry` (#579) * use `uv` only to manage project install and exeute * Fix dockerfile PATH * Fix dockerfile $PATH * tox: use uv * remove poetry.lock * Add YAML $schema file * Add YAML $schema file to example config --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Debarati Basu-Nag <dbasunag@redhat.com> Co-authored-by: rnetser <rnetser@redhat.com> Co-authored-by: Jenia Peimer <86722603+jpeimer@users.noreply.github.com>
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Chores