Skip to content

feat: add GitHub App authentication support - #1

Merged
ujala-singh merged 9 commits into
mainfrom
feat/support-github-app-auth
Jul 10, 2026
Merged

ujala-singh merged 9 commits into
mainfrom
feat/support-github-app-auth

Conversation

@ujala-singh

Copy link
Copy Markdown
Owner
  • Add GitHub App authentication as an alternative to personal access tokens
  • Implement JWT token generation and installation token exchange
  • Add automatic token refresh with 1-hour expiry
  • Add validation for GitHub App credentials (app_id, installation_id, private_key)
  • Add comprehensive tests for GitHub App authentication
  • Update README with authentication options
  • Add detailed documentation in docs/GITHUB_APP_AUTHENTICATION.md
  • Maintain backward compatibility with existing access_token authentication

Based on telia-oss/github-pr-resource#286

- Add GitHub App authentication as an alternative to personal access tokens
- Implement JWT token generation and installation token exchange
- Add automatic token refresh with 1-hour expiry
- Add validation for GitHub App credentials (app_id, installation_id, private_key)
- Add comprehensive tests for GitHub App authentication
- Update README with authentication options
- Add detailed documentation in docs/GITHUB_APP_AUTHENTICATION.md
- Maintain backward compatibility with existing access_token authentication

Based on telia-oss/github-pr-resource#286
- Replace deprecated github.NewEnterpriseClient with WithEnterpriseURLs
- Remove unused mockGithubClient type and methods from prlist tests
The docker build and test can be done locally as needed
E2E tests can be run locally when needed with the e2e build tag
- Remove e2e/ directory with all test files
- Remove e2e-related documentation files
- Update README.md to remove e2e test sections
- Update Taskfile.yml to remove e2e tasks (test-e2e, test-e2e-verbose, test-all)
- Remove BUILD_SUMMARY.md (outdated historical doc)

E2E tests are no longer part of the CI workflow and are not needed for this project.
Specifies tool versions:
- golang 1.26.1
- task 3.40.1
Task 3.49.1 has stricter YAML parsing and requires echo commands
with quoted strings to be properly wrapped in single quotes.
golangci-lint v1.64.8 is built with Go 1.24 and cannot lint projects
targeting Go 1.26. Downgraded to Go 1.23 which is stable and fully
supported by all tooling.

Changes:
- go.mod: go 1.26 → go 1.23
- .tool-versions: golang 1.26.1 → golang 1.23.6
- Dockerfile: golang:1.26-alpine → golang:1.23-alpine
- .github/workflows/ci.yml: go-version: '1.26' → '1.23' (all jobs)

Verified: All tests pass and binaries build successfully with Go 1.23.
Added bin/ and .task/ to .gitignore and removed them from git tracking.
These directories contain build artifacts that should not be versioned.
@ujala-singh
ujala-singh merged commit 571aa61 into main Jul 10, 2026
3 checks passed
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.

1 participant