Skip to content

chore: point CICD badge to main branch#480

Merged
olivermeyer merged 1 commit intomainfrom
chore/cicd-badge-main
Mar 17, 2026
Merged

chore: point CICD badge to main branch#480
olivermeyer merged 1 commit intomainfrom
chore/cicd-badge-main

Conversation

@olivermeyer
Copy link
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings March 17, 2026 11:43
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds ?branch=main to the CI/CD badge URL so it reflects the status of the main branch only.

Changes:

  • Scoped the GitHub Actions CI/CD badge to the main branch

@olivermeyer olivermeyer added the claude Trigger Claude Code automation label Mar 17, 2026
@claude
Copy link

claude bot commented Mar 17, 2026

Claude finished @olivermeyer's task in 2m 55s —— View job


✅ PR Review Complete: CI/CD Badge Update

I've reviewed PR #480 and the changes look good to merge. The author correctly addressed my previous blocking comment.


📋 Summary

What Changed:

  • Added ?branch=main parameter to CI/CD badge URL in both docs/partials/README_header.md (source) and README.md (generated)
  • This scopes the badge to show only the status of the main branch

Files Modified:

  • docs/partials/README_header.md (line 5) - Source file
  • README.md (line 8) - Auto-generated file (correctly updated)

✅ All Checks Pass

1. Commit Message Convention

chore: point CICD badge to main branch

Follows conventional commit format (type: description)

2. Documentation Generation Workflow

  • Both source (docs/partials/README_header.md) and generated (README.md) files updated identically
  • The _generate_readme() function in noxfile.py (line 401-415) concatenates partials into README.md
  • Next docs build will regenerate README.md from the updated partial, preserving this change

3. Change Correctness
The badge URL change is correct:

- [![](https://github.com/aignostics/python-sdk/actions/workflows/ci-cd.yml/badge.svg)](...)
+ [![](https://github.com/aignostics/python-sdk/actions/workflows/ci-cd.yml/badge.svg?branch=main)](...)

4. No Test Changes Required
Documentation-only change, no code or test modifications needed

5. No Breaking Changes
Visual change only - badge will now reflect main branch status consistently


💡 Why This Change Matters

Before: Badge showed workflow status for whichever branch GitHub Actions last ran on (could be PRs, feature branches, etc.)

After: Badge always shows the status of the main branch, providing a consistent indicator of production code health

This is especially important for medical device software where users need confidence in the stability of the main branch.


🎯 Recommendation

✅ APPROVED - Ready to merge

No blocking issues found. The change is:

  • Correct and complete
  • Follows repository conventions
  • Addresses the previous review feedback properly

| Branch: chore/cicd-badge-main

@codecov
Copy link

codecov bot commented Mar 17, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
649 1 648 10
View the top 1 failed test(s) by shortest run time
tests.aignostics.application.cli_test::test_cli_run_execute_invalid_mapping_format
Stack Traces | 10s run time
runner = <typer.testing.CliRunner object at 0x7f6ccdf64230>
tmp_path = PosixPath('.../pytest-10/popen-gw0/test_cli_run_execute_invalid_m0')

    @pytest.mark.integration
    def test_cli_run_execute_invalid_mapping_format(runner: CliRunner, tmp_path: Path) -> None:
        """Check execute command fails with invalid mapping format."""
>       result = runner.invoke(
            cli,
            [
                "application",
                "run",
                "execute",
                HETA_APPLICATION_ID,
                str(tmp_path / RUN_CSV_FILENAME),
                str(tmp_path),
                "--mapping",
                ".*\\.tiff:staining_method:H&E",  # Wrong: colon instead of equals
            ],
        )

.../aignostics/application/cli_test.py:970: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
..../test-3-14-1/lib/python3.14.../site-packages/typer/testing.py:21: in invoke
    return super().invoke(
..../test-3-14-1/lib/python3.14.../site-packages/click/testing.py:494: in invoke
    return_value = cli.main(args=args or (), prog_name=prog_name, **extra)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14....../site-packages/typer/core.py:803: in main
    return _main(
..../test-3-14-1/lib/python3.14....../site-packages/typer/core.py:192: in _main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.............../site-packages/click/core.py:1830: in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.............../site-packages/click/core.py:1830: in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.............../site-packages/click/core.py:1830: in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.............../site-packages/click/core.py:1226: in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.............../site-packages/click/core.py:794: in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.../site-packages/typer/main.py:691: in wrapper
    return callback(**use_params)
           ^^^^^^^^^^^^^^^^^^^^^^
.../aignostics/application/_cli.py:493: in run_execute
    _abort_if_system_unhealthy()
.../aignostics/application/_cli.py:132: in _abort_if_system_unhealthy
    health = SystemService.health_static()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../aignostics/system/_service.py:146: in health_static
    return Service().health()
           ^^^^^^^^^^^^^^^^^^
.../aignostics/system/_service.py:161: in health
    components[f"{service_class.__module__}.{service_class.__name__}"] = service_class().health()
                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^
.../aignostics/platform/_service.py:263: in health
    "api_public": self._determine_api_public_health(),
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../aignostics/platform/_service.py:206: in _determine_api_public_health
    response = http.request(
..../test-3-14-1/lib/python3.14....../site-packages/urllib3/_request_methods.py:135: in request
    return self.request_encode_url(
..../test-3-14-1/lib/python3.14....../site-packages/urllib3/_request_methods.py:182: in request_encode_url
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.../site-packages/urllib3/poolmanager.py:457: in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14....../site-packages/urllib3/connectionpool.py:787: in urlopen
    response = self._make_request(
..../test-3-14-1/lib/python3.14....../site-packages/urllib3/connectionpool.py:534: in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.../site-packages/urllib3/connection.py:571: in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
..../test-3-14-1/lib/python3.14.../sentry_sdk/integrations/stdlib.py:135: in getresponse
    rv = real_getresponse(self, *args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/http/client.py:1450: in getresponse
    response.begin()
../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/http/client.py:336: in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/http/client.py:297: in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/socket.py:725: in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/ssl.py:1304: in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=2, type=1, proto=6>, len = 131072
buffer = <memory at 0x7f6cce265d80>

    def read(self, len=1024, buffer=None):
        """Read up to LEN bytes and return them.
        Return zero-length string on EOF."""
    
        self._checkClosed()
        if self._sslobj is None:
            raise ValueError("Read on closed or unwrapped SSL socket.")
        try:
            if buffer is not None:
>               return self._sslobj.read(len, buffer)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E               Failed: Timeout (>10.0s) from pytest-timeout.

../..................../_temp/uv-python-dir/cpython-3.14-linux-x86_64-gnu/lib/python3.14/ssl.py:1138: Failed

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@olivermeyer olivermeyer force-pushed the chore/cicd-badge-main branch from c4b5045 to a2663e6 Compare March 17, 2026 12:07
@sonarqubecloud
Copy link

@olivermeyer olivermeyer merged commit e523bce into main Mar 17, 2026
23 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude Trigger Claude Code automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants