Skip to content

Assignments/1b - #30

Draft
vmiloserdov wants to merge 6 commits into
CMU-313:mainfrom
vmiloserdov:assignments/1b
Draft

Assignments/1b#30
vmiloserdov wants to merge 6 commits into
CMU-313:mainfrom
vmiloserdov:assignments/1b

Conversation

@vmiloserdov

@vmiloserdov vmiloserdov commented Sep 2, 2026

Copy link
Copy Markdown

P1B: Starter Task: Refactoring PR

Use this pull request template to briefly answer the questions below in one to two sentences each.
Feel free to delete this text at the top after filling out the template.

1. Issue

Link to the associated GitHub issue: #15

Full path to the refactored file: script/raw-changelog.ts

What do you think this file does?
(Your answer does not have to be 100% correct; give a reasonable, evidence‑based guess.)

What is the scope of your refactoring within that file?

This file works with the GitHub API to get the git log and commits. After getting them, it cleans some things up, like not including commits if they were reverted.

Which Qlty‑reported issue did you address?

Function with high complexity (count = 22): commits()

2. Refactoring

How did the specific issue you chose impact the codebase’s maintainability?
This issue makes the commits function way too long, such that it is hard to understand. There is one specific part that is a chore, it simply tries to calculate which abstract parts of the codebase were changed, and takes like 20 lines. It is not necessary to have this in commits; because it makes it less readable.

What changes did you make to resolve the issue?

I have created a helper function to take care of a chore problem that did not belong in the commits function. This makes the commits function more purposeful, as in it can delegate the stuff that does not belong to it to other functions.

How do your changes improve maintainability? Did you consider alternatives?

It will allow developers to more easily change the find_areas() function in case new parts get added to the codebase.

3. Validation

How did you validate that the change is correct?

I have written a new test file, /workspaces/opencode/script/raw-changelog.test.ts. This file tests the the functionality of the file did not change. Specifically, it targets the commits() function.

Attach a screenshot of the test coverage showing the lines were executed by the tests.
image
image

Attach a screenshot showing the tests that cover the change passing during CI

Attach a screenshot of qlty smells --no-snippets <full/path/to/file.ts> showing fewer reported issues after the changes.
image
This does not include the commits() function anymore.

These tests rely on the commits() function to be an export function, and that will be coming in the next commit
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.

1 participant