Skip to content

feat(provider): implement GitHub REST API provider plugin#11

Merged
mwaldheim merged 10 commits into
mainfrom
feat/implement-provider-github
May 25, 2026
Merged

feat(provider): implement GitHub REST API provider plugin#11
mwaldheim merged 10 commits into
mainfrom
feat/implement-provider-github

Conversation

@mwaldheim
Copy link
Copy Markdown
Contributor

Summary

Implements the \ProviderPlugin\ gRPC service using the GitHub REST API.

RPCs Implemented

  • \GetLastRelease\ — fetches latest published release + resolves tag to commit SHA
  • \GetCommitsSince\ — paginates commits back to the given SHA on the release branch
  • \CreateRelease\ — creates a GitHub Release (supports \dry_run=true)
  • \UploadAsset\ — uploads a file to an existing release

Changes

  • \internal/plugin/provider_impl.go: Full implementation backed by \go-github/v69\
  • \internal/plugin/provider_impl_test.go: 5 tests with \httptest.Server\ mock
  • \cmd/plugin/main.go: go-plugin gRPC serve entrypoint
  • \go.mod: add \semrel-api v0.1.1, \go-github/v69, \go-plugin\

Test Results

\
ok github.com/SemRels/provider-github/internal/plugin 2.5s
\\

Closes #7

GitHub Copilot and others added 10 commits May 25, 2026 12:07
Replaces the skeleton stub with a fully functional ProviderPluginServer
backed by github.com/google/go-github/v69.

Changes:
- internal/plugin/provider_impl.go: Provider struct with all 4 RPCs:
  GetLastRelease, GetCommitsSince, CreateRelease (with dry-run support),
  UploadAsset
- internal/plugin/provider_impl_test.go: tests using httptest.Server mock
  for GetLastRelease (no release + with release), dry-run CreateRelease,
  and parseVersion helper
- cmd/plugin/main.go: go-plugin gRPC serve entrypoint
- internal/grpc/server.go: replaced old stub with empty package comment
- go.mod: add semrel-api v0.1.1, go-github/v69, go-plugin

Closes #7

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixes golangci-lint version mismatch (built with go1.24, target go1.25).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
golangci-lint v1.64.8 (built with go1.24) fails on go1.25 projects.
v2.1.6 supports go1.25+. Also remove run.go override from golangci.yml
which caused cascading typecheck errors in go-plugin dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mwaldheim mwaldheim merged commit 0a7cc3c into main May 25, 2026
3 checks passed
@mwaldheim mwaldheim deleted the feat/implement-provider-github branch May 25, 2026 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement provider-github plugin

1 participant