Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default owner for all files
* @keito4
30 changes: 15 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ jobs:
workflows: ${{ steps.filter.outputs.workflows }}
dependencies: ${{ steps.filter.outputs.dependencies }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: dorny/paths-filter@v4
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4
id: filter
with:
filters: |
Expand Down Expand Up @@ -86,9 +86,9 @@ jobs:
needs: changes
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.scripts == 'true' || needs.changes.outputs.dependencies == 'true'
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: actions/setup-node@v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: '.node-version'
cache: 'npm'
Expand Down Expand Up @@ -119,9 +119,9 @@ jobs:
actions: write
checks: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: actions/setup-node@v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: '.node-version'
cache: 'npm'
Expand All @@ -136,15 +136,15 @@ jobs:
JEST_JUNIT_OUTPUT_NAME: junit.xml

- name: Upload test results
uses: actions/upload-artifact@v7.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
name: test-results
path: ./reports/junit.xml
retention-days: 30

- name: Test Report
uses: dorny/test-reporter@v2
uses: dorny/test-reporter@df6247429542221bc30d46a036ee47af1102c451 # v2
if: always()
continue-on-error: true
with:
Expand All @@ -154,7 +154,7 @@ jobs:
fail-on-error: false

- name: Upload coverage reports
uses: codecov/codecov-action@v5.5.2
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
if: always()
with:
files: ./coverage/lcov.info
Expand All @@ -171,9 +171,9 @@ jobs:
contents: read
actions: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: actions/setup-node@v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: '.node-version'
cache: 'npm'
Expand All @@ -190,7 +190,7 @@ jobs:
bats test/integration/*.bats --formatter tap > reports/bats-results.tap

- name: Upload integration test results
uses: actions/upload-artifact@v7.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
name: integration-test-results
Expand All @@ -204,7 +204,7 @@ jobs:
needs: changes
if: needs.changes.outputs.workflows == 'true'
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Run actionlint
uses: reviewdog/action-actionlint@0d952c597ef8459f634d7145b0b044a9699e5e43 # v1.71.0
Expand All @@ -220,7 +220,7 @@ jobs:
continue-on-error: true
steps:
- name: Check PR Size
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
continue-on-error: true
with:
script: |
Expand Down Expand Up @@ -362,7 +362,7 @@ jobs:
if: failure() && github.ref == 'refs/heads/main'
steps:
- name: Send Slack notification
uses: slackapi/slack-github-action@v3.0.1
uses: slackapi/slack-github-action@af78098f536edbc4de71162a307590698245be95 # v3.0.1
with:
channel-id: ${{ vars.SLACK_CI_CHANNEL_ID }}
payload-template-file-path: '.github/slack-ci-failure.json'
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ on:
# - "src/**/*.js"
# - "src/**/*.jsx"

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand Down Expand Up @@ -131,14 +133,14 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
continue-on-error: true
uses: anthropics/claude-code-action@v1
uses: anthropics/claude-code-action@6062f3709600659be5e47fcddf2cf76993c235c2 # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
prompt: |
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ on:
pull_request_review:
types: [submitted]

permissions: {}

concurrency:
group: claude-${{ github.repository }}-${{ github.event.issue.number || github.event.pull_request.number || github.run_id }}
cancel-in-progress: false
Expand Down Expand Up @@ -39,13 +41,13 @@ jobs:
checks: read
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
uses: anthropics/claude-code-action@d59651bd82c48d81756854675ce4fa4d69722200 # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

Expand Down
26 changes: 14 additions & 12 deletions .github/workflows/container-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ on:
- cron: '0 5 * * 2'
workflow_dispatch:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand Down Expand Up @@ -44,13 +46,13 @@ jobs:
df -h

- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4

- name: Build image for scanning
uses: docker/build-push-action@v7
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: .devcontainer/Dockerfile
Expand All @@ -60,7 +62,7 @@ jobs:
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/config-base:cache

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.35.0
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
with:
image-ref: 'config-base:scan'
format: 'sarif'
Expand All @@ -70,13 +72,13 @@ jobs:
trivyignores: '.trivyignore'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
uses: github/codeql-action/upload-sarif@256d634097be96e792d6764f9edaefc4320557b1 # v4
if: always()
with:
sarif_file: 'trivy-results.sarif'

- name: Run Trivy for summary
uses: aquasecurity/trivy-action@0.35.0
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
with:
image-ref: 'config-base:scan'
format: 'table'
Expand All @@ -85,7 +87,7 @@ jobs:
trivyignores: '.trivyignore'

- name: Fail on critical vulnerabilities
uses: aquasecurity/trivy-action@0.35.0
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
with:
image-ref: 'config-base:scan'
format: 'table'
Expand Down Expand Up @@ -118,13 +120,13 @@ jobs:
df -h

- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4

- name: Build image for SBOM
uses: docker/build-push-action@v7
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: .devcontainer/Dockerfile
Expand All @@ -134,14 +136,14 @@ jobs:
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/config-base:cache

- name: Generate SBOM with Syft
uses: anchore/sbom-action@v0.23.1
uses: anchore/sbom-action@57aae528053a48a3f6235f2d9461b05fbcb7366d # v0.23.1
with:
image: config-base:sbom
artifact-name: sbom.spdx.json
output-file: sbom.spdx.json

- name: Upload SBOM artifact
uses: actions/upload-artifact@v7.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: sbom
path: sbom.spdx.json
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/coverage-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,18 @@ jobs:
if: inputs.format == 'jacoco'
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

- name: Download coverage artifact
uses: actions/download-artifact@v8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.artifact-name }}
path: coverage-download

- name: Post JaCoCo coverage to PR
uses: madrapps/jacoco-report@v1.7.2
uses: madrapps/jacoco-report@50d3aff4548aa991e6753342d9ba291084e63848 # v1.7.2
with:
paths: coverage-download/${{ inputs.report-path }}
token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -83,16 +83,16 @@ jobs:
if: inputs.format == 'jest'
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Download coverage artifact
uses: actions/download-artifact@v8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.artifact-name }}
path: coverage-download

- name: Post coverage comment
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
env:
REPORT_PATH: ${{ inputs.report-path }}
COMMENT_TITLE: ${{ inputs.title }}
Expand Down Expand Up @@ -164,17 +164,17 @@ jobs:
if: inputs.format == 'cobertura'
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Download coverage artifact
uses: actions/download-artifact@v8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.artifact-name }}
path: coverage-download

- name: Generate coverage summary
id: coverage
uses: irongut/CodeCoverageSummary@v1.3.0
uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
with:
filename: coverage-download/${{ inputs.report-path }}
badge: true
Expand All @@ -183,7 +183,7 @@ jobs:
thresholds: '${{ inputs.min-coverage-overall }} ${{ inputs.min-coverage-changed-files }}'

- name: Post coverage comment
uses: marocchino/sticky-pull-request-comment@v3.0.2
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
with:
header: ${{ inputs.title }}
message: |
Expand All @@ -197,16 +197,16 @@ jobs:
if: inputs.format == 'lcov'
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Download coverage artifact
uses: actions/download-artifact@v8.0.1
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.artifact-name }}
path: coverage-download

- name: Post LCOV coverage to PR
uses: romeovs/lcov-reporter-action@v0.4.0
uses: romeovs/lcov-reporter-action@87a815f34ec27a5826abba44ce09bbc688da58fd # v0.4.0
with:
lcov-file: coverage-download/${{ inputs.report-path }}
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
- name: Fetch Dependabot metadata
if: github.actor == 'dependabot[bot]'
id: metadata
uses: dependabot/fetch-metadata@v2
uses: dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

Expand Down
Loading
Loading