전체 활용 사례

// 정기 자동화 — 저장소로 받기

다중 기관 병렬 수집

본 계좌 + 분리 계좌(마이크로 그랜트 · 스폰서십) 가 다른 은행에 있을 때 matrix 로 동시 수집, 은행별 Artifact 분리.

GitHub Actions매주

이런 분께 분리 계좌가 운영상 필수인 비영리 · 임의단체.

bank-ibk · bank-kb · bank-shinhan.zip

3개 분리·보존 30일

01사전 점검

아래 명령을 그대로 붙여넣어 지금 내 환경이 준비됐는지 확인한다.

  • repo secret H6S_API_KEY 가 등록돼 있다

    gh secret list

    목록에 H6S_API_KEY 가 보인다

    아니면 — gh secret set H6S_API_KEY # 또는 repo Settings → Secrets

  • 워크스페이스에 대상 자격증명이 있다

    h6s credentials list

    그 기관에 매칭되는 자격증명이 1건 이상 보인다

    아니면 — h6s credentials create --interactive --cert

02실행

아래 파일을 .github/workflows/ 에 저장하고 기본 브랜치에 commit. 첫 검증은 Actions 탭 → Run workflow 로 수동 트리거.

yaml
# 여러 금융기관(provider) 의 입출금내역을 병렬로 수집.
# 본 계좌 + 마이크로 그랜트·피지컬 스폰서십용 분리 계좌가 다른 은행에 있는 경우의 표준 패턴.
# provider 만 주면 각 기관에 매칭되는 credential 또는 공동인증서를 백엔드가 자동 선택.
name: 다중 기관 병렬 수집

on:
  schedule:
    - cron: '0 0 * * 1'   # 매주 월요일
  workflow_dispatch: {}

jobs:
  fetch:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    strategy:
      fail-fast: false
      matrix:
        provider:
          - CB_IBK      # 본 계좌 (기업은행)
          - CB_KB       # 마이크로 그랜트 분리 계좌
          - CB_SHINHAN  # 피지컬 스폰서십 분리 계좌
    steps:
      - uses: actions/checkout@v6

      - id: prev-week
        run: |
          echo "from=$(date -u -d '7 days ago' +%Y-%m-%d)" >> "$GITHUB_OUTPUT"
          echo "to=$(date -u -d 'yesterday' +%Y-%m-%d)" >> "$GITHUB_OUTPUT"

      - id: fetch
        uses: bolta-io/h6s-action@v0
        with:
          api-key: ${{ secrets.H6S_API_KEY }}
          schema: bank.transactions.cb.v1
          provider: ${{ matrix.provider }}
          from: ${{ steps.prev-week.outputs.from }}
          to: ${{ steps.prev-week.outputs.to }}
          output-path: ./data/bank/${{ matrix.provider }}/

      - uses: actions/upload-artifact@v4
        with:
          name: bank-${{ matrix.provider }}
          path: ${{ steps.fetch.outputs.path }}
          retention-days: 30

matrix.provider 에 대문자 코드(CB_KB·CB_SHINHAN 등)만 추가하면 기관 수만큼 병렬 확장.

03검증

  • Actions 에서 provider 수만큼 병렬 job 이 (일부 실패해도) 끝난다.
  • run 페이지 Artifacts 에 bank-CB_IBK · bank-CB_KB · bank-CB_SHINHAN 이 분리 보존.
  • 한 기관 자격증명 누락 시 그 job 만 실패하고 나머지는 정상.

04흔한 에러

fetch step 에서 NO_API_KEY 로 실패

secret 이름이 yml 의 secrets.H6S_API_KEY 와 다르다.

해결 secret 을 정확히 H6S_API_KEY 로 등록.

CREDENTIAL_INSUFFICIENT_FOR_PROVIDER

그 provider 에 매칭되는 자격증명이 워크스페이스에 없다.

해결 h6s credentials create --interactive --cert (공동인증서 1개로 전 기관 공용).

cron 시간이 지나도 안 돈다

yml 이 기본 브랜치에 없거나, repo 가 60일 비활성이라 scheduled workflow 가 멈췄다.

해결 기본 브랜치에 머지하고, 가끔 수동 트리거해 활성 유지.

05변형

같은 사례에서 자주 바꾸는 옵션. 다른 사례는 아래 이전/다음에서.

기관 추가

yaml
- CB_HANA     # 하나은행 추가

Artifact 대신 PR 합본

yaml
# upload-artifact 를 빼고 weekly-multi-schema 의 collect job 패턴을 붙인다