// industry
비영리 · 임의단체
다중 분리 계좌를 한 번에. 운영 투명성 보고서 자동화.
// schemas
사용 스키마
bank.transactions.cb.v1
// scenario
다중 기관 병렬 수집
본 계좌 + 분리 계좌(마이크로 그랜트 · 스폰서십) 가 다른 은행에 있을 때 matrix 로 동시 수집, 은행별 Artifact 분리.
- 주기
- 매주
- 대상
- 분리 계좌가 운영상 필수인 비영리 · 임의단체.
- 채널
- GitHub Actions
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 로 수동 트리거.
# 여러 금융기관(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: 30matrix.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변형
같은 사례에서 자주 바꾸는 옵션. 다른 사례는 아래 이전/다음에서.
기관 추가
- CB_HANA # 하나은행 추가Artifact 대신 PR 합본
# upload-artifact 를 빼고 weekly-multi-schema 의 collect job 패턴을 붙인다// related