aws-samples / aws-samples/appmod-blueprints

Support private git repositories with GitHub App or token for ArgoCD

Open
#604 0 comments 0 reactions 0 assignees View on GitHub
agentic-platform enhancement
Dominant language
Shell
Stars
105
Forks
62
Avg merge
11h 17m
Merged PRs (30d)
76

Description

**Parent:** #584
**Priority:** High

ArgoCD needs authenticated access to private git repositories for:
- Fetching addon charts and registry files
- Reading fleet member values and overlays
- Syncing bootstrap ApplicationSets

**Implementation options:**

1. **GitHub App (recommended)** — install a GitHub App on the repo, store the App ID and private key in Secrets Manager, create an ArgoCD repo credential Secret via ExternalSecret
2. **Personal Access Token** — store PAT in Secrets Manager, create repo credential Secret
3. **SSH key** — store deploy key in Secrets Manager

**Changes needed:**
- Add `repo.auth` section to `config.yaml` schema (type: `github-app | token | ssh`)
- Seed GitHub App credentials or token in Secrets Manager during bootstrap
- Create ArgoCD repo credential Secret (`argocd.argoproj.io/secret-type: repository`) via ExternalSecret or bootstrap
- Update bootstrap ApplicationSets if repo URL format changes (HTTPS vs SSH)
- Document setup steps for each auth method

**ArgoCD repo credential format:**
```yaml
apiVersion: v1
kind: Secret
metadata:
name: repo-creds
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repo-creds
stringData:
type: git
url: https://github.com/your-org
githubAppID: "12345"
githubAppInstallationID: "67890"
githubAppPrivateKey: |
-----BEGIN RSA PRIVATE KEY-----
...
```

Contributor guide

Open the contributing guide

Research direction

Start with the config.yaml schema, bootstrap process, and bootstrap ApplicationSets mentioned in the issue. Trace how Secrets Manager values become ExternalSecrets and how ArgoCD repository credentials are represented. Done means the selected authentication method is configurable, credentials are seeded safely, repository access works during bootstrap, and setup steps for each method are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, github, kubernetes
Domain
authentication, cloud, devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.