9.2 KiB
9.2 KiB
Feishu API Collection Checklist
Date: 2026-06-26
Branch:
feat/feishu-export-clean
Current commit at collection time:
73da46c143b37cb2b26e9e624b8c39963ad52d77
Current Local State
Feishu desktop/web state: test account is logged in.
Local env file: .local/feishu-gitlink.env.ps1 is configured and ignored.
Stable previews: available from .local/report.json and .local/report.zh-CN.json.
Real Feishu sends: passed through custom bot webhook.
Real DocX append: passed through self-built app OpenAPI.
Real Bitable sync: passed after target table fields were created.
Split Bitable sync: passed with five separate tables.
Real Task create: passed; project/section placement remains unmapped.
GitLink write operations: not implemented and not tested.
Test enterprise permissions: intentionally broad for validation; production should use minimum scopes.
API Collection Status
| Item | Status | Evidence | Next action |
|---|---|---|---|
| Custom bot webhook | Complete and real-tested | shortcuts/feishu/client.go, sign.go, card.go |
Image evidence deferred |
| Custom bot signing | Complete and real-tested | SignCustomBotRequest unit test plus signed bot smoke |
Keep secrets redacted |
| tenant_access_token | Complete and real-tested | OpenAPIClient.TenantAccessToken |
Add future +app-check |
| Wiki node resolution | Complete | OpenAPIClient.GetWikiNode |
Still depends on target Wiki node permission |
| DocX create | Complete | OpenAPIClient.CreateDocument |
Requires folder permission when creating new docs |
| DocX block append | Complete and real-tested | OpenAPIClient.CreateBlocks |
App must have target DocX edit permission |
| Bitable search | Complete and real-tested | SearchBitableRecord |
Requires unique_key field |
| Bitable create | Complete and real-tested | CreateBitableRecord |
Requires existing table and compatible fields; split-table write passed |
| Bitable update | Complete and real-tested | UpdateBitableRecord |
Never deletes records |
| Task create | Complete at minimal level and real-tested | CreateTask sends summary and description |
Confirm project/section request fields |
| IM app bot message | Planned | Official API collected | Not needed for stable webhook path |
| Card callbacks | Future | Official capability identified | Requires server, signature validation, identity mapping |
| User identity mapping | Future | Required for personalized contributor routing | Not implemented in this branch |
| GitLink write actions | Explicitly out of scope | Capability boundary docs | Do not implement in this branch |
Command Checklist
| Command | Layer | Current status | Real side effect? | Needs user setup? |
|---|---|---|---|---|
feishu +bot-test |
Stable | Implemented | Only with --send |
FEISHU_WEBHOOK_URL |
feishu +notify |
Stable | Implemented | Only with --send |
FEISHU_WEBHOOK_URL |
feishu +weekly-report |
Stable | Implemented | Only with --send |
FEISHU_WEBHOOK_URL |
feishu +owner-digest |
Stable | Implemented | Only with --send |
FEISHU_WEBHOOK_URL |
feishu +contributor-digest |
Stable | Implemented | Only with --send |
FEISHU_WEBHOOK_URL |
feishu +bitable-schema |
Stable dry-run | Implemented | No | No |
feishu +bitable-records |
Stable dry-run | Implemented | No | No |
feishu +task-preview |
Stable dry-run | Implemented | No | No |
feishu +doc-export |
Experimental | Implemented and real-tested | Only with --send |
App scopes and document/folder permission |
feishu +bitable-sync |
Experimental | Implemented and real-tested | Only with --send |
Base app token, table IDs, fields, scopes |
feishu +task-create |
Experimental | Implemented and real-tested at minimal level | Only with --send |
Task scopes; project/section placement pending |
What Is Complete
1. Feishu API families are mapped to current commands.
2. Current code endpoints are inventoried.
3. Stable custom bot boundary is clear.
4. Experimental Open Platform boundary is clear.
5. GitLink write action boundary is clear.
6. User-required environment variables are documented.
7. Resource-level permission requirements are documented.
8. Task project/section limitation is explicitly called out.
What Still Needs User Action
These remain manual or owner-side tasks and should not be committed to the repository.
1. Defer Feishu UI screenshots and image evidence for this upload.
2. Keep the split-table validation as text evidence.
3. Decide later whether the final demonstration should use split tables only or
also keep the one-table/multiple-view proof as background evidence.
4. Decide whether `+bitable-sync` should stay experimental or be narrowed to
dry-run-only for upstream review.
5. Confirm Feishu Task project/section request fields before placing tasks in
a specific project or section.
6. Keep all real app credentials, webhook URLs, table IDs, and tokens in local
env only.
Commands To Run After User Setup
Preview first:
.\scripts\feishu-gitlink-env-check.ps1 -Layer all
go run . feishu +notify --from-workflow-json .local\report.json --format table
go run . feishu +owner-digest --from-workflow-json .local\report.json --format table
go run . feishu +contributor-digest --from-workflow-json .local\report.json --format table
go run . feishu +bitable-records --from-workflow-json .local\report.json --format json
go run . feishu +bitable-sync --from-workflow-json .local\report.json --format table
go run . feishu +doc-export --from-workflow-json .local\report.json --format table
go run . feishu +task-preview --from-workflow-json .local\report.json --format markdown
Real sends/writes only after preview is correct:
go run . feishu +notify --from-workflow-json .local\report.json --send --format table
go run . feishu +weekly-report --from-workflow-json .local\report.json --send --format table
go run . feishu +owner-digest --from-workflow-json .local\report.json --send --format table
go run . feishu +contributor-digest --from-workflow-json .local\report.json --send --format table
go run . feishu +doc-export --from-workflow-json .local\report.json --send --format table
go run . feishu +bitable-sync --from-workflow-json .local\report.json --send --format table
go run . feishu +task-create --from-workflow-json .local\report.json --send --format table
Test suite:
gofmt -w shortcuts\feishu
go test ./shortcuts/feishu
go test ./shortcuts/workflow
go test ./shortcuts
go test ./...
Current Blockers
Task project/section placement needs official request-field confirmation.
Current Base output is summary-oriented and not yet row-level project cockpit data.
Image evidence is deferred and is not part of this upload.
Verification Run
Executed on 2026-06-26 after the API inventory update:
| Check | Result | Notes |
|---|---|---|
| Computer-use Feishu desktop read-only check | Pass | Feishu test account visible |
go run . feishu --help |
Pass | Expected stable and experimental commands are registered |
| Env check | Pass | Required stable and Open Platform variables present; task project/section optional |
+notify preview |
Pass | Local preview mode |
+owner-digest preview |
Pass | Repository Gitlink/gitlink-cli, risk high, score 49 |
+contributor-digest preview |
Pass | Role-oriented digest, not personalized routing |
+notify --send |
Pass | Custom bot delivered English/default and Chinese cards |
+weekly-report --send |
Pass | Custom bot delivered weekly report |
+owner-digest --send |
Pass | Custom bot delivered English/default and Chinese owner digest |
+contributor-digest --send |
Pass | Custom bot delivered English/default and Chinese contributor digest |
+bitable-sync preview |
Pass | 1 report, 5 issue, 2 PR, 1 contributor, 7 task records |
+bitable-sync --send |
Pass | Search/create/update real-tested after field creation |
Split-table +bitable-sync --send |
Pass | Created 1 report, 5 issue, 2 PR, 1 contributor, and 7 task records across five separate Bitable tables |
+doc-export preview |
Pass | 9 DocX-ready blocks |
+doc-export --send |
Pass | Appended English/default and Chinese DocX blocks |
+task-preview preview |
Pass | 7 task candidates |
+task-create --send |
Pass | 7 tasks created; reruns may duplicate tasks |
| Feishu command i18n | Pass | zh-CN cards, digest, DocX blocks, and task titles previewed/sent |
go run ./internal/i18n/cmd/check |
Expected fail | Existing en-US.json formatting issue outside Feishu module |
go test ./shortcuts/feishu |
Pass | Includes task preview count regression test |
go test ./shortcuts/workflow |
Pass | Workflow report source remains valid |
go test ./shortcuts |
Pass | Shortcut package regression passed |
go test ./... |
Pass | Full repository test suite passed |
| Raw secret scan | Pass | No raw secret values found in tracked/unignored candidate files |
| Image evidence | Deferred | No screenshots or image files are included in this upload |
Do Not Commit
FEISHU_WEBHOOK_URL
FEISHU_WEBHOOK_SECRET
FEISHU_APP_ID
FEISHU_APP_SECRET
tenant_access_token
user_access_token
FEISHU_BASE_APP_TOKEN
table IDs
Wiki node token
folder token
chat_id
open_id
union_id
GITLINK_TOKEN
personal account credentials