Revision 167
resources:
- testflinger-image: ghcr.io/canonical/testflinger:main
resource-revision: 140
Static resources:
Released to 'latest/beta' at 16:25 UTC on 26 Jun 2025
What's Changed
- Add: iotscript connector with dedicated code owner by @p-gentili in #188
- consolidate server github workflows to avoid race by @plars in #187
- Limit the charm libs check to server/charm/** by @mz2 in #172
- Tagged job searching by @plars in #191
- Fix potential unhandled exception when no advertised queues found by @plars in #192
- Update dependency GitPython to v3.1.41 [SECURITY] by @renovate in #185
- Update dependency Jinja2 to v3.1.3 by @renovate in #186
- Update actions/setup-python action to v5 by @renovate in #170
- Update actions/checkout action to v4 by @renovate in #108
- Use importlib instead of imp by @plars in #193
- device-name in connector modules is no longer needed by @plars in #194
- Encode datetime as ISO8601 when returning job search results by @plars in #195
- remove logmsg helper function by @plars in #197
- Update docker/build-push-action digest to 4976231 by @renovate in #55
- Update docker/login-action digest to 3d58c27 by @renovate in #56
- Update docker/metadata-action digest to 8e5442c by @renovate in #58
- Update actions/checkout digest to b4ffde6 by @renovate in #145
- Add ZapperConnector base class for Zapper-based device connectors by @p-gentili in #198
- Include "completed" jobs in the ones that are not active by @plars in #202
- rearrange and simplify how advertised queues/images are handled by @plars in #203
- Make the UI more closely follow vanilla by @jocave in #162
- Remove the pymongo SocketTimeoutMS setting by @plars in #210
- Allow setting the number of units as an option in the module by @plars in #211
- fix(muxpi): shell-quote the URL by @thp-canonical in #212
- Maasstorageerror is provisionerror by @plars in #200
- Improve js filter code and use it with the new search box by @plars in #213
- remove oem image once provision is completed by @nancyc12 in #208
- Make max pool size adjustable by @plars in #218
- Fix jobid wrapping on agent page, and add link for jobs by @plars in #217
- Add new indexes by @plars in #219
- typo s/int/number by @plars in #220
- Reboot the control host before provisioning by @plars in #222
- feat(muxpi): provisioning: skip user creation, boot check via URL by @thp-canonical in #214
- Don't use the reboot control host workaround on zapper devices by @plars in #223
- Fix: add missing logger name. by @kevinyehk in #224
- Add: Zapper KVM connector by @p-gentili in #221
- Update: Add timeout to subprocess call for oemrecovery by @kevinyehk in #228
- Refactor run with log by @plars in #225
- Fix typo in docs for *-timeout -> *_timeout by @plars in #231
- Ignore transmitting results if testflinger.json is missing by @plars in #234
- Ensure self.process is None in CommandRunner in case it's reused by @plars in #235
- Temporarily disable output timeout checking until we have a better fix by @plars in #237
- Revert patches to reboot the control host before provisioning by @plars in #229
- Add more details to the reference section about provision_data by @plars in #232
- Add: provision OEM images via Zapper KVM connector by @p-gentili in #230
- Add the jammy tag to all self-hosted runner invocations by @mthaddon in #242
- Muxpi improvement by @rmartin013 in #227
- All queues view by @plars in #243
- Fix an unlikely corner-case where an agent has no queues declared by @plars in #246
- Implement zapper_iot method by @kiya956 in #233
- Alert the user about the nature of advertised queues by @plars in #244
- Fix documenation checking on link anchors by @tang-mm in #248
- Add: documentation on the zapper_kvm device connector by @p-gentili in #247
- Add: reboot control host from poe switch for muxpi devices by @nancyc12 in #238
- Add docs about agents and queues to the explanation section by @plars in #245
- Add a help-icon link to the relevant docs for agents/queues by @plars in #252
- Extend oemrecovery timeout for checking boot type to 15s by @plars in #253
- Avoid splitting cmd in runner.py by @nancyc12 in #256
- Add a fake device connector for testing purposes by @plars in #254
- [CERTTF-303] Introduce support for file attachments by @boukeas in #250
- Update cloud-init data to also work with uc24 by @plars in #257
- fix: match python version in agent test workflow to version on agent by @boukeas in #258
- Allow setting nginx max-body-size in terraform module by @plars in #261
- Testflinger server agent poetry by @plars in #262
- [CERTTF-316] Use attachments for provisioning (muxpi) by @boukeas in #265
- [CERTTF-303] Handle case of file upload interrupted by the user by @boukeas in #266
- Fix sdwire detection issue by @nancyc12 in #267
- Re-enable and fix output_timeout by @plars in #272
- Web service API change related guidelines by @mz2 in #268
- Small fix to env vars referenced in some docs by @plars in #276
- Return a reason for why CommandRunner stopped execution of a phase by @plars in #273
- update: move reboot_sdwire() back to the beginning of the provision phase by @kevinyehk in #279
- [CERTTF-327] Introduce
submit
GitHub action by @boukeas in #277 - docs(muxpi): cross-reference attachment info by @thp-canonical in #280
- Add a testflinger_common module with example usage by @plars in #275
- Remove redundant "Testing" section from the PR template by @mz2 in #284
- Multi improve submit error reporting by @plars in #281
- Report a nicer error if the user looks for a non-existant agent by @plars in #282
- Give more detail if job submission fails by @plars in #285
- Refine submit action check by @boukeas in #290
- Fix riverside errors on muxpi by @rmartin013 in #299
- timeout muxpi hdparm after 40s to workaround usb reset by @plars in #301
- Send provision log data to the server to display on agent-details page by @plars in #293
- Fix missing exit code if we fall through to the finally block by @plars in #300
- Fix an issue where we might not post the provision log unless it fails by @plars in #302
- Auto deploy tf-cmd-scripts in agent-host charm by @nancyc12 in #291
- Add TTL for agents and advertised queues by @plars in #294
- Nicer handling of job not found on the job details view by @plars in #295
- Fix agent charm on focal by @plars in #287
- [CERTTF-344] Return job ID as output from
submit
composite action by @boukeas in #309 - Display the number of consecutive failed provsion attempts on the agents page by @plars in #306
- Documentation Link in Dashboard Header by @val500 in #311
- Add job status endpoint to server by @val500 in #263
- Charm building needs rust in some cases now by @plars in #313
- Exit when we know we're unable to get the list of queues from the server by @plars in #312
- Add: support for live ISOs to zapper_kvm connector by @p-gentili in #303
- Add api and view for queue wait time percentiles by @plars in #319
- Syntax highlighted YAML rendering in README.md by @mz2 in #320
- fix incorrect formatting for file not found error in submit by @andersson1234 in #322
- fix filepath in docs/how-to/install-cli.rst in instructions by @andersson1234 in #325
- Log the error and fail gracefully for artifact download issues by @plars in #321
- Change: additional arguments/assertions for UC24 and OEM 24.04 via Zapper KVM by @p-gentili in #324
- Small fixes for the agent-host charm tests by @plars in #326
- Add github token secret to the workflow for uploading agent charms by @plars in #327
- Add device connector to provision laptops with 24.04 using image-deploy.sh [OEX86-359] by @Artur-at-work in #304
- Add stream parameter when downloading OEM ISO by @Artur-at-work in #331
- Fix provision_log reporting by @plars in #333
- Update dependency Jinja2 to v3.1.4 [SECURITY] by @renovate in #323
- Add option to wget ISO on DUT. Refactor image-deploy.sh by @Artur-at-work in #334
- device-connectors: Fix handling attachments with absolute path in oem-autoinstall by @Artur-at-work in #338
- fix(device-connectors): Remove unused code by @thp-canonical in #339
- Fix documenation builds on readthedocs by @tang-mm in #345
- fix(muxpi): Escape/quote partition labels by @thp-canonical in #344
- device-connectors: oemscripts to wget ISO directly to DUT by @Artur-at-work in #343
- chore(muxpi): Move storage plugging to context manager by @thp-canonical in #342
- fix(serial): Write log file from TCP in binary format by @thp-canonical in #341
- Trigger an agent restart if USR1 signal is received by @plars in #346
- Mount value needs to be converted to a string from Path object by @plars in #347
- fix(oem_autoinstall): Fix download ISO from webdav URL with password by @Artur-at-work in #348
- Add agent_name in TF environment by @rmartin013 in #354
- Add check for series after 24 in sdwire by @LiaoU3 in #356
- feat: add custom timeout option to zapper provisioning stage by @andersson1234 in #357
- Provision error logs by @val500 in #310
- MaaS disk config documentation example fix by @plars in #358
- Cancel job on cancel by @Hook25 in #364
- [CERTTF-414] Generalise how the exit status of the
submit
action is determined by @boukeas in #363 - Lock pymongo to version < 4.9.0 - fails to start with newer versions by @plars in #366
- Reset storage to flat layout if no default is specified by @plars in #359
- Create new endpoint in Testflinger Server to authenticate clients and distribute tokens for submitting jobs with priority by @val500 in #335
- [CERTTF-413] fix: include
chmod
method in the tarfile patch by @boukeas in #368 - Add logic to validate token and check priority permissions by @val500 in #361
- Add REBOOT_SCRIPT in TF agent environment by @rmartin013 in #381
- Default user data for oem autoinstall by @Artur-at-work in #377
- fix(agent): make sure phase exit codes are in the 0-255 range by @boukeas in #385
- Update server logic to select jobs with high priority by @val500 in #375
- Add priority test case across multiple queues by @val500 in #389
- Add authentication to CLI when submitting jobs with priority by @val500 in #360
- [CERTTF-424] feat: support a reference directory for attachments by @boukeas in #374
- Update snap metadata by @pedro-avalos in #393
- Remove redundant level "iot_provision" by @kiya956 in #394
- Update parser schema of zapper_iot by @baconYao in #380
- device_connectors: zapper_iot: provide non blocking console command by @kiya956 in #384
- Create new script to create client credentials in MongoDB by @val500 in #388
- [CERTTF-452] Modify
submit
action behaviour for reservation jobs by @boukeas in #400 - Automatically release and power-off maas nodes at the end of a job by @plars in #382
- rename tplan to more appropriate name "provision_plan" by @kiya956 in #408
- chore(deps): update docker/login-action digest to 7ca3450 by @renovate in #240
- chore(deps): update docker/build-push-action digest to 5e99dac by @renovate in #241
- chore(deps): update docker/metadata-action digest to 44d81d6 by @renovate in #251
- fix(deps): update dependency prometheus-client to ^0.21.0 by @renovate in #409
- update: resolve issues while provisioning noble oem machine using oem_autoinstall by @kevinyehk in #398
- Fix snap environment variables by @pedro-avalos in #407
- Generate prometheus metrics for flask and add metrics endpoint by @plars in #399
- Change: get rid of any Zapper-related documentation by @p-gentili in #419
- Restricted Queues by @val500 in #406
- Add a github workflow to release testflinger-k8s charm to stable by @plars in #403
- Add bash completion for testflinger-cli by @pedro-avalos in #418
- Fix for Testflinger
submit
action by @boukeas in #427 - Add jwt_signing_key as a supported terraform variable by @plars in #429
- Check for online agents when submitting a job by @plars in #423
- Update device-connector-types.rst by @jocave in #420
- Add better messages for 401 and 403 errors from job submissions by @val500 in #424
- Fix MAAS spelling by @pedro-avalos in #431
- Fix broken logo on Documentation by @baconYao in #379
- testflinger cli promote snap stable by @plars in #426
- Add: concept of preset to zapper-iot connector by @p-gentili in #401
- Add testflinger-testenv container by @plars in #417
- fix(deps): update dependency gunicorn to v23 by @renovate in #413
- Fix bad output with ssh keys in testflinger reserve command by @plars in #425
- remove hostname field, we don't support this anymore by @kiya956 in #436
- Unified agent host charm by @plars in #437
- oem_autoinstall: Change default password for user ubuntu by @Artur-at-work in #439
- Moved client_id and secret_key options to submit command by @val500 in #432
- update: Increase the timeout to 5400 seconds. by @kevinyehk in #441
- minor pyupdate improvements by @plars in #440
- chore(deps): update dependency jinja2 to v3.1.5 [security] by @renovate in #435
- Handle output from call_cmd better in maas_storage by @plars in #283
- Add: copy SSH keys at the end of zapper_iot provisioning by @p-gentili in #446
- Show all the agents serving a queue on the queue details page by @plars in #430
- publish snap to edge/beta at the same time to avoid error by @plars in #447
- Suppress most cli errors, but still warn if we get too many by @plars in #416
- Add extended reservation checks in the server by @val500 in #428
- remove agent charm by @plars in #449
- Remove python 3.8 from the CI test matrix for the agent by @plars in #450
- Update credential script to add ability to set maximum reservation time by @val500 in #433
- [CERTTF-457] feat: Github action for retrieving data from multi-device jobs by @boukeas in #434
- RTD sphinx settings, don't fail on warning by @jocave in #455
- Fix warning in the docs (missing equals) by @Hook25 in #456
- Prevent token from expiring while waiting for agent by @val500 in #452
- fix: default error threshold by @boukeas in #457
- Fix authentication how-to link by @pedro-avalos in #459
- Sort Order Improvements for the Agents table by @val500 in #448
- [CERTTF-458] feat: use agent config in reimplemented log truncation by @boukeas in #458
- Docs: Add documentation on provision_data/kernel parameter, and make lp username format in reserve_data more explicit by @MitchellAugustin in #468
- Rework setting up local juju environment using multipass and cloud-init by @omar-selo in #471
- job-schema: clarify output timeout by @cpaelzer in #470
- Fix server juju cloud init setup by @omar-selo in #475
- Fix broken MAAS links in documentation by @val500 in #474
- Remvoe method from deploy in schema check. by @kiya956 in #464
- Chore: Update terraform gitignore files by @pedro-avalos in #477
- Chore: Make agent-host ssh variables sensitive by @pedro-avalos in #478
- Add builtin account support for Classic image by @kiya956 in #466
- Minor fix in the agent table for absent provision-streak items by @val500 in #481
- Add HTML linting and formatting to CI by @pedro-avalos in #480
- [Zapper-IOT] Not do the copy_ssh_id when using the console-conf by @seankingyang in #472
- Revert "Add HTML linting and formatting to CI" by @val500 in #482
- Add device_ip into zapper_iot provisioning_data by @LaiderLai in #484
- Remove url_for from the Testflinger templates by @val500 in #483
- Remove provision plan validation from device connector by @kiya956 in #487
- Add "Circle of Friends" favicon by @pedro-avalos in #486
- Use url_for in templates by @pedro-avalos in #485
- Update docker/metadata-action digest to 902fa8e by @renovate in #414
- Update docker/build-push-action digest to 471d1dc - autoclosed by @renovate in #445
- Add poll-serial option in CLI by @val500 in #476
- CERTTF-498 Create serial output endpoints by @val500 in #463
- Fail POST v1/result with a 413 if the input is too large by @mz2 in #492
- FIx typo to trigger build pipeline by @andrejvelichkovski in #493
- feat: use unique identifier as a header when pinging testflinger by @boukeas in #495
- Fix links for agents and queues docs by @pedro-avalos in #490
- Add links to agents and queues in details by @pedro-avalos in #496
- Update dependency Jinja2 to v3.1.6 [SECURITY] by @renovate in #488
- Extract agents table by @pedro-avalos in #497
- fix: test in
submit
action hits/v1/
instead ofv1
by @boukeas in #504 - fix(deps): update dependency flask-pymongo to v3 by @renovate in #498
- chore(deps): update dependency gitpython to v3.1.44 by @renovate in #201
- Add location to agents table by @pedro-avalos in #502
- Fix tab title by @pedro-avalos in #500
- Update vanilla framework design of Testflinger server by @pedro-avalos in #501
- Fix two broken MAAS links by @val500 in #508
- Use versioned GitHub actions by @pedro-avalos in #505
- Add data headings to cards by @pedro-avalos in #509
- Replace xdg with xdg-base-dirs by @pedro-avalos in #503
- chore(deps): update dependency pytest to v8.3.5 by @renovate in #396
- chore(deps): update canonical/charming-actions action to v2.7.0 by @renovate in #336
- chore(deps): update terraform juju to ~> 0.17.0 by @renovate in #215
- Fix type error during check initial log method by @kiya956 in #515
- fix(cli): Add removable-media plug by @pedro-avalos in #513
- fix(server): Fix filter disappearing when pressing enter by @pedro-avalos in #517
- Update tf-cleanup to use environment variables provided by the charm by @val500 in #516
- fix(cli): Fix stdin filename argument for submit by @pedro-avalos in #514
- chore(server): Update testflinger-k8s charmcraft.yaml definition by @pedro-avalos in #518
- chore(agent): Update testflinger-agent-host charmcraft.yaml definition by @pedro-avalos in #519
- fix(agent): Revert charmcraft platforms syntax by @pedro-avalos in #523
- fix(server): Add reserve_data schema in server by @pedro-avalos in #521
- Add ability to select branch in agent charm action update_testflinger by @val500 in #522
- Bugfix to client in agent to handle error status codes from the server by @val500 in #527
- Search the IP address line with the right message by @nobuto-m in #529
- Added logging to node read function in MaasStorage by @val500 in #531
- chore: Simplify pyproject setup and tools by @pedro-avalos in #534
- Add reference to extended reservation in authentication docs by @val500 in #535
- chore(agent): Add agent-host-charm-promote-stable workflow by @pedro-avalos in #524
- fix(agent): Update tf-test to use ghcr.io testenv image by @pedro-avalos in #539
- fix(cli): Fix typo in testflinger-completion by @pedro-avalos in #540
- chore: Add charm libs check/update CI by @pedro-avalos in #520
- Add retries to the maas device connector to mitigate timeout issues by @val500 in #536
- fix: Update commit user and email in charm libs workflow by @pedro-avalos in #548
- chore: update charm libraries by @Canonical-Certification-Bot in #546
- chore(agent): Update agent host charm systemd lib by @pedro-avalos in #552
- Parallelize agent unit tests by @val500 in #551
- chore(muxpi): improve provisioning messages by @flotter in #569
- chore: Add license information to Testflinger CLI by @pedro-avalos in #543
- feat(ci): Generalize Charm promotion CI by @pedro-avalos in #594
- fix(CI): Validate charm promote inputs by @pedro-avalos in #595
- fix(CI): Validate snap promote CI by @pedro-avalos in #596
- feat(server): Add a variable for the charm revision, such that it takes precedence over channel by @mz2 in #494
- Add health check to pebble configuration by @val500 in #573
- fix(ci): Fix charm-update-libs.yml by @pedro-avalos in #576
- Include reference for authentication procedure in Testflinger Tutorial by @rene-oromtz in #621
- Fix: add retries when trying to copy the agent SSH key by @p-gentili in #622
- Allow trailing slash in Testflinger routes by @rene-oromtz in #623
- feat(cli): Add uv to cli by @pedro-avalos in #537
- chore(deps): update astral-sh/setup-uv digest to d4b2f3b by @renovate in #626
- chore: update charm libraries by @Canonical-Certification-Bot in #625
- chore: Fix test warnings by @pedro-avalos in #628
- feat(server): Update testflinger-server to use uv by @rene-oromtz in #629
- Add ability to enter list of restricted queues for client credentials script by @val500 in #635
- chore: Update snapcraft channels for lxd and juju by @pedro-avalos in #634
- update: reset the efi before releasing the machine by @kevinyehk in #637
- device-connectors: add TZ to reservation timestamps by @ariel-anieli in #638
- chore(server): Fix server src layout by @pedro-avalos in #639
- feat(agent): Update testflinger-agent to use uv by @rene-oromtz in #636
- chore: update charm libraries by @Canonical-Certification-Bot in #641
- fix(agent): Fix agent host charm by @pedro-avalos in #644
- Local deployment agent host by @pedro-avalos in #640
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.6.16 by @renovate in #633
- feat(device): Add uv to device-connectors by @pedro-avalos in #571
- feat(common): Update testflinger-common to use uv by @pedro-avalos in #575
- chore: harden GitHub workflows and actions by @pedro-avalos in #630
- chore(deps): update astral-sh/setup-uv digest to d4b2f3b by @renovate in #632
- feat(server): Define
provision_data
schema by @pedro-avalos in #541 - chore: Update readmes by @pedro-avalos in #544
- feat(server): Update testflinger-server to use Ruff by @rene-oromtz in #645
- chore(deps): update canonical/observability digest to 404613a by @renovate in #650
- chore(deps): update astral-sh/setup-uv action to v6 - autoclosed by @renovate in #646
- feat(cli): Update testflinger-cli to use Ruff by @rene-oromtz in #648
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.6.17 by @renovate in #653
- feat(agent): Update testflinger-agent to use Ruff by @rene-oromtz in #647
- fix(server): Update dockerfile by @pedro-avalos in #656
- fix(server): Update app name in pebble layer by @pedro-avalos in #660
- fix(server): Add proxy variables to server charm and terraform by @pedro-avalos in #662
- fix(server): Add python3-venv installation by @pedro-avalos in #663
- fix(server): Add server venv to path by @pedro-avalos in #664
- chore(deps): update astral-sh/setup-uv digest to 6b9c606 by @renovate in #657
- chore(deps): update canonical/charming-actions digest to 1753e08 by @renovate in #649
- chore(deps): update docker/build-push-action digest to 14487ce by @renovate in #651
- Fix warnings related to non-test classes picked up by pytest by @pedro-avalos in #665
- feat(ci): Split tox tests in workflows by @pedro-avalos in #667
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.7.2 by @renovate in #659
- chore(deps): update dependency uv-build to >=0.7,<0.8 by @renovate in #658
- chore: Document GitHub actions by @pedro-avalos in #605
- oem_autoinstall: Disable copy oem public ssh keys after provisioning by @Artur-at-work in #669
- Update to jammy by @pedro-avalos in #654
- feat(agent): Add terraform option for charm channel and revision by @pedro-avalos in #593
- chore(deps): update canonical/observability digest to 615489c by @renovate in #670
- chore(deps): update docker/build-push-action digest to 1dc7386 by @renovate in #676
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.7.6 by @renovate in #671
- [CERTTF-550] Support private-endpoint runners in
submit
action by @boukeas in #679 - feat(cli): Check for snap-private dirs in arguments by @pedro-avalos in #668
- fix(ci): Fix typo in charm-promote by @pedro-avalos in #683
- feat(devices): Update testflinger-devices to use Ruff by @rene-oromtz in #655
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.7.7 by @renovate in #684
- oem_autoinstall: to verify oem iso before provisioning by @Artur-at-work in #690
- feat(cli): Add JSON output option to list-queues command by @pedro-avalos in #692
- feat(server): Add GET method for /agents/data/<agent_name> endpoint by @rene-oromtz in #687
- feat(server): Add endpoint to retrieve all the jobs assigned to a queue. by @rene-oromtz in #689
- feat(devices): Use uv-build for device-connectors by @pedro-avalos in #693
- fix(server): Modify /queues/<queue_name>/agents to return correct status code by @rene-oromtz in #699
- oem_autoinstall: Exit provisioning when Secure Boot enabled and unsigned image is used by @Artur-at-work in #696
- Change: log error on console by @p-gentili in #702
- infra: Update workflows for more testing by @pedro-avalos in #695
- build packages with uv by @nancyc12 in #697
- chore: update charm libraries by @Canonical-Certification-Bot in #704
- fix(ci): Fix the release channels of charms and snaps by @pedro-avalos in #705
- fix(ci): Fix snap-promote.yml typo by @pedro-avalos in #708
- feat(cli): Extract parts from init to helpers and consts by @pedro-avalos in #685
- feat (devices): Retry importing ssh keys by @rene-oromtz in #707
- Add firmware_update support for HPE devices by @nancyc12 in #526
- update: add support for provisioning plucky desktop image for RPIs. by @kevinyehk in #701
- oem_autoinstall: add ubuntu to group adm and sudo by @xanthein in #710
- fix: Add noprovision provision_data schema by @pedro-avalos in #709
- oem_autoinstall: Update docs to specify oem images only by @Artur-at-work in #533
- feat(cli): Add enhancements for testflinger-cli to retrieve agent/queues status. by @rene-oromtz in #680
- feat(server): Modify server and agents table to allow comments on agent state by @rene-oromtz in #712
- fix(CI): Fix typos in Snap and Charm workflows by @rene-oromtz in #714
- Change: with autoinstall_oem=true provide a custom user-data file by @p-gentili in #703
- fix(agent): Include install_dependencies during upgrade_charm. by @rene-oromtz in #715
- feat: Add a yaml option to the show subcommand by @Hook25 in #718
- chore: update charm libraries by @Canonical-Certification-Bot in #722
- feat: add restricted_to field to /agents/data API by @diohe0311 in #720
- ci: fix noisy errors in charm upload ci by @pedro-avalos in #725
New Contributors
- @p-gentili made their first contribution in #188
- @mz2 made their first contribution in #172
- @thp-canonical made their first contribution in #212
- @kevinyehk made their first contribution in #224
- @boukeas made their first contribution in #250
- @andersson1234 made their first contribution in #322
- @Artur-at-work made their first contribution in #304
- @LiaoU3 made their first contribution in #356
- @Hook25 made their first contribution in #364
- @pedro-avalos made their first contribution in #393
- @baconYao made their first contribution in #380
- @MitchellAugustin made their first contribution in #468
- @omar-selo made their first contribution in #471
- @cpaelzer made their first contribution in #470
- @seankingyang made their first contribution in #472
- @LaiderLai made their first contribution in #484
- @andrejvelichkovski made their first contribution in #493
- @nobuto-m made their first contribution in #529
- @Canonical-Certification-Bot made their first contribution in #546
- @flotter made their first contribution in #569
- @rene-oromtz made their first contribution in #621
- @ariel-anieli made their first contribution in #638
- @xanthein made their first contribution in #710
- @diohe0311 made their first contribution in #720
Full Changelog: rev53...rev167