Interview CI/CD & GitOps

Explain a typical Git branching strategy (trunk-based, Git flow, GitHub flow).

CI/CD & GitOps · Intermediate level

Answer

Trunk-based development keeps changes small and frequently merged to main. GitHub Flow uses short-lived branches and PRs into main, often with deployment from main. Git Flow uses long-lived develop, release, and hotfix branches. I prefer trunk-based or GitHub Flow for faster CI/CD.

Technical explanation

GitHub delivery controls combine repository settings, branch protection, required status checks, environments, CODEOWNERS, and workflow permissions.

Use least-privilege permissions for the GITHUB_TOKEN and prefer OIDC federation over long-lived cloud access keys.

Separate trusted and untrusted workflow contexts, especially pull_request from forks, and avoid exposing secrets to unreviewed code.

Make merge policy explicit: linear history, squash, merge commits, signed commits, or code-owner approvals should match audit and release requirements.

Hands-on example

1. Implement the control for: Explain a typical Git branching strategy (trunk-based, Git flow, GitHub flow). in a GitHub repository that contains a simple service and .github/workflows/ci.yml.

2. Create a workflow with on: [pull_request], jobs: build, test, scan; set permissions: contents: read by default and grant write only to jobs that truly need it.

3. Add branch protection on main requiring the CI workflow, at least one approval, CODEOWNERS review for protected paths, conversation resolution, and no direct pushes.

4. Use environments for staging/prod with required reviewers and environment secrets; prefer OIDC cloud login over storing AWS/Azure/GCP access keys.

5. Validate by opening a PR that fails one required check and confirm GitHub blocks merge until the check passes and required reviewers approve.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More CI/CD & GitOps interview questions

← All CI/CD & GitOps questions