Commit a30ddf2
committed
feat: add GitHub App auth for installing private repository dependencies
intent(private-repo-app): integrate the standalone app.yml prototype into action.yml so users can pull private GitHub deps via this action's inputs
decision(input-naming): named the inputs private-repo-app-* so the purpose (private repo access via a GitHub App) is obvious from the input list
rejected(input-naming): bare app-* / owner / repositories from the prototype — too generic, no hint that they enable private repo access
decision(rewrite-mechanism): GIT_CONFIG_COUNT / GIT_CONFIG_KEY_<n> / GIT_CONFIG_VALUE_<n> env vars to layer url.*.insteadOf on top of the existing global git config
rejected(rewrite-mechanism): replacing GIT_CONFIG_GLOBAL with a temp gitconfig — drops the runner's existing global settings and hardcodes ~/.gitconfig while git also reads ~/.config/git/config
decision(rewrite-scope): emit per-repository url.*.insteadOf entries so the token only attaches to repos that are in the App installation scope
rejected(rewrite-scope): owner-wide rewrite — would catch other repos under the same owner and 404 because the installation token is scoped to specific repos
constraint(poetry-git-client): Poetry's default dulwich client ignores GIT_CONFIG_* env vars; POETRY_SYSTEM_GIT_CLIENT / POETRY_EXPERIMENTAL_SYSTEM_GIT_CLIENT are forced so the rewrite applies
constraint(cleanup-position): cleanup runs after pre-commit/prek (not right after Setup environment) so private hook repos can still be fetched while the rewrite is active
constraint(cleanup-failure-mode): cleanup uses always() so the rewrite is dropped even when poetry install / uv sync fails, preventing the token-bearing env vars from leaking into later if: always() steps
learned(actionlint-client-id): actionlint < rhysd/actionlint#652 does not yet recognize client-id on actions/create-github-app-token, hence the .github/actionlint.yaml ignore entries1 parent ccbb0c8 commit a30ddf2
3 files changed
Lines changed: 147 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
29 | 34 | | |
30 | 35 | | |
31 | 36 | | |
| |||
154 | 159 | | |
155 | 160 | | |
156 | 161 | | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
17 | 37 | | |
18 | 38 | | |
19 | 39 | | |
| |||
137 | 157 | | |
138 | 158 | | |
139 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
140 | 233 | | |
141 | 234 | | |
142 | 235 | | |
| |||
276 | 369 | | |
277 | 370 | | |
278 | 371 | | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
279 | 397 | | |
280 | 398 | | |
281 | 399 | | |
| |||
0 commit comments