From 82d010f0a9dfcd49b3c320ff3a6f01adb7c901f3 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Mon, 5 Jun 2023 21:57:04 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages for workflow run 2001 Commit: 6f6f27cd7cd4b43cb0214803f8b2a2ce3197d896 --- _administration_controller_8cs_source.html | 610 +++++---- _api_controller_8cs_source.html | 2 +- _application_8cs_source.html | 299 +++-- _basic_watchdog_8cs_source.html | 8 +- _bridge_controller_8cs_source.html | 2 +- _byond_command_8cs_source.html | 10 +- _byond_controller_8cs_source.html | 6 +- _byond_manager_8cs_source.html | 4 +- _chat_controller_8cs_source.html | 2 +- _chat_manager_8cs_source.html | 2 +- _chat_manager_factory_8cs_source.html | 2 +- _command_factory_8cs_source.html | 4 +- ...ent_interfacing_controller_8cs_source.html | 2 +- _configuration_8cs_source.html | 4 +- _configuration_controller_8cs_source.html | 2 +- _control_panel_controller_8cs_source.html | 2 +- _discord_provider_8cs_source.html | 4 +- _dmb_factory_8cs_source.html | 4 +- _dream_daemon_controller_8cs_source.html | 6 +- _dream_maker_8cs_source.html | 8 +- _dream_maker_controller_8cs_source.html | 6 +- _event_consumer_8cs_source.html | 4 +- _git_hub_client_factory_8cs.html | 8 +- _git_hub_client_factory_8cs_source.html | 230 ++-- _git_hub_o_auth_validator_8cs_source.html | 106 +- ..._remote_deployment_manager_8cs_source.html | 582 ++++----- _git_hub_remote_features_8cs_source.html | 199 ++- _git_hub_service_8cs.html | 112 ++ _git_hub_service_8cs_source.html | 364 ++++++ _git_hub_service_factory_8cs.html | 111 ++ _git_hub_service_factory_8cs_source.html | 147 +++ _git_remote_features_factory_8cs_source.html | 22 +- _home_controller_8cs_source.html | 2 +- _i_authenticated_git_hub_service_8cs.html | 112 ++ ...henticated_git_hub_service_8cs_source.html | 112 ++ _i_byond_manager_8cs_source.html | 50 +- _i_chat_manager_8cs_source.html | 70 +- _i_chat_manager_factory_8cs_source.html | 2 +- _i_component_service_8cs.html | 110 ++ _i_component_service_8cs_source.html | 98 ++ _i_configuration_8cs_source.html | 54 +- _i_credentials_provider_8cs_source.html | 2 +- _i_dmb_factory_8cs_source.html | 42 +- _i_dream_maker_8cs_source.html | 2 +- _i_git_hub_client_factory_8cs.html | 10 +- _i_git_hub_client_factory_8cs_source.html | 20 +- _i_git_hub_service_8cs.html | 112 ++ _i_git_hub_service_8cs_source.html | 123 ++ _i_git_hub_service_factory_8cs.html | 112 ++ _i_git_hub_service_factory_8cs_source.html | 102 ++ _i_instance_8cs_source.html | 18 +- _i_instance_core_8cs_source.html | 10 +- _i_instance_factory_8cs_source.html | 30 +- _i_job_manager_8cs_source.html | 44 +- _i_job_service_8cs.html | 110 ++ _i_job_service_8cs_source.html | 103 ++ _i_repository_8cs_source.html | 2 +- _i_repository_manager_8cs_source.html | 2 +- _instance_controller_8cs_source.html | 6 +- _instance_factory_8cs_source.html | 8 +- _instance_manager_8cs_source.html | 32 +- ..._permission_set_controller_8cs_source.html | 2 +- _instance_required_controller_8cs_source.html | 2 +- _instance_wrapper_8cs_source.html | 10 +- _irc_provider_8cs_source.html | 4 +- _job_controller_8cs_source.html | 6 +- _job_entrypoint_8cs_source.html | 2 +- _job_exception_8cs_source.html | 2 +- _job_handler_8cs_source.html | 2 +- _job_progress_reporter_8cs_source.html | 2 +- ..._manager_8cs.html => _job_service_8cs.html | 8 +- ...ource.html => _job_service_8cs_source.html | 126 +- _lib_git2_repository_factory_8cs_source.html | 4 +- _limited_file_stream_result_8cs_source.html | 2 +- ...ile_stream_result_executor_8cs_source.html | 2 +- _o_auth_providers_8cs_source.html | 14 +- _paginatable_result_8cs_source.html | 2 +- _posix_process_features_8cs_source.html | 2 +- _posix_watchdog_8cs_source.html | 8 +- _posix_watchdog_factory_8cs_source.html | 14 +- _provider_8cs_source.html | 4 +- _provider_factory_8cs_source.html | 4 +- _pull_requests_command_8cs_source.html | 6 +- ...deployment_manager_factory_8cs_source.html | 20 +- _repository_8cs_source.html | 283 ++-- _repository_controller_8cs_source.html | 6 +- _repository_manager_8cs_source.html | 390 +++--- _repository_update_service_8cs_source.html | 2 +- _revision_command_8cs_source.html | 6 +- _server_updater_8cs_source.html | 487 ++++--- ...vice_collection_extensions_8cs_source.html | 285 ++-- _session_controller_8cs_source.html | 2 +- _session_controller_factory_8cs_source.html | 6 +- _session_persistor_8cs_source.html | 2 +- _swagger_configuration_8cs_source.html | 2 +- _swarm_controller_8cs_source.html | 2 +- _tgs_authorize_attribute_8cs_source.html | 2 +- ...st_2_components_2_instance_8cs_source.html | 20 +- ...ts_2_watchdog_2_i_watchdog_8cs_source.html | 84 +- ...chdog_2_i_watchdog_factory_8cs_source.html | 6 +- ...atchdog_2_watchdog_factory_8cs_source.html | 18 +- _transfer_controller_8cs_source.html | 2 +- _updates_configuration_8cs_source.html | 7 +- _user_controller_8cs_source.html | 2 +- _user_group_controller_8cs_source.html | 2 +- _watchdog_base_8cs_source.html | 10 +- _windows_byond_installer_8cs_source.html | 2 +- _windows_process_features_8cs_source.html | 2 +- _windows_watchdog_8cs_source.html | 8 +- _windows_watchdog_factory_8cs_source.html | 14 +- annotated.html | 62 +- class_i_disposable.html | 2 +- class_i_disposable__inherit__graph.map | 2 +- class_i_disposable__inherit__graph.md5 | 2 +- class_i_disposable__inherit__graph.png | Bin 338281 -> 338145 bytes class_i_hosted_service.html | 49 +- class_i_hosted_service__inherit__graph.map | 47 +- class_i_hosted_service__inherit__graph.md5 | 2 +- class_i_hosted_service__inherit__graph.png | Bin 139335 -> 134029 bytes ...rver_1_1_api_1_1_models_1_1_entity_id.html | 2 +- ...1_api_1_1_models_1_1_internal_1_1_job.html | 6 +- ..._1_1_internal_1_1_repository_settings.html | 2 +- ..._1_1_api_1_1_models_1_1_server_update.html | 2 +- ..._1_1_models_1_1_test_merge_parameters.html | 6 +- ...omponents_1_1_byond_1_1_byond_manager.html | 34 +- ...1_byond_1_1_byond_manager__coll__graph.map | 27 +- ...1_byond_1_1_byond_manager__coll__graph.md5 | 2 +- ...1_byond_1_1_byond_manager__coll__graph.png | Bin 104380 -> 107760 bytes ...yond_1_1_byond_manager__inherit__graph.map | 9 +- ...yond_1_1_byond_manager__inherit__graph.md5 | 2 +- ...yond_1_1_byond_manager__inherit__graph.png | Bin 12012 -> 14855 bytes ..._components_1_1_chat_1_1_chat_manager.html | 60 +- ...1_1_chat_1_1_chat_manager__coll__graph.map | 49 +- ...1_1_chat_1_1_chat_manager__coll__graph.md5 | 2 +- ...1_1_chat_1_1_chat_manager__coll__graph.png | Bin 188280 -> 192502 bytes ..._chat_1_1_chat_manager__inherit__graph.map | 11 +- ..._chat_1_1_chat_manager__inherit__graph.md5 | 2 +- ..._chat_1_1_chat_manager__inherit__graph.png | Bin 16108 -> 18562 bytes ...1_chat_1_1_commands_1_1_byond_command.html | 27 +- ...ommands_1_1_byond_command__coll__graph.map | 19 +- ...ommands_1_1_byond_command__coll__graph.md5 | 2 +- ...ommands_1_1_byond_command__coll__graph.png | Bin 35948 -> 37853 bytes ...chat_1_1_commands_1_1_command_factory.html | 29 +- ...mands_1_1_command_factory__coll__graph.map | 29 +- ...mands_1_1_command_factory__coll__graph.md5 | 2 +- ...mands_1_1_command_factory__coll__graph.png | Bin 86617 -> 89179 bytes ..._1_commands_1_1_pull_requests_command.html | 31 +- ...1_1_pull_requests_command__coll__graph.map | 25 +- ...1_1_pull_requests_command__coll__graph.md5 | 2 +- ...1_1_pull_requests_command__coll__graph.png | Bin 64787 -> 67987 bytes ...hat_1_1_commands_1_1_revision_command.html | 25 +- ...ands_1_1_revision_command__coll__graph.map | 19 +- ...ands_1_1_revision_command__coll__graph.md5 | 2 +- ...ands_1_1_revision_command__coll__graph.png | Bin 36466 -> 39143 bytes ...at_1_1_providers_1_1_discord_provider.html | 1 - ...ders_1_1_discord_provider__coll__graph.map | 33 +- ...ders_1_1_discord_provider__coll__graph.md5 | 2 +- ...ders_1_1_discord_provider__coll__graph.png | Bin 153343 -> 151219 bytes ...1_chat_1_1_providers_1_1_irc_provider.html | 1 - ...roviders_1_1_irc_provider__coll__graph.map | 27 +- ...roviders_1_1_irc_provider__coll__graph.md5 | 2 +- ...roviders_1_1_irc_provider__coll__graph.png | Bin 118709 -> 116602 bytes ...s_1_1_chat_1_1_providers_1_1_provider.html | 1 - ..._1_providers_1_1_provider__coll__graph.map | 11 +- ..._1_providers_1_1_provider__coll__graph.md5 | 2 +- ..._1_providers_1_1_provider__coll__graph.png | Bin 53226 -> 50988 bytes ...at_1_1_providers_1_1_provider_factory.html | 13 +- ...ders_1_1_provider_factory__coll__graph.map | 13 +- ...ders_1_1_provider_factory__coll__graph.md5 | 2 +- ...ders_1_1_provider_factory__coll__graph.png | Bin 39554 -> 36887 bytes ...onents_1_1_deployment_1_1_dmb_factory.html | 56 +- ...eployment_1_1_dmb_factory__coll__graph.map | 37 +- ...eployment_1_1_dmb_factory__coll__graph.md5 | 2 +- ...eployment_1_1_dmb_factory__coll__graph.png | Bin 132336 -> 135884 bytes ...oyment_1_1_dmb_factory__inherit__graph.map | 13 +- ...oyment_1_1_dmb_factory__inherit__graph.md5 | 2 +- ...oyment_1_1_dmb_factory__inherit__graph.png | Bin 20219 -> 22792 bytes ...onents_1_1_deployment_1_1_dream_maker.html | 51 +- ...eployment_1_1_dream_maker__coll__graph.map | 51 +- ...eployment_1_1_dream_maker__coll__graph.md5 | 2 +- ...eployment_1_1_dream_maker__coll__graph.png | Bin 225737 -> 222495 bytes ...te_1_1_base_remote_deployment_manager.html | 4 +- ...hub_remote_deployment_manager-members.html | 4 +- ...1_1_git_hub_remote_deployment_manager.html | 458 ++++--- ...remote_deployment_manager__coll__graph.map | 2 +- ...remote_deployment_manager__coll__graph.md5 | 2 +- ...remote_deployment_manager__coll__graph.png | Bin 28471 -> 28528 bytes ...6481e15b9a3818f7aaf010b358b8616_cgraph.map | 9 +- ...6481e15b9a3818f7aaf010b358b8616_cgraph.md5 | 2 +- ...6481e15b9a3818f7aaf010b358b8616_cgraph.png | Bin 19079 -> 46499 bytes ...88d0aa5da698622e9e7bc92ce581922_cgraph.map | 6 +- ...88d0aa5da698622e9e7bc92ce581922_cgraph.md5 | 2 +- ...88d0aa5da698622e9e7bc92ce581922_cgraph.png | Bin 19085 -> 20533 bytes ...5d653f6a93a8a416b7829c77203aa68_cgraph.map | 2 +- ...5d653f6a93a8a416b7829c77203aa68_cgraph.md5 | 2 +- ...5d653f6a93a8a416b7829c77203aa68_cgraph.png | Bin 13826 -> 14432 bytes ...aea11a171cc57f9edc02c7c3b942d77_cgraph.map | 6 +- ...aea11a171cc57f9edc02c7c3b942d77_cgraph.md5 | 2 +- ...aea11a171cc57f9edc02c7c3b942d77_cgraph.png | Bin 19065 -> 20544 bytes ...te_deployment_manager_factory-members.html | 4 +- ...1_1_remote_deployment_manager_factory.html | 40 +- ...eployment_manager_factory__coll__graph.map | 2 +- ...eployment_manager_factory__coll__graph.md5 | 2 +- ...eployment_manager_factory__coll__graph.png | Bin 56612 -> 56585 bytes ...ponents_1_1_events_1_1_event_consumer.html | 17 +- ...events_1_1_event_consumer__coll__graph.map | 17 +- ...events_1_1_event_consumer__coll__graph.md5 | 2 +- ...events_1_1_event_consumer__coll__graph.png | Bin 38936 -> 41675 bytes ..._1_1_host_1_1_components_1_1_instance.html | 54 +- ...1_components_1_1_instance__coll__graph.map | 37 +- ...1_components_1_1_instance__coll__graph.md5 | 2 +- ...1_components_1_1_instance__coll__graph.png | Bin 122336 -> 126521 bytes ...omponents_1_1_instance__inherit__graph.map | 11 +- ...omponents_1_1_instance__inherit__graph.md5 | 2 +- ...omponents_1_1_instance__inherit__graph.png | Bin 20511 -> 22449 bytes ...t_1_1_components_1_1_instance_factory.html | 78 +- ...ents_1_1_instance_factory__coll__graph.map | 71 +- ...ents_1_1_instance_factory__coll__graph.md5 | 2 +- ...ents_1_1_instance_factory__coll__graph.png | Bin 340888 -> 336365 bytes ...s_1_1_instance_factory__inherit__graph.map | 7 +- ...s_1_1_instance_factory__inherit__graph.md5 | 2 +- ...s_1_1_instance_factory__inherit__graph.png | Bin 9233 -> 11751 bytes ...mponents_1_1_instance_manager-members.html | 4 +- ...t_1_1_components_1_1_instance_manager.html | 126 +- ...ents_1_1_instance_manager__coll__graph.map | 70 +- ...ents_1_1_instance_manager__coll__graph.md5 | 2 +- ...ents_1_1_instance_manager__coll__graph.png | Bin 309420 -> 316901 bytes ...2bcc92fca46ad404800304ce4bdd781_cgraph.map | 2 +- ...2bcc92fca46ad404800304ce4bdd781_cgraph.md5 | 2 +- ...2bcc92fca46ad404800304ce4bdd781_cgraph.png | Bin 85487 -> 86287 bytes ...70355ebb8437fd170e4f75e826f1ad7_cgraph.map | 2 +- ...70355ebb8437fd170e4f75e826f1ad7_cgraph.md5 | 2 +- ...70355ebb8437fd170e4f75e826f1ad7_cgraph.png | Bin 78241 -> 78939 bytes ...nts_1_1_interop_1_1_d_m_api_constants.html | 2 +- ...y_1_1_git_hub_remote_features-members.html | 4 +- ...epository_1_1_git_hub_remote_features.html | 202 ++- ...1_git_hub_remote_features__coll__graph.map | 4 +- ...1_git_hub_remote_features__coll__graph.md5 | 2 +- ...1_git_hub_remote_features__coll__graph.png | Bin 33971 -> 34250 bytes ...b4819fbadce5d6dd3219554b44001c8_cgraph.map | 5 +- ...b4819fbadce5d6dd3219554b44001c8_cgraph.md5 | 2 +- ...b4819fbadce5d6dd3219554b44001c8_cgraph.png | Bin 12485 -> 19987 bytes ...pository_1_1_git_remote_features_base.html | 2 +- ...1_git_remote_features_factory-members.html | 4 +- ...itory_1_1_git_remote_features_factory.html | 44 +- ...t_remote_features_factory__coll__graph.map | 4 +- ...t_remote_features_factory__coll__graph.md5 | 2 +- ...t_remote_features_factory__coll__graph.png | Bin 32926 -> 33455 bytes ...itory_1_1_lib_git2_repository_factory.html | 2 +- ...ponents_1_1_repository_1_1_repository.html | 181 +-- ...1_1_repository_1_1_repository_manager.html | 321 ++--- ...ts_1_1_session_1_1_session_controller.html | 59 +- ...on_1_1_session_controller__coll__graph.map | 59 +- ...on_1_1_session_controller__coll__graph.md5 | 2 +- ...on_1_1_session_controller__coll__graph.png | Bin 196561 -> 200391 bytes ...ession_1_1_session_controller_factory.html | 49 +- ...ession_controller_factory__coll__graph.map | 49 +- ...ession_controller_factory__coll__graph.md5 | 2 +- ...ession_controller_factory__coll__graph.png | Bin 206092 -> 208893 bytes ...nts_1_1_session_1_1_session_persistor.html | 21 +- ...ion_1_1_session_persistor__coll__graph.map | 21 +- ...ion_1_1_session_persistor__coll__graph.md5 | 2 +- ...ion_1_1_session_persistor__coll__graph.png | Bin 54869 -> 57992 bytes ...ts_1_1_static_files_1_1_configuration.html | 58 +- ...c_files_1_1_configuration__coll__graph.map | 47 +- ...c_files_1_1_configuration__coll__graph.md5 | 2 +- ...c_files_1_1_configuration__coll__graph.png | Bin 187287 -> 191122 bytes ...iles_1_1_configuration__inherit__graph.map | 11 +- ...iles_1_1_configuration__inherit__graph.md5 | 2 +- ...iles_1_1_configuration__inherit__graph.png | Bin 14887 -> 17851 bytes ...nents_1_1_watchdog_1_1_basic_watchdog.html | 68 +- ...tchdog_1_1_basic_watchdog__coll__graph.map | 45 +- ...tchdog_1_1_basic_watchdog__coll__graph.md5 | 2 +- ...tchdog_1_1_basic_watchdog__coll__graph.png | Bin 150462 -> 152182 bytes ...dog_1_1_basic_watchdog__inherit__graph.map | 23 +- ...dog_1_1_basic_watchdog__inherit__graph.md5 | 2 +- ...dog_1_1_basic_watchdog__inherit__graph.png | Bin 38677 -> 42129 bytes ...nents_1_1_watchdog_1_1_posix_watchdog.html | 82 +- ...tchdog_1_1_posix_watchdog__coll__graph.map | 59 +- ...tchdog_1_1_posix_watchdog__coll__graph.md5 | 2 +- ...tchdog_1_1_posix_watchdog__coll__graph.png | Bin 222878 -> 223323 bytes ...dog_1_1_posix_watchdog__inherit__graph.map | 23 +- ...dog_1_1_posix_watchdog__inherit__graph.md5 | 2 +- ...dog_1_1_posix_watchdog__inherit__graph.png | Bin 32807 -> 35937 bytes ...onents_1_1_watchdog_1_1_watchdog_base.html | 66 +- ...atchdog_1_1_watchdog_base__coll__graph.map | 43 +- ...atchdog_1_1_watchdog_base__coll__graph.md5 | 2 +- ...atchdog_1_1_watchdog_base__coll__graph.png | Bin 134929 -> 139805 bytes ...hdog_1_1_watchdog_base__inherit__graph.map | 23 +- ...hdog_1_1_watchdog_base__inherit__graph.md5 | 2 +- ...hdog_1_1_watchdog_base__inherit__graph.png | Bin 41155 -> 44740 bytes ...nts_1_1_watchdog_1_1_watchdog_factory.html | 8 +- ...nts_1_1_watchdog_1_1_windows_watchdog.html | 80 +- ...hdog_1_1_windows_watchdog__coll__graph.map | 57 +- ...hdog_1_1_windows_watchdog__coll__graph.md5 | 2 +- ...hdog_1_1_windows_watchdog__coll__graph.png | Bin 208859 -> 214806 bytes ...g_1_1_windows_watchdog__inherit__graph.map | 23 +- ...g_1_1_windows_watchdog__inherit__graph.md5 | 2 +- ...g_1_1_windows_watchdog__inherit__graph.png | Bin 36041 -> 38576 bytes ...ration_1_1_file_logging_configuration.html | 2 +- ...nfiguration_1_1_general_configuration.html | 6 +- ...uration_1_1_o_auth_configuration_base.html | 4 +- ...ion_1_1_updates_configuration-members.html | 9 +- ...nfiguration_1_1_updates_configuration.html | 39 +- ...1_1_administration_controller-members.html | 7 +- ...rollers_1_1_administration_controller.html | 523 ++++---- ...administration_controller__coll__graph.map | 32 +- ...administration_controller__coll__graph.md5 | 2 +- ...administration_controller__coll__graph.png | Bin 130783 -> 109174 bytes ...b2130f890ec296f05227c77b0f8d909_cgraph.map | 9 +- ...b2130f890ec296f05227c77b0f8d909_cgraph.md5 | 2 +- ...b2130f890ec296f05227c77b0f8d909_cgraph.png | Bin 24326 -> 35383 bytes ...st_1_1_controllers_1_1_api_controller.html | 8 +- ..._1_1_controllers_1_1_byond_controller.html | 1 - ...lers_1_1_byond_controller__coll__graph.map | 3 +- ...lers_1_1_byond_controller__coll__graph.md5 | 2 +- ...lers_1_1_byond_controller__coll__graph.png | Bin 61217 -> 59025 bytes ...trollers_1_1_control_panel_controller.html | 2 +- ...ntrollers_1_1_dream_daemon_controller.html | 1 - ...1_dream_daemon_controller__coll__graph.map | 3 +- ...1_dream_daemon_controller__coll__graph.md5 | 2 +- ...1_dream_daemon_controller__coll__graph.png | Bin 59588 -> 57438 bytes ...ontrollers_1_1_dream_maker_controller.html | 1 - ..._1_dream_maker_controller__coll__graph.map | 3 +- ..._1_dream_maker_controller__coll__graph.md5 | 2 +- ..._1_dream_maker_controller__coll__graph.png | Bin 59832 -> 57694 bytes ...1_controllers_1_1_instance_controller.html | 41 +- ...s_1_1_instance_controller__coll__graph.map | 41 +- ...s_1_1_instance_controller__coll__graph.md5 | 2 +- ...s_1_1_instance_controller__coll__graph.png | Bin 149411 -> 141977 bytes ...st_1_1_controllers_1_1_job_controller.html | 3 +- ...ollers_1_1_job_controller__coll__graph.map | 3 +- ...ollers_1_1_job_controller__coll__graph.md5 | 2 +- ...ollers_1_1_job_controller__coll__graph.png | Bin 50093 -> 48170 bytes ...controllers_1_1_repository_controller.html | 1 - ...1_1_repository_controller__coll__graph.map | 1 - ...1_1_repository_controller__coll__graph.md5 | 2 +- ...1_1_repository_controller__coll__graph.png | Bin 59049 -> 56772 bytes ...ver_1_1_host_1_1_core_1_1_application.html | 265 ++-- ..._1_1_core_1_1_server_update_operation.html | 6 +- ...t_1_1_core_1_1_server_updater-members.html | 4 +- ..._1_1_host_1_1_core_1_1_server_updater.html | 485 ++++--- ...1_core_1_1_server_updater__coll__graph.map | 2 +- ...1_core_1_1_server_updater__coll__graph.md5 | 2 +- ...1_core_1_1_server_updater__coll__graph.png | Bin 126945 -> 126165 bytes ...94381ec14fdde7783b8cdfe6a6c647d_cgraph.map | 4 +- ...94381ec14fdde7783b8cdfe6a6c647d_cgraph.md5 | 2 +- ...94381ec14fdde7783b8cdfe6a6c647d_cgraph.png | Bin 22348 -> 22737 bytes ...718c23c45c5e831fa4df39e2bbe8617_cgraph.map | 4 +- ...718c23c45c5e831fa4df39e2bbe8617_cgraph.md5 | 2 +- ...718c23c45c5e831fa4df39e2bbe8617_cgraph.png | Bin 17270 -> 17669 bytes ...service_collection_extensions-members.html | 14 +- ...ons_1_1_service_collection_extensions.html | 491 ++++++- ...ice_collection_extensions__coll__graph.map | 4 +- ...ice_collection_extensions__coll__graph.md5 | 2 +- ...ice_collection_extensions__coll__graph.png | Bin 13062 -> 15930 bytes ...e6f284e032b7cf5db819951915529b_icgraph.map | 4 + ...e6f284e032b7cf5db819951915529b_icgraph.md5 | 1 + ...e6f284e032b7cf5db819951915529b_icgraph.png | Bin 0 -> 12948 bytes ...3806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.map | 4 + ...3806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.md5 | 1 + ...3806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.png | Bin 0 -> 13106 bytes ...ab698d8cc99e507d2aca948e8e7806e_cgraph.map | 4 + ...ab698d8cc99e507d2aca948e8e7806e_cgraph.md5 | 1 + ...ab698d8cc99e507d2aca948e8e7806e_cgraph.png | Bin 0 -> 12432 bytes ..._host_1_1_i_o_1_1_default_i_o_manager.html | 2 +- ...r_1_1_host_1_1_jobs_1_1_job_exception.html | 2 +- ...ver_1_1_host_1_1_jobs_1_1_job_handler.html | 12 +- ...4342b0dc8050c0ab42a299aa4a7762_icgraph.map | 2 +- ...4342b0dc8050c0ab42a299aa4a7762_icgraph.md5 | 2 +- ...4342b0dc8050c0ab42a299aa4a7762_icgraph.png | Bin 8792 -> 8826 bytes ...c16c160e9e0f1e1201dc86a29eace0_icgraph.map | 6 +- ...c16c160e9e0f1e1201dc86a29eace0_icgraph.md5 | 2 +- ...c16c160e9e0f1e1201dc86a29eace0_icgraph.png | Bin 15184 -> 15274 bytes ..._1_1_jobs_1_1_job_manager__coll__graph.map | 13 - ..._1_1_jobs_1_1_job_manager__coll__graph.md5 | 1 - ..._1_1_jobs_1_1_job_manager__coll__graph.png | Bin 68483 -> 0 bytes ...1_jobs_1_1_job_manager__inherit__graph.map | 6 - ...1_jobs_1_1_job_manager__inherit__graph.md5 | 1 - ...1_jobs_1_1_job_manager__inherit__graph.png | Bin 10875 -> 0 bytes ...33fa6cef18c623a6521f96ea69d5667_cgraph.map | 4 - ...33fa6cef18c623a6521f96ea69d5667_cgraph.md5 | 1 - ...33fa6cef18c623a6521f96ea69d5667_cgraph.png | Bin 9506 -> 0 bytes ...7113b5cbe6573cdf0947fc6be3f275c_cgraph.md5 | 1 - ...7113b5cbe6573cdf0947fc6be3f275c_cgraph.png | Bin 14092 -> 0 bytes ...1cb1783409dd1e5cd4ec7670851f05f_cgraph.map | 4 - ...1cb1783409dd1e5cd4ec7670851f05f_cgraph.md5 | 1 - ...1cb1783409dd1e5cd4ec7670851f05f_cgraph.png | Bin 9518 -> 0 bytes ...86226b72e336cfe28a37233ed807dc_icgraph.map | 4 - ...86226b72e336cfe28a37233ed807dc_icgraph.md5 | 1 - ...86226b72e336cfe28a37233ed807dc_icgraph.png | Bin 9482 -> 0 bytes ...st_1_1_jobs_1_1_job_progress_reporter.html | 2 +- ...host_1_1_jobs_1_1_job_service-members.html | 42 +- ...ver_1_1_host_1_1_jobs_1_1_job_service.html | 486 +++---- ..._1_1_jobs_1_1_job_service__coll__graph.map | 15 + ..._1_1_jobs_1_1_job_service__coll__graph.md5 | 1 + ..._1_1_jobs_1_1_job_service__coll__graph.png | Bin 0 -> 74371 bytes ...1_jobs_1_1_job_service__inherit__graph.map | 8 + ...1_jobs_1_1_job_service__inherit__graph.md5 | 1 + ...1_jobs_1_1_job_service__inherit__graph.png | Bin 0 -> 15726 bytes ...377ee874856ca422c16558894e158e6_cgraph.map | 4 + ...377ee874856ca422c16558894e158e6_cgraph.md5 | 1 + ...377ee874856ca422c16558894e158e6_cgraph.png | Bin 0 -> 9623 bytes ...e21547ef3576e2b185d53d2dc025c50_cgraph.map | 2 +- ...e21547ef3576e2b185d53d2dc025c50_cgraph.md5 | 1 + ...e21547ef3576e2b185d53d2dc025c50_cgraph.png | Bin 0 -> 14168 bytes ...e2c8ced346d9a64ef02a77fe4980ae_icgraph.map | 4 + ...e2c8ced346d9a64ef02a77fe4980ae_icgraph.md5 | 1 + ...e2c8ced346d9a64ef02a77fe4980ae_icgraph.png | Bin 0 -> 9670 bytes ...5fe657cdfef95a8172fe2c960977a87_cgraph.map | 4 + ...5fe657cdfef95a8172fe2c960977a87_cgraph.md5 | 1 + ...5fe657cdfef95a8172fe2c960977a87_cgraph.png | Bin 0 -> 9685 bytes ...r_1_1_host_1_1_models_1_1_compile_job.html | 4 +- ...t_1_1_models_1_1_revision_information.html | 2 +- ...perties_1_1_master_versions_attribute.html | 4 +- ..._1_1_git_hub_o_auth_validator-members.html | 4 +- ...1_o_auth_1_1_git_hub_o_auth_validator.html | 118 +- ..._git_hub_o_auth_validator__coll__graph.map | 4 +- ..._git_hub_o_auth_validator__coll__graph.md5 | 2 +- ..._git_hub_o_auth_validator__coll__graph.png | Bin 38263 -> 38400 bytes ...4a7a4275590b4f040067b6d1e8c2138_cgraph.map | 5 +- ...4a7a4275590b4f040067b6d1e8c2138_cgraph.md5 | 2 +- ...4a7a4275590b4f040067b6d1e8c2138_cgraph.png | Bin 12157 -> 20703 bytes ...1_o_auth_1_1_o_auth_providers-members.html | 2 +- ...urity_1_1_o_auth_1_1_o_auth_providers.html | 18 +- ..._host_1_1_setup_1_1_setup_application.html | 2 +- ...ub_1_1_git_hub_client_factory-members.html | 100 ++ ..._1_git_hub_1_1_git_hub_client_factory.html | 412 +++--- ..._1_git_hub_client_factory__coll__graph.map | 13 + ..._1_git_hub_client_factory__coll__graph.md5 | 1 + ..._1_git_hub_client_factory__coll__graph.png | Bin 0 -> 92397 bytes ...git_hub_client_factory__inherit__graph.map | 4 + ...git_hub_client_factory__inherit__graph.md5 | 1 + ...git_hub_client_factory__inherit__graph.png | Bin 0 -> 7735 bytes ...1_git_hub_1_1_git_hub_service-members.html | 104 ++ ...utils_1_1_git_hub_1_1_git_hub_service.html | 1149 +++++++++++++++++ ...t_hub_1_1_git_hub_service__coll__graph.map | 10 + ...t_hub_1_1_git_hub_service__coll__graph.md5 | 1 + ...t_hub_1_1_git_hub_service__coll__graph.png | Bin 0 -> 43894 bytes ...ub_1_1_git_hub_service__inherit__graph.map | 5 + ...ub_1_1_git_hub_service__inherit__graph.md5 | 1 + ...ub_1_1_git_hub_service__inherit__graph.png | Bin 0 -> 9861 bytes ...b_1_1_git_hub_service_factory-members.html | 97 ++ ...1_git_hub_1_1_git_hub_service_factory.html | 398 ++++++ ...1_git_hub_service_factory__coll__graph.map | 9 + ...1_git_hub_service_factory__coll__graph.md5 | 1 + ...1_git_hub_service_factory__coll__graph.png | Bin 0 -> 41208 bytes ...it_hub_service_factory__inherit__graph.map | 4 + ...it_hub_service_factory__inherit__graph.md5 | 1 + ...it_hub_service_factory__inherit__graph.png | Bin 0 -> 8126 bytes ...ls_1_1_git_hub_client_factory-members.html | 100 -- ..._1_git_hub_client_factory__coll__graph.map | 13 - ..._1_git_hub_client_factory__coll__graph.md5 | 1 - ..._1_git_hub_client_factory__coll__graph.png | Bin 92785 -> 0 bytes ...git_hub_client_factory__inherit__graph.map | 4 - ...git_hub_client_factory__inherit__graph.md5 | 1 - ...git_hub_client_factory__inherit__graph.png | Bin 7547 -> 0 bytes ..._1_1_utils_1_1_semaphore_slim_context.html | 2 +- ..._1_1_utils_1_1_serilog_context_helper.html | 2 +- classes.html | 6 +- dir_27a421f75b087b80bd0b7a1dbec733b4.html | 6 +- dir_34174031dc2d9c0ba355c3cad87bf8ee.html | 114 ++ dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.map | 4 + dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.md5 | 1 + dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.png | Bin 0 -> 1960 bytes dir_7a3fd032a1362a6005a1fc9227a8dd86.html | 2 + dir_e031aa0fb63a9784d5d0be33d19ac57a.html | 14 +- dir_e031aa0fb63a9784d5d0be33d19ac57a_dep.map | 5 +- dir_e031aa0fb63a9784d5d0be33d19ac57a_dep.md5 | 2 +- dir_e031aa0fb63a9784d5d0be33d19ac57a_dep.png | Bin 3007 -> 4342 bytes files.html | 64 +- functions.html | 15 +- functions_c.html | 24 +- functions_d.html | 7 +- functions_f.html | 1 + functions_func.html | 8 +- functions_func_c.html | 12 +- functions_func_d.html | 2 +- functions_func_g.html | 21 +- functions_func_i.html | 2 +- functions_func_j.html | 2 +- functions_func_o.html | 2 +- functions_func_r.html | 6 +- functions_func_s.html | 11 +- functions_func_u.html | 3 + functions_func_w.html | 2 +- functions_g.html | 29 +- functions_i.html | 2 +- functions_j.html | 7 +- functions_l.html | 6 +- functions_n.html | 2 +- functions_o.html | 6 +- functions_p.html | 4 +- functions_prop_d.html | 1 - functions_r.html | 6 +- functions_s.html | 13 +- functions_t.html | 4 +- functions_u.html | 7 +- functions_vars.html | 6 +- functions_vars_c.html | 4 +- functions_vars_d.html | 4 +- functions_vars_f.html | 1 + functions_vars_g.html | 8 +- functions_vars_j.html | 5 +- functions_vars_l.html | 4 +- functions_vars_n.html | 2 +- functions_vars_s.html | 2 +- functions_vars_u.html | 2 +- functions_w.html | 2 +- hierarchy.html | 818 ++++++------ inherit_graph_161.map | 4 +- inherit_graph_161.md5 | 2 +- inherit_graph_161.png | Bin 8046 -> 8967 bytes inherit_graph_162.map | 5 +- inherit_graph_162.md5 | 2 +- inherit_graph_162.png | Bin 8902 -> 8539 bytes inherit_graph_163.map | 4 +- inherit_graph_163.md5 | 2 +- inherit_graph_163.png | Bin 7343 -> 9218 bytes inherit_graph_164.map | 3 +- inherit_graph_164.md5 | 2 +- inherit_graph_164.png | Bin 6478 -> 8046 bytes inherit_graph_165.map | 3 +- inherit_graph_165.md5 | 2 +- inherit_graph_165.png | Bin 4408 -> 7343 bytes inherit_graph_166.map | 3 +- inherit_graph_166.md5 | 2 +- inherit_graph_166.png | Bin 5272 -> 6478 bytes inherit_graph_167.map | 3 +- inherit_graph_167.md5 | 2 +- inherit_graph_167.png | Bin 5688 -> 4408 bytes inherit_graph_168.map | 4 + inherit_graph_168.md5 | 1 + inherit_graph_168.png | Bin 0 -> 5272 bytes inherit_graph_169.map | 4 + inherit_graph_169.md5 | 1 + inherit_graph_169.png | Bin 0 -> 5688 bytes inherit_graph_66.map | 256 ++-- inherit_graph_66.md5 | 2 +- inherit_graph_66.png | Bin 983989 -> 1024525 bytes inherits.html | 291 +++-- ...internal_1_1_i_git_remote_information.html | 4 +- ...ponents_1_1_byond_1_1_i_byond_manager.html | 26 +- ...byond_1_1_i_byond_manager__coll__graph.map | 7 +- ...byond_1_1_i_byond_manager__coll__graph.md5 | 2 +- ...byond_1_1_i_byond_manager__coll__graph.png | Bin 9707 -> 12105 bytes ...nd_1_1_i_byond_manager__inherit__graph.map | 9 +- ...nd_1_1_i_byond_manager__inherit__graph.md5 | 2 +- ...nd_1_1_i_byond_manager__inherit__graph.png | Bin 14981 -> 17225 bytes ...omponents_1_1_chat_1_1_i_chat_manager.html | 18 +- ...1_chat_1_1_i_chat_manager__coll__graph.map | 7 +- ...1_chat_1_1_i_chat_manager__coll__graph.md5 | 2 +- ...1_chat_1_1_i_chat_manager__coll__graph.png | Bin 10388 -> 13519 bytes ...hat_1_1_i_chat_manager__inherit__graph.map | 9 +- ...hat_1_1_i_chat_manager__inherit__graph.md5 | 2 +- ...hat_1_1_i_chat_manager__inherit__graph.png | Bin 15440 -> 18449 bytes ...ents_1_1_deployment_1_1_i_dmb_factory.html | 30 +- ...loyment_1_1_i_dmb_factory__coll__graph.map | 9 +- ...loyment_1_1_i_dmb_factory__coll__graph.md5 | 2 +- ...loyment_1_1_i_dmb_factory__coll__graph.png | Bin 13645 -> 16111 bytes ...ment_1_1_i_dmb_factory__inherit__graph.map | 11 +- ...ment_1_1_i_dmb_factory__inherit__graph.md5 | 2 +- ...ment_1_1_i_dmb_factory__inherit__graph.png | Bin 19341 -> 21606 bytes ..._1_components_1_1_i_component_service.html | 134 ++ ...s_1_1_i_component_service__coll__graph.map | 4 + ...s_1_1_i_component_service__coll__graph.md5 | 1 + ...s_1_1_i_component_service__coll__graph.png | Bin 0 -> 7475 bytes ..._1_i_component_service__inherit__graph.map | 23 + ..._1_i_component_service__inherit__graph.md5 | 1 + ..._1_i_component_service__inherit__graph.png | Bin 0 -> 111438 bytes ..._1_host_1_1_components_1_1_i_instance.html | 22 +- ...components_1_1_i_instance__coll__graph.map | 9 +- ...components_1_1_i_instance__coll__graph.md5 | 2 +- ...components_1_1_i_instance__coll__graph.png | Bin 17845 -> 19827 bytes ...ponents_1_1_i_instance__inherit__graph.map | 11 +- ...ponents_1_1_i_instance__inherit__graph.md5 | 2 +- ...ponents_1_1_i_instance__inherit__graph.png | Bin 22359 -> 24438 bytes ...1_1_components_1_1_i_instance_factory.html | 10 +- ...ts_1_1_i_instance_factory__coll__graph.map | 5 +- ...ts_1_1_i_instance_factory__coll__graph.md5 | 2 +- ...ts_1_1_i_instance_factory__coll__graph.png | Bin 7082 -> 9594 bytes ...1_1_i_instance_factory__inherit__graph.map | 7 +- ...1_1_i_instance_factory__inherit__graph.md5 | 2 +- ...1_1_i_instance_factory__inherit__graph.png | Bin 12056 -> 14359 bytes ...1_1_components_1_1_i_instance_manager.html | 2 +- ...repository_1_1_i_credentials_provider.html | 2 +- ...ory_1_1_i_lib_git2_repository_factory.html | 2 +- ...nents_1_1_repository_1_1_i_repository.html | 2 +- ..._1_1_static_files_1_1_i_configuration.html | 22 +- ...files_1_1_i_configuration__coll__graph.map | 9 +- ...files_1_1_i_configuration__coll__graph.md5 | 2 +- ...files_1_1_i_configuration__coll__graph.png | Bin 13071 -> 15642 bytes ...es_1_1_i_configuration__inherit__graph.map | 11 +- ...es_1_1_i_configuration__inherit__graph.md5 | 2 +- ...es_1_1_i_configuration__inherit__graph.png | Bin 19045 -> 21329 bytes ...omponents_1_1_watchdog_1_1_i_watchdog.html | 56 +- ...1_watchdog_1_1_i_watchdog__coll__graph.map | 11 +- ...1_watchdog_1_1_i_watchdog__coll__graph.md5 | 2 +- ...1_watchdog_1_1_i_watchdog__coll__graph.png | Bin 15379 -> 18633 bytes ...atchdog_1_1_i_watchdog__inherit__graph.map | 19 +- ...atchdog_1_1_i_watchdog__inherit__graph.md5 | 2 +- ...atchdog_1_1_i_watchdog__inherit__graph.png | Bin 38490 -> 40987 bytes ..._1_host_1_1_core_1_1_i_server_control.html | 6 +- ...t_1_1_core_1_1_i_server_port_provider.html | 2 +- ..._1_core_1_1_i_server_update_initiator.html | 2 +- ...tabase_1_1_i_database_context_factory.html | 2 +- ..._1_host_1_1_i_o_1_1_i_file_downloader.html | 2 +- ...er_1_1_host_1_1_i_o_1_1_i_i_o_manager.html | 18 +- ...st_1_1_jobs_1_1_i_job_manager-members.html | 9 +- ...r_1_1_host_1_1_jobs_1_1_i_job_manager.html | 68 +- ..._1_jobs_1_1_i_job_manager__coll__graph.map | 4 - ..._1_jobs_1_1_i_job_manager__coll__graph.md5 | 1 - ..._1_jobs_1_1_i_job_manager__coll__graph.png | Bin 6587 -> 0 bytes ...jobs_1_1_i_job_manager__inherit__graph.map | 6 +- ...jobs_1_1_i_job_manager__inherit__graph.md5 | 2 +- ...jobs_1_1_i_job_manager__inherit__graph.png | Bin 11049 -> 12656 bytes ...c07383e771a67abf5ced7179dee8aa_icgraph.md5 | 1 - ...c07383e771a67abf5ced7179dee8aa_icgraph.png | Bin 14615 -> 0 bytes ...st_1_1_jobs_1_1_i_job_service-members.html | 95 ++ ...r_1_1_host_1_1_jobs_1_1_i_job_service.html | 184 +++ ..._1_jobs_1_1_i_job_service__coll__graph.map | 6 + ..._1_jobs_1_1_i_job_service__coll__graph.md5 | 1 + ..._1_jobs_1_1_i_job_service__coll__graph.png | Bin 0 -> 11794 bytes ...jobs_1_1_i_job_service__inherit__graph.map | 7 + ...jobs_1_1_i_job_service__inherit__graph.md5 | 1 + ...jobs_1_1_i_job_service__inherit__graph.png | Bin 0 -> 16036 bytes ...de62961f3d9eb3db05d4db8c409bac_icgraph.map | 2 +- ...de62961f3d9eb3db05d4db8c409bac_icgraph.md5 | 1 + ...de62961f3d9eb3db05d4db8c409bac_icgraph.png | Bin 0 -> 14478 bytes ..._1_host_1_1_swarm_1_1_i_swarm_service.html | 8 +- ...m_1_1_i_assembly_information_provider.html | 2 +- ...r_1_1_i_file_transfer_ticket_provider.html | 2 +- ...authenticated_git_hub_service-members.html | 100 ++ ...b_1_1_i_authenticated_git_hub_service.html | 407 ++++++ ...enticated_git_hub_service__coll__graph.map | 4 + ...enticated_git_hub_service__coll__graph.md5 | 1 + ...enticated_git_hub_service__coll__graph.png | Bin 0 -> 7796 bytes ...icated_git_hub_service__inherit__graph.map | 5 + ...icated_git_hub_service__inherit__graph.md5 | 1 + ...icated_git_hub_service__inherit__graph.png | Bin 0 -> 12528 bytes ...9eeffd8ba518b269ceda33d2e53839_icgraph.map | 4 + ...9eeffd8ba518b269ceda33d2e53839_icgraph.md5 | 1 + ...9eeffd8ba518b269ceda33d2e53839_icgraph.png | Bin 0 -> 14549 bytes ...f898cca8a4a7bfeb5a58a49906f65f_icgraph.map | 4 + ...f898cca8a4a7bfeb5a58a49906f65f_icgraph.md5 | 1 + ...f898cca8a4a7bfeb5a58a49906f65f_icgraph.png | Bin 0 -> 15222 bytes ..._1_1_i_git_hub_client_factory-members.html | 10 +- ..._git_hub_1_1_i_git_hub_client_factory.html | 171 +++ ...git_hub_client_factory__inherit__graph.map | 4 + ...git_hub_client_factory__inherit__graph.md5 | 1 + ...git_hub_client_factory__inherit__graph.png | Bin 0 -> 9661 bytes ...git_hub_1_1_i_git_hub_service-members.html | 96 ++ ...ils_1_1_git_hub_1_1_i_git_hub_service.html | 426 ++++++ ..._1_1_i_git_hub_service__inherit__graph.map | 5 + ..._1_1_i_git_hub_service__inherit__graph.md5 | 1 + ..._1_1_i_git_hub_service__inherit__graph.png | Bin 0 -> 14075 bytes ...4485d524c2f133fd8d71aea9119190_icgraph.map | 4 + ...4485d524c2f133fd8d71aea9119190_icgraph.md5 | 1 + ...4485d524c2f133fd8d71aea9119190_icgraph.png | Bin 0 -> 13937 bytes ...8a77cc92f956fa062c6103f64bd2a8_icgraph.map | 4 + ...8a77cc92f956fa062c6103f64bd2a8_icgraph.md5 | 1 + ...8a77cc92f956fa062c6103f64bd2a8_icgraph.png | Bin 0 -> 13226 bytes ...f24bd737ac3f6a489375c45f5afe9c_icgraph.map | 4 + ...f24bd737ac3f6a489375c45f5afe9c_icgraph.md5 | 1 + ...f24bd737ac3f6a489375c45f5afe9c_icgraph.png | Bin 0 -> 12719 bytes ...55539937d7e422ec825ef4c21e09fa_icgraph.map | 6 + ...55539937d7e422ec825ef4c21e09fa_icgraph.md5 | 1 + ...55539937d7e422ec825ef4c21e09fa_icgraph.png | Bin 0 -> 22645 bytes ...3fdf66584a236bdf7cc09a76249b66_icgraph.map | 4 + ...3fdf66584a236bdf7cc09a76249b66_icgraph.md5 | 1 + ...3fdf66584a236bdf7cc09a76249b66_icgraph.png | Bin 0 -> 11949 bytes ...1_1_i_git_hub_service_factory-members.html | 92 ++ ...git_hub_1_1_i_git_hub_service_factory.html | 188 +++ ...it_hub_service_factory__inherit__graph.map | 4 + ...it_hub_service_factory__inherit__graph.md5 | 1 + ...it_hub_service_factory__inherit__graph.png | Bin 0 -> 9941 bytes ...4fdb0088d42793884fa4b61c75e537_icgraph.map | 10 + ...4fdb0088d42793884fa4b61c75e537_icgraph.md5 | 1 + ...4fdb0088d42793884fa4b61c75e537_icgraph.png | Bin 0 -> 72098 bytes ..._1_utils_1_1_i_git_hub_client_factory.html | 190 --- ...git_hub_client_factory__inherit__graph.map | 4 - ...git_hub_client_factory__inherit__graph.md5 | 1 - ...git_hub_client_factory__inherit__graph.png | Bin 9525 -> 0 bytes ...a22041144ecab80ceb3d6ea658c537_icgraph.map | 12 - ...a22041144ecab80ceb3d6ea658c537_icgraph.md5 | 1 - ...a22041144ecab80ceb3d6ea658c537_icgraph.png | Bin 88314 -> 0 bytes ...on_1_1_server_1_1_host_1_1_components.html | 3 + ...gstation_1_1_server_1_1_host_1_1_jobs.html | 7 +- ...station_1_1_server_1_1_host_1_1_utils.html | 11 +- ...server_1_1_host_1_1_utils_1_1_git_hub.html | 112 ++ namespaces.html | 62 +- search/all_1.js | 217 ++-- search/all_10.js | 294 +++-- search/all_12.js | 254 ++-- search/all_13.js | 441 +++---- search/all_14.js | 260 ++-- search/all_15.js | 121 +- search/all_17.js | 2 +- search/all_2.js | 97 +- search/all_3.js | 578 +++++---- search/all_4.js | 140 +- search/all_5.js | 47 +- search/all_6.js | 66 +- search/all_7.js | 193 +-- search/all_9.js | 793 ++++++------ search/all_a.js | 31 +- search/all_c.js | 8 +- search/all_d.js | 219 ++-- search/all_e.js | 6 +- search/all_f.js | 79 +- search/classes_6.js | 12 +- search/classes_8.js | 331 ++--- search/classes_9.js | 8 +- search/files_7.js | 12 +- search/files_9.js | 287 ++-- search/files_a.js | 8 +- search/functions_0.js | 66 +- search/functions_11.js | 6 +- search/functions_12.js | 105 +- search/functions_14.js | 37 +- search/functions_16.js | 2 +- search/functions_2.js | 182 +-- search/functions_3.js | 2 +- search/functions_6.js | 113 +- search/functions_8.js | 2 +- search/functions_9.js | 8 +- search/functions_e.js | 2 +- search/namespaces_0.js | 57 +- search/properties_3.js | 7 +- search/variables_0.js | 6 +- search/variables_1.js | 21 +- search/variables_12.js | 2 +- search/variables_14.js | 2 +- search/variables_2.js | 8 +- search/variables_3.js | 4 +- search/variables_5.js | 9 +- search/variables_6.js | 18 +- search/variables_8.js | 4 +- search/variables_9.js | 9 +- search/variables_b.js | 4 +- search/variables_d.js | 2 +- 741 files changed, 15720 insertions(+), 9594 deletions(-) create mode 100644 _git_hub_service_8cs.html create mode 100644 _git_hub_service_8cs_source.html create mode 100644 _git_hub_service_factory_8cs.html create mode 100644 _git_hub_service_factory_8cs_source.html create mode 100644 _i_authenticated_git_hub_service_8cs.html create mode 100644 _i_authenticated_git_hub_service_8cs_source.html create mode 100644 _i_component_service_8cs.html create mode 100644 _i_component_service_8cs_source.html create mode 100644 _i_git_hub_service_8cs.html create mode 100644 _i_git_hub_service_8cs_source.html create mode 100644 _i_git_hub_service_factory_8cs.html create mode 100644 _i_git_hub_service_factory_8cs_source.html create mode 100644 _i_job_service_8cs.html create mode 100644 _i_job_service_8cs_source.html rename _job_manager_8cs.html => _job_service_8cs.html (95%) rename _job_manager_8cs_source.html => _job_service_8cs_source.html (85%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a45e6f284e032b7cf5db819951915529b_icgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a45e6f284e032b7cf5db819951915529b_icgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a45e6f284e032b7cf5db819951915529b_icgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a93806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a93806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a93806b1bfd1d8b4e4c5cae3a6aca88b9_cgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a9ab698d8cc99e507d2aca948e8e7806e_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a9ab698d8cc99e507d2aca948e8e7806e_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions_a9ab698d8cc99e507d2aca948e8e7806e_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__coll__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__coll__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__coll__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__inherit__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__inherit__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager__inherit__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a333fa6cef18c623a6521f96ea69d5667_cgraph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a333fa6cef18c623a6521f96ea69d5667_cgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a333fa6cef18c623a6521f96ea69d5667_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a47113b5cbe6573cdf0947fc6be3f275c_cgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a47113b5cbe6573cdf0947fc6be3f275c_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a91cb1783409dd1e5cd4ec7670851f05f_cgraph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a91cb1783409dd1e5cd4ec7670851f05f_cgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a91cb1783409dd1e5cd4ec7670851f05f_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_ab886226b72e336cfe28a37233ed807dc_icgraph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_ab886226b72e336cfe28a37233ed807dc_icgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_ab886226b72e336cfe28a37233ed807dc_icgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager-members.html => class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service-members.html (56%) rename class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html => class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service.html (72%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__coll__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__coll__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__coll__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__inherit__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__inherit__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service__inherit__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a3377ee874856ca422c16558894e158e6_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a3377ee874856ca422c16558894e158e6_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a3377ee874856ca422c16558894e158e6_cgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager_a47113b5cbe6573cdf0947fc6be3f275c_cgraph.map => class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a9e21547ef3576e2b185d53d2dc025c50_cgraph.map (83%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a9e21547ef3576e2b185d53d2dc025c50_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_a9e21547ef3576e2b185d53d2dc025c50_cgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_aefe2c8ced346d9a64ef02a77fe4980ae_icgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_aefe2c8ced346d9a64ef02a77fe4980ae_icgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_aefe2c8ced346d9a64ef02a77fe4980ae_icgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_af5fe657cdfef95a8172fe2c960977a87_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_af5fe657cdfef95a8172fe2c960977a87_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_service_af5fe657cdfef95a8172fe2c960977a87_cgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory-members.html rename class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory.html => class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory.html (51%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__coll__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__coll__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__coll__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__inherit__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__inherit__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_client_factory__inherit__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service-members.html create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service.html create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__coll__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__coll__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__coll__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__inherit__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__inherit__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service__inherit__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory-members.html create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory.html create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__coll__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__coll__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__coll__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__inherit__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__inherit__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_git_hub_service_factory__inherit__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory-members.html delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__coll__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__coll__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__coll__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__inherit__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__inherit__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_client_factory__inherit__graph.png create mode 100644 dir_34174031dc2d9c0ba355c3cad87bf8ee.html create mode 100644 dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.map create mode 100644 dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.md5 create mode 100644 dir_34174031dc2d9c0ba355c3cad87bf8ee_dep.png create mode 100644 inherit_graph_168.map create mode 100644 inherit_graph_168.md5 create mode 100644 inherit_graph_168.png create mode 100644 inherit_graph_169.map create mode 100644 inherit_graph_169.md5 create mode 100644 inherit_graph_169.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__coll__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__coll__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__coll__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_component_service__inherit__graph.png delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager__coll__graph.map delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager__coll__graph.md5 delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager__coll__graph.png delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager_ae2c07383e771a67abf5ced7179dee8aa_icgraph.md5 delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager_ae2c07383e771a67abf5ced7179dee8aa_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service-members.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__coll__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__coll__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__coll__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service__inherit__graph.png rename interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager_ae2c07383e771a67abf5ced7179dee8aa_icgraph.map => interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service_a23de62961f3d9eb3db05d4db8c409bac_icgraph.map (81%) create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service_a23de62961f3d9eb3db05d4db8c409bac_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_service_a23de62961f3d9eb3db05d4db8c409bac_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service-members.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__coll__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__coll__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__coll__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service__inherit__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a829eeffd8ba518b269ceda33d2e53839_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a829eeffd8ba518b269ceda33d2e53839_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a829eeffd8ba518b269ceda33d2e53839_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a82f898cca8a4a7bfeb5a58a49906f65f_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a82f898cca8a4a7bfeb5a58a49906f65f_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_authenticated_git_hub_service_a82f898cca8a4a7bfeb5a58a49906f65f_icgraph.png rename interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory-members.html => interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_client_factory-members.html (74%) create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_client_factory.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_client_factory__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_client_factory__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_client_factory__inherit__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service-members.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service__inherit__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a2f4485d524c2f133fd8d71aea9119190_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a2f4485d524c2f133fd8d71aea9119190_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a2f4485d524c2f133fd8d71aea9119190_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a5a8a77cc92f956fa062c6103f64bd2a8_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a5a8a77cc92f956fa062c6103f64bd2a8_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_a5a8a77cc92f956fa062c6103f64bd2a8_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_ac8f24bd737ac3f6a489375c45f5afe9c_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_ac8f24bd737ac3f6a489375c45f5afe9c_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_ac8f24bd737ac3f6a489375c45f5afe9c_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_adf55539937d7e422ec825ef4c21e09fa_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_adf55539937d7e422ec825ef4c21e09fa_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_adf55539937d7e422ec825ef4c21e09fa_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_afb3fdf66584a236bdf7cc09a76249b66_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_afb3fdf66584a236bdf7cc09a76249b66_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_afb3fdf66584a236bdf7cc09a76249b66_icgraph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory-members.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory.html create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory__inherit__graph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory__inherit__graph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory__inherit__graph.png create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory_a954fdb0088d42793884fa4b61c75e537_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory_a954fdb0088d42793884fa4b61c75e537_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub_1_1_i_git_hub_service_factory_a954fdb0088d42793884fa4b61c75e537_icgraph.png delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory.html delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory__inherit__graph.map delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory__inherit__graph.md5 delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory__inherit__graph.png delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory_a30a22041144ecab80ceb3d6ea658c537_icgraph.map delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory_a30a22041144ecab80ceb3d6ea658c537_icgraph.md5 delete mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_git_hub_client_factory_a30a22041144ecab80ceb3d6ea658c537_icgraph.png create mode 100644 namespace_tgstation_1_1_server_1_1_host_1_1_utils_1_1_git_hub.html diff --git a/_administration_controller_8cs_source.html b/_administration_controller_8cs_source.html index 54b42ece7a..26dfaf9092 100644 --- a/_administration_controller_8cs_source.html +++ b/_administration_controller_8cs_source.html @@ -99,295 +99,283 @@ $(function() {
19using Tgstation.Server.Host.Configuration;
20using Tgstation.Server.Host.Core;
21using Tgstation.Server.Host.Database;
-
22using Tgstation.Server.Host.Extensions;
-
23using Tgstation.Server.Host.IO;
-
24using Tgstation.Server.Host.Security;
-
25using Tgstation.Server.Host.System;
-
26using Tgstation.Server.Host.Transfer;
-
27using Tgstation.Server.Host.Utils;
-
28
-
29namespace Tgstation.Server.Host.Controllers
-
30{
-
34 [Route(Routes.Administration)]
-
35 public sealed class AdministrationController : ApiController
-
36 {
-
40 const string OctokitException = "Bad GitHub API response, check configuration!";
-
41
-
45 readonly IGitHubClientFactory gitHubClientFactory;
-
46
-
50 readonly IServerControl serverControl;
-
51
-
55 readonly IServerUpdateInitiator serverUpdateInitiator;
-
56
-
60 readonly IAssemblyInformationProvider assemblyInformationProvider;
-
61
-
65 readonly IIOManager ioManager;
-
66
-
70 readonly IPlatformIdentifier platformIdentifier;
-
71
-
75 readonly IFileTransferTicketProvider fileTransferService;
-
76
-
80 readonly UpdatesConfiguration updatesConfiguration;
-
81
-
85 readonly FileLoggingConfiguration fileLoggingConfiguration;
-
86
-
102 public AdministrationController(
-
103 IDatabaseContext databaseContext,
-
104 IAuthenticationContextFactory authenticationContextFactory,
-
105 IGitHubClientFactory gitHubClientFactory,
-
106 IServerControl serverControl,
-
107 IServerUpdateInitiator serverUpdateInitiator,
-
108 IAssemblyInformationProvider assemblyInformationProvider,
-
109 IIOManager ioManager,
-
110 IPlatformIdentifier platformIdentifier,
-
111 IFileTransferTicketProvider fileTransferService,
-
112 ILogger<AdministrationController> logger,
-
113 IOptions<UpdatesConfiguration> updatesConfigurationOptions,
-
114 IOptions<FileLoggingConfiguration> fileLoggingConfigurationOptions)
-
115 : base(
-
116 databaseContext,
-
117 authenticationContextFactory,
-
118 logger,
-
119 true)
-
120 {
-
121 this.gitHubClientFactory = gitHubClientFactory ?? throw new ArgumentNullException(nameof(gitHubClientFactory));
-
122 this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
-
123 this.serverUpdateInitiator = serverUpdateInitiator ?? throw new ArgumentNullException(nameof(serverUpdateInitiator));
-
124 this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
-
125 this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
-
126 this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
-
127 this.fileTransferService = fileTransferService ?? throw new ArgumentNullException(nameof(fileTransferService));
-
128 updatesConfiguration = updatesConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(updatesConfigurationOptions));
-
129 fileLoggingConfiguration = fileLoggingConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(fileLoggingConfigurationOptions));
-
130 }
-
131
-
140 [HttpGet]
-
141 [TgsAuthorize(AdministrationRights.ChangeVersion)]
-
142 [ProducesResponseType(typeof(AdministrationResponse), 200)]
-
143 [ProducesResponseType(typeof(ErrorMessageResponse), 424)]
-
144 [ProducesResponseType(typeof(ErrorMessageResponse), 429)]
-
145 public async Task<IActionResult> Read(CancellationToken cancellationToken)
-
146 {
-
147 try
-
148 {
-
149 Version greatestVersion = null;
-
150 Uri repoUrl = null;
-
151 try
-
152 {
-
153 var gitHubClient = gitHubClientFactory.CreateClient();
-
154 var repositoryTask = gitHubClient
-
155 .Repository
-
156 .Get(updatesConfiguration.GitHubRepositoryId)
-
157 .WithToken(cancellationToken);
-
158 var releases = (await gitHubClient
-
159 .Repository
-
160 .Release
-
161 .GetAll(updatesConfiguration.GitHubRepositoryId)
-
162 .WithToken(cancellationToken))
-
163 .Where(x => x.TagName.StartsWith(
-
164 updatesConfiguration.GitTagPrefix,
-
165 StringComparison.InvariantCulture));
-
166
-
167 foreach (var release in releases)
-
168 if (Version.TryParse(release.TagName.Replace(updatesConfiguration.GitTagPrefix, String.Empty, StringComparison.Ordinal), out var version)
-
169 && version.Major > 3 // Forward/backward compatible but not before TGS4
-
170 && (greatestVersion == null || version > greatestVersion))
-
171 greatestVersion = version;
-
172 repoUrl = new Uri((await repositoryTask).HtmlUrl);
-
173 }
-
174 catch (NotFoundException e)
-
175 {
-
176 Logger.LogWarning(e, "Not found exception while retrieving upstream repository info!");
-
177 }
-
178
-
179 return Json(new AdministrationResponse
-
180 {
-
181 LatestVersion = greatestVersion,
-
182 TrackedRepositoryUrl = repoUrl,
-
183 });
-
184 }
-
185 catch (RateLimitExceededException e)
-
186 {
-
187 return RateLimit(e);
-
188 }
-
189 catch (ApiException e)
-
190 {
-
191 Logger.LogWarning(e, OctokitException);
-
192 return StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.RemoteApiError)
-
193 {
-
194 AdditionalData = e.Message,
-
195 });
-
196 }
-
197 }
-
198
-
210 [HttpPost]
-
211 [TgsAuthorize(AdministrationRights.ChangeVersion)]
-
212 [ProducesResponseType(typeof(ServerUpdateResponse), 202)]
-
213 [ProducesResponseType(typeof(ErrorMessageResponse), 410)]
-
214 [ProducesResponseType(typeof(ErrorMessageResponse), 422)]
-
215 [ProducesResponseType(typeof(ErrorMessageResponse), 424)]
-
216 [ProducesResponseType(typeof(ErrorMessageResponse), 429)]
-
217 public async Task<IActionResult> Update([FromBody] ServerUpdateRequest model, CancellationToken cancellationToken)
-
218 {
-
219 if (model == null)
-
220 throw new ArgumentNullException(nameof(model));
-
221
-
222 if (model.NewVersion == null)
-
223 return BadRequest(new ErrorMessageResponse(ErrorCode.ModelValidationFailure)
-
224 {
-
225 AdditionalData = "newVersion is required!",
-
226 });
-
227
-
228 if (model.NewVersion.Major < 3)
-
229 return BadRequest(new ErrorMessageResponse(ErrorCode.CannotChangeServerSuite));
-
230
-
231 if (!serverControl.WatchdogPresent)
-
232 return UnprocessableEntity(new ErrorMessageResponse(ErrorCode.MissingHostWatchdog));
-
233
-
234 try
-
235 {
-
236 var updateResult = await serverUpdateInitiator.InitiateUpdate(model.NewVersion, cancellationToken);
-
237 return updateResult switch
-
238 {
-
239 ServerUpdateResult.Started => Accepted(new ServerUpdateResponse
-
240 {
-
241 NewVersion = model.NewVersion,
-
242 }),
-
243 ServerUpdateResult.ReleaseMissing => Gone(),
-
244 ServerUpdateResult.UpdateInProgress => BadRequest(new ErrorMessageResponse(ErrorCode.ServerUpdateInProgress)),
-
245 ServerUpdateResult.SwarmIntegrityCheckFailed => StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.SwarmIntegrityCheckFailed)),
-
246 _ => throw new InvalidOperationException($"Unexpected ServerUpdateResult: {updateResult}"),
-
247 };
-
248 }
-
249 catch (RateLimitExceededException e)
-
250 {
-
251 return RateLimit(e);
-
252 }
-
253 catch (ApiException e)
-
254 {
-
255 Logger.LogWarning(e, OctokitException);
-
256 return StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.RemoteApiError)
-
257 {
-
258 AdditionalData = e.Message,
-
259 });
-
260 }
-
261 }
-
262
-
269 [HttpDelete]
-
270 [TgsAuthorize(AdministrationRights.RestartHost)]
-
271 [ProducesResponseType(204)]
-
272 [ProducesResponseType(typeof(ErrorMessageResponse), 422)]
-
273 public async Task<IActionResult> Delete()
-
274 {
-
275 try
-
276 {
-
277 if (!serverControl.WatchdogPresent)
-
278 {
-
279 Logger.LogDebug("Restart request failed due to lack of host watchdog!");
-
280 return UnprocessableEntity(new ErrorMessageResponse(ErrorCode.MissingHostWatchdog));
-
281 }
-
282
-
283 await serverControl.Restart();
-
284 return NoContent();
-
285 }
-
286 catch (InvalidOperationException)
-
287 {
-
288 return StatusCode(HttpStatusCode.ServiceUnavailable);
-
289 }
-
290 }
-
291
-
301 [HttpGet(Routes.Logs)]
-
302 [TgsAuthorize(AdministrationRights.DownloadLogs)]
-
303 [ProducesResponseType(typeof(PaginatedResponse<LogFileResponse>), 200)]
-
304 [ProducesResponseType(typeof(ErrorMessageResponse), 409)]
-
305 public Task<IActionResult> ListLogs([FromQuery] int? page, [FromQuery] int? pageSize, CancellationToken cancellationToken)
-
306 => Paginated(
-
307 async () =>
-
308 {
-
309 var path = fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier);
-
310 try
-
311 {
-
312 var files = await ioManager.GetFiles(path, cancellationToken);
-
313 var tasks = files.Select(
-
314 async file => new LogFileResponse
-
315 {
-
316 Name = ioManager.GetFileName(file),
-
317 LastModified = await ioManager
-
318 .GetLastModified(
-
319 ioManager.ConcatPath(path, file),
-
320 cancellationToken),
-
321 })
-
322 .ToList();
-
323
-
324 await Task.WhenAll(tasks);
-
325
-
326 return new PaginatableResult<LogFileResponse>(
-
327 tasks
-
328 .AsQueryable()
-
329 .Select(x => x.Result)
-
330 .OrderByDescending(x => x.Name));
-
331 }
-
332 catch (IOException ex)
-
333 {
-
334 return new PaginatableResult<LogFileResponse>(
-
335 Conflict(new ErrorMessageResponse(ErrorCode.IOError)
-
336 {
-
337 AdditionalData = ex.ToString(),
-
338 }));
-
339 }
-
340 },
-
341 null,
-
342 page,
-
343 pageSize,
-
344 cancellationToken);
-
345
-
354 [HttpGet(Routes.Logs + "/{*path}")]
-
355 [TgsAuthorize(AdministrationRights.DownloadLogs)]
-
356 [ProducesResponseType(typeof(LogFileResponse), 200)]
-
357 [ProducesResponseType(typeof(ErrorMessageResponse), 409)]
-
358 public async Task<IActionResult> GetLog(string path, CancellationToken cancellationToken)
-
359 {
-
360 if (path == null)
-
361 throw new ArgumentNullException(nameof(path));
-
362
-
363 path = HttpUtility.UrlDecode(path);
-
364
-
365 // guard against directory navigation
-
366 var sanitizedPath = ioManager.GetFileName(path);
-
367 if (path != sanitizedPath)
-
368 return Forbid();
-
369
-
370 var fullPath = ioManager.ConcatPath(
-
371 fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier),
-
372 path);
-
373 try
-
374 {
-
375 var fileTransferTicket = fileTransferService.CreateDownload(
-
376 new FileDownloadProvider(
-
377 () => null,
-
378 null,
-
379 fullPath,
-
380 true));
-
381
-
382 var readTask = ioManager.ReadAllBytes(fullPath, cancellationToken);
-
383
-
384 return Ok(new LogFileResponse
-
385 {
-
386 Name = path,
-
387 LastModified = await ioManager.GetLastModified(fullPath, cancellationToken),
-
388 FileTicket = fileTransferTicket.FileTicket,
-
389 });
-
390 }
-
391 catch (IOException ex)
-
392 {
-
393 return Conflict(new ErrorMessageResponse(ErrorCode.IOError)
-
394 {
-
395 AdditionalData = ex.ToString(),
-
396 });
-
397 }
-
398 }
-
399 }
-
400}
+
22using Tgstation.Server.Host.IO;
+
23using Tgstation.Server.Host.Security;
+
24using Tgstation.Server.Host.System;
+
25using Tgstation.Server.Host.Transfer;
+
26using Tgstation.Server.Host.Utils.GitHub;
+
27
+
28namespace Tgstation.Server.Host.Controllers
+
29{
+
33 [Route(Routes.Administration)]
+
34 public sealed class AdministrationController : ApiController
+
35 {
+
39 const string OctokitException = "Bad GitHub API response, check configuration!";
+
40
+
44 readonly IGitHubService gitHubService;
+
45
+
49 readonly IServerControl serverControl;
+
50
+
54 readonly IServerUpdateInitiator serverUpdateInitiator;
+
55
+
59 readonly IAssemblyInformationProvider assemblyInformationProvider;
+
60
+
64 readonly IIOManager ioManager;
+
65
+
69 readonly IPlatformIdentifier platformIdentifier;
+
70
+
74 readonly IFileTransferTicketProvider fileTransferService;
+
75
+
79 readonly FileLoggingConfiguration fileLoggingConfiguration;
+
80
+
95 public AdministrationController(
+
96 IDatabaseContext databaseContext,
+
97 IAuthenticationContextFactory authenticationContextFactory,
+
98 IGitHubService gitHubService,
+
99 IServerControl serverControl,
+
100 IServerUpdateInitiator serverUpdateInitiator,
+
101 IAssemblyInformationProvider assemblyInformationProvider,
+
102 IIOManager ioManager,
+
103 IPlatformIdentifier platformIdentifier,
+
104 IFileTransferTicketProvider fileTransferService,
+
105 ILogger<AdministrationController> logger,
+
106 IOptions<FileLoggingConfiguration> fileLoggingConfigurationOptions)
+
107 : base(
+
108 databaseContext,
+
109 authenticationContextFactory,
+
110 logger,
+
111 true)
+
112 {
+
113 this.gitHubService = gitHubService ?? throw new ArgumentNullException(nameof(gitHubService));
+
114 this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
+
115 this.serverUpdateInitiator = serverUpdateInitiator ?? throw new ArgumentNullException(nameof(serverUpdateInitiator));
+
116 this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
+
117 this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
+
118 this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
+
119 this.fileTransferService = fileTransferService ?? throw new ArgumentNullException(nameof(fileTransferService));
+
120 fileLoggingConfiguration = fileLoggingConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(fileLoggingConfigurationOptions));
+
121 }
+
122
+
131 [HttpGet]
+
132 [TgsAuthorize(AdministrationRights.ChangeVersion)]
+
133 [ProducesResponseType(typeof(AdministrationResponse), 200)]
+
134 [ProducesResponseType(typeof(ErrorMessageResponse), 424)]
+
135 [ProducesResponseType(typeof(ErrorMessageResponse), 429)]
+
136 public async Task<IActionResult> Read(CancellationToken cancellationToken)
+
137 {
+
138 try
+
139 {
+
140 Version greatestVersion = null;
+
141 Uri repoUrl = null;
+
142 try
+
143 {
+
144 var repositoryUrlTask = gitHubService.GetUpdatesRepositoryUrl(cancellationToken);
+
145 var releases = await gitHubService.GetTgsReleases(cancellationToken);
+
146
+
147 foreach (var kvp in releases)
+
148 {
+
149 var version = kvp.Key;
+
150 var release = kvp.Value;
+
151 if (version.Major > 3 // Forward/backward compatible but not before TGS4
+
152 && (greatestVersion == null || version > greatestVersion))
+
153 greatestVersion = version;
+
154 }
+
155
+
156 repoUrl = await repositoryUrlTask;
+
157 }
+
158 catch (NotFoundException e)
+
159 {
+
160 Logger.LogWarning(e, "Not found exception while retrieving upstream repository info!");
+
161 }
+
162
+
163 return Json(new AdministrationResponse
+
164 {
+
165 LatestVersion = greatestVersion,
+
166 TrackedRepositoryUrl = repoUrl,
+
167 });
+
168 }
+
169 catch (RateLimitExceededException e)
+
170 {
+
171 return RateLimit(e);
+
172 }
+
173 catch (ApiException e)
+
174 {
+
175 Logger.LogWarning(e, OctokitException);
+
176 return StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.RemoteApiError)
+
177 {
+
178 AdditionalData = e.Message,
+
179 });
+
180 }
+
181 }
+
182
+
194 [HttpPost]
+
195 [TgsAuthorize(AdministrationRights.ChangeVersion)]
+
196 [ProducesResponseType(typeof(ServerUpdateResponse), 202)]
+
197 [ProducesResponseType(typeof(ErrorMessageResponse), 410)]
+
198 [ProducesResponseType(typeof(ErrorMessageResponse), 422)]
+
199 [ProducesResponseType(typeof(ErrorMessageResponse), 424)]
+
200 [ProducesResponseType(typeof(ErrorMessageResponse), 429)]
+
201 public async Task<IActionResult> Update([FromBody] ServerUpdateRequest model, CancellationToken cancellationToken)
+
202 {
+
203 if (model == null)
+
204 throw new ArgumentNullException(nameof(model));
+
205
+
206 if (model.NewVersion == null)
+
207 return BadRequest(new ErrorMessageResponse(ErrorCode.ModelValidationFailure)
+
208 {
+
209 AdditionalData = "newVersion is required!",
+
210 });
+
211
+
212 if (model.NewVersion.Major < 3)
+
213 return BadRequest(new ErrorMessageResponse(ErrorCode.CannotChangeServerSuite));
+
214
+
215 if (!serverControl.WatchdogPresent)
+
216 return UnprocessableEntity(new ErrorMessageResponse(ErrorCode.MissingHostWatchdog));
+
217
+
218 try
+
219 {
+
220 var updateResult = await serverUpdateInitiator.InitiateUpdate(model.NewVersion, cancellationToken);
+
221 return updateResult switch
+
222 {
+
223 ServerUpdateResult.Started => Accepted(new ServerUpdateResponse
+
224 {
+
225 NewVersion = model.NewVersion,
+
226 }),
+
227 ServerUpdateResult.ReleaseMissing => Gone(),
+
228 ServerUpdateResult.UpdateInProgress => BadRequest(new ErrorMessageResponse(ErrorCode.ServerUpdateInProgress)),
+
229 ServerUpdateResult.SwarmIntegrityCheckFailed => StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.SwarmIntegrityCheckFailed)),
+
230 _ => throw new InvalidOperationException($"Unexpected ServerUpdateResult: {updateResult}"),
+
231 };
+
232 }
+
233 catch (RateLimitExceededException e)
+
234 {
+
235 return RateLimit(e);
+
236 }
+
237 catch (ApiException e)
+
238 {
+
239 Logger.LogWarning(e, OctokitException);
+
240 return StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.RemoteApiError)
+
241 {
+
242 AdditionalData = e.Message,
+
243 });
+
244 }
+
245 }
+
246
+
253 [HttpDelete]
+
254 [TgsAuthorize(AdministrationRights.RestartHost)]
+
255 [ProducesResponseType(204)]
+
256 [ProducesResponseType(typeof(ErrorMessageResponse), 422)]
+
257 public async Task<IActionResult> Delete()
+
258 {
+
259 try
+
260 {
+
261 if (!serverControl.WatchdogPresent)
+
262 {
+
263 Logger.LogDebug("Restart request failed due to lack of host watchdog!");
+
264 return UnprocessableEntity(new ErrorMessageResponse(ErrorCode.MissingHostWatchdog));
+
265 }
+
266
+
267 await serverControl.Restart();
+
268 return NoContent();
+
269 }
+
270 catch (InvalidOperationException)
+
271 {
+
272 return StatusCode(HttpStatusCode.ServiceUnavailable);
+
273 }
+
274 }
+
275
+
285 [HttpGet(Routes.Logs)]
+
286 [TgsAuthorize(AdministrationRights.DownloadLogs)]
+
287 [ProducesResponseType(typeof(PaginatedResponse<LogFileResponse>), 200)]
+
288 [ProducesResponseType(typeof(ErrorMessageResponse), 409)]
+
289 public Task<IActionResult> ListLogs([FromQuery] int? page, [FromQuery] int? pageSize, CancellationToken cancellationToken)
+
290 => Paginated(
+
291 async () =>
+
292 {
+
293 var path = fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier);
+
294 try
+
295 {
+
296 var files = await ioManager.GetFiles(path, cancellationToken);
+
297 var tasks = files.Select(
+
298 async file => new LogFileResponse
+
299 {
+
300 Name = ioManager.GetFileName(file),
+
301 LastModified = await ioManager
+
302 .GetLastModified(
+
303 ioManager.ConcatPath(path, file),
+
304 cancellationToken),
+
305 })
+
306 .ToList();
+
307
+
308 await Task.WhenAll(tasks);
+
309
+
310 return new PaginatableResult<LogFileResponse>(
+
311 tasks
+
312 .AsQueryable()
+
313 .Select(x => x.Result)
+
314 .OrderByDescending(x => x.Name));
+
315 }
+
316 catch (IOException ex)
+
317 {
+
318 return new PaginatableResult<LogFileResponse>(
+
319 Conflict(new ErrorMessageResponse(ErrorCode.IOError)
+
320 {
+
321 AdditionalData = ex.ToString(),
+
322 }));
+
323 }
+
324 },
+
325 null,
+
326 page,
+
327 pageSize,
+
328 cancellationToken);
+
329
+
338 [HttpGet(Routes.Logs + "/{*path}")]
+
339 [TgsAuthorize(AdministrationRights.DownloadLogs)]
+
340 [ProducesResponseType(typeof(LogFileResponse), 200)]
+
341 [ProducesResponseType(typeof(ErrorMessageResponse), 409)]
+
342 public async Task<IActionResult> GetLog(string path, CancellationToken cancellationToken)
+
343 {
+
344 if (path == null)
+
345 throw new ArgumentNullException(nameof(path));
+
346
+
347 path = HttpUtility.UrlDecode(path);
+
348
+
349 // guard against directory navigation
+
350 var sanitizedPath = ioManager.GetFileName(path);
+
351 if (path != sanitizedPath)
+
352 return Forbid();
+
353
+
354 var fullPath = ioManager.ConcatPath(
+
355 fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier),
+
356 path);
+
357 try
+
358 {
+
359 var fileTransferTicket = fileTransferService.CreateDownload(
+
360 new FileDownloadProvider(
+
361 () => null,
+
362 null,
+
363 fullPath,
+
364 true));
+
365
+
366 var readTask = ioManager.ReadAllBytes(fullPath, cancellationToken);
+
367
+
368 return Ok(new LogFileResponse
+
369 {
+
370 Name = path,
+
371 LastModified = await ioManager.GetLastModified(fullPath, cancellationToken),
+
372 FileTicket = fileTransferTicket.FileTicket,
+
373 });
+
374 }
+
375 catch (IOException ex)
+
376 {
+
377 return Conflict(new ErrorMessageResponse(ErrorCode.IOError)
+
378 {
+
379 AdditionalData = ex.ToString(),
+
380 });
+
381 }
+
382 }
+
383 }
+
384}
Represents administrative server information.
Represents an error message returned by the server.
@@ -400,26 +388,22 @@ $(function() {
const string Logs
The endpoint to download server logs.
Definition: Routes.cs:23
File logging configuration options.
string GetFullLogDirectory(IIOManager ioManager, IAssemblyInformationProvider assemblyInformationProvider, IPlatformIdentifier platformIdentifier)
Gets the evaluated log Directory.
-
Configuration for the automatic update system.
-
long GitHubRepositoryId
The Octokit.Repository.Id of the tgstation-server fork to recieve updates from.
-
string GitTagPrefix
Prefix before the global::System.Version of TGS published in git tags.
-
ApiController for TGS administration purposes.
-
readonly FileLoggingConfiguration fileLoggingConfiguration
The FileLoggingConfiguration for the AdministrationController.
-
readonly IGitHubClientFactory gitHubClientFactory
The IGitHubClientFactory for the AdministrationController.
-
async Task< IActionResult > GetLog(string path, CancellationToken cancellationToken)
Download a LogFileResponse.
-
readonly IAssemblyInformationProvider assemblyInformationProvider
The IAssemblyInformationProvider for the AdministrationController.
+
ApiController for TGS administration purposes.
+
AdministrationController(IDatabaseContext databaseContext, IAuthenticationContextFactory authenticationContextFactory, IGitHubService gitHubService, IServerControl serverControl, IServerUpdateInitiator serverUpdateInitiator, IAssemblyInformationProvider assemblyInformationProvider, IIOManager ioManager, IPlatformIdentifier platformIdentifier, IFileTransferTicketProvider fileTransferService, ILogger< AdministrationController > logger, IOptions< FileLoggingConfiguration > fileLoggingConfigurationOptions)
Initializes a new instance of the AdministrationController class.
+
readonly FileLoggingConfiguration fileLoggingConfiguration
The FileLoggingConfiguration for the AdministrationController.
+
async Task< IActionResult > GetLog(string path, CancellationToken cancellationToken)
Download a LogFileResponse.
+
readonly IAssemblyInformationProvider assemblyInformationProvider
The IAssemblyInformationProvider for the AdministrationController.
Task< IActionResult > ListLogs([FromQuery] int? page, [FromQuery] int? pageSize, CancellationToken cancellationToken)
List LogFileResponses present.
-
async Task< IActionResult > Delete()
Attempts to restart the server.
-
readonly IFileTransferTicketProvider fileTransferService
The IFileTransferTicketProvider for the AdministrationController.
-
async Task< IActionResult > Read(CancellationToken cancellationToken)
Get AdministrationResponse server information.
-
readonly IPlatformIdentifier platformIdentifier
The IPlatformIdentifier for the AdministrationController.
-
const string OctokitException
Default Exception.Message for ApiExceptions.
-
readonly IIOManager ioManager
The IIOManager for the AdministrationController.
-
readonly IServerUpdateInitiator serverUpdateInitiator
The IServerUpdateInitiator for the AdministrationController.
-
readonly IServerControl serverControl
The IServerControl for the AdministrationController.
-
AdministrationController(IDatabaseContext databaseContext, IAuthenticationContextFactory authenticationContextFactory, IGitHubClientFactory gitHubClientFactory, IServerControl serverControl, IServerUpdateInitiator serverUpdateInitiator, IAssemblyInformationProvider assemblyInformationProvider, IIOManager ioManager, IPlatformIdentifier platformIdentifier, IFileTransferTicketProvider fileTransferService, ILogger< AdministrationController > logger, IOptions< UpdatesConfiguration > updatesConfigurationOptions, IOptions< FileLoggingConfiguration > fileLoggingConfigurationOptions)
Initializes a new instance of the AdministrationController class.
-
readonly UpdatesConfiguration updatesConfiguration
The UpdatesConfiguration for the AdministrationController.
-
async Task< IActionResult > Update([FromBody] ServerUpdateRequest model, CancellationToken cancellationToken)
Attempt to perform a server upgrade.
+
async Task< IActionResult > Delete()
Attempts to restart the server.
+
readonly IFileTransferTicketProvider fileTransferService
The IFileTransferTicketProvider for the AdministrationController.
+
async Task< IActionResult > Read(CancellationToken cancellationToken)
Get AdministrationResponse server information.
+
readonly IPlatformIdentifier platformIdentifier
The IPlatformIdentifier for the AdministrationController.
+
const string OctokitException
Default Exception.Message for ApiExceptions.
+
readonly IIOManager ioManager
The IIOManager for the AdministrationController.
+
readonly IGitHubService gitHubService
The IGitHubService for the AdministrationController.
+
readonly IServerUpdateInitiator serverUpdateInitiator
The IServerUpdateInitiator for the AdministrationController.
+
readonly IServerControl serverControl
The IServerControl for the AdministrationController.
+
async Task< IActionResult > Update([FromBody] ServerUpdateRequest model, CancellationToken cancellationToken)
Attempt to perform a server upgrade.
Base Controller for API functions.
ObjectResult Gone()
Generic 410 response.
StatusCodeResult StatusCode(HttpStatusCode statusCode)
Strongly type calls to ControllerBase.StatusCode(int).
@@ -444,8 +428,9 @@ $(function() {
For identifying the current platform.
Service for temporarily storing files to be downloaded or uploaded.
FileTicketResponse CreateDownload(FileDownloadProvider fileDownloadProvider)
Create a FileTicketResponse for a download.
-
For creating IGitHubClients.
-
IGitHubClient CreateClient()
Create a IGitHubClient client. Low rate limit unless the server's GitHubAccessToken is set to bypass ...
+
Service for interacting with the GitHub API.
+
Task< Dictionary< Version, Release > > GetTgsReleases(CancellationToken cancellationToken)
Get all valid TGS Releases from the configured update source.
+
Task< Uri > GetUpdatesRepositoryUrl(CancellationToken cancellationToken)
Gets the Uri of the repository designated as the updates repository.
Definition: ChatChannel.cs:7
@@ -454,16 +439,15 @@ $(function() {
AdministrationRights
Administration rights for the server.
Definition: ApiHeaders.cs:17
-
+
Definition: Application.cs:56
ServerUpdateResult
The result of a call to start a server update.
-
Definition: Console.cs:7
-
+