feat(api): add xendit openapi-based operation aliases#88
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces automation scripts to convert Xendit Postman collections into an OpenAPI specification and generate corresponding Go API operation aliases, along with updating documentation, release rules, and tests. Feedback on the conversion and generation scripts suggests improving the identification of ID segments (such as prefixed UUIDs and custom reference patterns) and decimal version segments (like v1.0) to prevent hardcoded paths and verbose version strings from leaking into the generated OpenAPI spec and Go aliases.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ff14d3b061
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ca3c529714
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d94980671f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
8428641 to
b9d9177
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b9d9177c08
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Selesai: saya perbaiki generator agar skip sample path dan re-generate aliases. Commit baru: . Harap cek kembali review comment ; seharusnya sudah hilang dari generated map. |
|
Selesai: saya perbaiki generator agar skip sample path dan re-generate aliases. Commit terbaru: b65b715. Harap cek kembali review comment discussion_r3398956619; entri sample webhook sudah dihapus dari map. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2132d17e49
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Akhirnya: commit sudah fix dua poin yang masih ada di review lama yang actionable sekarang: (1) jadi handle prefixed UUID () + ; (2) wrote /Users/wauputra/Documents/02_Bisnis_Pekerjaan/07_Dev/rute-bayar/internal/cli/xendit_openapi_aliases_generated.go dikembalikan executable mode 100755. Status latest checks: CI + E2E Sandbox + E2E Smoke semua pass di commit ini (). Sisanya di review thread tampak historis (path unresolved) tapi sudah otomatis terpenuhi di current patch. Bisa lanjut merge/release kalau approval sudah ada. |
|
Akhirnya: commit a452977 fix dua poin actionable dari review: isLikelyIdSegment handle prefixed UUID dan order-id-*, plus scripts/generate-xendit-openapi-aliases.sh mode executable 100755. Status latest checks: CI + E2E Sandbox + E2E Smoke all pass untuk commit a452977. Sisanya di review thread tampak historis (status isResolved=false dari review sebelumnya) tapi alurnya sudah dipenuhi oleh patch ini; lanjut merge/release jika approval sudah cukup. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a452977a53
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!alias || generated.has(alias)) { | ||
| continue; |
There was a problem hiding this comment.
Avoid binding ambiguous aliases to the first operation
The generator emits bare aliases as well as method-prefixed aliases, but this collision check silently keeps whichever operation is encountered first. In the checked-in Xendit spec, that makes aliases like ewallets-charges-void and void resolve to GET /ewallets/charges/{id}/void even though the same path also has a POST void operation, so rutebayar api xendit --operation void checks void status instead of voiding the charge. Please detect these collisions and skip or disambiguate the bare alias rather than preserving the first match.
Useful? React with 👍 / 👎.
Summary
Files changed