Summary
sync-issue-fields currently copies an issue form's type and scope dropdown answers onto the repo-level issue type and the OvertureMaps org-level Scope field (ID 44814929). The org has since added a Skillset field (ID 45229885, "What is the primary skill needed to complete this task?", options: data analysis, data science, dev ops, engineering). Issues opened from a form with a Skillset dropdown still require manual triage to set it.
Proposed change
Extend the action so a skillset form answer is written to the org-level Skillset field with the same semantics already used for Scope:
- New inputs:
skillset-form-field (default skillset) and skillset-org-field-id (default 45229885).
- Include
Skillset in the existing single PATCH /repos/{owner}/{repo}/issues/{issue_number} call — issue_field_values already accepts multiple {field_id, value} entries, so no extra API round trip.
- Preserve existing behavior: skip if the field is already set (don't clobber manual triage), skip entirely if no recognized form answers are present, and keep the
try/catch warning for 422s from unexpected values.
- Update the "Determine desired updates" step so the
skillset answer short-circuits alongside type/scope, leaving the no-op path unchanged for issues not created from a matching template.
Open question
The current design hardcodes one org field via scope-org-field-id. Adding a second field this way works but doesn't scale. An alternative is a single org-fields input taking a JSON/YAML map of form field id → org field id, which would make future fields config-only. Worth deciding before implementing.
Acceptance criteria
Summary
sync-issue-fieldscurrently copies an issue form'stypeandscopedropdown answers onto the repo-level issue type and the OvertureMaps org-levelScopefield (ID44814929). The org has since added aSkillsetfield (ID45229885, "What is the primary skill needed to complete this task?", options:data analysis,data science,dev ops,engineering). Issues opened from a form with a Skillset dropdown still require manual triage to set it.Proposed change
Extend the action so a
skillsetform answer is written to the org-levelSkillsetfield with the same semantics already used forScope:skillset-form-field(defaultskillset) andskillset-org-field-id(default45229885).Skillsetin the existing singlePATCH /repos/{owner}/{repo}/issues/{issue_number}call —issue_field_valuesalready accepts multiple{field_id, value}entries, so no extra API round trip.try/catchwarning for422s from unexpected values.skillsetanswer short-circuits alongsidetype/scope, leaving the no-op path unchanged for issues not created from a matching template.Open question
The current design hardcodes one org field via
scope-org-field-id. Adding a second field this way works but doesn't scale. An alternative is a singleorg-fieldsinput taking a JSON/YAML map of form field id → org field id, which would make future fields config-only. Worth deciding before implementing.Acceptance criteria
type,scope, andskillsetanswers has all three set automatically.Skillsetvalue already set before the action runs is not overwritten.skillsetanswer behave exactly as they do today.README.mddocuments the new input(s), defaults, and how to find the field ID.