Skip to content

GitHub

GitHub hosts the roche-private/model-dp-rdt repository, runs CI/CD workflows via GitHub Actions, and provides the project board for tracking all work. It is the primary collaboration surface for the platform team.

PropertyValue
URLhttps://github.com/roche-private/model-dp-rdt
Auth methodDevice flow (browser) or Personal Access Token
NetworkPublic internet
Project boardhttps://github.com/orgs/roche-private/projects/44
Access taskA10, A11
VariableSourceDescription
GITHUB_TOKENGitHub Actions (automatic)CI/CD authentication token
GH_TOKENUser shellGitHub CLI authentication (set by gh auth login)
WorkflowTriggerPurpose
validate.ymlOn PRRuns rdt-model-validate all against changed entities
deploy.ymlOn merge to mainRuns rdt-model-compile run for affected entities
docs.ymlOn merge to mainRuns rdt-model-docs generate + Starlight build

GitHub is not directly consumed by any CLI module, but orchestrates all of them:

ConsumerUsage
GitHub ActionsInvokes every rdt-model-* binary in CI/CD
rdt-model-compileReports pipeline status back to PR checks

Script: scripts/access/check-github.sh

Required tools: gh (GitHub CLI)

Checks performed:

  1. GitHub authentication status (gh auth status)
  2. Repository access (gh repo view roche-private/model-dp-rdt)
  3. Push permissions (via repos API)
  4. Admin permissions check
  5. Project board #44 accessibility
  6. Token scopes validation

GitHub uses the device flow for interactive authentication:

Terminal window
# Install GitHub CLI
sudo apt install gh
# Authenticate (opens browser for device flow)
gh auth login
# Verify
gh auth status
gh repo view roche-private/model-dp-rdt

For CI/CD, GitHub Actions automatically provides GITHUB_TOKEN with repository-scoped permissions.

The repository uses a trunk-based development model:

  • main — production branch, auto-deploys to DEV
  • Feature branches — short-lived, merged via PR
  • No long-lived release branches

GitHub Environments store deployment credentials per target:

EnvironmentPurposeSecrets stored
devAuto-deploy targetVAULT_ROLE_ID, VAULT_SECRET_ID
testManual approval gateVAULT_ROLE_ID, VAULT_SECRET_ID
prodReviewer approval gateVAULT_ROLE_ID, VAULT_SECRET_ID
TemplatePurpose
llm-task.ymlStandard development task
access-request.ymlPlatform access request (A-tasks)