MCPcopy Index your code
hub / github.com/github/github-mcp-server / issueFieldsFromNodes

Function issueFieldsFromNodes

pkg/github/issue_fields.go:202–260  ·  view source on GitHub ↗

issueFieldsFromNodes converts GraphQL issue field union nodes into IssueField values. Read from the fragment matching __typename; the other fragments are zero-valued.

(nodes []issueFieldNode)

Source from the content-addressed store, hash-verified

200// issueFieldsFromNodes converts GraphQL issue field union nodes into IssueField values.
201// Read from the fragment matching __typename; the other fragments are zero-valued.
202func issueFieldsFromNodes(nodes []issueFieldNode) []IssueField {
203 fields := make([]IssueField, 0, len(nodes))
204 for _, node := range nodes {
205 var f IssueField
206 switch string(node.TypeName) {
207 case "IssueFieldSingleSelect":
208 opts := make([]IssueSingleSelectFieldOption, 0, len(node.IssueFieldSingleSelect.Options))
209 for _, o := range node.IssueFieldSingleSelect.Options {
210 opts = append(opts, IssueSingleSelectFieldOption{
211 ID: fmt.Sprintf("%v", o.ID),
212 Name: string(o.Name),
213 Description: string(o.Description),
214 Color: string(o.Color),
215 Priority: o.Priority,
216 })
217 }
218 f = IssueField{
219 ID: fmt.Sprintf("%v", node.IssueFieldSingleSelect.ID),
220 DatabaseID: parseFullDatabaseID(string(node.IssueFieldSingleSelect.FullDatabaseID)),
221 Name: string(node.IssueFieldSingleSelect.Name),
222 Description: string(node.IssueFieldSingleSelect.Description),
223 DataType: string(node.IssueFieldSingleSelect.DataType),
224 Visibility: string(node.IssueFieldSingleSelect.Visibility),
225 Options: opts,
226 }
227 case "IssueFieldText":
228 f = IssueField{
229 ID: fmt.Sprintf("%v", node.IssueFieldText.ID),
230 DatabaseID: parseFullDatabaseID(string(node.IssueFieldText.FullDatabaseID)),
231 Name: string(node.IssueFieldText.Name),
232 Description: string(node.IssueFieldText.Description),
233 DataType: string(node.IssueFieldText.DataType),
234 Visibility: string(node.IssueFieldText.Visibility),
235 }
236 case "IssueFieldNumber":
237 f = IssueField{
238 ID: fmt.Sprintf("%v", node.IssueFieldNumber.ID),
239 DatabaseID: parseFullDatabaseID(string(node.IssueFieldNumber.FullDatabaseID)),
240 Name: string(node.IssueFieldNumber.Name),
241 Description: string(node.IssueFieldNumber.Description),
242 DataType: string(node.IssueFieldNumber.DataType),
243 Visibility: string(node.IssueFieldNumber.Visibility),
244 }
245 case "IssueFieldDate":
246 f = IssueField{
247 ID: fmt.Sprintf("%v", node.IssueFieldDate.ID),
248 DatabaseID: parseFullDatabaseID(string(node.IssueFieldDate.FullDatabaseID)),
249 Name: string(node.IssueFieldDate.Name),
250 Description: string(node.IssueFieldDate.Description),
251 DataType: string(node.IssueFieldDate.DataType),
252 Visibility: string(node.IssueFieldDate.Visibility),
253 }
254 default:
255 continue
256 }
257 fields = append(fields, f)
258 }
259 return fields

Callers 1

fetchIssueFieldsFunction · 0.85

Calls 1

parseFullDatabaseIDFunction · 0.85

Tested by

no test coverage detected