feat: add organization issue fields sync support#69
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the bulk org settings sync GitHub Action to support syncing organization issue fields via the GitHub REST API, including new inputs, per-org overrides, parsing/normalization, sync logic, docs, samples, and Jest coverage.
Changes:
- Added new action inputs and per-org override keys for issue-fields configuration (including optional deletion of unmanaged issue fields).
- Implemented issue-fields YAML parsing/normalization, merge-by-name behavior, comparison logic, and create/update/delete sync against
/orgs/{org}/issue-fields. - Updated documentation, sample configurations, and bumped package version (with lockfile + coverage badge updates).
Show a summary per file
| File | Description |
|---|---|
| src/index.js | Adds issue-fields config keys, parsing/normalization, merge/compare, and org sync execution logic. |
| action.yml | Introduces issue-fields-file and delete-unmanaged-issue-fields inputs. |
| README.md | Documents issue-fields syncing behavior, inputs, permissions, and per-org override semantics. |
| sample-configuration/orgs.yml | Adds sample per-org inline and file-based issue-fields configuration. |
| sample-configuration/issue-fields.yml | New standalone sample file for issue-fields definitions. |
| tests/index.test.js | Adds Jest coverage for issue-fields validation, parsing, merging, sync behavior, and run() wiring. |
| package.json | Bumps version and adds keyword for issue-fields. |
| package-lock.json | Updates lockfile version metadata to match package version bump. |
| badges/coverage.svg | Updates coverage badge after test/coverage changes. |
Copilot's findings
- Files reviewed: 7/9 changed files
- Comments generated: 1
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
📦 Draft Release CreatedA draft release v1.12.0 has been created for this PR. Next Steps
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds support for syncing organization issue fields configuration, aligned to the GitHub issue-fields REST API.
What changed
issue-fields-filedelete-unmanaged-issue-fieldsorgs.yml:issue-fieldsissue-fields-filedelete-unmanaged-issue-fieldsGET/POST/PATCH/DELETE /orgs/{org}/issue-fieldsgray|blue|green|yellow|orange|red|pink|purple)ids on PATCH when names matchdata_typechanges as incompatible in-place updatesREADME.md,sample-configuration/orgs.yml, newsample-configuration/issue-fields.yml)Rollout note
Issue fields are still gated/rolling out by organization preview. For orgs without access, the action handles
403/404as a warning and skips issue-fields sync.This PR is intentionally Draft until we can validate end-to-end on an org with issue-fields enabled.