Commit 1ffdf0d
fix: support repositories with pull requests disabled (MeltanoLabs#571)
## Summary
This PR lets the tap handle repositories that have pull requests
disabled.
GitHub can return `"has_pull_requests": false` in a repository payload.
For those repositories, `GET /repos/{owner}/{repo}/pulls` can return
`404 Not Found` even though the repository itself is readable and other
endpoints can still be extracted.
Instead of failing the sync for that case, the tap now skips pull
request extraction for repositories where GitHub explicitly reports that
pull requests are disabled.
## Behavior
- When `has_pull_requests` is exactly `false`, the tap skips the
`/pulls` request for that repository.
- When `has_pull_requests` is `true`, missing, `null`, `0`, or otherwise
unknown, behavior is unchanged: the tap still requests `/pulls` and
surfaces GitHub errors normally.
- The change applies only to pull request extraction.
## Implementation
- Includes GitHub's `has_pull_requests` field in repository records.
- Carries that flag to the pull request extraction step.
- Checks the flag before requesting `/repos/{owner}/{repo}/pulls`.
## What this does not change
- It does not add broad `404` or `403` tolerance.
- It does not change issue extraction or infer pull request availability
from `has_issues`.
- It does not change discussion extraction.
## Validation
```text
LOGLEVEL=WARNING uv run pytest tests/test_tap.py -k 'pull_request_capability or pull_requests_stream or issues_stream'
# 9 passed, 8 deselected
uv run ruff check tap_github/repository_streams.py tests/test_tap.py
# All checks passed
uv run mypy tap_github
# Success: no issues found in 12 source files
uv run ty check tap_github
# All checks passed
git diff --check
# passed
```
<!-- github-gate:idempotency=tap-github-pr571-body-proposal-only -->
---------
Co-authored-by: AI (Pi) <noreply@pi.dev>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>1 parent e2abbee commit 1ffdf0d
2 files changed
Lines changed: 154 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| 246 | + | |
246 | 247 | | |
247 | 248 | | |
248 | 249 | | |
| |||
324 | 325 | | |
325 | 326 | | |
326 | 327 | | |
| 328 | + | |
327 | 329 | | |
328 | 330 | | |
329 | 331 | | |
| |||
1302 | 1304 | | |
1303 | 1305 | | |
1304 | 1306 | | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
1305 | 1325 | | |
1306 | 1326 | | |
1307 | 1327 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| 15 | + | |
13 | 16 | | |
14 | 17 | | |
15 | 18 | | |
| |||
126 | 129 | | |
127 | 130 | | |
128 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 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 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
129 | 263 | | |
130 | 264 | | |
131 | 265 | | |
| |||
0 commit comments