Skip to content

Proposal: Enhanced GitHub Action Experience #185

@hanna-skryl

Description

@hanna-skryl

Following up on #149

Based on the research findings, this proposal outlines the implementation approach for GitHub App authentication to achieve branded comments.

Problem

Code PushUp users receive generic github-actions[bot] comments that don't reflect our professional identity. This limits the brand's visibility and credibility in the developer ecosystem.

Image

Solution

GitHub App installation authentication with an optional marketplace listing

Why GitHub App installation authentication?

  • Replaces generic github-actions[bot] with code-pushup-staging[bot] (or code-pushup[bot]) for clear brand attribution
  • Provides more precise permission control
  • Lays the foundation for future advanced integrations and features
  • Is an industry standard; many successful tools consistently require GitHub Apps installation
  • Requires zero breaking changes

User experience flow

  1. Without app: User gets standard github-actions[bot] comments (current behavior)
  2. With app: User gets branded code-pushup-staging[bot] comments
  3. Automatic detection: No user configuration needed after app installation

Implementation details

Users must install the Code PushUp GitHub App on their repository or organization to receive branded comments. The GitHub Action cannot authenticate with an app that's only installed on the Code PushUp organization.

Technical requirements

  • GitHub App ID and private key stored as repository secrets
  • Permissions: pull-requests: write (for posting comments)
  • The user must grant app access to target repositories during installation

Authentication process

  1. User installs the Code PushUp GitHub App on their repository/organization
  2. Action detects an app installation on the current repository during workflow execution
  3. Action uses the @octokit/auth-app library to authenticate as the GitHub App and generate installation tokens
  4. Action uses an installation token for API calls instead of the default github.token
  5. Comments appear as an app identity instead of a generic bot
  6. Graceful fallback to the standard token when the app is not installed

Implementation scope

Proof of Concept

  • An authentication system that can detect when the Code PushUp GitHub App is installed on a user's repository
  • Token generation logic that creates GitHub App installation tokens for API calls
  • Fallback mechanism that uses a standard GitHub token when the app is not installed
  • Professional GitHub App page with a meaningful description (the current app has no user-facing documentation)
  • Documentation updates increasing app visibility (currently, no repositories mention the app)

Discussion points

  • App identity: Should we use code-pushup-staging or create a more general code-pushup app?
  • Permission compatibility: Does the current app have sufficient permissions?
  • Marketplace priority: Should we create a GitHub Marketplace listing to help users discover the app (requirements for listing an app)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions