isar 1.19.0__tar.gz → 1.19.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of isar might be problematic. Click here for more details.
- {isar-1.19.0 → isar-1.19.1}/.github/workflows/project_automations.yml +5 -5
- {isar-1.19.0 → isar-1.19.1}/.github/workflows/publish_isar_base_image.yml +4 -4
- {isar-1.19.0 → isar-1.19.1}/.github/workflows/pythonpackage.yml +3 -3
- {isar-1.19.0 → isar-1.19.1}/.github/workflows/pythonpublish.yml +2 -2
- isar-1.19.1/.github/workflows/stale.yml +32 -0
- {isar-1.19.0 → isar-1.19.1}/Dockerfile +2 -2
- {isar-1.19.0 → isar-1.19.1}/PKG-INFO +2 -2
- {isar-1.19.0 → isar-1.19.1}/setup.py +1 -1
- isar-1.19.1/src/isar/__init__.py +6 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/log.py +4 -3
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/settings.py +15 -11
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +2 -2
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +2 -2
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/state_machine.py +13 -9
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/uploader.py +8 -7
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/utilities.py +3 -3
- {isar-1.19.0 → isar-1.19.1}/src/isar.egg-info/PKG-INFO +2 -2
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/telemetry/mqtt_client.py +5 -7
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/test_successful_mission.py +3 -3
- isar-1.19.0/.github/workflows/stale.yml +0 -33
- isar-1.19.0/src/isar/__init__.py +0 -6
- {isar-1.19.0 → isar-1.19.1}/.dockerignore +0 -0
- {isar-1.19.0 → isar-1.19.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/.github/release.yml +0 -0
- {isar-1.19.0 → isar-1.19.1}/.gitignore +0 -0
- {isar-1.19.0 → isar-1.19.1}/.pre-commit-config.yaml +0 -0
- {isar-1.19.0 → isar-1.19.1}/LICENSE +0 -0
- {isar-1.19.0 → isar-1.19.1}/README.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/SECURITY.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/docker-compose-turtlebot.yml +0 -0
- {isar-1.19.0 → isar-1.19.1}/docker-compose.yml +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/Makefile +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/make.bat +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/rst_processing.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/source/conf.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/source/index.rst +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/source/readme_link.md +0 -0
- {isar-1.19.0 → isar-1.19.1}/docs/state_machine_diagram.png +0 -0
- {isar-1.19.0 → isar-1.19.1}/main.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/pyproject.toml +0 -0
- {isar-1.19.0 → isar-1.19.1}/radixconfig.yml +0 -0
- {isar-1.19.0 → isar-1.19.1}/setup.cfg +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/api.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/models/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/models/models.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/models/start_mission_definition.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/schedule/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/schedule/scheduling_controller.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/security/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/apis/security/authentication.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/certs/ca-cert.pem +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/configuration_error.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/keyvault/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/keyvault/keyvault_error.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/keyvault/keyvault_service.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/logging.conf +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/default_map.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/klab_b.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/klab_compressor.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/klab_turtlebot.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/maps/turtleworld.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_missions/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_missions/default.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_poses/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/predefined_poses/predefined_poses.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/config/settings.env +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/mission_planner/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/mission_planner/local_planner.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/mission_planner/mission_planner_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/mission_planner/sequential_task_selector.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/mission_planner/task_selector_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/message.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/queues/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/queues/queue_io.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/queues/queues.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/communication/queues/status_queue.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/models/mission_metadata/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/modules.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/auth/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/auth/azure_credentials.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/readers/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/readers/base_reader.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/request_handler.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/stid/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/utilities/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/utilities/queue_utilities.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/utilities/scheduling_utilities.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/services/utilities/threaded_request.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/idle.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/initialize.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/initiate.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/monitor.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/off.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/offline.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/paused.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states/stop.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/state_machine/states_enum.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/blob_storage.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/local_storage.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/slimm_storage.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar/storage/storage_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar.egg-info/SOURCES.txt +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar.egg-info/dependency_links.txt +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar.egg-info/requires.txt +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/isar.egg-info/top_level.txt +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/exceptions/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/initialize/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/initialize/initialize_params.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/inspection/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/inspection/inspection.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/mission/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/mission/mission.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/mission/status.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/mission/step.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/mission/task.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/robots/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/models/robots/robot_model.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/robot_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/telemetry/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/telemetry/payloads.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/test_robot_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/utilities/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/utilities/json_service.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/conftest.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/config/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/integration/turtlebot/config/missions/default.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/apis/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/apis/scheduler/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/apis/security/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/apis/security/test_authentication.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/mission/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/mission/test_mission.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/models/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/models/communication/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/models/communication/test_queues.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/models/example_mission_definition.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/models/test_start_mission_definition.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/readers/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/readers/test_base_reader.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/readers/test_mission_reader.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/service_connections/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/service_connections/echo/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/utilities/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/state_machine/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/state_machine/states/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/state_machine/states/test_monitor.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/state_machine/test_state_machine.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/storage/test_blob_storage.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/isar/storage/test_uploader.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/__init__.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/blob_storage.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/mission_definition.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/mqtt_client.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/pose.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/request.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/robot_interface.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/status.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/step.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/task.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/mocks/token.py +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_json_file.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_map_config/test_map_config.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_mission_not_working.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_mission_working.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_mission_working_no_tasks.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_data/test_thermal_image_mission.json +0 -0
- {isar-1.19.0 → isar-1.19.1}/tests/test_modules.py +0 -0
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
if: github.event_name == 'issues' && github.event.action == 'opened' || github.event.action == 'reopened'
|
|
20
20
|
steps:
|
|
21
21
|
- name: 'Move issue to "Todo"'
|
|
22
|
-
uses: leonsteinhaeuser/project-beta-automations@
|
|
22
|
+
uses: leonsteinhaeuser/project-beta-automations@v2.1.0
|
|
23
23
|
with:
|
|
24
24
|
gh_token: ${{ secrets.MY_GITHUB_TOKEN }}
|
|
25
25
|
organization: equinor
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
if: github.event_name == 'issues' && github.event.action == 'closed'
|
|
33
33
|
steps:
|
|
34
34
|
- name: 'Moved issue to "Done"'
|
|
35
|
-
uses: leonsteinhaeuser/project-beta-automations@
|
|
35
|
+
uses: leonsteinhaeuser/project-beta-automations@v2.1.0
|
|
36
36
|
with:
|
|
37
37
|
gh_token: ${{ secrets.MY_GITHUB_TOKEN }}
|
|
38
38
|
organization: equinor
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
if: github.event_name == 'pull_request' && github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'review_requested'
|
|
46
46
|
steps:
|
|
47
47
|
- name: 'Move PR to "In Progress"'
|
|
48
|
-
uses: leonsteinhaeuser/project-beta-automations@
|
|
48
|
+
uses: leonsteinhaeuser/project-beta-automations@v2.1.0
|
|
49
49
|
with:
|
|
50
50
|
gh_token: ${{ secrets.MY_GITHUB_TOKEN }}
|
|
51
51
|
organization: equinor
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
if: github.event_name == 'pull_request' && github.event.action == 'ready_for_review'
|
|
59
59
|
steps:
|
|
60
60
|
- name: 'Move PR to "Review"'
|
|
61
|
-
uses: leonsteinhaeuser/project-beta-automations@
|
|
61
|
+
uses: leonsteinhaeuser/project-beta-automations@v2.1.0
|
|
62
62
|
with:
|
|
63
63
|
gh_token: ${{ secrets.MY_GITHUB_TOKEN }}
|
|
64
64
|
organization: equinor
|
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
if: github.event_name == 'pull_request' && github.event.action == 'closed'
|
|
72
72
|
steps:
|
|
73
73
|
- name: 'Move PR to "Done"'
|
|
74
|
-
uses: leonsteinhaeuser/project-beta-automations@
|
|
74
|
+
uses: leonsteinhaeuser/project-beta-automations@v2.1.0
|
|
75
75
|
with:
|
|
76
76
|
gh_token: ${{ secrets.MY_GITHUB_TOKEN }}
|
|
77
77
|
organization: equinor
|
|
@@ -27,10 +27,10 @@ jobs:
|
|
|
27
27
|
|
|
28
28
|
steps:
|
|
29
29
|
- name: Checkout repository
|
|
30
|
-
uses: actions/checkout@
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
31
|
|
|
32
32
|
- name: Log in to the Container registry
|
|
33
|
-
uses: docker/login-action@
|
|
33
|
+
uses: docker/login-action@v3
|
|
34
34
|
with:
|
|
35
35
|
registry: ${{ env.REGISTRY }}
|
|
36
36
|
username: ${{ github.actor }}
|
|
@@ -38,12 +38,12 @@ jobs:
|
|
|
38
38
|
|
|
39
39
|
- name: Extract metadata (tags, labels) for Docker
|
|
40
40
|
id: meta
|
|
41
|
-
uses: docker/metadata-action@
|
|
41
|
+
uses: docker/metadata-action@v5
|
|
42
42
|
with:
|
|
43
43
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
44
44
|
|
|
45
45
|
- name: Build and push Docker image
|
|
46
|
-
uses: docker/build-push-action@
|
|
46
|
+
uses: docker/build-push-action@v5
|
|
47
47
|
with:
|
|
48
48
|
context: .
|
|
49
49
|
file: Dockerfile
|
|
@@ -14,13 +14,13 @@ jobs:
|
|
|
14
14
|
strategy:
|
|
15
15
|
fail-fast: false
|
|
16
16
|
matrix:
|
|
17
|
-
python-version: ["3.
|
|
17
|
+
python-version: ["3.11", "3.12"]
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
21
|
|
|
22
22
|
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v5
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
26
26
|
|
|
@@ -8,9 +8,9 @@ jobs:
|
|
|
8
8
|
deploy:
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
12
|
- name: Set up Python
|
|
13
|
-
uses: actions/setup-python@
|
|
13
|
+
uses: actions/setup-python@v5
|
|
14
14
|
with:
|
|
15
15
|
python-version: "3.x"
|
|
16
16
|
- name: Install dependencies
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
|
|
2
|
+
#
|
|
3
|
+
# You can adjust the behavior by modifying this file.
|
|
4
|
+
# For more information, see:
|
|
5
|
+
# https://github.com/actions/stale
|
|
6
|
+
name: Mark stale issues and pull requests
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
schedule:
|
|
11
|
+
- cron: "35 8 * * *"
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
stale:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
permissions:
|
|
17
|
+
issues: write
|
|
18
|
+
pull-requests: write
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Close Stale Issues
|
|
22
|
+
uses: actions/stale@v9
|
|
23
|
+
with:
|
|
24
|
+
repo-token: ${{ secrets.STALE_ISSUE_TOKEN }}
|
|
25
|
+
stale-issue-message: "This issue has automatically been marked as stale as there has been no activity for 60 days."
|
|
26
|
+
stale-pr-message: "This pull request has automatically been marked as stale as there has been no activity for 30 days."
|
|
27
|
+
stale-issue-label: "stale"
|
|
28
|
+
stale-pr-label: "stale"
|
|
29
|
+
close-issue-message: "This issue has been closed automatically due to a lack of activity."
|
|
30
|
+
close-pr-message: "This pull request has been closed automatically due to a lack of activity."
|
|
31
|
+
days-before-pr-stale: 30
|
|
32
|
+
days-before-close: -1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
FROM python:3.
|
|
1
|
+
FROM python:3.12-slim AS builder
|
|
2
2
|
|
|
3
3
|
WORKDIR /app
|
|
4
4
|
RUN apt-get update
|
|
@@ -15,7 +15,7 @@ RUN pip install .
|
|
|
15
15
|
# Install the base isar-robot package
|
|
16
16
|
RUN pip install isar-robot
|
|
17
17
|
|
|
18
|
-
FROM python:3.
|
|
18
|
+
FROM python:3.12-slim
|
|
19
19
|
WORKDIR /app
|
|
20
20
|
COPY --from=builder /opt/venv /opt/venv
|
|
21
21
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: isar
|
|
3
|
-
Version: 1.19.
|
|
3
|
+
Version: 1.19.1
|
|
4
4
|
Summary: Integration and Supervisory control of Autonomous Robots
|
|
5
5
|
Home-page: https://github.com/equinor/isar
|
|
6
6
|
Author: Equinor ASA
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python
|
|
|
12
12
|
Classifier: Topic :: Scientific/Engineering
|
|
13
13
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
14
14
|
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
-
Requires-Python: >=3.
|
|
15
|
+
Requires-Python: >=3.11
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: alitra>=1.1.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import importlib.resources as pkg_resources
|
|
2
1
|
import logging
|
|
3
2
|
import logging.config
|
|
3
|
+
from importlib.resources import as_file, files
|
|
4
4
|
|
|
5
5
|
import yaml
|
|
6
6
|
from opencensus.ext.azure.log_exporter import AzureLogHandler
|
|
@@ -14,8 +14,9 @@ from isar.config.settings import settings
|
|
|
14
14
|
|
|
15
15
|
def setup_loggers(keyvault: Keyvault) -> None:
|
|
16
16
|
log_levels: dict = settings.LOG_LEVELS
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
source = files("isar").joinpath("config").joinpath("logging.conf")
|
|
18
|
+
with as_file(source) as f:
|
|
19
|
+
log_config = yaml.safe_load(open(f))
|
|
19
20
|
|
|
20
21
|
logging.config.dictConfig(log_config)
|
|
21
22
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import importlib.resources as pkg_resources
|
|
2
1
|
import os
|
|
2
|
+
from importlib.resources import as_file, files
|
|
3
3
|
from typing import Any, List, Optional
|
|
4
4
|
|
|
5
5
|
from dotenv import load_dotenv
|
|
@@ -14,11 +14,12 @@ from robot_interface.telemetry.payloads import VideoStream
|
|
|
14
14
|
class Settings(BaseSettings):
|
|
15
15
|
def __init__(self) -> None:
|
|
16
16
|
try:
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
source = files("isar").joinpath("config").joinpath("settings.env")
|
|
18
|
+
with as_file(source) as eml:
|
|
19
|
+
env_file = eml
|
|
19
20
|
except ModuleNotFoundError:
|
|
20
|
-
|
|
21
|
-
super().__init__(_env_file=
|
|
21
|
+
env_file = None
|
|
22
|
+
super().__init__(_env_file=env_file)
|
|
22
23
|
|
|
23
24
|
# Determines which robot package ISAR will attempt to import
|
|
24
25
|
# Name must match with an installed python package in the local environment
|
|
@@ -310,13 +311,16 @@ settings = Settings()
|
|
|
310
311
|
class RobotSettings(BaseSettings):
|
|
311
312
|
def __init__(self) -> None:
|
|
312
313
|
try:
|
|
313
|
-
|
|
314
|
-
f"{settings.ROBOT_PACKAGE}
|
|
315
|
-
|
|
316
|
-
|
|
314
|
+
source = (
|
|
315
|
+
files(f"{settings.ROBOT_PACKAGE}")
|
|
316
|
+
.joinpath("config")
|
|
317
|
+
.joinpath("settings.env")
|
|
318
|
+
)
|
|
319
|
+
with as_file(source) as eml:
|
|
320
|
+
env_file = eml
|
|
317
321
|
except ModuleNotFoundError:
|
|
318
|
-
|
|
319
|
-
super().__init__(_env_file=
|
|
322
|
+
env_file = None
|
|
323
|
+
super().__init__(_env_file=env_file)
|
|
320
324
|
|
|
321
325
|
# ISAR steps the robot is capable of performing
|
|
322
326
|
# This should be set in the robot package settings.env file
|
{isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import time
|
|
3
|
-
from datetime import datetime
|
|
3
|
+
from datetime import UTC, datetime
|
|
4
4
|
from queue import Queue
|
|
5
5
|
|
|
6
6
|
from isar.config.settings import settings
|
|
@@ -18,7 +18,7 @@ class RobotHeartbeatPublisher:
|
|
|
18
18
|
payload: RobotHeartbeatPayload = RobotHeartbeatPayload(
|
|
19
19
|
isar_id=settings.ISAR_ID,
|
|
20
20
|
robot_name=settings.ROBOT_NAME,
|
|
21
|
-
timestamp=datetime.
|
|
21
|
+
timestamp=datetime.now(UTC),
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
self.mqtt_publisher.publish(
|
{isar-1.19.0 → isar-1.19.1}/src/isar/services/service_connections/mqtt/robot_info_publisher.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import time
|
|
3
|
-
from datetime import datetime
|
|
3
|
+
from datetime import UTC, datetime
|
|
4
4
|
from queue import Queue
|
|
5
5
|
|
|
6
6
|
from isar.config.settings import robot_settings, settings
|
|
@@ -25,7 +25,7 @@ class RobotInfoPublisher:
|
|
|
25
25
|
host=settings.API_HOST_VIEWED_EXTERNALLY,
|
|
26
26
|
port=settings.API_PORT,
|
|
27
27
|
capabilities=robot_settings.CAPABILITIES,
|
|
28
|
-
timestamp=datetime.
|
|
28
|
+
timestamp=datetime.now(UTC),
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
self.mqtt_publisher.publish(
|
|
@@ -2,7 +2,7 @@ import json
|
|
|
2
2
|
import logging
|
|
3
3
|
import queue
|
|
4
4
|
from collections import deque
|
|
5
|
-
from datetime import datetime
|
|
5
|
+
from datetime import UTC, datetime
|
|
6
6
|
from typing import Deque, List, Optional
|
|
7
7
|
|
|
8
8
|
from alitra import Pose
|
|
@@ -508,7 +508,7 @@ class StateMachine(object):
|
|
|
508
508
|
"error_description": (
|
|
509
509
|
error_message.error_description if error_message else None
|
|
510
510
|
),
|
|
511
|
-
"timestamp": datetime.
|
|
511
|
+
"timestamp": datetime.now(UTC),
|
|
512
512
|
},
|
|
513
513
|
cls=EnhancedJSONEncoder,
|
|
514
514
|
)
|
|
@@ -516,7 +516,8 @@ class StateMachine(object):
|
|
|
516
516
|
self.mqtt_publisher.publish(
|
|
517
517
|
topic=settings.TOPIC_ISAR_MISSION,
|
|
518
518
|
payload=payload,
|
|
519
|
-
|
|
519
|
+
qos=1,
|
|
520
|
+
retain=True,
|
|
520
521
|
)
|
|
521
522
|
|
|
522
523
|
def publish_task_status(self, task: Task) -> None:
|
|
@@ -540,7 +541,7 @@ class StateMachine(object):
|
|
|
540
541
|
"error_description": (
|
|
541
542
|
error_message.error_description if error_message else None
|
|
542
543
|
),
|
|
543
|
-
"timestamp": datetime.
|
|
544
|
+
"timestamp": datetime.now(UTC),
|
|
544
545
|
},
|
|
545
546
|
cls=EnhancedJSONEncoder,
|
|
546
547
|
)
|
|
@@ -548,7 +549,8 @@ class StateMachine(object):
|
|
|
548
549
|
self.mqtt_publisher.publish(
|
|
549
550
|
topic=settings.TOPIC_ISAR_TASK,
|
|
550
551
|
payload=payload,
|
|
551
|
-
|
|
552
|
+
qos=1,
|
|
553
|
+
retain=True,
|
|
552
554
|
)
|
|
553
555
|
|
|
554
556
|
def publish_step_status(self, step: Step) -> None:
|
|
@@ -574,7 +576,7 @@ class StateMachine(object):
|
|
|
574
576
|
"error_description": (
|
|
575
577
|
error_message.error_description if error_message else None
|
|
576
578
|
),
|
|
577
|
-
"timestamp": datetime.
|
|
579
|
+
"timestamp": datetime.now(UTC),
|
|
578
580
|
},
|
|
579
581
|
cls=EnhancedJSONEncoder,
|
|
580
582
|
)
|
|
@@ -582,7 +584,8 @@ class StateMachine(object):
|
|
|
582
584
|
self.mqtt_publisher.publish(
|
|
583
585
|
topic=settings.TOPIC_ISAR_STEP,
|
|
584
586
|
payload=payload,
|
|
585
|
-
|
|
587
|
+
qos=1,
|
|
588
|
+
retain=True,
|
|
586
589
|
)
|
|
587
590
|
|
|
588
591
|
def publish_status(self) -> None:
|
|
@@ -593,7 +596,7 @@ class StateMachine(object):
|
|
|
593
596
|
"isar_id": settings.ISAR_ID,
|
|
594
597
|
"robot_name": settings.ROBOT_NAME,
|
|
595
598
|
"status": self._current_status(),
|
|
596
|
-
"timestamp": datetime.
|
|
599
|
+
"timestamp": datetime.now(UTC),
|
|
597
600
|
},
|
|
598
601
|
cls=EnhancedJSONEncoder,
|
|
599
602
|
)
|
|
@@ -601,7 +604,8 @@ class StateMachine(object):
|
|
|
601
604
|
self.mqtt_publisher.publish(
|
|
602
605
|
topic=settings.TOPIC_ISAR_STATUS,
|
|
603
606
|
payload=payload,
|
|
604
|
-
|
|
607
|
+
qos=1,
|
|
608
|
+
retain=True,
|
|
605
609
|
)
|
|
606
610
|
|
|
607
611
|
def _current_status(self) -> RobotStatus:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
from dataclasses import dataclass
|
|
4
|
-
from datetime import datetime, timedelta
|
|
4
|
+
from datetime import UTC, datetime, timedelta
|
|
5
5
|
from queue import Empty, Queue
|
|
6
6
|
from typing import List, Union
|
|
7
7
|
|
|
@@ -22,12 +22,12 @@ class UploaderQueueItem:
|
|
|
22
22
|
mission: Mission
|
|
23
23
|
storage_handler: StorageInterface
|
|
24
24
|
_retry_count: int
|
|
25
|
-
_next_retry_time: datetime = datetime.
|
|
25
|
+
_next_retry_time: datetime = datetime.now(UTC)
|
|
26
26
|
|
|
27
27
|
def increment_retry(self, max_wait_time: int) -> None:
|
|
28
28
|
self._retry_count += 1
|
|
29
29
|
seconds_until_retry: int = min(2**self._retry_count, max_wait_time)
|
|
30
|
-
self._next_retry_time = datetime.
|
|
30
|
+
self._next_retry_time = datetime.now(UTC) + timedelta(
|
|
31
31
|
seconds=seconds_until_retry
|
|
32
32
|
)
|
|
33
33
|
|
|
@@ -35,10 +35,10 @@ class UploaderQueueItem:
|
|
|
35
35
|
return self._retry_count
|
|
36
36
|
|
|
37
37
|
def is_ready_for_upload(self) -> bool:
|
|
38
|
-
return datetime.
|
|
38
|
+
return datetime.now(UTC) >= self._next_retry_time
|
|
39
39
|
|
|
40
40
|
def seconds_until_retry(self) -> int:
|
|
41
|
-
return max(0, int((self._next_retry_time - datetime.
|
|
41
|
+
return max(0, int((self._next_retry_time - datetime.now(UTC)).total_seconds()))
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class Uploader:
|
|
@@ -154,12 +154,13 @@ class Uploader:
|
|
|
154
154
|
"inspection_id": inspection.id,
|
|
155
155
|
"inspection_path": inspection_path,
|
|
156
156
|
"analysis_type": inspection.metadata.analysis_type,
|
|
157
|
-
"timestamp": datetime.
|
|
157
|
+
"timestamp": datetime.now(UTC),
|
|
158
158
|
},
|
|
159
159
|
cls=EnhancedJSONEncoder,
|
|
160
160
|
)
|
|
161
161
|
self.mqtt_publisher.publish(
|
|
162
162
|
topic=settings.TOPIC_ISAR_INSPECTION_RESULT,
|
|
163
163
|
payload=payload,
|
|
164
|
-
|
|
164
|
+
qos=1,
|
|
165
|
+
retain=True,
|
|
165
166
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import time
|
|
3
|
-
from datetime import datetime
|
|
3
|
+
from datetime import UTC, datetime
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Tuple
|
|
6
6
|
|
|
@@ -37,7 +37,7 @@ def construct_metadata_file(
|
|
|
37
37
|
"mission_id": mission.id,
|
|
38
38
|
"mission_name": mission.name,
|
|
39
39
|
"plant_name": settings.PLANT_NAME,
|
|
40
|
-
"mission_date": datetime.
|
|
40
|
+
"mission_date": datetime.now(UTC).date(),
|
|
41
41
|
"isar_id": settings.ISAR_ID,
|
|
42
42
|
"robot_name": settings.ROBOT_NAME,
|
|
43
43
|
"analysis_type": (
|
|
@@ -80,4 +80,4 @@ def get_filename(
|
|
|
80
80
|
|
|
81
81
|
def get_foldername(mission: Mission) -> str:
|
|
82
82
|
mission_name: str = mission.name.replace(" ", "-")
|
|
83
|
-
return f"{datetime.
|
|
83
|
+
return f"{datetime.now(UTC).date()}__{settings.PLANT_SHORT_NAME}__{mission_name}__{mission.id}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: isar
|
|
3
|
-
Version: 1.19.
|
|
3
|
+
Version: 1.19.1
|
|
4
4
|
Summary: Integration and Supervisory control of Autonomous Robots
|
|
5
5
|
Home-page: https://github.com/equinor/isar
|
|
6
6
|
Author: Equinor ASA
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python
|
|
|
12
12
|
Classifier: Topic :: Scientific/Engineering
|
|
13
13
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
14
14
|
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
-
Requires-Python: >=3.
|
|
15
|
+
Requires-Python: >=3.11
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: alitra>=1.1.3
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
+
import json
|
|
1
2
|
import time
|
|
2
3
|
from abc import ABCMeta, abstractmethod
|
|
4
|
+
from datetime import UTC, datetime
|
|
3
5
|
from queue import Queue
|
|
4
|
-
from typing import Callable, Tuple
|
|
5
|
-
from datetime import datetime
|
|
6
|
-
import json
|
|
6
|
+
from typing import Callable, Tuple
|
|
7
7
|
|
|
8
|
-
from robot_interface.models.exceptions.robot_exceptions import
|
|
9
|
-
RobotTelemetryException,
|
|
10
|
-
)
|
|
8
|
+
from robot_interface.models.exceptions.robot_exceptions import RobotTelemetryException
|
|
11
9
|
from robot_interface.telemetry.payloads import CloudHealthPayload
|
|
12
10
|
from robot_interface.utilities.json_service import EnhancedJSONEncoder
|
|
13
11
|
|
|
@@ -75,7 +73,7 @@ class MqttTelemetryPublisher(MqttClientInterface):
|
|
|
75
73
|
topic = self.topic
|
|
76
74
|
except RobotTelemetryException:
|
|
77
75
|
payload = json.dumps(
|
|
78
|
-
CloudHealthPayload(isar_id, robot_name, datetime.
|
|
76
|
+
CloudHealthPayload(isar_id, robot_name, datetime.now(UTC)),
|
|
79
77
|
cls=EnhancedJSONEncoder,
|
|
80
78
|
)
|
|
81
79
|
topic = self.cloud_healt_topic
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import shutil
|
|
2
2
|
import time
|
|
3
3
|
from copy import deepcopy
|
|
4
|
-
from datetime import datetime, timedelta
|
|
4
|
+
from datetime import UTC, datetime, timedelta
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
from typing import List
|
|
7
7
|
|
|
@@ -102,9 +102,9 @@ def test_successful_mission(
|
|
|
102
102
|
mission_id: str = state_machine_thread.state_machine.current_mission.id
|
|
103
103
|
mission: Mission = deepcopy(state_machine_thread.state_machine.current_mission)
|
|
104
104
|
|
|
105
|
-
start_time: datetime = datetime.
|
|
105
|
+
start_time: datetime = datetime.now(UTC)
|
|
106
106
|
while state_machine_thread.state_machine.current_state != States.Idle:
|
|
107
|
-
if (datetime.
|
|
107
|
+
if (datetime.now(UTC) - start_time) > integration_test_timeout:
|
|
108
108
|
raise TimeoutError
|
|
109
109
|
time.sleep(5)
|
|
110
110
|
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
|
|
2
|
-
#
|
|
3
|
-
# You can adjust the behavior by modifying this file.
|
|
4
|
-
# For more information, see:
|
|
5
|
-
# https://github.com/actions/stale
|
|
6
|
-
name: Mark stale issues and pull requests
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
workflow_dispatch:
|
|
10
|
-
schedule:
|
|
11
|
-
- cron: '35 8 * * *'
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
stale:
|
|
15
|
-
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
permissions:
|
|
18
|
-
issues: write
|
|
19
|
-
pull-requests: write
|
|
20
|
-
|
|
21
|
-
steps:
|
|
22
|
-
- name: Close Stale Issues
|
|
23
|
-
uses: actions/stale@v9.0.0
|
|
24
|
-
with:
|
|
25
|
-
repo-token: ${{ secrets.STALE_ISSUE_TOKEN }}
|
|
26
|
-
stale-issue-message: 'This issue has automatically been marked as stale as there has been no activity for 60 days.'
|
|
27
|
-
stale-pr-message: 'This pull request has automatically been marked as stale as there has been no activity for 30 days.'
|
|
28
|
-
stale-issue-label: 'stale'
|
|
29
|
-
stale-pr-label: 'stale'
|
|
30
|
-
close-issue-message: 'This issue has been closed automatically due to a lack of activity.'
|
|
31
|
-
close-pr-message: 'This pull request has been closed automatically due to a lack of activity.'
|
|
32
|
-
days-before-pr-stale: 30
|
|
33
|
-
days-before-close: -1
|
isar-1.19.0/src/isar/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|