feat: implement version 1.0 - #2
Open
puleugo wants to merge 19 commits into
Open
Conversation
* remove: remove build file * feat: add authentication configuration for GitHub Actions * feat: implement auto-increment ID management and unique entity identifier * feat: implement base GitHub action controller and runner with handler registration
… and ValueObject classes
… BlogType, BlogUrl, and Blogs classes
… PostUrl, Language, Translation, TranslationMap, and Translations classes
…XmlDeclaration classes
…, TranslationMother, and ValueObjectMother for test data generation
* feat: implement DownloadPostsController for handling post downloads * feat: implement DownloadPostsUseCase for handling post downloads * feat: implement AxiosClient, FileSystemFileClient, GithubClientImpl, and HttpRssClient for handling various client operations * feat: add GithubClient and RssClient interfaces for file upload and RSS post retrieval * feat: implement GithubFileReader, GithubFileUploader, and HttpRssSearcher for file handling and RSS post management * feat: add RssPostDto and RssResponseDto interfaces for RSS post structure * feat: add BlogParser, PostParser, and RssParser for blog and post data handling * feat: add TistoryRssParser and WordpressRssParser for RSS feed parsing * feat: add DTOs for GitHub repository content file handling * feat: add utility classes for date and string manipulation * remove: remove deprecated implemention layer classes * feat: register download posts handler on github actions * feat: add unit tests for BlogParser, PostParser, RssParser, HttpRssClient, and ChatGptClient * remove: deprecated implemention layer tests * remove: remove e2e tests * remove: remove deprecated implemention layer stubs * test: add download posts use case test * feat: add github response, rss mother * feat: add setup metadata step
* feat: implement TranslatePostsController for handling post translation * feat: add TranslatePostsUseCase and exceptions for handling translation failures * feat: implement ChatGptTranslator and TranslationGithubUploader for post translation and uploading * feat: add MarkdownParser and MetadataYamlParser for parsing markdown and YAML metadata * feat: add DTOs for function calls and tools to support translation functionality * feat: implement ChatGptClient and AiClient interface for chat functionality * feat: add ArrayUtil for range generation and refactor BpeTokenCalculator interface * remove: remove deprecated translator repository class * remove: remove deprecated github actions logger class * feat: add TranslatePostsController and use case for post translation functionality * test: add integration tests for TranslatePostsUseCase functionality * test: add unit tests for MarkdownParser and MetadataYamlParser functionality * feat: add mother classes for ChatGPT message, response, and tool DTOs * test: add integration tests for PublishPostsUseCase functionality * refactor: rename hasTokenOverflowed to hasOverTokenCount for clarity
* chore: remove TODO Comment * feat: implement PublishPostsController with error handling * feat: add PublishPostsUseCase with exception handling for unsupported platforms * feat: implement MediumUploader and QiitaUploader for posting translations * feat: implement setupBlogUploader for initializing blog platform uploaders * test: add integration tests for QiitaUploader functionality * feat: implement SitemapXmlParser for parsing blog and post URLs from XML * test: add unit tests for SitemapXmlParser functionality * feat: implement PublishPostsController and use case for posting translations * chore: remove hard coded test value Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Owner
Author
|
Sorry, I forgot to update the branch name in #6. Please refer to 'feat: implement publish posts' instead! |
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR implements version 1.0 features by consolidating domain entity responsibilities, separating post metadata from a central file into individual markdown frontmatter, and removing legacy functionalities (such as the Google Spread Sheet uploader and several blog-related modules). Key changes include:
- Removing several domain files (e.g. image-entity, github-upload-files, blogs, blog.entity, and app) to consolidate and streamline responsibilities.
- Dividing the translation and publish steps into separate methods.
- Updating project configuration (package.json, ESLint, and Biome) to support the new architecture and tooling.
Reviewed Changes
Copilot reviewed 224 out of 224 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/domain/image-entity.ts | Removed ImageEntity responsible for forming image filenames and content encoding. |
| src/domain/github-upload-files.ts | Removed builder for constructing GitHub upload file objects. |
| src/domain/blogs.ts | Removed blog management module including publisher validation logic. |
| src/domain/blog.entity.ts | Removed blog entity with associated error messages and merging logic. |
| src/app.ts | Removed legacy application initializer methods. |
| package.json | Updated test, lint, format commands and dependency versions. |
| eslint.config.mjs | Removed legacy ESLint configuration. |
| (Other core and config files) | Introduced new and consolidated core modules and configurations. |
Comments suppressed due to low confidence (6)
src/domain/image-entity.ts:1
- The entire ImageEntity is removed; please ensure that its responsibilities (such as generating filenames and handling base64 encoding) are now adequately addressed in the new domain logic.
import {randomUUID} from "node:crypto";
src/domain/github-upload-files.ts:1
- The GithubUploadFileBuilder and its related functionalities are removed; confirm that the GitHub upload process is now correctly refactored and integrated elsewhere.
import {Posts} from "./posts";
src/domain/blogs.ts:27
- [nitpick] The error message contains non-English text; if the project targets an international audience, consider using consistent localization for user-facing messages.
throw new Error(`Publisher 블로그는 1개만 존재해야합니다. ${blogs.map(blog => blog.title).join(',')} 중 하나만 선택해주세요.`);
src/app.ts:1
- The removal of the app module indicates a shift in application initialization; verify that the new architecture handles the orchestration of functionality appropriately.
import {spreadSheetUploader, SpreadSheetUploaderInterface} from "./implemention/spread-sheet.uploader";
eslint.config.mjs:1
- The removal of the ESLint configuration file requires confirmation that linting is now fully managed by the updated configuration (e.g. via Biome) to maintain code quality.
import globals from "globals";
package.json:8
- The updated test script now injects environment variables; please document this change so contributors are aware of the new testing setup and required .env configurations.
"test": "NODE_ENV=test dotenv -e .env jest",
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
This PR implements version 1.0 features and fixes minor errors.
It supports:
Domain Entity responsibilitiesblogs.lastPublishedAtmarkdown post's frontmatterGoogle Spread Sheetdata upload feature