in backend/plugins/jira/models/migrationscripts/20220716_add_init_tables.go [53:146]
func (script *addInitTables20220716) Up(basicRes context.BasicRes) errors.Error {
var err errors.Error
if err = basicRes.GetDal().DropTables(
// history table
"_raw_jira_api_users",
"_raw_jira_api_boards",
"_raw_jira_api_changelogs",
"_raw_jira_api_issues",
"_raw_jira_api_projects",
"_raw_jira_api_remotelinks",
"_raw_jira_api_sprints",
"_raw_jira_api_status",
"_raw_jira_api_worklogs",
"_tool_jira_accounts",
"_tool_jira_issue_type_mappings",
"_tool_jira_issue_status_mappings",
"_tool_jira_changelogs",
"_tool_jira_changelog_items",
&archived.JiraProject{},
&archived.JiraIssue{},
&archived.JiraBoard{},
&archived.JiraBoardIssue{},
&archived.JiraRemotelink{},
&archived.JiraIssueCommit{},
&archived.JiraSprint{},
&archived.JiraBoardSprint{},
&archived.JiraSprintIssue{},
&archived.JiraWorklog{},
); err != nil {
return err
}
encKey := config.GetConfig().GetString(plugin.EncodeKeyEnvStr)
if encKey == "" {
return errors.BadInput.New("jira v0.11 invalid encKey")
}
err = migrationhelper.TransformColumns(
basicRes,
script,
"_tool_jira_connections",
[]string{
"rate_limit",
"basic_auth_encoded",
},
func(old *jiraConnection20220716Before) (*jiraConnection20220716After, errors.Error) {
conn := &jiraConnection20220716After{}
conn.ID = old.ID
conn.Name = old.Name
conn.Endpoint = old.Endpoint
conn.Proxy = old.Proxy
conn.RateLimitPerHour = old.RateLimit
var auth string
if auth, err = plugin.Decrypt(encKey, old.BasicAuthEncoded); err != nil {
return nil, err
}
pk, err1 := base64.StdEncoding.DecodeString(auth)
if err1 != nil {
return nil, errors.Convert(err1)
}
originInfo := strings.Split(string(pk), ":")
if len(originInfo) == 2 {
conn.Username = originInfo[0]
conn.Password, err = plugin.Encrypt(encKey, originInfo[1])
if err != nil {
return nil, err
}
return conn, nil
}
return nil, errors.Default.New("invalid BasicAuthEncoded")
})
if err != nil {
return err
}
return migrationhelper.AutoMigrateTables(
basicRes,
&archived.JiraAccount{},
&archived.JiraBoardIssue{},
&archived.JiraBoard{},
&archived.JiraIssueChangelogItems{},
&archived.JiraIssueChangelogs{},
&archived.JiraIssueCommit{},
&archived.JiraIssueLabel{},
&archived.JiraIssue{},
&archived.JiraProject{},
&archived.JiraRemotelink{},
&archived.JiraSprint{},
&archived.JiraBoardSprint{},
&archived.JiraSprintIssue{},
&archived.JiraStatus{},
&archived.JiraWorklog{},
&archived.JiraIssueType{},
)
}