in teamcity/vcsroot.go [398:497]
func (r *vcsRootResource) readState(result client.VcsRoot) (vcsRootResourceModel, error) {
var state vcsRootResourceModel
state.Name = types.StringValue(result.Name)
state.Id = types.StringValue(*result.Id)
state.ProjectId = types.StringValue(result.Project.Id)
if result.PollingInterval != nil {
state.PollingInterval = types.Int64Value(int64(*result.PollingInterval))
}
props := make(map[string]string)
for _, p := range result.Properties.Property {
props[p.Name] = p.Value
}
state.Git = &GitPropertiesModel{
Url: types.StringValue(props["url"]),
Branch: types.StringValue(props["branch"]),
}
if val, ok := props["push_url"]; ok {
state.Git.PushUrl = types.StringValue(val)
}
if val, ok := props["teamcity:branchSpec"]; ok {
state.Git.BranchSpec = types.StringValue(val)
}
if val, ok := props["reportTagRevisions"]; ok {
v, err := strconv.ParseBool(val)
if err != nil {
return vcsRootResourceModel{}, err
}
state.Git.TagsAsBranches = types.BoolValue(v)
}
if val, ok := props["usernameStyle"]; ok {
state.Git.UsernameStyle = types.StringValue(val)
}
if val, ok := props["submoduleCheckout"]; ok {
state.Git.Submodules = types.StringValue(val)
}
if val, ok := props["userForTags"]; ok {
state.Git.UsernameForTags = types.StringValue(val)
}
if val, ok := props["authMethod"]; ok {
state.Git.AuthMethod = types.StringValue(val)
}
if val, ok := props["username"]; ok {
state.Git.Username = types.StringValue(val)
}
if val, ok := props["teamcitySshKey"]; ok {
state.Git.UploadedKey = types.StringValue(val)
}
if val, ok := props["privateKeyPath"]; ok {
state.Git.PrivateKeyPath = types.StringValue(val)
}
if val, ok := props["ignoreKnownHosts"]; ok {
v, err := strconv.ParseBool(val)
if err != nil {
return vcsRootResourceModel{}, err
}
state.Git.IgnoreKnownHosts = types.BoolValue(v)
}
if val, ok := props["serverSideAutoCrlf"]; ok {
v, err := strconv.ParseBool(val)
if err != nil {
return vcsRootResourceModel{}, err
}
state.Git.ConvertCrlf = types.BoolValue(v)
}
if val, ok := props["agentGitPath"]; ok {
state.Git.PathToGit = types.StringValue(val)
}
if val, ok := props["useAlternates"]; ok {
state.Git.CheckoutPolicy = types.StringValue(val)
}
if val, ok := props["agentCleanPolicy"]; ok {
state.Git.CleanPolicy = types.StringValue(val)
}
if val, ok := props["agentCleanFilesPolicy"]; ok {
state.Git.CleanFilesPolicy = types.StringValue(val)
}
if val, ok := props["tokenId"]; ok {
state.Git.TokenId = types.StringValue(val)
}
return state, nil
}