grim/youtrack-import

c3d30cb6d4ea
Grab the distinct version and milestone fields from tickets as well
package trac
import (
"fmt"
"keep.imfreedom.org/grim/youtrack-import/youtrack"
)
func createProject(projectID string, e *environment, importUsersFile, unknownUser string) (*youtrack.Project, error) {
users, err := e.loadUsers(importUsersFile)
if err != nil {
return nil, err
}
fmt.Printf("loaded %d users\n", len(users))
ytVersions, err := e.loadVersions()
if err != nil {
return nil, err
}
fmt.Printf("loaded %d versions\n", len(ytVersions))
ytSubsystems, err := e.loadComponents(users, unknownUser)
if err != nil {
return nil, err
}
fmt.Printf("loaded %d subsystems\n", len(ytSubsystems))
ytIssues, err := e.loadTickets(projectID, users, unknownUser)
if err != nil {
return nil, err
}
fmt.Printf("loaded %d issues\n", len(ytIssues))
// build a new slice of users that only includes the ones we're importing.
sliceUsers := make([]*youtrack.User, len(users))
idx := 0
for _, user := range users {
sliceUsers[idx] = user
idx++
}
project := &youtrack.Project{
Issues: ytIssues,
Users: sliceUsers,
Versions: ytVersions,
Subsystems: ytSubsystems,
}
return project, nil
}