Commit Graph

758 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
ba1575538b Merge pull request #496 from josegonzalez/dependabot/pip/python-packages-898938d50a
chore(deps): bump the python-packages group with 2 updates
2026-03-09 13:25:35 -04:00
dependabot[bot]
d5be07ec80 chore(deps): bump the python-packages group with 2 updates
Bumps the python-packages group with 2 updates: [black](https://github.com/psf/black) and [setuptools](https://github.com/pypa/setuptools).


Updates `black` from 26.1.0 to 26.3.0
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/26.1.0...26.3.0)

Updates `setuptools` from 82.0.0 to 82.0.1
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v82.0.0...v82.0.1)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 26.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: setuptools
  dependency-version: 82.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 13:28:37 +00:00
GitHub Action
68af1d406a Release version 0.61.5 0.61.5 2026-02-18 21:04:32 +00:00
Jose Diaz-Gonzalez
b112b43a08 Merge pull request #490 from Iamrodos/fix/489-empty-repo-none-comparison
Fix empty repository crash due to None timestamp comparison (#489)
2026-02-18 16:03:57 -05:00
Rodos
f54a5458f6 Fix empty repository crash due to None timestamp comparison (#489)
Empty repositories have None for pushed_at/updated_at, causing a
TypeError when compared to the last_update string. Use .get() with
truthiness check to skip None timestamps in incremental tracking.
2026-02-18 20:10:48 +11:00
GitHub Action
60067650b0 Release version 0.61.4 0.61.4 2026-02-16 05:46:39 +00:00
Jose Diaz-Gonzalez
655886fa80 Merge pull request #488 from Iamrodos/fix/487-dmca-regression
Fix HTTP 451 DMCA and 403 TOS handling regression (#487)
2026-02-16 00:46:05 -05:00
Rodos
0162f7ed46 Fix HTTP 451 DMCA and 403 TOS handling regression (#487)
The DMCA handling added in PR #454 had a bug: make_request_with_retry()
raises HTTPError before retrieve_data() could check the status code via
getcode(), making the case 451 handler dead code. This also affected
HTTP 403 TOS violations (e.g. jumoog/MagiskOnWSA).

Fix by catching HTTPError in retrieve_data() and converting 451 and
blocked 403 responses (identified by "block" key in response body) to
RepositoryUnavailableError. Non-block 403s (permissions, scopes) still
propagate as HTTPError. Also handle RepositoryUnavailableError in
retrieve_repositories() for the --repository case.

Rewrote tests to mock urlopen (not make_request_with_retry) to exercise
the real code path that was previously untested.

Closes #487
2026-02-16 10:16:33 +11:00
Jose Diaz-Gonzalez
8c1a13475a Merge pull request #485 from josegonzalez/dependabot/pip/python-packages-906bf77f00
chore(deps): bump setuptools from 80.10.2 to 82.0.0 in the python-packages group
2026-02-11 15:26:03 -05:00
dependabot[bot]
6268a4c5c6 chore(deps): bump setuptools in the python-packages group
Bumps the python-packages group with 1 update: [setuptools](https://github.com/pypa/setuptools).


Updates `setuptools` from 80.10.2 to 82.0.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.10.2...v82.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 82.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 14:31:40 +00:00
Jose Diaz-Gonzalez
4b2295db0d Merge pull request #484 from josegonzalez/dependabot/pip/python-packages-e903f47b53
chore(deps): bump setuptools from 80.10.1 to 80.10.2 in the python-packages group
2026-01-26 10:54:29 -05:00
dependabot[bot]
be900d1f3f chore(deps): bump setuptools in the python-packages group
Bumps the python-packages group with 1 update: [setuptools](https://github.com/pypa/setuptools).


Updates `setuptools` from 80.10.1 to 80.10.2
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.10.1...v80.10.2)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.10.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 14:08:53 +00:00
GitHub Action
9be6282719 Release version 0.61.3 0.61.3 2026-01-24 05:45:42 +00:00
Jose Diaz-Gonzalez
1102990af0 Merge pull request #482 from Iamrodos/fix-481-private-key-typo
Fix KeyError: 'Private' when using --all flag (#481)
2026-01-24 00:45:01 -05:00
Jose Diaz-Gonzalez
311ffb40cd Merge pull request #483 from josegonzalez/dependabot/pip/python-packages-d4f9607e9b
chore(deps): bump setuptools from 80.9.0 to 80.10.1 in the python-packages group
2026-01-24 00:44:01 -05:00
dependabot[bot]
2f5e7c2dcf chore(deps): bump setuptools in the python-packages group
Bumps the python-packages group with 1 update: [setuptools](https://github.com/pypa/setuptools).


Updates `setuptools` from 80.9.0 to 80.10.1
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.9.0...v80.10.1)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 13:05:17 +00:00
Rodos
0d8a504b02 Fix KeyError: 'Private' when using --all flag (#481)
The repository dictionary uses lowercase "private" key. Use .get() with
the correct case to match the pattern used elsewhere in the codebase.

The bug only affects --all users since --security-advisories short-circuits
before the key access.
2026-01-21 21:12:03 +11:00
GitHub Action
712d22d124 Release version 0.61.2 0.61.2 2026-01-19 17:40:27 +00:00
Jose Diaz-Gonzalez
e0c9d65225 Merge pull request #480 from josegonzalez/dependabot/pip/python-packages-65ea79b78d
chore(deps): bump black from 25.12.0 to 26.1.0 in the python-packages group
2026-01-19 12:39:54 -05:00
Jose Diaz-Gonzalez
52d996f784 Merge pull request #479 from lukasbestle/fix/security-advisories-private
Fixes to `--security-advisories` option
2026-01-19 12:39:48 -05:00
dependabot[bot]
e6283f9384 chore(deps): bump black in the python-packages group
Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).


Updates `black` from 25.12.0 to 26.1.0
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/25.12.0...26.1.0)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 26.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 14:50:28 +00:00
Lukas Bestle
1181f811b7 docs: Explain security advisories in README 2026-01-16 08:52:45 +01:00
Lukas Bestle
856ad5db41 fix: Skip security advisories for private repos unless explicitly requested 2026-01-14 21:10:12 +01:00
Lukas Bestle
c6fa8c7695 feat: Only make security advisory dir if successful
Avoids empty directories for private repos
2026-01-14 21:02:51 +01:00
Lukas Bestle
93e505c07d fix: Handle 404 errors on security advisories 2026-01-14 21:01:59 +01:00
GitHub Action
6780d3ad6c Release version 0.61.1 0.61.1 2026-01-13 23:10:05 +00:00
Jose Diaz-Gonzalez
65bacc27f0 Merge pull request #478 from Iamrodos/fix-477-fine-grained-pat-attachments
Fix 477 fine grained pat attachments
2026-01-13 18:09:27 -05:00
Rodos
ab0eebb175 Refactor test fixtures to use shared create_args helper
Uses the real parse_args() function to get CLI defaults, so when
new arguments are added they're automatically available to all tests.

Changes:
- Add tests/conftest.py with create_args fixture
- Update 8 test files to use shared fixture
- Remove duplicate _create_mock_args methods
- Remove redundant @pytest.fixture mock_args definitions

This eliminates the need to update multiple test files when
adding new CLI arguments.
2026-01-13 13:47:33 +11:00
Rodos
fce4abb74a Fix fine-grained PAT attachment downloads for private repos (#477)
Fine-grained personal access tokens cannot download attachments from
private repositories directly due to a GitHub platform limitation.

This adds a workaround for image attachments (/assets/ URLs) using
GitHub's Markdown API to convert URLs to JWT-signed URLs that can be
downloaded without authentication.

Changes:
- Add get_jwt_signed_url_via_markdown_api() function
- Detect fine-grained token + private repo + /assets/ URL upfront
- Use JWT workaround for those cases, mark success with jwt_workaround flag
- Skip download with skipped_at when workaround fails
- Add startup warning when using --attachments with fine-grained tokens
- Document limitation in README (file attachments still fail)
- Add 6 unit tests for JWT workaround logic
2026-01-13 13:15:38 +11:00
GitHub Action
c63fb37d30 Release version 0.61.0 0.61.0 2026-01-12 16:30:28 +00:00
Jose Diaz-Gonzalez
94b08d06c9 Merge pull request #476 from lukasbestle/patch-1
docs: Add missing `--retries` argument to README
2026-01-12 11:29:56 -05:00
Jose Diaz-Gonzalez
54a9872e47 Merge pull request #475 from lukasbestle/feat/security-advisories
feat: Backup of repository security advisories
2026-01-11 14:26:39 -05:00
Lukas Bestle
b3d35f9d9f docs: Add missing --retries argument to README 2026-01-10 15:44:37 +01:00
Lukas Bestle
a175ac3ed9 test: Adapt tests to new argument 2026-01-10 11:12:42 +01:00
Lukas Bestle
9a6f0b4c21 feat: Backup of repository security advisories 2026-01-09 21:04:21 +01:00
GitHub Action
858731ebbd Release version 0.60.0 0.60.0 2025-12-24 00:45:01 +00:00
Jose Diaz-Gonzalez
2e999d0d3c Merge pull request #474 from mwtzzz/retry_logic
update retry logic and logging
2025-12-23 19:44:32 -05:00
michaelmartinez
44b0003ec9 updates to the tests, and fixes to the retry 2025-12-23 14:07:38 -08:00
michaelmartinez
5ab3852476 rm max_retries.py 2025-12-23 08:57:57 -08:00
michaelmartinez
8b21e2501c readme 2025-12-23 08:55:52 -08:00
michaelmartinez
f9827da342 don't use a global variable, pass the args instead 2025-12-23 08:53:54 -08:00
michaelmartinez
1f2ec016d5 readme, simplify the logic a bit 2025-12-22 16:13:12 -08:00
michaelmartinez
8b1b632d89 max_retries 5 2025-12-22 14:47:26 -08:00
michaelmartinez
89502c326d update retry logic and logging
### What
1. configureable retry count
2. additional logging

### Why
1. pass retry count as a command line arg; default 5
2. show details when api requests fail

### Testing before merge
compiles cleanly

### Validation after merge
compile and test

### Issue addressed by this PR
https://github.com/stellar/ops/issues/2039
2025-12-22 14:23:02 -08:00
GitHub Action
81a72ac8af Release version 0.59.0 0.59.0 2025-12-21 23:48:36 +00:00
Jose Diaz-Gonzalez
3edbfc777c Merge pull request #472 from Iamrodos/feature/108-starred-skip-size-over
Add --starred-skip-size-over flag to limit starred repo size (#108)
2025-12-21 18:47:58 -05:00
Rodos
3c43e0f481 Add --starred-skip-size-over flag to limit starred repo size (#108)
Allow users to skip starred repositories exceeding a size threshold
when using --all-starred. Size is specified in MB and checked against
the GitHub API's repository size field.

- Only affects starred repos; user's own repos always included
- Logs each skipped repo with name and size

Closes #108
2025-12-21 22:18:09 +11:00
Jose Diaz-Gonzalez
875f09eeaf Merge pull request #473 from Iamrodos/chore/remove-password-auth
chore: remove deprecated -u/-p password authentication options
2025-12-21 01:36:35 -05:00
Rodos
db36c3c137 chore: remove deprecated -u/-p password authentication options 2025-12-20 19:16:11 +11:00
GitHub Action
c70cc43f57 Release version 0.58.0 0.58.0 2025-12-16 15:17:23 +00:00