feat: add Buy Me a Coffee sponsorship support#27
Conversation
…r public release" This reverts commit 5fc47c1.
- Comment out GitHub Sponsors until approved - Enable Buy Me a Coffee via custom URL - Add sponsorship documentation - Prepare for multi-platform support
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Caution Review failedThe pull request is closed. WalkthroughAdds a funding configuration file at Changes
Sequence Diagram(s)(No sequence diagram — changes are documentation/configuration and tests, not control-flow or runtime feature changes.) Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
✨ Finishing Touches
🧪 Generate unit tests
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (6)
README.md (1)
523-526: Minor copy consistency: capitalisationUse consistent “Buy Me a Coffee” casing.
-☕ **[Ko-fi](https://ko-fi.com/wiiiimm)** - Buy me a coffee (one-time donations) +☕ **[Ko-fi](https://ko-fi.com/wiiiimm)** - Buy Me a Coffee (one-time donations).github/FUNDING.yml (1)
24-24: Add newline at EOF to satisfy yamllintFixes “no new line character at the end of file”.
-# otechie: your-otechie-username # Technical consulting platform +# otechie: your-otechie-username # Technical consulting platform +docs/SPONSORSHIP_PLATFORMS.md (2)
90-100: markdownlint: remove trailing punctuation from headingsResolves MD026 warnings.
-### For Individual Developers: +### For Individual Developers -### For Open Source Projects: +### For Open Source Projects -### For Content Creators: +### For Content Creators
52-56: Minor hyphenation for clarityCompound adjectives before nouns should be hyphenated.
-- **Type:** Enterprise open source funding +- **Type:** Enterprise open‑source fundingtests/sponsorship.test.ts (2)
56-71: Optionally validate YAML by parsing instead of string heuristicsParsing catches structural errors early. Requires dev dependency (e.g.
yamlorjs-yaml).- it('should have proper YAML structure', () => { - const content = readFileSync(fundingYmlPath, 'utf8'); - - // Should not have syntax errors - basic checks - expect(content).not.toContain('syntax error'); - expect(content).toMatch(/github:\s+wiiiimm/); - - // Should have proper commenting for inactive platforms - const lines = content.split('\n'); - const commentedPlatforms = lines.filter(line => - line.trim().startsWith('#') && - (line.includes('ko_fi:') || line.includes('patreon:') || line.includes('custom:')) - ); - - expect(commentedPlatforms.length).toBeGreaterThan(0); - }); + it('should have proper YAML structure', async () => { + const content = readFileSync(fundingYmlPath, 'utf8'); + // Parse to ensure valid YAML (commented entries are fine) + const { parse } = await import('yaml'); + const data = parse(content); + expect(data).toBeTypeOf('object'); + // Ensure active custom BMaC link is present + expect(data.custom).toBeTruthy(); + expect(Array.isArray(data.custom)).toBe(true); + expect(data.custom.some((u: string) => u.includes('buymeacoffee.com/wiiiimm'))).toBe(true); + });
73-82: Also assert that README notes “coming soon” if Sponsors remain disabledKeeps tests aligned with stated rollout. Optional; only if you choose to add the note in README.
- expect(content).toContain('GitHub Sponsors'); + expect(content).toContain('GitHub Sponsors'); + // Optionally, if README adds a “coming soon” note: + // expect(content).toMatch(/Sponsors.*coming soon/i);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.github/FUNDING.yml(1 hunks)README.md(1 hunks)docs/SPONSORSHIP_PLATFORMS.md(1 hunks)tests/sponsorship.test.ts(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/SPONSORSHIP_PLATFORMS.md
[uncategorized] ~5-~5: A comma may be missing after the conjunctive/linking adverb ‘Currently’.
Context: ...ile for the gh-manager-cli project. ## Currently Enabled Platforms ### GitHub Sponsors ...
(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
[uncategorized] ~53-~53: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...rm:** tidelift - Type: Enterprise open source funding - Description: Platform foc...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~95-~95: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...Pal** (familiar to most users) ### For Open Source Projects: - GitHub Sponsors (projec...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~114-~114: The official name of this software platform is spelled with a capital “H”.
Context: ...he FUNDING.yml file must be located at: .github/FUNDING.yml in your repository root.
(GITHUB)
🪛 markdownlint-cli2 (0.17.2)
docs/SPONSORSHIP_PLATFORMS.md
90-90: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
95-95: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
100-100: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
🪛 YAMLlint (1.37.1)
.github/FUNDING.yml
[error] 24-24: no new line character at the end of file
(new-line-at-end-of-file)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
🔇 Additional comments (2)
README.md (2)
519-530: Align README promises with what the Sponsor button actually showsRight now only Buy Me a Coffee is active in FUNDING.yml; GitHub Sponsors and Ko‑fi are commented out. Either add a short note “GitHub Sponsors pending approval; Ko‑fi coming soon” or enable them in FUNDING.yml to match the bullets.
Would you like me to generate a patch that adds a short note here and keeps FUNDING.yml as-is?
523-526: Verify external links with redirects and browser checks
- GitHub Sponsors (https://github.com/sponsors/wiiiimm) returned 302 – rerun with
curl -Lor open in a browser to ensure the redirect lands on an active page- Ko-fi (https://ko-fi.com/wiiiimm) returned 403 – confirm the URL is correct and publicly accessible, and test it in a browser
- Buy Me a Coffee (https://buymeacoffee.com/wiiiimm) returned 200 – no further action needed
- Update README.md to only show Buy Me a Coffee link - Update tests to check for Buy Me a Coffee configuration - Simplify SPONSORSHIP_PLATFORMS.md documentation - Remove vim swap file (.FUNDING.yml.swp) - Focus on single sponsorship platform for clarity
| const lines = content.split('\n'); | ||
| const commentedPlatforms = lines.filter(line => | ||
| line.trim().startsWith('#') && | ||
| (line.includes('ko_fi:') || line.includes('patreon:') || line.includes('custom:')) |
There was a problem hiding this comment.
| const content = readFileSync(sponsorshipDocsPath, 'utf8'); | ||
| expect(content).toContain('GitHub Sponsorship Platforms Guide'); | ||
| expect(content).toContain('Ko-fi (Buy Me Coffee Alternative)'); | ||
| expect(content).toContain('Custom URLs (Including Buy Me a Coffee)'); |
There was a problem hiding this comment.
Bug: Documentation Mismatch and Missing Content
The sponsorship.test.ts documentation test expects specific content in SPONSORSHIP_PLATFORMS.md that doesn't match the file. It looks for 'GitHub Sponsorship Platforms Guide' as the title, but the document uses 'GitHub Sponsorship Configuration Guide'. Additionally, phrases like 'Ko-fi (Buy Me Coffee Alternative)' and 'Custom URLs (Including Buy Me a Coffee)' are missing.
| expect(content).toContain('Ko-fi'); | ||
| expect(content).toContain('Buy Me a Coffee'); | ||
| expect(content).toContain('SPONSORSHIP_PLATFORMS.md'); | ||
| }); |
There was a problem hiding this comment.
# [1.33.0](v1.32.0...v1.33.0) (2025-09-06) ### Features * add Buy Me a Coffee sponsorship support ([#27](#27)) ([76ed5dd](76ed5dd))
|
🎉 This PR is included in version 1.33.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Summary
This PR enables sponsorship support for gh-manager-cli through Buy Me a Coffee, with preparation for future GitHub Sponsors integration.
Changes
.github/FUNDING.ymlWhy Buy Me a Coffee First?
What This Enables
Once merged, the repository will show a "Sponsor" button that links to the Buy Me a Coffee page (https://buymeacoffee.com/wiiiimm), allowing users to support the project development.
Next Steps
Testing
Summary by CodeRabbit