likyh opened a new pull request, #2644:
URL: https://github.com/apache/incubator-devlake/pull/2644
# Summary
add before_action and after_action for the blueprint
### Does this close any open issues?
close #2502
### Screenshots
```bash
curl -X POST -H 'host:4000/api/blueprints -d '{"name":"MY
BLUEPRINT","cronConfig":"0 0 * *
*","plan":[[]],"settings":{"version":"1.0.0","before_plan":[[{"plugin":"before","options":{"connectionId":1},"subtasks":["collectApiJobs"]}]],"after_plan":[[{"plugin":"after1.1","options":{"connectionId":1},"subtasks":["extractApiJobs"]},{"plugin":"after1.2","options":{"connectionId":1},"subtasks":["extractApiJobs"]}],[{"plugin":"after2.2","options":{"connectionId":1},"subtasks":["extractApiJobs"]}]],"connections":[{"plugin":"jira","connectionId":1,"scope":[{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirementTags":[]},"options":{"boardId":80},"entities":["TICKET","CROSS"]}]},{"plugin":"jira","connectionId":2,"scope":[{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirementTags":[]},"options":{"boardId
":79},"entities":["TICKET","CROSS"]},{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirementTags":[]},"options":{"boardId":8},"entities":["TICKET","CROSS"]}]},{"plugin":"github","connectionId":1,"scope":[{"transformation":{"prType":"","prComponent":"","issueSeverity":"","issueComponent":"","issuePriority":"","issueTypeRequirement":"","issueTypeBug":"","issueTypeIncident":"","refdiff":null},"options":{"owner":"apache","repo":"incubator-devlake"},"entities":["CODE","TICKET","CODEREVIEW","CROSS"]}]}]},"enable":true,"mode":"NORMAL","isManual":true}'
{"name":"MY
BLUEPRINT","mode":"NORMAL","plan":[[{"plugin":"before","subtasks":["collectApiJobs"],"options":{"connectionId":1}}],[{"plugin":"jira","subtasks":["collectStatus","extractStatus","collectProjects","extractProjects","collectBoard","extractBoard","collectIssueTypes","extractIssueType","collectIssues","extractIssues","collectIssueChangelogs","extractIssueChangelogs","collectAccounts","collectWorklogs","extractWorklogs","collectRemotelinks","extractRemotelinks","collectSprints","extractSprints","convertBoard","convertIssues","convertWorklogs","convertIssueChangelogs","convertSprints","convertSprintIssues","convertIssueCommits","extractAccounts","convertAccounts","collectEpics","extractEpics"],"options":{"boardId":80,"connectionId":1,"transformationRules":{"epicKeyField":"","storyPointField":"","remotelinkCommitShaPattern":"","typeMappings":{}}}},{"plugin":"jira","subtasks":["collectStatus","extractStatus","collectProjects","extractProjects","collectBoard","extractBoard","co
llectIssueTypes","extractIssueType","collectIssues","extractIssues","collectIssueChangelogs","extractIssueChangelogs","collectAccounts","collectWorklogs","extractWorklogs","collectRemotelinks","extractRemotelinks","collectSprints","extractSprints","convertBoard","convertIssues","convertWorklogs","convertIssueChangelogs","convertSprints","convertSprintIssues","convertIssueCommits","extractAccounts","convertAccounts","collectEpics","extractEpics"],"options":{"boardId":79,"connectionId":2,"transformationRules":{"epicKeyField":"","storyPointField":"","remotelinkCommitShaPattern":"","typeMappings":{}}}},{"plugin":"github","subtasks":["collectApiIssues","extractApiIssues","collectApiPullRequests","extractApiPullRequests","collectApiComments","extractApiComments","collectApiEvents","extractApiEvents","collectApiPullRequestCommits","extractApiPullRequestCommits","collectApiPullRequestReviews","extractApiPullRequestReviews","CollectApiPrReviewCommentsMeta","extractApiPrReviewComments","colle
ctApiMilestones","extractMilestones","collectAccounts","extractAccounts","collectAccountOrg","ExtractAccountOrg","enrichPullRequestIssues","convertRepo","convertIssues","convertIssueLabels","convertPullRequestCommits","convertPullRequests","convertPullRequestReviews","convertPullRequestLabels","convertPullRequestIssues","convertIssueComments","convertPullRequestComments","convertMilestones","convertAccounts"],"options":{"connectionId":1,"owner":"apache","repo":"incubator-devlake","transformationRules":{"issueComponent":"","issuePriority":"","issueSeverity":"","issueTypeBug":"","issueTypeIncident":"","issueTypeRequirement":"","prComponent":"","prType":"","refdiff":null}}},{"plugin":"gitextractor","subtasks":null,"options":{"repoId":"github:GithubRepo:1:384111310","url":"https://git:[email protected]/apache/incubator-devlake.git"}}],[{"plugin":"jira","subtasks":["collectStatus","extractStatus","collectProjects","extractProjects","collectBoard","extrac
tBoard","collectIssueTypes","extractIssueType","collectIssues","extractIssues","collectIssueChangelogs","extractIssueChangelogs","collectAccounts","collectWorklogs","extractWorklogs","collectRemotelinks","extractRemotelinks","collectSprints","extractSprints","convertBoard","convertIssues","convertWorklogs","convertIssueChangelogs","convertSprints","convertSprintIssues","convertIssueCommits","extractAccounts","convertAccounts","collectEpics","extractEpics"],"options":{"boardId":8,"connectionId":2,"transformationRules":{"epicKeyField":"","storyPointField":"","remotelinkCommitShaPattern":"","typeMappings":{}}}}],[{"plugin":"after1.1","subtasks":["extractApiJobs"],"options":{"connectionId":1}},{"plugin":"after1.2","subtasks":["extractApiJobs"],"options":{"connectionId":1}}],[{"plugin":"after2.2","subtasks":["extractApiJobs"],"options":{"connectionId":1}}]],"enable":true,"cronConfig":"0
0 * *
*","isManual":true,"settings":{"version":"1.0.0","before_plan":[[{"plugin":"before","options":{"
connectionId":1},"subtasks":["collectApiJobs"]}]],"after_plan":[[{"plugin":"after1.1","options":{"connectionId":1},"subtasks":["extractApiJobs"]},{"plugin":"after1.2","options":{"connectionId":1},"subtasks":["extractApiJobs"]}],[{"plugin":"after2.2","options":{"connectionId":1},"subtasks":["extractApiJobs"]}]],"connections":[{"plugin":"jira","connectionId":1,"scope":[{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirementTags":[]},"options":{"boardId":80},"entities":["TICKET","CROSS"]}]},{"plugin":"jira","connectionId":2,"scope":[{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirementTags":[]},"options":{"boardId":79},"entities":["TICKET","CROSS"]},{"transformation":{"epicKeyField":"","typeMappings":{},"storyPointField":"","remotelinkCommitShaPattern":"","bugTags":[],"incidentTags":[],"requirem
entTags":[]},"options":{"boardId":8},"entities":["TICKET","CROSS"]}]},{"plugin":"github","connectionId":1,"scope":[{"transformation":{"prType":"","prComponent":"","issueSeverity":"","issueComponent":"","issuePriority":"","issueTypeRequirement":"","issueTypeBug":"","issueTypeIncident":"","refdiff":null},"options":{"owner":"apache","repo":"incubator-devlake"},"entities":["CODE","TICKET","CODEREVIEW","CROSS"]}]}]},"id":6,"createdAt":"2022-08-01T09:33:03.990969+08:00","updatedAt":"2022-08-01T09:33:03.990969+08:00"}
```
Request:

Response:

--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]