gitextract_torsj7ae/ ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── bug_report_zh.md │ │ ├── feature_request.md │ │ └── feature_request_zh.md │ └── workflows/ │ ├── docker-crawlab-tencent.yml │ └── docker-crawlab.yml ├── .gitignore ├── CHANGELOG-zh.md ├── CHANGELOG.md ├── DISCLAIMER-zh.md ├── DISCLAIMER.md ├── Dockerfile ├── LICENSE ├── README-zh.md ├── README.md ├── SECURITY.md ├── backend/ │ ├── .air.master.conf │ ├── .air.worker.conf │ ├── .editorconfig │ ├── Dockerfile │ ├── README.md │ ├── Taskfile.yml │ ├── bin/ │ │ ├── semver.sh │ │ ├── update-deps.sh │ │ └── update-ver.sh │ ├── conf/ │ │ └── config.yml │ ├── go.mod │ ├── go.mod.dev │ ├── go.mod.local │ ├── go.sum │ ├── main.go │ └── test/ │ ├── config-master.json │ ├── config-worker-01.json │ ├── config-worker-02.json │ ├── config-worker-03.json │ └── config-worker-invalid-auth-key.json ├── bin/ │ ├── docker-init.sh │ ├── gen-ver.sh │ └── update_docker_js_api_address.py ├── changelog/ │ ├── v0.6.0-zh.md │ └── v0.6.0.md ├── core/ │ ├── .editorconfig │ ├── .github/ │ │ └── workflows/ │ │ └── test.yml │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── apps/ │ │ ├── api_v2.go │ │ ├── docker.go │ │ ├── interfaces.go │ │ ├── server_v2.go │ │ └── utils.go │ ├── cmd/ │ │ ├── root.go │ │ ├── server.go │ │ └── server_test.go │ ├── color/ │ │ └── service.go │ ├── config/ │ │ ├── base.go │ │ ├── config.go │ │ ├── config_test.go │ │ └── path.go │ ├── constants/ │ │ ├── action.go │ │ ├── anchor.go │ │ ├── auth.go │ │ ├── cache.go │ │ ├── channels.go │ │ ├── common.go │ │ ├── config_spider.go │ │ ├── data_collection.go │ │ ├── data_field.go │ │ ├── database.go │ │ ├── delegate.go │ │ ├── ds.go │ │ ├── encrypt.go │ │ ├── errors.go │ │ ├── event.go │ │ ├── export.go │ │ ├── file.go │ │ ├── filer.go │ │ ├── filter.go │ │ ├── git.go │ │ ├── grpc.go │ │ ├── http.go │ │ ├── log.go │ │ ├── message.go │ │ ├── node.go │ │ ├── notification.go │ │ ├── pagination.go │ │ ├── register.go │ │ ├── results.go │ │ ├── rpc.go │ │ ├── schedule.go │ │ ├── scrapy.go │ │ ├── signal.go │ │ ├── sort.go │ │ ├── system.go │ │ ├── task.go │ │ ├── user.go │ │ └── variable.go │ ├── container/ │ │ └── container.go │ ├── controllers/ │ │ ├── base_file_v2.go │ │ ├── base_v2.go │ │ ├── base_v2_test.go │ │ ├── export_v2.go │ │ ├── filter_v2.go │ │ ├── http.go │ │ ├── login_v2.go │ │ ├── project_v2.go │ │ ├── result_v2.go │ │ ├── router_v2.go │ │ ├── router_v2_test.go │ │ ├── schedule_v2.go │ │ ├── setting_v2.go │ │ ├── spider_v2.go │ │ ├── spider_v2_test.go │ │ ├── stats_v2.go │ │ ├── sync_v2.go │ │ ├── system_info_v2.go │ │ ├── task_v2.go │ │ ├── token_v2.go │ │ ├── user_v2.go │ │ ├── user_v2_test.go │ │ ├── utils_context.go │ │ ├── utils_filter.go │ │ ├── utils_http.go │ │ ├── utils_pagination.go │ │ ├── utils_sort.go │ │ └── ws_writer.go │ ├── data/ │ │ └── colors.go │ ├── database/ │ │ ├── entity/ │ │ │ └── database.go │ │ ├── interfaces/ │ │ │ ├── database_registry_service.go │ │ │ └── database_service.go │ │ └── registry_service.go │ ├── docker-compose.yml │ ├── docs/ │ │ ├── .gitignore │ │ ├── api/ │ │ │ ├── index.html │ │ │ └── openapi.yaml │ │ ├── package.json │ │ └── scripts/ │ │ └── publish.js │ ├── ds/ │ │ ├── cockroachdb.go │ │ ├── default.go │ │ ├── es.go │ │ ├── kafka.go │ │ ├── mongo.go │ │ ├── mssql.go │ │ ├── mssql_test.go │ │ ├── mysql.go │ │ ├── options.go │ │ ├── postgresql.go │ │ ├── service.go │ │ ├── sql.go │ │ ├── sql_options.go │ │ └── sqlite.go │ ├── entity/ │ │ ├── address.go │ │ ├── color.go │ │ ├── common.go │ │ ├── config_spider.go │ │ ├── data_field.go │ │ ├── dependency.go │ │ ├── doc.go │ │ ├── es.go │ │ ├── event.go │ │ ├── export.go │ │ ├── filter.go │ │ ├── filter_select_option.go │ │ ├── fs_file_info.go │ │ ├── git.go │ │ ├── grpc_base_service_message.go │ │ ├── grpc_base_service_params.go │ │ ├── grpc_delegate_message.go │ │ ├── grpc_event_service_message.go │ │ ├── grpc_subscribe.go │ │ ├── http.go │ │ ├── model_delegate.go │ │ ├── model_info.go │ │ ├── node.go │ │ ├── notification_variable.go │ │ ├── pagination.go │ │ ├── result.go │ │ ├── rpc.go │ │ ├── sort.go │ │ ├── spider.go │ │ ├── stats.go │ │ ├── system_info.go │ │ ├── task.go │ │ ├── translation.go │ │ ├── ttl_map.go │ │ └── version.go │ ├── errors/ │ │ ├── base.go │ │ ├── controller.go │ │ ├── ds.go │ │ ├── event.go │ │ ├── filter.go │ │ ├── fs.go │ │ ├── git.go │ │ ├── grpc.go │ │ ├── http.go │ │ ├── model.go │ │ ├── node.go │ │ ├── process.go │ │ ├── result.go │ │ ├── schedule.go │ │ ├── spider.go │ │ ├── stats.go │ │ ├── store.go │ │ ├── task.go │ │ └── user.go │ ├── event/ │ │ ├── func.go │ │ ├── options.go │ │ └── service.go │ ├── export/ │ │ ├── csv_service.go │ │ ├── csv_service_test.go │ │ └── json_service.go │ ├── fs/ │ │ ├── default.go │ │ ├── service_v2.go │ │ └── service_v2_test.go │ ├── go.mod │ ├── go.sum │ ├── grpc/ │ │ ├── client/ │ │ │ ├── client.go │ │ │ ├── client_v2.go │ │ │ ├── options.go │ │ │ ├── pool.go │ │ │ └── utils_proto.go │ │ ├── middlewares/ │ │ │ └── auth_token.go │ │ ├── payload/ │ │ │ └── model_service_v2_payload.go │ │ └── server/ │ │ ├── dependencies_server_v2.go │ │ ├── message_server.go │ │ ├── metrics_server_v2.go │ │ ├── model_base_service_binder.go │ │ ├── model_base_service_server.go │ │ ├── model_base_service_v2_server.go │ │ ├── model_delegate_binder.go │ │ ├── model_delegate_server.go │ │ ├── node_server.go │ │ ├── node_server_v2.go │ │ ├── server_v2.go │ │ ├── task_server_v2.go │ │ └── utils_handle.go │ ├── i18n/ │ │ └── service.go │ ├── interfaces/ │ │ ├── address.go │ │ ├── color.go │ │ ├── color_service.go │ │ ├── controller_params.go │ │ ├── data_source_service.go │ │ ├── entity.go │ │ ├── event_data.go │ │ ├── event_service.go │ │ ├── export.go │ │ ├── export_service.go │ │ ├── filter.go │ │ ├── filter_condition.go │ │ ├── fs_file_info.go │ │ ├── fs_service.go │ │ ├── fs_service_options.go │ │ ├── fs_service_v2.go │ │ ├── grpc_base.go │ │ ├── grpc_base_service_params.go │ │ ├── grpc_client.go │ │ ├── grpc_client_model_base_service.go │ │ ├── grpc_client_model_delegate.go │ │ ├── grpc_client_model_environment_service.go │ │ ├── grpc_client_model_node_service.go │ │ ├── grpc_client_model_service.go │ │ ├── grpc_client_model_spider_service.go │ │ ├── grpc_client_model_task_service.go │ │ ├── grpc_client_model_task_stat_service.go │ │ ├── grpc_client_pool.go │ │ ├── grpc_model_base_service_message.go │ │ ├── grpc_model_binder.go │ │ ├── grpc_model_delegate_message.go │ │ ├── grpc_model_list_binder.go │ │ ├── grpc_server.go │ │ ├── grpc_stream.go │ │ ├── grpc_subscribe.go │ │ ├── i18n_service.go │ │ ├── injectable.go │ │ ├── list.go │ │ ├── model.go │ │ ├── model_artifact.go │ │ ├── model_artifact_sys.go │ │ ├── model_base_service.go │ │ ├── model_binder.go │ │ ├── model_delegate.go │ │ ├── model_environment.go │ │ ├── model_extra_value.go │ │ ├── model_git.go │ │ ├── model_list_binder.go │ │ ├── model_node.go │ │ ├── model_node_delegate.go │ │ ├── model_permission.go │ │ ├── model_result.go │ │ ├── model_role.go │ │ ├── model_schedule.go │ │ ├── model_service_v2.go │ │ ├── model_spider.go │ │ ├── model_tag.go │ │ ├── model_task.go │ │ ├── model_task_stat.go │ │ ├── model_user.go │ │ ├── model_user_group.go │ │ ├── module.go │ │ ├── node_config_service.go │ │ ├── node_master_service.go │ │ ├── node_service.go │ │ ├── node_service_option.go │ │ ├── node_worker_service.go │ │ ├── options.go │ │ ├── process_daemon.go │ │ ├── provide.go │ │ ├── result_service.go │ │ ├── result_service_mongo.go │ │ ├── result_service_registry.go │ │ ├── schedule_service.go │ │ ├── spider_admin_service.go │ │ ├── spider_service_options.go │ │ ├── stats_service.go │ │ ├── task_base_service.go │ │ ├── task_handler_service.go │ │ ├── task_hook_service.go │ │ ├── task_runner.go │ │ ├── task_scheduler_service.go │ │ ├── task_stats_service.go │ │ ├── test.go │ │ ├── translation.go │ │ ├── user_service.go │ │ ├── user_service_options.go │ │ ├── with_address.go │ │ ├── with_config_path.go │ │ └── with_model_id.go │ ├── main.go │ ├── middlewares/ │ │ ├── auth.go │ │ ├── auth_v2.go │ │ ├── cors.go │ │ ├── filer_auth.go │ │ └── middlewares.go │ ├── models/ │ │ ├── client/ │ │ │ ├── binder_basic.go │ │ │ ├── binder_list.go │ │ │ ├── model_base_service.go │ │ │ ├── model_delegate.go │ │ │ ├── model_environment_service.go │ │ │ ├── model_node_delegate.go │ │ │ ├── model_node_service.go │ │ │ ├── model_service.go │ │ │ ├── model_service_v2.go │ │ │ ├── model_service_v2_test.go │ │ │ ├── model_spider_service.go │ │ │ ├── model_task_service.go │ │ │ ├── model_task_stat_service.go │ │ │ └── options.go │ │ ├── common/ │ │ │ └── index_service_v2.go │ │ ├── config_spider/ │ │ │ ├── common.go │ │ │ └── scrapy.go │ │ ├── delegate/ │ │ │ ├── base_test.go │ │ │ ├── model.go │ │ │ ├── model_node.go │ │ │ ├── model_node_test.go │ │ │ ├── model_role_test.go │ │ │ ├── model_test.go │ │ │ └── utils_event.go │ │ ├── models/ │ │ │ ├── artifact.go │ │ │ ├── artifact_sys.go │ │ │ ├── base.go │ │ │ ├── data_collection.go │ │ │ ├── data_source.go │ │ │ ├── dependency_setting.go │ │ │ ├── environment.go │ │ │ ├── extra_value.go │ │ │ ├── git.go │ │ │ ├── job.go │ │ │ ├── node.go │ │ │ ├── password.go │ │ │ ├── permission.go │ │ │ ├── project.go │ │ │ ├── result.go │ │ │ ├── role.go │ │ │ ├── role_permission.go │ │ │ ├── schedule.go │ │ │ ├── setting.go │ │ │ ├── spider.go │ │ │ ├── spider_stat.go │ │ │ ├── tag.go │ │ │ ├── task.go │ │ │ ├── task_queue_item.go │ │ │ ├── task_stat.go │ │ │ ├── token.go │ │ │ ├── user.go │ │ │ ├── user_role.go │ │ │ ├── utils_binder_legacy.go │ │ │ ├── utils_col.go │ │ │ ├── utils_model_map.go │ │ │ ├── utils_tag.go │ │ │ ├── v2/ │ │ │ │ ├── base_v2.go │ │ │ │ ├── data_collection_v2.go │ │ │ │ ├── database_metric_v2.go │ │ │ │ ├── database_v2.go │ │ │ │ ├── dependency_log_v2.go │ │ │ │ ├── dependency_setting_v2.go │ │ │ │ ├── dependency_task_v2.go │ │ │ │ ├── dependency_v2.go │ │ │ │ ├── environment_v2.go │ │ │ │ ├── git_v2.go │ │ │ │ ├── metric_v2.go │ │ │ │ ├── node_v2.go │ │ │ │ ├── notification_alert_v2.go │ │ │ │ ├── notification_channel_v2.go │ │ │ │ ├── notification_request_v2.go │ │ │ │ ├── notification_setting_v2.go │ │ │ │ ├── permission_v2.go │ │ │ │ ├── project_v2.go │ │ │ │ ├── role_permission_v2.go │ │ │ │ ├── role_v2.go │ │ │ │ ├── schedule_v2.go │ │ │ │ ├── setting_v2.go │ │ │ │ ├── spider_stat_v2.go │ │ │ │ ├── spider_v2.go │ │ │ │ ├── task_queue_item_v2.go │ │ │ │ ├── task_stat_v2.go │ │ │ │ ├── task_v2.go │ │ │ │ ├── test_v2.go │ │ │ │ ├── token_v2.go │ │ │ │ ├── user_role_v2.go │ │ │ │ ├── user_v2.go │ │ │ │ └── variable_v2.go │ │ │ └── variable.go │ │ └── service/ │ │ ├── artifact_service.go │ │ ├── base_service.go │ │ ├── base_service_v2.go │ │ ├── base_service_v2_test.go │ │ ├── binder_basic.go │ │ ├── binder_list.go │ │ ├── data_collection_service.go │ │ ├── data_source_service.go │ │ ├── dependency_setting_service.go │ │ ├── environment_service.go │ │ ├── extra_value_service.go │ │ ├── git_service.go │ │ ├── interface.go │ │ ├── job_service.go │ │ ├── node_service.go │ │ ├── options.go │ │ ├── password_service.go │ │ ├── permission_service.go │ │ ├── project_service.go │ │ ├── role_permission_service.go │ │ ├── role_service.go │ │ ├── schedule_service.go │ │ ├── service.go │ │ ├── setting_service.go │ │ ├── spider_service.go │ │ ├── spider_stat_service.go │ │ ├── tag_service.go │ │ ├── tag_service_legacy.go │ │ ├── task_queue_service.go │ │ ├── task_service.go │ │ ├── task_stat_service.go │ │ ├── token_service.go │ │ ├── user_role_service.go │ │ ├── user_service.go │ │ └── variable_service.go │ ├── node/ │ │ ├── config/ │ │ │ ├── config.go │ │ │ ├── config_service.go │ │ │ └── options.go │ │ └── service/ │ │ ├── master_service_v2.go │ │ ├── options.go │ │ └── worker_service_v2.go │ ├── notification/ │ │ ├── constants.go │ │ ├── entity.go │ │ ├── im.go │ │ ├── mail.go │ │ ├── mail_gmail.go │ │ ├── oauth2_gmail.go │ │ ├── service_v2.go │ │ ├── service_v2_test.go │ │ └── theme.go │ ├── process/ │ │ ├── daemon.go │ │ ├── daemon_test.go │ │ ├── manage.go │ │ └── options.go │ ├── result/ │ │ ├── options.go │ │ ├── service.go │ │ ├── service_mongo.go │ │ └── service_registry.go │ ├── schedule/ │ │ ├── logger.go │ │ ├── options.go │ │ ├── service.go │ │ ├── service_v2.go │ │ └── test/ │ │ ├── base.go │ │ └── schedule_service_test.go │ ├── spider/ │ │ └── admin/ │ │ ├── options.go │ │ ├── service.go │ │ └── service_v2.go │ ├── stats/ │ │ ├── options.go │ │ └── service.go │ ├── sys_exec/ │ │ ├── sys_exec.go │ │ ├── sys_exec_darwin.go │ │ ├── sys_exec_linux.go │ │ └── sys_exec_windows.go │ ├── system/ │ │ ├── service.go │ │ └── service_v2.go │ ├── task/ │ │ ├── handler/ │ │ │ ├── options.go │ │ │ ├── runner_test.go │ │ │ ├── runner_v2.go │ │ │ └── service_v2.go │ │ ├── log/ │ │ │ ├── constants.go │ │ │ ├── default.go │ │ │ ├── driver.go │ │ │ ├── entity.go │ │ │ ├── errors.go │ │ │ ├── file_driver.go │ │ │ ├── file_driver_test.go │ │ │ └── interface.go │ │ ├── scheduler/ │ │ │ ├── options.go │ │ │ └── service_v2.go │ │ └── stats/ │ │ ├── options.go │ │ └── service_v2.go │ ├── user/ │ │ ├── options.go │ │ ├── service.go │ │ ├── service_v2.go │ │ └── test/ │ │ ├── base.go │ │ └── user_service_test.go │ └── utils/ │ ├── args.go │ ├── array.go │ ├── backoff.go │ ├── binders/ │ │ └── binder_col_name.go │ ├── bool.go │ ├── bson.go │ ├── cache.go │ ├── chan.go │ ├── chan_test.go │ ├── cockroachdb.go │ ├── cron.go │ ├── debug.go │ ├── demo.go │ ├── di.go │ ├── docker.go │ ├── encrypt.go │ ├── encrypt_test.go │ ├── es.go │ ├── file.go │ ├── file_test.go │ ├── filter.go │ ├── git.go │ ├── hash.go │ ├── helpers.go │ ├── http.go │ ├── init.go │ ├── json.go │ ├── kafka.go │ ├── mongo.go │ ├── mssql.go │ ├── mysql.go │ ├── node.go │ ├── os.go │ ├── postgresql.go │ ├── result.go │ ├── rpc.go │ ├── spider.go │ ├── sql.go │ ├── sqlite.go │ ├── stats.go │ ├── system.go │ ├── task.go │ ├── time.go │ └── uuid.go ├── db/ │ ├── .editorconfig │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── errors/ │ │ ├── base.go │ │ ├── errors.go │ │ └── redis.go │ ├── generic/ │ │ ├── base.go │ │ ├── list.go │ │ ├── op.go │ │ └── sort.go │ ├── go.mod │ ├── interfaces.go │ ├── mongo/ │ │ ├── client.go │ │ ├── client_options.go │ │ ├── client_test.go │ │ ├── col.go │ │ ├── col_test.go │ │ ├── db.go │ │ ├── db_options.go │ │ ├── db_test.go │ │ ├── result.go │ │ └── transaction.go │ ├── redis/ │ │ ├── client.go │ │ ├── constants.go │ │ ├── options.go │ │ ├── pool.go │ │ └── test/ │ │ ├── base.go │ │ └── client_test.go │ ├── sql/ │ │ └── sql.go │ └── utils/ │ └── utils.go ├── devops/ │ ├── develop/ │ │ ├── crawlab-master.yaml │ │ ├── crawlab-worker.yaml │ │ ├── mongo-pv.yaml │ │ ├── mongo.yaml │ │ ├── ns.yaml │ │ └── redis.yaml │ ├── master/ │ │ ├── crawlab-master.yaml │ │ ├── crawlab-worker.yaml │ │ ├── mongo-pv.yaml │ │ ├── mongo.yaml │ │ ├── ns.yaml │ │ └── redis.yaml │ └── release/ │ ├── crawlab-master.yaml │ ├── crawlab-worker.yaml │ ├── mongo-pv.yaml │ ├── mongo.yaml │ ├── ns.yaml │ └── redis.yaml ├── docker-compose.yml ├── docs/ │ └── config.md ├── frontend/ │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmrc │ ├── Dockerfile │ ├── babel.config.js │ ├── index.html │ ├── jest.config.ts │ ├── package.json │ ├── public/ │ │ ├── fonts/ │ │ │ └── FontAwesome.otf │ │ └── js/ │ │ ├── login-canvas.js │ │ └── vue3-sfc-loader.js │ ├── src/ │ │ ├── main.ts │ │ └── shims-vue.d.ts │ ├── tsconfig.json │ ├── vite.config.ts │ └── vue.config.js ├── fs/ │ ├── .editorconfig │ ├── .github/ │ │ └── workflows/ │ │ └── test.yml │ ├── .gitignore │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── bin/ │ │ ├── start.sh │ │ └── stop.sh │ ├── constants.go │ ├── docker-compose.yml │ ├── errors.go │ ├── go.mod │ ├── go.sum │ ├── interface.go │ ├── lib/ │ │ └── copy/ │ │ └── copy.go │ ├── options.go │ ├── seaweedfs_manager.go │ ├── test/ │ │ ├── base.go │ │ ├── bindata.go │ │ ├── main_test.go │ │ ├── seaweedfs_test.go │ │ └── utils.go │ └── utils.go ├── go.work ├── go.work.sum ├── grpc/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── bin/ │ │ ├── compile.sh │ │ └── compile_all.sh │ ├── dependencies_service_v2.pb.go │ ├── dependencies_service_v2_grpc.pb.go │ ├── go.mod │ ├── go.sum │ ├── message_service.pb.go │ ├── message_service_grpc.pb.go │ ├── metrics_service_v2.pb.go │ ├── metrics_service_v2_grpc.pb.go │ ├── model_base_service.pb.go │ ├── model_base_service_grpc.pb.go │ ├── model_base_service_v2.pb.go │ ├── model_base_service_v2_grpc.pb.go │ ├── model_delegate.pb.go │ ├── model_delegate_grpc.pb.go │ ├── model_service_v2_request.pb.go │ ├── node.pb.go │ ├── node_info.pb.go │ ├── node_service.pb.go │ ├── node_service_grpc.pb.go │ ├── plugin_request.pb.go │ ├── plugin_service.pb.go │ ├── plugin_service_grpc.pb.go │ ├── proto/ │ │ ├── entity/ │ │ │ ├── model_service_v2_request.proto │ │ │ ├── node_info.proto │ │ │ ├── plugin_request.proto │ │ │ ├── request.proto │ │ │ ├── response.proto │ │ │ ├── response_code.proto │ │ │ ├── stream_message.proto │ │ │ ├── stream_message_code.proto │ │ │ └── stream_message_data_task.proto │ │ ├── models/ │ │ │ ├── node.proto │ │ │ └── task.proto │ │ └── services/ │ │ ├── dependencies_service_v2.proto │ │ ├── message_service.proto │ │ ├── metrics_service_v2.proto │ │ ├── model_base_service.proto │ │ ├── model_base_service_v2.proto │ │ ├── model_delegate.proto │ │ ├── node_service.proto │ │ ├── plugin_service.proto │ │ └── task_service.proto │ ├── request.pb.go │ ├── response.pb.go │ ├── response_code.pb.go │ ├── stream_message.pb.go │ ├── stream_message_code.pb.go │ ├── stream_message_data_task.pb.go │ ├── task.pb.go │ ├── task_service.pb.go │ └── task_service_grpc.pb.go ├── k8s/ │ ├── crawlab-master.yaml │ ├── crawlab-worker.yaml │ ├── mongo-pv.yaml │ ├── mongo.yaml │ ├── ns.yaml │ └── redis.yaml ├── nginx/ │ └── crawlab.conf ├── scripts/ │ └── validate-backend.sh ├── template-parser/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── entity.go │ ├── func.go │ ├── general_parser.go │ ├── go.mod │ ├── go.sum │ ├── interfaces.go │ ├── parser.go │ ├── test/ │ │ └── general_parser_test.go │ └── variable.go ├── trace/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── go.mod │ ├── go.sum │ └── trace.go ├── vcs/ │ ├── .github/ │ │ └── workflows/ │ │ └── test.yml │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── constants.go │ ├── entity.go │ ├── errors.go │ ├── git.go │ ├── git_options.go │ ├── git_store.go │ ├── git_utils.go │ ├── go.mod │ ├── go.sum │ ├── interface.go │ ├── test/ │ │ ├── base.go │ │ ├── credential.go │ │ ├── credentials.example.json │ │ └── git_test.go │ └── utils.go └── workspace/ ├── .gitignore ├── docker-compose.yml ├── dockerfiles/ │ ├── golang/ │ │ └── Dockerfile │ └── node/ │ ├── .dockerignore │ └── Dockerfile └── localdev/ ├── README.md └── docker-compose.yml