Skip to content

Migrate to REUSE.toml and update GitHub Actions#188

Merged
dd-jy merged 1 commit into
mainfrom
github_t
Jul 7, 2026
Merged

Migrate to REUSE.toml and update GitHub Actions#188
dd-jy merged 1 commit into
mainfrom
github_t

Conversation

@woocheol-lge

@woocheol-lge woocheol-lge commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Docker images are now built and published for both AMD64 and ARM64 platforms.
  • Bug Fixes

    • Improved build and release workflow reliability by upgrading core automation actions.
  • Chores

    • Updated container build setup (base image and Python package installation).
    • Refreshed release automation tooling and compliance metadata (adding REUSE configuration and adjusting related templates/files).

@woocheol-lge woocheol-lge self-assigned this Jul 3, 2026
@woocheol-lge woocheol-lge added the chore [PR/Issue] Refactoring, maintenance the code label Jul 3, 2026
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates workflow action versions across build, Docker, release, and pull-request workflows, changes the Docker build to target linux/amd64 and linux/arm64, adds REUSE.toml metadata, removes .reuse/dep5, and trims the PR template.

Changes

Repository maintenance updates

Layer / File(s) Summary
Workflow action upgrades
.github/workflows/build-daily.yml, .github/workflows/docker-build-push.yml, .github/workflows/publish-release.yml, .github/workflows/pull-request.yml, .github/workflows/release-drafter-config.yml
actions/checkout is bumped across workflows, Docker setup/login/build actions are upgraded, fsfe/reuse-action moves to v6, release-drafter moves to v7, and the Docker build now targets linux/amd64 and linux/arm64.
REUSE metadata file
REUSE.toml
A new REUSE.toml file defines SPDX package metadata and file-pattern annotations.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: soimkim

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main changes: adding REUSE.toml and upgrading GitHub Actions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch github_t

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (4)
.github/workflows/pull-request.yml (1)

21-21: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Checkout steps don't disable credential persistence.

Both the build and reuse jobs use actions/checkout@v7 without persist-credentials: false, per the static analysis hints.

🔒 Proposed fix
   build:
     ...
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false
   ...
   reuse:
     ...
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false

Also applies to: 40-40

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pull-request.yml at line 21, Both checkout steps in the
build and reuse jobs are missing the explicit credential-hardening setting.
Update the actions/checkout usage in the workflow to set persist-credentials to
false for each checkout invocation, using the existing checkout steps as the
place to apply it.

Source: Linters/SAST tools

.github/workflows/publish-release.yml (1)

14-14: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Checkout steps don't disable credential persistence.

Flagged by static analysis on both the update-changelog and deploy jobs' checkout steps.

Also applies to: 57-59

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/publish-release.yml at line 14, The checkout steps in the
update-changelog and deploy jobs are persisting credentials by default, which
the static analysis flags. Update the actions/checkout usage in the workflow to
disable credential persistence for those checkout steps, keeping the job
behavior the same while ensuring credentials are not stored after checkout.

Source: Linters/SAST tools

.github/workflows/docker-build-push.yml (1)

20-21: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Step name looks like an unintended typo: "Login to DockerHubFL_DEP".

Likely leftover text merged into the display name during the edit; consider renaming to something like "Login to DockerHub".

✏️ Suggested cleanup
-    - name: Login to DockerHubFL_DEP
+    - name: Login to DockerHub
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/docker-build-push.yml around lines 20 - 21, The workflow
step name in the Docker login job contains an accidental typo/leftover text
(“DockerHubFL_DEP”) and should be cleaned up. Update the display name in the
docker/login-action@v3 step to a clear, intended label such as “Login to
DockerHub” so the workflow is readable and consistent.
.github/workflows/build-daily.yml (1)

16-16: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Checkout step doesn't disable credential persistence.

Static analysis flags that this actions/checkout step doesn't set persist-credentials: false, leaving the GITHUB_TOKEN persisted in .git/config for the remainder of the job (readable by any subsequent step/dependency in this workflow).

🔒 Proposed fix
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/build-daily.yml at line 16, The workflow’s
actions/checkout step is leaving GitHub credentials persisted for later steps.
Update the checkout usage in the build-daily workflow to disable credential
persistence by setting persist-credentials to false on the actions/checkout
step, so the GITHUB_TOKEN is not stored in .git/config; keep the fix localized
to the checkout configuration in this workflow.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/docker-build-push.yml:
- Around line 26-31: The Docker multi-platform build is still pinned to an amd64
base image in the Dockerfile, which breaks the new arm64 manifest. Update the
base image declaration in Dockerfile (the FROM using python:3.11) to remove the
hardcoded --platform=linux/amd64, or change it to use $BUILDPLATFORM if this
stage is intentionally cross-building, so docker/build-push-action@v6 can
produce matching linux/amd64 and linux/arm64 images.

---

Nitpick comments:
In @.github/workflows/build-daily.yml:
- Line 16: The workflow’s actions/checkout step is leaving GitHub credentials
persisted for later steps. Update the checkout usage in the build-daily workflow
to disable credential persistence by setting persist-credentials to false on the
actions/checkout step, so the GITHUB_TOKEN is not stored in .git/config; keep
the fix localized to the checkout configuration in this workflow.

In @.github/workflows/docker-build-push.yml:
- Around line 20-21: The workflow step name in the Docker login job contains an
accidental typo/leftover text (“DockerHubFL_DEP”) and should be cleaned up.
Update the display name in the docker/login-action@v3 step to a clear, intended
label such as “Login to DockerHub” so the workflow is readable and consistent.

In @.github/workflows/publish-release.yml:
- Line 14: The checkout steps in the update-changelog and deploy jobs are
persisting credentials by default, which the static analysis flags. Update the
actions/checkout usage in the workflow to disable credential persistence for
those checkout steps, keeping the job behavior the same while ensuring
credentials are not stored after checkout.

In @.github/workflows/pull-request.yml:
- Line 21: Both checkout steps in the build and reuse jobs are missing the
explicit credential-hardening setting. Update the actions/checkout usage in the
workflow to set persist-credentials to false for each checkout invocation, using
the existing checkout steps as the place to apply it.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ec22b085-5efd-4341-9b41-6e5f183657e0

📥 Commits

Reviewing files that changed from the base of the PR and between b7c561d and 270981b.

📒 Files selected for processing (8)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/build-daily.yml
  • .github/workflows/docker-build-push.yml
  • .github/workflows/publish-release.yml
  • .github/workflows/pull-request.yml
  • .github/workflows/release-drafter-config.yml
  • .reuse/dep5
  • REUSE.toml
💤 Files with no reviewable changes (2)
  • .reuse/dep5
  • .github/PULL_REQUEST_TEMPLATE.md

Comment thread .github/workflows/docker-build-push.yml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (4)
.github/workflows/pull-request.yml (1)

21-21: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Harden checkout steps with persist-credentials: false.

Both actions/checkout@v7 steps leave the default persist-credentials: true, so the GitHub token remains in the local git config for the rest of the job (flagged by zizmor as artipacked). Neither job appears to need to push commits, so disabling credential persistence reduces the blast radius if a later step is compromised.

🔒 Suggested fix
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false
     - name: Set up Python ${{ matrix.python-version }}
   reuse:
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false
     - name: REUSE Compliance Check
       uses: fsfe/reuse-action@v6

Also applies to: 40-42

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pull-request.yml at line 21, The checkout steps use
actions/checkout@v7 with default credential persistence, leaving the GitHub
token in git config for the rest of the job. Update both checkout invocations in
the workflow to disable credential persistence by setting persist-credentials to
false on each actions/checkout step, since the jobs do not need to push changes.

Source: Linters/SAST tools

.github/workflows/publish-release.yml (2)

14-16: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Checkout persists credentials before commit/push steps — consider explicit token scoping.

This job checks out with the default GITHUB_TOKEN persisted, then commits and pushes via ad-m/github-push-action using secrets.TOKEN instead. Since the persisted checkout credentials aren't actually used for the push (a separate secret is), setting persist-credentials: false here would avoid leaving an unused, unnecessarily broad credential in the git config for the job's duration.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/publish-release.yml around lines 14 - 16, The checkout
step is persisting the default GitHub credentials even though the push uses a
separate token, so the job keeps an unnecessary credential in git config. Update
the actions/checkout setup in the publish-release workflow to disable persisted
credentials, and keep the push handled by the existing ad-m/github-push-action
token configuration.

Source: Linters/SAST tools


57-61: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Version bumps confirmed valid.

actions/checkout@v7 and actions/setup-python@v6 are both current, real releases. The deploy job only reads the repo and builds/publishes to PyPI, so persist-credentials: false could similarly be added here since no push-back step needs the token, but this is optional given the job's limited blast radius.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/publish-release.yml around lines 57 - 61, The checkout
setup in the deploy job is already using valid action versions; the only
optional hardening here is to disable persisted Git credentials since this job
only reads the repo and publishes to PyPI. Update the existing actions/checkout
step in the publish-release workflow to set persist-credentials to false,
keeping the rest of the release flow unchanged.

Source: Linters/SAST tools

.github/workflows/build-daily.yml (1)

16-16: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Version bump confirmed valid; consider persist-credentials: false.

actions/checkout@v7 is a real, current release. Since this job only reads the repo to run tests (no push-back step), setting persist-credentials: false on checkout would follow the principle of least privilege flagged by zizmor, though the risk here is low since no other step in this job could leak the token.

🔒️ Optional hardening
     steps:
-    - uses: actions/checkout@v7
+    - uses: actions/checkout@v7
+      with:
+        persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/build-daily.yml at line 16, The build-daily workflow
currently checks out the repository with default credentials, which is
unnecessary for a read-only test job. Update the checkout step using
actions/checkout/v7 to set persist-credentials to false so the token is not
stored after checkout. Keep the change scoped to the existing checkout
configuration in the workflow job.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/build-daily.yml:
- Line 16: The build-daily workflow currently checks out the repository with
default credentials, which is unnecessary for a read-only test job. Update the
checkout step using actions/checkout/v7 to set persist-credentials to false so
the token is not stored after checkout. Keep the change scoped to the existing
checkout configuration in the workflow job.

In @.github/workflows/publish-release.yml:
- Around line 14-16: The checkout step is persisting the default GitHub
credentials even though the push uses a separate token, so the job keeps an
unnecessary credential in git config. Update the actions/checkout setup in the
publish-release workflow to disable persisted credentials, and keep the push
handled by the existing ad-m/github-push-action token configuration.
- Around line 57-61: The checkout setup in the deploy job is already using valid
action versions; the only optional hardening here is to disable persisted Git
credentials since this job only reads the repo and publishes to PyPI. Update the
existing actions/checkout step in the publish-release workflow to set
persist-credentials to false, keeping the rest of the release flow unchanged.

In @.github/workflows/pull-request.yml:
- Line 21: The checkout steps use actions/checkout@v7 with default credential
persistence, leaving the GitHub token in git config for the rest of the job.
Update both checkout invocations in the workflow to disable credential
persistence by setting persist-credentials to false on each actions/checkout
step, since the jobs do not need to push changes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 901931f4-417d-497f-9271-68c57e3f30e1

📥 Commits

Reviewing files that changed from the base of the PR and between 270981b and 58805c5.

📒 Files selected for processing (8)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/build-daily.yml
  • .github/workflows/docker-build-push.yml
  • .github/workflows/publish-release.yml
  • .github/workflows/pull-request.yml
  • .github/workflows/release-drafter-config.yml
  • .reuse/dep5
  • REUSE.toml
💤 Files with no reviewable changes (2)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .reuse/dep5
✅ Files skipped from review due to trivial changes (1)
  • REUSE.toml
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/release-drafter-config.yml
  • .github/workflows/docker-build-push.yml

Comment thread Dockerfile Outdated
# Copyright (c) 2022 LG Electronics Inc.
# SPDX-License-Identifier: Apache-2.0
FROM --platform=linux/amd64 python:3.11
FROM python:3.11

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@woocheol-lge
이건 수정한 사유가 무엇인가요? 수정해도 정상 동작하는지 확인이 필요해보입니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

docker-build-push.yml 파일에서 platforms: linux/arm64 을 추가하였습니다.
이로 인해 Dockerfile 빌드 시 플렛폼 선언을 제거하였습니다.

Signed-off-by: woocheol <jayden6659@gmail.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
Dockerfile (1)

12-12: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Explicit python3 install may be redundant.

python:3.11-bookworm already bundles Python 3.11, so adding python3 to apt-get install is likely a no-op unless it pulls in a distro-managed interpreter intentionally for consistency with python3-pip/python3-dev. Not harmful, just worth confirming intent.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Dockerfile` at line 12, The apt install list in the Dockerfile redundantly
includes python3 even though the base image already provides Python 3.11;
confirm whether the intent is to rely on the image’s interpreter or on
distro-managed packages. If no separate distro interpreter is needed, remove
python3 from the install set and keep the related packages like python3-pip and
python3-dev aligned with that choice.
.github/workflows/publish-release.yml (1)

14-16: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Consider persist-credentials: false on checkout steps that don't need to push.

Both jobs handle secrets (PYPI credentials, PAT token) further down the pipeline. actions/checkout persists the token/PAT in the local git config by default; only the update-changelog job actually needs to push, so the deploy job's checkout (lines 57-61) doesn't need persisted credentials.

🔒 Suggested hardening for the deploy job checkout
     - uses: actions/checkout@v7
       with:
         ref: main
+        persist-credentials: false

Also applies to: 57-61

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/publish-release.yml around lines 14 - 16, The deploy job’s
checkout still persists git credentials by default even though it does not push,
so harden the workflow by setting persist-credentials to false on the
actions/checkout step in the deploy job. Keep the update-changelog job checkout
unchanged if it needs push access; use the checkout steps in publish-release and
the deploy job to verify the correct behavior.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/publish-release.yml:
- Around line 14-16: The deploy job’s checkout still persists git credentials by
default even though it does not push, so harden the workflow by setting
persist-credentials to false on the actions/checkout step in the deploy job.
Keep the update-changelog job checkout unchanged if it needs push access; use
the checkout steps in publish-release and the deploy job to verify the correct
behavior.

In `@Dockerfile`:
- Line 12: The apt install list in the Dockerfile redundantly includes python3
even though the base image already provides Python 3.11; confirm whether the
intent is to rely on the image’s interpreter or on distro-managed packages. If
no separate distro interpreter is needed, remove python3 from the install set
and keep the related packages like python3-pip and python3-dev aligned with that
choice.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 65ae3af0-802f-471d-a3bb-e0428c3329e5

📥 Commits

Reviewing files that changed from the base of the PR and between 58805c5 and 3dc7e9f.

📒 Files selected for processing (9)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/build-daily.yml
  • .github/workflows/docker-build-push.yml
  • .github/workflows/publish-release.yml
  • .github/workflows/pull-request.yml
  • .github/workflows/release-drafter-config.yml
  • .reuse/dep5
  • Dockerfile
  • REUSE.toml
💤 Files with no reviewable changes (2)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .reuse/dep5
✅ Files skipped from review due to trivial changes (2)
  • .github/workflows/release-drafter-config.yml
  • REUSE.toml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/docker-build-push.yml

@dd-jy
dd-jy merged commit 95de15f into main Jul 7, 2026
7 checks passed
@dd-jy
dd-jy deleted the github_t branch July 7, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore [PR/Issue] Refactoring, maintenance the code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants