This is an automated email from the ASF dual-hosted git repository.

klesh pushed a commit to branch kw-5519-remoteapi-dshelper
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 1162940de81fdc5a86a453109b403c2964678629
Merge: b35186ac6 0c79f340a
Author: Klesh Wong <[email protected]>
AuthorDate: Mon Jun 17 16:38:47 2024 +0800

    Merge remote-tracking branch 'origin/main' into kw-5519-remoteapi-dshelper

 README.md                                          |   2 +-
 backend/Makefile                                   |   3 +
 .../pull_request_assignees.go}                     |  17 +-
 .../pull_request_reviewers.go}                     |  17 +-
 .../domainlayer/crossdomain/pull_request_issue.go  |   2 +-
 .../models/domainlayer/domaininfo/domaininfo.go    |   2 +
 backend/core/models/domainlayer/ticket/issue.go    |   1 +
 ...ify_cicd_deployment_commits_repo_url_length.go} |  36 +-
 ...odify_cicd_pipeline_commits_repo_url_length.go} |  36 +-
 ...pdate_issue_key_type_in_pull_request_issues.go} |  38 +-
 ...ate_plugin_option_in_project_metric_settings.go |  69 ++
 .../20240531_add_pr_assignees_and_reviewers.go}    |  33 +-
 ..._pull_request_id_index_for_pr_comments_table.go |  46 ++
 ...d_pull_request_id_index_for_pr_commits_table.go |  72 +++
 ...240607_modify_pr_assignees_and_reviewers_id.go} |  38 +-
 .../archived/pull_request_assignees.go}            |  27 +-
 .../archived/pull_request_reviewers.go}            |  27 +-
 backend/core/models/migrationscripts/register.go   |   8 +
 backend/core/models/pipeline.go                    |   3 -
 backend/core/models/project.go                     |   6 +-
 backend/core/plugin/hub.go                         |   8 +-
 backend/core/runner/loader.go                      |  20 +-
 backend/go.mod                                     |   2 +-
 backend/go.sum                                     |   2 +
 .../pluginhelper/api/ds_model_api_helper.go        |   6 +-
 backend/plugins/azuredevops_go/e2e/build_test.go   |   1 +
 .../e2e/snapshot_tables/cicd_pipeline_commits.csv  |  14 +-
 .../azuredevops_go/tasks/ci_cd_build_converter.go  |  19 +-
 backend/plugins/bamboo/impl/impl.go                |   2 +-
 backend/plugins/bitbucket/api/remote_api.go        |   8 +
 backend/plugins/bitbucket/impl/impl.go             |   2 +-
 .../_tool_bitbucket_server_pull_requests.csv       |  22 +-
 .../_tool_bitbucket_server_users_in_pr.csv         |   4 +-
 .../e2e/snapshot_tables/pull_requests.csv          |  22 +-
 .../plugins/bitbucket_server/tasks/pr_collector.go |   8 +-
 .../bitbucket_server/tasks/pr_commit_collector.go  |   1 +
 .../plugins/bitbucket_server/tasks/pr_extractor.go |   8 +-
 .../plugins/bitbucket_server/tasks/task_data.go    |  12 +
 backend/plugins/circleci/impl/impl.go              |   2 +-
 .../plugins/customize/e2e/extract_fields_test.go   | 130 +++-
 .../e2e/raw_tables/_raw_jira_api_issues.csv        |  34 +-
 .../plugins/customize/e2e/raw_tables/issues.csv    |  34 +-
 .../issues_for_data_extraction_board8.csv          |  31 +
 .../issues_for_data_extraction_board9.csv          |  31 +
 ...csv => issues_for_data_extraction_wildcard.csv} |  34 +-
 .../customize/tasks/customized_fields_extractor.go |   2 +-
 .../e2e/change_lead_time/project_pr_metrics.csv    |   8 +-
 backend/plugins/dora/impl/impl.go                  |   9 +-
 .../dora/tasks/change_lead_time_calculator.go      |  17 +-
 backend/plugins/gitee/tasks/pr_issue_convertor.go  |   3 +-
 .../plugins/gitextractor/parser/clone_gitcli.go    |   3 +-
 .../plugins/github/tasks/account_org_collector.go  |   6 +
 backend/plugins/github/tasks/pr_issue_convertor.go |   3 +-
 backend/plugins/github_graphql/impl/impl.go        |  11 +-
 backend/plugins/gitlab/api/blueprint_V200_test.go  |  28 +-
 backend/plugins/gitlab/api/blueprint_v200.go       |  22 +-
 backend/plugins/gitlab/api/init.go                 |   2 +
 backend/plugins/gitlab/e2e/mr_commits_test.go      |   2 +
 backend/plugins/gitlab/impl/impl.go                |   1 +
 .../gitlab/models/{reviewer.go => assignee.go}     |  13 +-
 .../migrationscripts/20240531_add_mr_assignees.go} |  42 +-
 ...5_add_mr_assignees_and_reviewers_primary_key.go |  88 +++
 .../archived/{reviewer.go => assignee.go}          |  11 +-
 .../models/migrationscripts/archived/reviewer.go   |   5 +-
 .../gitlab/models/migrationscripts/register.go     |   2 +
 backend/plugins/gitlab/models/reviewer.go          |   7 +-
 .../plugins/gitlab/tasks/mr_assignee_convertor.go  |  91 +++
 .../plugins/gitlab/tasks/mr_detail_extractor.go    |  17 +-
 backend/plugins/gitlab/tasks/mr_extractor.go       |  29 +-
 .../plugins/gitlab/tasks/mr_reviewer_convertor.go  |  91 +++
 .../register.go => issue_trace/api/init.go}        |  23 +-
 .../e2e/general_issue_assignee_history_test.go     |  52 ++
 .../e2e/general_issue_status_history_test.go       |  53 ++
 .../register.go => issue_trace/e2e/meta.go}        |  24 +-
 .../issue_trace/e2e/raw_tables/board_issues.csv    |  33 +
 .../e2e/raw_tables/issue_changelogs.csv            | 694 +++++++++++++++++++++
 .../plugins/issue_trace/e2e/raw_tables/issues.csv  |  33 +
 .../e2e/snapshot_tables/issue_assignee_history.csv |  43 ++
 .../e2e/snapshot_tables/issue_status_history.csv   | 201 ++++++
 backend/plugins/issue_trace/impl/enricher.go       | 179 ++++++
 backend/plugins/issue_trace/issue_trace.go         |  48 ++
 .../models/issue_assignee_history.go}              |  25 +-
 .../models/issue_status_history.go}                |  29 +-
 .../migrationscripts/2024_05_30_new_issue_table.go |  70 +++
 .../register.go => issue_trace/services/query.go}  |  24 +-
 .../tasks/issue_assignee_history_convertor.go      | 299 +++++++++
 .../tasks/issue_status_history_convertor.go        | 275 ++++++++
 .../tasks/issue_status_history_convertor_test.go}  |  42 +-
 .../register.go => issue_trace/tasks/task_data.go} |  28 +-
 backend/plugins/issue_trace/utils/array.go         |  62 ++
 .../register.go => issue_trace/utils/constant.go}  |  20 +-
 .../register.go => issue_trace/utils/context.go}   |  21 +-
 .../_tool_jira_issues_for_external_epics.csv       |   8 +-
 .../plugins/jira/e2e/snapshot_tables/issues.csv    |  24 +-
 backend/plugins/jira/models/issue.go               |   1 +
 .../20240611_add_subtask_to_issue.go}              |  40 +-
 .../jira/models/migrationscripts/register.go       |   1 +
 .../jira/tasks/issue_changelog_collector.go        |   2 +-
 .../jira/tasks/issue_changelog_convertor.go        |   2 +-
 .../jira/tasks/issue_changelog_extractor.go        |   2 +-
 backend/plugins/jira/tasks/issue_convertor.go      |   3 +
 backend/plugins/jira/tasks/issue_extractor.go      |   4 +
 .../register.go => linker/README.md}               |  20 -
 .../plugins/linker/e2e/link_pr_and_issue_test.go   |  71 +++
 .../linker/e2e/snapshot_tables/board_issues.csv    |   3 +
 .../plugins/linker/e2e/snapshot_tables/issues.csv  |   5 +
 .../linker/e2e/snapshot_tables/project_mapping.csv |   3 +
 .../e2e/snapshot_tables/pull_request_issues.csv    |   3 +
 .../linker/e2e/snapshot_tables/pull_requests.csv   |   2 +
 backend/plugins/linker/impl/impl.go                | 127 ++++
 .../register.go => linker/linker.go}               |  32 +-
 .../models/migrationscripts/register.go            |  11 +-
 backend/plugins/linker/tasks/link_pr_and_issue.go  | 142 +++++
 .../reviewer.go => linker/tasks/task_data.go}      |  33 +-
 ...dd_new_fields_to_tool_opsgenie_scope_configs.go |  48 ++
 .../opsgenie/models/migrationscripts/register.go   |   1 +
 ...d_new_fields_to_tool_pagerduty_scope_configs.go |  48 ++
 .../pagerduty/models/migrationscripts/register.go  |   1 +
 backend/plugins/pagerduty/models/service.go        |   2 +-
 backend/plugins/pagerduty/tasks/task_data.go       |   3 -
 ...20240614_update_tool_sonarqube_scope_configs.go |  48 ++
 .../sonarqube/models/migrationscripts/register.go  |   1 +
 backend/plugins/starrocks/tasks/tasks.go           |   7 +-
 backend/plugins/table_info_test.go                 |   4 +
 backend/plugins/tapd/api/blueprint_v200.go         |   2 +-
 backend/plugins/tapd/impl/impl.go                  |   2 +-
 backend/plugins/trello/impl/impl.go                |   2 +-
 backend/plugins/webhook/api/deployments.go         | 297 +++++----
 .../plugins/webhook/api/{incident.go => issues.go} |  32 +-
 backend/plugins/webhook/impl/impl.go               |   4 +-
 backend/plugins/zentao/api/remote_api.go           |  11 +-
 backend/plugins/zentao/impl/impl.go                |   8 +-
 .../plugins/zentao/tasks/execution_collector.go    |   5 +-
 ...ector.go => execution_summary_dev_collector.go} |  64 +-
 ...ector.go => execution_summary_dev_extractor.go} |  72 +--
 .../plugins/azuredevops/azuredevops/migrations.py  |  44 +-
 .../plugins/gerrit/README.md}                      |  24 +-
 backend/python/plugins/gerrit/build.sh             |  20 +
 backend/python/plugins/gerrit/gerrit/__init__.py   |  14 +
 backend/python/plugins/gerrit/gerrit/api.py        | 120 ++++
 backend/python/plugins/gerrit/gerrit/main.py       | 117 ++++
 backend/python/plugins/gerrit/gerrit/migrations.py |  70 +++
 backend/python/plugins/gerrit/gerrit/models.py     |  76 +++
 .../gerrit/gerrit/streams/change_commits.py        |  47 ++
 .../plugins/gerrit/gerrit/streams/changes.py       | 111 ++++
 backend/python/plugins/gerrit/poetry.lock          | 651 +++++++++++++++++++
 backend/python/plugins/gerrit/pyproject.toml       |  31 +
 backend/python/plugins/gerrit/run.sh               |  20 +
 backend/python/plugins/gerrit/tests/__init__.py    |  14 +
 backend/python/plugins/gerrit/tests/plugin_test.py |  42 ++
 backend/python/plugins/gerrit/tests/stream_test.py | 126 ++++
 backend/python/pydevlake/pydevlake/model.py        |   2 +-
 backend/scripts/build-plugins.sh                   |   2 +-
 backend/server/services/blueprint.go               |   2 +-
 backend/server/services/pipeline.go                |  44 +-
 backend/server/services/project.go                 |  32 +-
 backend/test/helper/api.go                         |   4 +-
 config-ui/src/components/block/index.tsx           |   2 +-
 .../src/components/tooltip/help-tooltip/index.tsx  |   5 +-
 .../connection-form/fields/secret-key.tsx          |  19 +-
 .../components/connection-form/fields/token.tsx    |   2 +-
 .../src/plugins/components/scope-config/index.tsx  |  23 +-
 .../src/plugins/register/gerrit/assets/icon.svg    |  19 +
 config-ui/src/plugins/register/gerrit/config.tsx   |  57 ++
 .../register/gerrit/index.ts}                      |  12 +-
 .../register/github/connection-fields/token.tsx    |   2 +-
 config-ui/src/plugins/register/index.ts            |   2 +
 .../register/jira/connection-fields/auth.tsx       |  11 +-
 .../register/webhook/components/create-dialog.tsx  |  20 +-
 .../plugins/register/webhook/components/utils.ts   |  56 ++
 .../register/webhook/components/view-dialog.tsx    |  30 +-
 .../routes/blueprint/connection-detail/index.tsx   |   2 +-
 config-ui/src/routes/connection/connection.tsx     |   6 +-
 .../src/routes/project/detail/settings-panel.tsx   | 110 +++-
 config-ui/src/types/project.ts                     |   2 +-
 grafana/dashboards/EngineeringOverview.json        |   4 +-
 176 files changed, 5976 insertions(+), 953 deletions(-)

diff --cc backend/helpers/pluginhelper/api/ds_model_api_helper.go
index 50134b3a2,3e35a7c5d..229b6ea7e
--- a/backend/helpers/pluginhelper/api/ds_model_api_helper.go
+++ b/backend/helpers/pluginhelper/api/ds_model_api_helper.go
@@@ -64,9 -63,9 +64,9 @@@ func NewAnyModelApiHelper
        return modelApiHelper
  }
  
 -func (self *ModelApiHelper[M]) Post(input *plugin.ApiResourceInput) 
(*plugin.ApiResourceOutput, errors.Error) {
 -      model := new(M)
 +func (modelApi *AnyModelApiHelper) Post(input *plugin.ApiResourceInput) 
(*plugin.ApiResourceOutput, errors.Error) {
 +      model := modelApi.New()
-       err := utils.DecodeMapStruct(input.Body, model, false)
+       err := DecodeMapStruct(input.Body, model, false)
        if err != nil {
                return nil, err
        }
@@@ -149,9 -145,9 +149,9 @@@ func (modelApi *AnyModelApiHelper) Patc
                        return nil, err
                }
        } else {
-               err = utils.DecodeMapStruct(input.Body, model, zeroFields)
+               err = DecodeMapStruct(input.Body, model, zeroFields)
                if err != nil {
 -                      return nil, errors.BadInput.Wrap(err, 
fmt.Sprintf("faled to patch %s", self.modelName))
 +                      return nil, errors.BadInput.Wrap(err, 
fmt.Sprintf("faled to patch %s", modelApi.modelName))
                }
        }
        return model, nil
@@@ -194,11 -190,11 +194,11 @@@ func (modelApi *AnyModelApiHelper) GetA
        }, err
  }
  
 -func (self *ModelApiHelper[M]) PutMultipleCb(input *plugin.ApiResourceInput, 
beforeSave func(*M) errors.Error) (*plugin.ApiResourceOutput, errors.Error) {
 +func (modelApi *AnyModelApiHelper) PutMultipleCb(input 
*plugin.ApiResourceInput, beforeSave func(any) errors.Error) 
(*plugin.ApiResourceOutput, errors.Error) {
        var req struct {
 -              Data []*M `json:"data"`
 +              Data []any `json:"data"`
        }
-       err := utils.DecodeMapStruct(input.Body, &req, false)
+       err := DecodeMapStruct(input.Body, &req, false)
        if err != nil {
                return nil, err
        }

Reply via email to