Skip to content

[WIP] "Address feedback: Add strongly typed interfaces for output configuration"#1009

Merged
pelikhan merged 2 commits intocollect_output_tsfrom
copilot/stack-pr-1008
Sep 25, 2025
Merged

[WIP] "Address feedback: Add strongly typed interfaces for output configuration"#1009
pelikhan merged 2 commits intocollect_output_tsfrom
copilot/stack-pr-1008

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Sep 25, 2025

  • Analyze existing SafeOutputConfig structure and usage
  • Identify all safe output configuration types from Go code
  • Create strongly typed interfaces extending SafeOutputConfig for all message types:
    • CreateIssueConfig (title-prefix, labels, max, github-token)
    • CreateDiscussionConfig (title-prefix, category-id, max, github-token)
    • AddCommentConfig (max, target, github-token)
    • CreatePullRequestConfig (title-prefix, labels, draft, max, if-no-changes, github-token)
    • CreatePullRequestReviewCommentConfig (max, side, github-token)
    • CreateCodeScanningAlertConfig (max, driver, github-token)
    • AddLabelsConfig (allowed, max, github-token)
    • UpdateIssueConfig (status, target, title, body, max, github-token)
    • PushToPullRequestBranchConfig (target, if-no-changes, github-token)
    • UploadAssetConfig (branch, max-size, allowed-exts, github-token)
    • MissingToolConfig (max, github-token)
  • Apply these types in collect_ndjson_output.ts
  • Test and validate the TypeScript compilation
  • All unit tests and JavaScript tests passing

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

- Create comprehensive type definitions extending SafeOutputConfig for all message types
- Apply proper TypeScript typing in collect_ndjson_output.ts
- Improve type safety throughout the NDJSON output processing
- All tests passing and TypeScript compilation successful

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
* Attempts to parse JSON with repair fallback
* @param {string} jsonStr - The JSON string to parse
* @returns {Object|undefined} The parsed JSON object, or undefined if parsing fails
* @returns {any|undefined} The parsed JSON object, or undefined if parsing fails
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot use unknown

@pelikhan pelikhan marked this pull request as ready for review September 25, 2025 17:57
@pelikhan pelikhan merged commit f8cfe40 into collect_output_ts Sep 25, 2025
1 check failed
@pelikhan pelikhan deleted the copilot/stack-pr-1008 branch September 25, 2025 17:57
Copilot AI requested a review from pelikhan September 25, 2025 17:58
pelikhan added a commit that referenced this pull request Sep 25, 2025
* feat: Implement safe output collection and validation for GitHub Actions

- Added a new script to sanitize and validate output items for GitHub Actions.
- Introduced functions for sanitizing content, validating JSON, and handling various output types.
- Implemented error handling and logging for invalid inputs.
- Configured maximum allowed counts for different output types.
- Enhanced security by neutralizing mentions, filtering URLs, and truncating excessive content.
- Stored validated output in a temporary JSON file for further processing.

* feat: Enhance NDJSON output processing and validation

- Updated `collect_ndjson_output.ts` to include type definitions for SafeOutputItem and SafeOutputConfigs.
- Improved type safety by specifying types for function parameters and variables.
- Refactored error handling to ensure errors are only pushed to the errors array if they exist.
- Added type definitions for safe outputs configuration in a new file `safe-outputs-config.d.ts`.
- Updated `create_discussion.js` and `create_issue.js` to improve readability and maintainability by restructuring code and enhancing error handling.
- Added support for discussion categories and improved logging for created discussions and issues.
- Updated `tsconfig.json` to include `collect_ndjson_output.ts` for TypeScript compilation.

* [WIP] "Address feedback: Add strongly typed interfaces for output configuration" (#1009)

* Migrate collect output to TypeScript with SafeJobConfig validation (#1010)

* Initial plan

* Add SafeJobConfig interface types and schema-based validation to collect_ndjson_output.ts

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

* [WIP] Address feedback on TypeScript migration for collect output (#1011)

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants