Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Register now
Support GitHub as a platform (Issues + Pull Requests)
## Context Faure currently only works with GitLab (webhooks, API, CI). Supporting GitHub would significantly expand its reach, as GitHub is the dominant platform for open source projects. ## Scope for V1 Parity with GitLab on the core workflow: - Trigger on issue comment mentioning the bot (`@<bot-username>`) - Read issue title + description + comment thread - Commit files to a feature branch - Open a Pull Request assigned to the reviewer ## Work to do ### Architecture Extract a platform abstraction layer so `codeur.rb` logic is platform-agnostic: ```ruby module Faure module Platform module GitLab ... end module GitHub ... end end end ``` Each platform module implements: - `fetch_issue(iid)` → `{ title:, description:, comments: }` - `post_comment(iid, body)` - `open_pr(branch, title, body)` ### GitHub-specific - Trigger: GitHub Actions workflow on `issue_comment` event (instead of GitLab CI webhook) - Auth: `FAURE_GITHUB_TOKEN` (GitHub PAT or Actions `GITHUB_TOKEN`) - API: REST via `Net::HTTP` to `api.github.com`, same pattern as current GitLab calls - Branch push: `git push` with GitHub token embedded in remote URL or via `GIT_ASKPASS` ### `ci/faure-github.yml` (GitHub Actions workflow template) Provide a reusable workflow file that projects can copy/include. ### Variables | Variable | Description | |---|---| | `FAURE_PLATFORM` | `gitlab` (default) or `github` | | `FAURE_GITHUB_TOKEN` | GitHub PAT or `${{ secrets.GITHUB_TOKEN }}` | | `FAURE_GITHUB_REPO` | `owner/repo` format | ## Notes - Start with GitLab-on-GitHub (run the Faure Docker image as a GitHub Actions step) before considering a native GitHub App - The dispatch prompt (#16) should be platform-agnostic by design - `FAURE_API_KEY` (#17) is already platform-agnostic and applies to both
issue