Skip to content

GitHub integration is org-wide but managed at project level in the UI #7280

@kyle-ssg

Description

@kyle-ssg

How are you running Flagsmith

  • Self Hosted with Docker
  • Self Hosted with Kubernetes
  • SaaS at flagsmith.com
  • Some other way (add details in description below)

Describe the bug

The GitHub integration behaves as an organisation-wide integration, but it is configured and managed from the project integrations page. It does not appear on the organisation integrations page at all. This is
confusing, inconsistent with other integrations, and a permissions issue.

Some of our integrations (e.g. analytics providers) exist at the org level but can be overridden per project
— a project-level configuration takes precedence over the org-level one. That model works because each project can legitimately point at a different destination.

GitHub does not work this way. Flagsmith's access to a GitHub organisation's repositories is granted once,
globally, via the GitHub App installation
. There is no meaningful per-project override — the connection itself
must live at the org level. The only project-scoped concern is which GitHub repositories a given Flagsmith
project maps to (1:many).

Steps To Reproduce

  1. Create a new Flagsmith project in an organisation where GitHub has previously been set up on another project.
  2. Navigate to Organisation Settings → Integrations.
  3. Navigate to Project Settings → Integrations.
  • GitHub is not listed on the organisation integrations page.
  • GitHub is listed on the project integrations page, and shows as already set up — even though the
    integration was never configured for this specific project.
  • A user with project-level permissions can modify or remove the GitHub integration, which affects the entire
    organisation and all its projects.

Expected behavior

Users spend far more time in projects than in organisation settings, so moving GitHub out of the project
integrations page risks users assuming the integration doesn't exist. To mitigate this, the project integrations
page should:

  • Add a field to remote config to denote that GitHub is not
    • Keep the GitHub tile visible on the project integrations page so it remains findable from where users
      actually work. Do this by setting
    "project": false,
    "organisation": true,

In the remote config integration_data

  • For integrations connected at a different level Show connection status clearly (e.g. "Connected via organisation" / "Not configured — set up at
    organisation level").
  • Replace the configure CTA with a link to the organisation integrations page. The CTA should respect
    org-level permissions — users without them see a read-only state and a hint about who to contact. Wrap this cta in the relevant renderWithPermissions util.
  • Keep project-scoped controls (Flagsmith-project ↔ GitHub-repo mapping, which is 1:many) on the project page, since those genuinely belong at project level.
  • Cross-link from the org page back to project repo mapping, so an admin setting up the integration for the first time is guided to the next step.
  • Empty-state messaging on the project page when no org-level integration exists should explain that GitHub is set up at the organisation level, and link there.

Screenshots

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions