Comments (1)
Hey there, @usharerose! I'm here to assist you with any bugs, questions, or contributions you have in mind. Let me know how I can help while we wait for a human maintainer.
To ensure that the GitLab plugin normalizes account-related ID values for the Convert MR Assignees
and Convert MR Reviewers
subtasks in the Domain Layer data, the code should use the didgen.NewDomainIdGenerator
function. This function generates domain-specific IDs for the merge requests, which are then used to create normalized PullRequestAssignee
and PullRequestReviewer
objects.
Here is the relevant code snippet that demonstrates this normalization process for both assignees and reviewers:
mrIdGen := didgen.NewDomainIdGenerator(&models.GitlabMergeRequest{})
converter, err := helper.NewDataConverter(helper.DataConverterArgs{
RawDataSubTaskArgs: *rawDataSubTaskArgs,
InputRowType: reflect.TypeOf(models.GitlabAssignee{}),
Input: cursor,
Convert: func(inputRow interface{}) ([]interface{}, errors.Error) {
mrAssignee := inputRow.(*models.GitlabAssignee)
domainPrAssigne := &code.PullRequestAssignee{
PullRequestId: mrIdGen.Generate(data.Options.ConnectionId, mrAssignee.MergeRequestId),
AssigneeId: mrAssignee.AssigneeId,
Name: mrAssignee.Name,
UserName: mrAssignee.Username,
}
return []interface{}{
domainPrAssigne,
}, nil
},
})
converter, err := helper.NewDataConverter(helper.DataConverterArgs{
RawDataSubTaskArgs: *rawDataSubTaskArgs,
InputRowType: reflect.TypeOf(models.GitlabReviewer{}),
Input: cursor,
Convert: func(inputRow interface{}) ([]interface{}, errors.Error) {
mrReviewer := inputRow.(*models.GitlabReviewer)
domainPrReviewer := &code.PullRequestReviewer{
PullRequestId: mrIdGen.Generate(data.Options.ConnectionId, mrReviewer.MergeRequestId),
ReviewerId: mrReviewer.ReviewerId,
Name: mrReviewer.Name,
UserName: mrReviewer.Username,
}
return []interface{}{
domainPrReviewer,
}, nil
},
})
In this code:
mrIdGen := didgen.NewDomainIdGenerator(&models.GitlabMergeRequest{})
creates a new domain ID generator for GitLab merge requests.mrIdGen.Generate(data.Options.ConnectionId, mrAssignee.MergeRequestId)
andmrIdGen.Generate(data.Options.ConnectionId, mrReviewer.MergeRequestId)
generate normalized domain-specific IDs for each merge request assignee and reviewer, respectively.- The generated
PullRequestId
is then used to createPullRequestAssignee
andPullRequestReviewer
objects, ensuring that the ID values are normalized in the Domain Layer data [1][2].
Additionally, the ConvertAccounts
function in the Convert Users
subtask demonstrates a similar normalization process for GitLab accounts, ensuring consistency across different types of data [3].
To continue talking to Dosu, mention @dosu.
from incubator-devlake.
Related Issues (20)
- [Bug][Pager Duty] Not able to delete the Pager Duty connection HOT 1
- [Feature][Kanbanize] Add kanbanize support HOT 1
- [Feature][Sentry]New Data Sources HOT 1
- [Bug][SonarQube] Plugin not work with a bearer token HOT 5
- [Bug][Framework] Devlake tasks table began_at field not correct HOT 1
- [Bug][Cronjobs] Devlake engine does not respect cronjob schedules HOT 16
- [Question][Jira] Service Project Type Support? HOT 3
- [Bug][Module Name] Bug title HOT 1
- [Feature][opsgenie-plugin] Feature Custom URL HOT 1
- [Bug][Projects] Projects API POST endpoint does not create blueprint connections HOT 7
- [Bug][CircleCI] It is possible to PUT a scope with an empty Id field HOT 1
- [Bug][Blueprints] Duplicate CircleCI scopes in same connection allowed HOT 2
- [Bug][Devlake] the devlake pipeline is partially success even after modifying the mysql with the utf8mb4 character and utf8mb4_bin collation HOT 4
- [Bug][Devlake][GitHub] GitHub app connection data source usability issues HOT 4
- [Bug][DORA] Change failure rate regression HOT 4
- [Doc][Developer Docs] Developer docs assume that users use git - they should also talk about source releases HOT 2
- [Refactor][Time Range] Allow Sync policy Time Range to be set objectively HOT 2
- [Question][GitHub] GitOps-like repos belonging to multiple projects. HOT 2
- Axios Error 504 HOT 3
- [Bug][Webhook] Can't associate an existing webhook with a project HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from incubator-devlake.