From 8c5eeea4f80e11ae98b313541e76f8f145b1c392 Mon Sep 17 00:00:00 2001 From: Kateryna Dovgan <46348880+k-dovgan@users.noreply.github.com> Date: Fri, 24 Nov 2023 12:16:22 +0200 Subject: [PATCH 01/11] update(docs): increase version --- universum/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/universum/__init__.py b/universum/__init__.py index 82e38a0f..65025abe 100644 --- a/universum/__init__.py +++ b/universum/__init__.py @@ -1,2 +1,2 @@ __title__ = "Universum" -__version__ = "0.19.19" +__version__ = "0.19.20" From da88e6b13522687c439416e167ae1d6c2bec862f Mon Sep 17 00:00:00 2001 From: Kateryna Dovgan <46348880+k-dovgan@users.noreply.github.com> Date: Fri, 24 Nov 2023 16:59:57 +0200 Subject: [PATCH 02/11] feat(github): add postcommit workflow --- .github/workflows/postcommit-check.yml | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/postcommit-check.yml diff --git a/.github/workflows/postcommit-check.yml b/.github/workflows/postcommit-check.yml new file mode 100644 index 00000000..a0596fa1 --- /dev/null +++ b/.github/workflows/postcommit-check.yml @@ -0,0 +1,40 @@ +name: Universum check +on: + push + +jobs: + universum_postcommit: + name: Universum postcommit + runs-on: ubuntu-latest + + steps: + - name: Setup python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + + - name: Install dependency + run: pip install universum[test] + + - name: Universum + run: + python -u -m universum + --fail-unsuccessful + --vcs-type="git" + --git-repo "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" + --git-refspec "$GITHUB_REF_NAME" + --no-archive + --no-diff + + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v1 + if: always() + with: + files: artifacts/*.xml + + - name: Collect artifacts + uses: actions/upload-artifact@v2 + if: ${{ always() }} + with: + name: artifacts + path: artifacts From 920baf2f406bb8413f59434136812ce7eadee239 Mon Sep 17 00:00:00 2001 From: Liubomyr Ferents <19494054+lyubomyrferents@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:44:07 +0200 Subject: [PATCH 03/11] fix(doc): add required dependencies to setup.py and to README --- README.md | 10 +++++++--- setup.py | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 51914a02..cc6745b8 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,18 @@ and then use the commands listed below. Please note we use `venv` to properly se python interpreter version and to isolate development environment from the system. Prerequisites: -1. Install all of the VCS extras as described in the [Universum installation manual]( +1. Make sure the libssl-dev and libcrypto++-dev packages are available in your environment. + ```bash + sudo apt install libssl-dev libcrypto++-dev + ``` +2. Install all of the VCS extras as described in the [Universum installation manual]( https://universum.readthedocs.io/en/latest/install.html#vcs-related-extras), (including installation of Git and P4 CLI) -2. Install Docker (`docker-ce`, `docker-ce-cli`) as described in the [official installation manual]( +3. Install Docker (`docker-ce`, `docker-ce-cli`) as described in the [official installation manual]( https://docs.docker.com/engine/installation/linux/ubuntu/#install-using-the-repository) * Also add current user to 'docker' group (use `sudo usermod -a -G docker $USER` and then relogin) -3. Install Mozilla WebDriver: `sudo apt install firefox-geckodriver` +4. Install Mozilla WebDriver: `sudo apt install firefox-geckodriver` Further commands: ```bash diff --git a/setup.py b/setup.py index e5dc59d4..497d829d 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,8 @@ def readme(): 'types-requests', 'selenium==3.141', 'urllib3==1.26.15', # This is required for selenium-3.141 to work correctly - 'types-PyYAML==6.0' + 'types-PyYAML==6.0', + 'wheel' ] }, package_data={'': ['*.css', '*.js']} From f6abf90338dfda7e6297be5edc04a119475c4fcb Mon Sep 17 00:00:00 2001 From: d-cheholia Date: Mon, 5 Feb 2024 14:51:20 +0000 Subject: [PATCH 04/11] fix(code_report): create parent folders for target file for clang_format --- tests/test_code_report.py | 17 +++++++++++++++++ universum/analyzers/clang_format.py | 1 + 2 files changed, 18 insertions(+) diff --git a/tests/test_code_report.py b/tests/test_code_report.py index e39d69c0..c960558c 100644 --- a/tests/test_code_report.py +++ b/tests/test_code_report.py @@ -405,3 +405,20 @@ def test_code_report_extended_arg_search_embedded(tmp_path: pathlib.Path, stdout env.run() stdout_checker.assert_absent_calls_with_param("${CODE_REPORT_FILE}") + + +def test_clang_format_analyzer_with_subfolder(runner_with_analyzers: UniversumRunner): + root = runner_with_analyzers.local.root_directory + source_file = root / "subdir" / "source_file" + source_file.parent.mkdir(parents=True, exist_ok=True) + source_file.write_text(source_code_c) + common_args = [ + "--result-file", "${CODE_REPORT_FILE}", + "--files", "subdir/source_file" + ] + + (root / ".clang-format").write_text(config_clang_format) + log = runner_with_analyzers.run(ConfigData().add_analyzer("clang_format", common_args).finalize()) + + assert not re.findall(r'No such file or directory', log), f"'No such file or directory' is found in '{log}'" + assert re.findall(log_fail, log), f"'{log_fail}' is not found in '{log}'" diff --git a/universum/analyzers/clang_format.py b/universum/analyzers/clang_format.py index 56a64f80..6f647c19 100755 --- a/universum/analyzers/clang_format.py +++ b/universum/analyzers/clang_format.py @@ -39,6 +39,7 @@ def main(settings: argparse.Namespace) -> List[utils.ReportData]: cmd = [settings.executable, src_file_absolute] _add_style_param_if_present(cmd, settings) output, _ = utils.run_for_output(cmd) + target_file_absolute.parent.mkdir(parents=True, exist_ok=True) with open(target_file_absolute, "w", encoding="utf-8") as output_file: output_file.write(output) From 8db4db953cda34bd22425e61c55130fe74558fcf Mon Sep 17 00:00:00 2001 From: d-cheholia Date: Thu, 8 Feb 2024 13:36:13 +0000 Subject: [PATCH 05/11] fix(analyzers): use recursive glob setting --- universum/analyzers/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/universum/analyzers/utils.py b/universum/analyzers/utils.py index 7d921709..573835e7 100644 --- a/universum/analyzers/utils.py +++ b/universum/analyzers/utils.py @@ -120,7 +120,7 @@ def expand_files_argument(settings: argparse.Namespace) -> None: # TODO: subclass argparse.Action result: Set[str] = set() for pattern in settings.file_list: - file_list: List[str] = glob.glob(pattern) + file_list: List[str] = glob.glob(pattern, recursive=True) if not file_list: sys.stderr.write(f"Warning: no files found for input pattern {pattern}\n") else: From 0c3480b96644eb3db7298d08c691ba4b3e264057 Mon Sep 17 00:00:00 2001 From: Dmytro <45358107+dumitory-dev@users.noreply.github.com> Date: Fri, 5 Jul 2024 11:11:22 +0300 Subject: [PATCH 06/11] fix(github): GitHub actions command injection Command injection is possible with untrusted env.UNIVERSUM_BRANCH input. See https://github.com/Samsung/Universum/pull/841 for an injection example. An attacker can steal repo secrets that are stored in the env URL variable and maybe GITHUB_TOKEN. This commit fixes this problem by following the official guide https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable --- .github/workflows/telegram-bot.yml | 42 ++++++++++++++++-------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/.github/workflows/telegram-bot.yml b/.github/workflows/telegram-bot.yml index a6b854cb..e72f9ee5 100644 --- a/.github/workflows/telegram-bot.yml +++ b/.github/workflows/telegram-bot.yml @@ -40,42 +40,44 @@ jobs: run: | if [[ ! -z "${{ github.event.pull_request }}" && "${{ github.event.action }}" == "opened" ]]; then - ESCAPED_NAME=`echo -e "${{ env.PR_NAME }}" | sed 's/\&/\&/g' | sed 's//\>/g'` - TEXT=`echo -e "${{ env.PR_AUTHOR }} created new PR#${{ env.PR_NUMBER }} '$ESCAPED_NAME' to branch '${{ env.PR_BASE }}'"` + ESCAPED_NAME=`echo -e "$PR_NAME" | sed 's/\&/\&/g' | sed 's//\>/g'` + TEXT=`echo -e ""$PR_AUTHOR" created new PR#"$PR_NUMBER" '"$ESCAPED_NAME"' to branch '"$PR_BASE"'"` elif [[ ! -z "${{ github.event.pull_request }}" && "${{ github.event.action }}" == "synchronize" ]]; then - TEXT=`echo -e "${{ env.PR_AUTHOR }} updated PR#${{ env.PR_NUMBER }}"` + TEXT=`echo -e ""$PR_AUTHOR" updated PR#"$PR_NUMBER""` elif [[ ! -z "${{ github.event.pull_request }}" && "${{ github.event.action }}" == "closed" && "${{ github.event.pull_request.merged }}" == "true" ]]; then - TEXT=`echo -e "${{ env.PR_MERGED }} merged PR#${{ env.PR_NUMBER }} to branch '${{ env.PR_BASE }}'"` + TEXT=`echo -e ""$PR_MERGED" merged PR#"$PR_NUMBER" to branch '"$PR_BASE"'"` elif [[ ! -z "${{ github.event.pull_request }}" && "${{ github.event.action }}" == "closed" ]]; then - TEXT=`echo -e "${{ env.PR_AUTHOR }} closed PR#${{ env.PR_NUMBER }}"` + TEXT=`echo -e ""$PR_AUTHOR" closed PR#"$PR_NUMBER""` elif [[ ! -z "${{ github.event.comment }}" ]]; then - ESCAPED_TEXT=`echo -e "${{ env.COMMENT_BODY }}"| sed 's/\&/\&/g' | sed 's//\>/g'` + ESCAPED_TEXT=`echo -e "$COMMENT_BODY"| sed 's/\&/\&/g' | sed 's//\>/g'` if [[ ! -z "${{ github.event.pull_request }}" ]]; then - TEXT=`echo -e "${{ env.COMMENT_AUTHOR }} posted the following comment to file ${{ env.COMMENT_FILE }} in PR#${{ env.PR_NUMBER }}:\n$ESCAPED_TEXT"` + TEXT=`echo -e ""$COMMENT_AUTHOR" posted the following comment to file "$COMMENT_FILE" in PR#"$PR_NUMBER":\n"$ESCAPED_TEXT""` else - TEXT=`echo -e "${{ env.COMMENT_AUTHOR }} posted the following comment to issue #${{ env.COMMENT_NUMBER }}:\n$ESCAPED_TEXT"` + TEXT=`echo -e ""$COMMENT_AUTHOR" posted the following comment to issue #"$COMMENT_NUMBER":\n"$ESCAPED_TEXT""` fi - elif [[ ! -z "${{ github.event.review }}" && "${{ env.REVIEW_STATE }}" == "changes_requested" ]]; then - TEXT=`echo -e "${{ env.REVIEW_AUTHOR }} requested changes for PR#${{ env.PR_NUMBER }}"` - elif [[ ! -z "${{ github.event.review }}" && "${{ env.REVIEW_STATE }}" == "commented" && ! -z "${{ env.REVIEW_COMMENT }}" ]]; then - ESCAPED_TEXT=`echo -e "${{ env.REVIEW_COMMENT }}"| sed 's/\&/\&/g' | sed 's//\>/g'` - TEXT=`echo -e "${{ env.REVIEW_AUTHOR }} posted the following comment to PR#${{ env.PR_NUMBER }}:\n$ESCAPED_TEXT"` - elif [[ ! -z "${{ github.event.review }}" && "${{ env.REVIEW_STATE }}" != "commented" ]]; then - TEXT=`echo -e "${{ env.REVIEW_AUTHOR }} ${{ env.REVIEW_STATE }} PR#${{ env.PR_NUMBER }}"` + elif [[ ! -z "${{ github.event.review }}" && "$REVIEW_STATE" == "changes_requested" ]]; then + TEXT=`echo -e ""$REVIEW_AUTHOR" requested changes for PR#"$PR_NUMBER""` + elif [[ ! -z "${{ github.event.review }}" && "$REVIEW_STATE" == "commented" && ! -z "$REVIEW_COMMENT" ]]; then + ESCAPED_TEXT=`echo -e "$REVIEW_COMMENT"| sed 's/\&/\&/g' | sed 's//\>/g'` + TEXT=`echo -e ""$REVIEW_AUTHOR" posted the following comment to PR#"$PR_NUMBER":\n"$ESCAPED_TEXT""` + elif [[ ! -z "${{ github.event.review }}" && "$REVIEW_STATE" != "commented" ]]; then + TEXT=`echo -e ""$REVIEW_AUTHOR" "$REVIEW_STATE" PR#"$PR_NUMBER""` elif [[ -z "${{ github.event.review }}" && "${{ github.event.action }}" == "submitted" ]]; then - TEXT=`echo -e "Due to GitHub Actions bug we cannot identify, who approved PR#${{ env.PR_NUMBER }}"` + TEXT=`echo -e "Due to GitHub Actions bug we cannot identify, who approved PR#"$PR_NUMBER""` elif [[ ! -z "${{ github.event.workflow_run }}" && "${{ github.event.workflow_run.conclusion }}" == "success" ]]; then - TEXT=`echo -e "Universum run for branch '${{ env.UNIVERSUM_BRANCH }}' SUCCEDED; commit ${{ env.UNIVERUM_COMMIT }} "` + ESCAPED_TEXT=`echo -e "$UNIVERSUM_BRANCH"| sed 's/\&/\&/g' | sed 's//\>/g'` + TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" SUCCEDED; commit "$ESCAPED_TEXT" "` elif [[ ! -z "${{ github.event.workflow_run }}" && "${{ github.event.workflow_run.conclusion }}" == "failure" ]]; then - TEXT=`echo -e "Universum run for branch '${{ env.UNIVERSUM_BRANCH }}' FAILED; commit ${{ env.UNIVERUM_COMMIT }} "` + ESCAPED_TEXT=`echo -e "$UNIVERSUM_BRANCH"| sed 's/\&/\&/g' | sed 's//\>/g'` + TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" FAILED; commit "$ESCAPED_TEXT" "` fi - if [[ ! -z $TEXT ]]; then + if [[ ! -z "$TEXT" ]]; then curl --get --data-urlencode "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}" --data-urlencode "disable_web_page_preview=True" \ - --data-urlencode "text=$TEXT" --data-urlencode "parse_mode=HTML" $URL + --data-urlencode "text=$TEXT" --data-urlencode "parse_mode=HTML" "$URL" fi env: From 9b853a3667fec74f975b03cb80f3fd33bb807196 Mon Sep 17 00:00:00 2001 From: Dmytro <45358107+dumitory-dev@users.noreply.github.com> Date: Fri, 5 Jul 2024 11:40:51 +0300 Subject: [PATCH 07/11] fix(ci): use UNIVERUM_COMMIT env var in telegram message --- .github/workflows/telegram-bot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/telegram-bot.yml b/.github/workflows/telegram-bot.yml index e72f9ee5..ab42721c 100644 --- a/.github/workflows/telegram-bot.yml +++ b/.github/workflows/telegram-bot.yml @@ -69,10 +69,10 @@ jobs: elif [[ ! -z "${{ github.event.workflow_run }}" && "${{ github.event.workflow_run.conclusion }}" == "success" ]]; then ESCAPED_TEXT=`echo -e "$UNIVERSUM_BRANCH"| sed 's/\&/\&/g' | sed 's//\>/g'` - TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" SUCCEDED; commit "$ESCAPED_TEXT" "` + TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" SUCCEDED; commit "$UNIVERUM_COMMIT" "` elif [[ ! -z "${{ github.event.workflow_run }}" && "${{ github.event.workflow_run.conclusion }}" == "failure" ]]; then ESCAPED_TEXT=`echo -e "$UNIVERSUM_BRANCH"| sed 's/\&/\&/g' | sed 's//\>/g'` - TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" FAILED; commit "$ESCAPED_TEXT" "` + TEXT=`echo -e "Universum run for branch "$ESCAPED_TEXT" FAILED; commit "$UNIVERUM_COMMIT" "` fi if [[ ! -z "$TEXT" ]]; then From 0d4666efeb0a5cc18f49bc4c1496acab7f03569b Mon Sep 17 00:00:00 2001 From: Kateryna Dovgan <46348880+k-dovgan@users.noreply.github.com> Date: Tue, 17 Sep 2024 12:38:33 +0300 Subject: [PATCH 08/11] (fix): update artifacts version --- .github/workflows/postcommit-check.yml | 2 +- .github/workflows/precommit-check.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/postcommit-check.yml b/.github/workflows/postcommit-check.yml index a0596fa1..954661cb 100644 --- a/.github/workflows/postcommit-check.yml +++ b/.github/workflows/postcommit-check.yml @@ -33,7 +33,7 @@ jobs: files: artifacts/*.xml - name: Collect artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: ${{ always() }} with: name: artifacts diff --git a/.github/workflows/precommit-check.yml b/.github/workflows/precommit-check.yml index 087c9fb4..7eeb4951 100644 --- a/.github/workflows/precommit-check.yml +++ b/.github/workflows/precommit-check.yml @@ -35,7 +35,7 @@ jobs: files: artifacts/*.xml - name: Collect artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: ${{ always() }} with: name: artifacts From c065c6724e606ef51f372a8a7a9641430eba498d Mon Sep 17 00:00:00 2001 From: 4slava <30595795+4slava@users.noreply.github.com> Date: Fri, 25 Oct 2024 14:04:11 +0300 Subject: [PATCH 09/11] fix(tests): fixes for p4 unit tests --- tests/test_p4_exception_handling.py | 8 ++------ tests/test_poll.py | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/test_p4_exception_handling.py b/tests/test_p4_exception_handling.py index d88bd2ff..4ad4e4f1 100644 --- a/tests/test_p4_exception_handling.py +++ b/tests/test_p4_exception_handling.py @@ -91,12 +91,8 @@ def test_p4_print_exception_in_sync(perforce_environment: P4TestEnvironment, std stdout_checker.assert_has_calls_with_param(text) -def test_p4_print_exception_wrong_shelve(perforce_environment: P4TestEnvironment, stdout_checker: FuzzyCallChecker): +def test_p4_print_exception_already_committed_shelve(perforce_environment: P4TestEnvironment, stdout_checker: FuzzyCallChecker): cl = perforce_environment.vcs_client.make_a_change() perforce_environment.settings.PerforceMainVcs.shelve_cls = [cl] - - # This is not the 'already committed' case of Swarm review, so it actually should fail perforce_environment.run(expect_failure=True) - stdout_checker.assert_has_calls_with_param( - f"Errors during command execution( \"p4 unshelve -s {cl} -f\" )") - stdout_checker.assert_has_calls_with_param(f"[Error]: 'Change {cl} is already committed.'") + stdout_checker.assert_has_calls_with_param(f"Change {cl} is already committed.") diff --git a/tests/test_poll.py b/tests/test_poll.py index 1b6d4d44..26449d89 100644 --- a/tests/test_poll.py +++ b/tests/test_poll.py @@ -59,7 +59,7 @@ def test_p4_error_command_line_wrong_port(stdout_checker: FuzzyCallChecker, "-p4d", perforce_workspace.depot, "-jtu", "https://localhost/?%s"]) assert result != 0 - stdout_checker.assert_has_calls_with_param("TCP connect to 127.0.0.1:1024 failed.") + stdout_checker.assert_has_calls_with_param("Connect to server failed; check $P4PORT") def test_git_error_command_line_wrong_port(stdout_checker: FuzzyCallChecker, From b0b55a42f4a846f5bc20852b8f9bf74307334c60 Mon Sep 17 00:00:00 2001 From: Oleksandr Andrieiev <40266373+o-andrieiev@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:07:59 +0200 Subject: [PATCH 10/11] fix(report): Parse data from sarif as URI, instead of treating it as string --- tests/test_code_report.py | 42 ++++++++++++++++++++++ universum/modules/code_report_collector.py | 12 +++---- 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/tests/test_code_report.py b/tests/test_code_report.py index c960558c..34f1a8e0 100644 --- a/tests/test_code_report.py +++ b/tests/test_code_report.py @@ -169,6 +169,46 @@ def finalize(self) -> str: } """ +sarif_report_uri = """ +{ + "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "Checkstyle", + "semanticVersion": "8.43", + "version": "8.43" + } + }, + "results": [ + { + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///my_path/my_file" + }, + "region": { + "startColumn": 1, + "startLine": 1 + } + } + } + ], + "message": { + "text": "Error!" + }, + "ruleId": "testRule" + } + ] + } + ] +} +""" + config_uncrustify = """ code_width = 120 input_tab_size = 2 @@ -189,6 +229,7 @@ def finalize(self) -> str: [[sarif_report_minimal], True], [[sarif_report], False], [[sarif_report_split_uri], False], + [[sarif_report_uri], False], [[json_report_minimal, sarif_report_minimal], True], [[json_report, sarif_report], False], [[json_report_minimal, sarif_report], False], @@ -199,6 +240,7 @@ def finalize(self) -> str: 'sarif_no_issues', 'sarif_issues_found', 'sarif_split_uri_issues_found', + 'sarif_uri', 'both_tested_no_issues', 'both_tested_issues_in_both', 'both_tested_issues_in_sarif', diff --git a/universum/modules/code_report_collector.py b/universum/modules/code_report_collector.py index 2919b2cc..e2ebd49f 100644 --- a/universum/modules/code_report_collector.py +++ b/universum/modules/code_report_collector.py @@ -65,17 +65,17 @@ def _process_one_sarif_issue(self, issue, root_uri_base_paths, who) -> None: if location_data.get('address'): continue # binary artifact can't be processed raise ValueError("Unexpected lack of artifactLocation tag") + uri = artifact_data.get('uri') + if not uri: + raise ValueError("Unexpected lack of uri tag") + path = urllib.parse.unquote(urllib.parse.urlparse(uri).path) if artifact_data.get('uriBaseId'): - uri = artifact_data.get('uri') - if not uri: - raise ValueError("Unexpected lack of uri tag") + # means path is relative, need to make absolute uri_base_id = artifact_data.get('uriBaseId', '') root_base_path = root_uri_base_paths.get(uri_base_id, '') if uri_base_id and not root_base_path: raise ValueError(f"Unexpected lack of 'originalUriBaseIds' value for {uri_base_id}") - path = str(Path(root_base_path, urllib.parse.unquote(uri))) - else: - path = urllib.parse.unquote(artifact_data.get('uri', '')) + path = str(Path(root_base_path) / path) region_data = location_data.get('region') if not region_data: continue # TODO: cover this case as comment to the file as a whole From 078780010633b2c24f6393566ba0845973041d9d Mon Sep 17 00:00:00 2001 From: Kateryna Dovgan <46348880+k-dovgan@users.noreply.github.com> Date: Thu, 31 Oct 2024 13:05:46 +0200 Subject: [PATCH 11/11] update(docs): update changelog to Universum 0.19.20 --- CHANGELOG.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d196a172..3fae31b4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,18 @@ Change log ========== +0.19.20 (2024-10-31) +-------------------- + +Bug fixes +~~~~~~~~~ + +* **report:** parse data from sarif as URI, instead of treating it as string +* **code_report:** create parent folders for target file for clang_format +* **analyzers:** use recursive glob setting +* **doc:** added dependencies to setup.py and to README + + 0.19.19 (2023-11-22) --------------------