Repository navigation
chore(ci): remove unused and replaceable secrets - #778
Merged
Merged
Conversation
|
OX Security reviewed this pull request — nothing to fix.
Branch |
olivermeyer
force-pushed
the
chore/audit-github-secrets
branch
2 times, most recently
from
November 13, 2026 13:55
59402e3 to
53bb6ba
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. |
olivermeyer
force-pushed
the
chore/audit-github-secrets
branch
3 times, most recently
from
November 13, 2026 14:44
c39e367 to
8fdc7ab
Compare
Delete the four Claude Code workflows and their labels, so that the ANTHROPIC_API_KEY copies can be deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the heartbeat steps of the scheduled tests and audit and the uptime badge, so that the five BETTERSTACK_* secrets can be deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the Sentry check-ins of the scheduled tests, the Sentry settings in the test .env files and the sentry-cli install, so that SENTRY_DSN can be deleted. A later step still fails the daily job on test failures. Allowlist the two Trivy checksums that detect-secrets flags. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SDK gets no further releases, so SENTRY_AUTH_TOKEN and the SENTRY_ORG and SENTRY_PROJECT variables can be deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SDK gets no further releases, so the Slack webhook and channel ID secrets can be deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
olivermeyer
force-pushed
the
chore/audit-github-secrets
branch
from
November 13, 2026 14:53
3f9095d to
49ac1a1
Compare
CI logs in with the refresh token, which sends the public interactive client ID from _constants.py. Only the device flow reads AIGNOSTICS_CLIENT_ID_DEVICE, so stop passing it. The Ketryx project ID is public, so read it from a repository variable instead of a secret. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
olivermeyer
force-pushed
the
chore/audit-github-secrets
branch
from
November 13, 2026 14:56
49ac1a1 to
0339f55
Compare
olivermeyer
marked this pull request as ready for review
November 13, 2026 15:01
arne-aignx
approved these changes
Nov 13, 2026
olivermeyer
enabled auto-merge (rebase)
November 13, 2026 15:04
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Why?
Security Day asks each repository to audit its GitHub Actions secrets and to delete every secret that it can do without. The BetterStack monitors and the Claude Code workflows are retired, and the SDK is deprecated with no further releases planned, so their secrets can go. CI passes two device client IDs that it never reads, and stores the public Ketryx project ID as a secret.
How?
This PR (one commit per concern) removes the BetterStack heartbeat steps and uptime badge, all four Claude Code workflows (and their labels), the Slack release announcement, the Sentry release step and the Sentry cron check-ins of the scheduled tests, stops passing the device client IDs, and moves the Ketryx project ID to a repository variable. A later step still fails the daily job when tests fail, so the removed check-in step changes no job result.
Device client IDs and the Ketryx variable
CI does not need
AIGNOSTICS_CLIENT_ID_DEVICE.get_tokenuses the refresh token when one is set, and_do_access_token_from_refresh_tokensendsclient_id_interactivefromsrc/aignostics/platform/_constants.py. Only_perform_device_flowreads the device client ID, and CI always has a refresh token. The tests that readclient_id_deviceset their own value. The Auth0 logs of the production CI user show only the interactive client.KETRYX_PROJECTis set as a repository variable (2026-11-13). Its value is the Ketryx project "Python SDK", which is connected to this repository.Audit report
Scope of the search: all files in
.github/(24 workflows after this PR, 1 composite action,CLAUDE.md). The search found nosecrets: inherit, notoJSON(secrets)and no cross-repository reusable workflow. All referenced names exist at some level, so no row is "not set".CODECOV_TOKEN,SONAR_TOKEN,RELEASE_BOT_APP_IDandRELEASE_BOT_PRIVATE_KEYcome from the organization, and the repository has no copy of them.AIGNOSTICS_CLIENT_ID_DEVICE_STAGING.envof_test.ymland the scheduled tests, but only the device flow reads it, and CI does not run it. The.envlines are removed in this PRAIGNOSTICS_CLIENT_ID_DEVICE_PRODUCTIONAIGNOSTICS_REFRESH_TOKEN_STAGING.envof_test.ymland the scheduled testsAIGNOSTICS_REFRESH_TOKEN_PRODUCTION.envof the scheduled production testsANTHROPIC_API_KEYBETTERSTACK_AUDIT_HEARTBEAT_URL_scheduled-audit.yml, removed in this PRBETTERSTACK_HEARTBEAT_URL_STAGING_scheduled-test-hourly.yml, removed in this PRBETTERSTACK_HEARTBEAT_URL_PRODUCTION_scheduled-test-hourly.yml, removed in this PRBETTERSTACK_HEARTBEAT_URL_FLOWS_STAGING_scheduled-test-daily.yml, removed in this PRBETTERSTACK_HEARTBEAT_URL_FLOWS_PRODUCTION_scheduled-test-daily.yml, removed in this PRKETRYX_API_KEY_ketryx_report_and_check.ymlKETRYX_PROJECTCLAUDE.mdSENTRY_AUTH_TOKEN_package-publish.yml, removed in this PRSENTRY_DSN.envof the tests (sample rates 0, so no events) and the Sentry cron check-ins of the scheduled tests, both removed in this PRSLACK_CHANNEL_ID_RELEASE_ANNOUNCEMENT_package-publish.yml, removed in this PRSLACK_WEBHOOK_URL_RELEASE_ANNOUNCEMENT_package-publish.yml, removed in this PRUV_PUBLISH_TOKENuv publishin_package-publish.ymlAIGNOSTICS_CLIENT_ID_DEVICE_STAGING(Dependabot).github/dependabot.yml, Dependabot security updates are off, last Dependabot PR on 2026-06-17. Renovate opens the dependency PRs, and those PRs read the Actions secretsAIGNOSTICS_CLIENT_ID_DEVICE_PRODUCTION(Dependabot)AIGNOSTICS_REFRESH_TOKEN_STAGING(Dependabot)AIGNOSTICS_REFRESH_TOKEN_PRODUCTION(Dependabot)ANTHROPIC_API_KEY(Dependabot)Delete now: the Dependabot copies (
--app dependabot). GitHub keeps Dependabot secrets apart from Actions secrets. Only workflows that Dependabot starts can read them, and this repository gets no Dependabot PRs any more. CI reads the Actions copies, which stay:Delete after this PR is merged and the scheduled jobs and the next CI run are green: the Actions copies and variables, grouped by commit:
Notes
# pragma: allowlist secretto the two Trivy SHA-256 lines in_install_dev_tools.bash. Thedetect-secretshook flags these checksums as hex strings when a commit changes that file.Security Day rows
ANTHROPIC_API_KEY): Done after the delete commands. No WIF rule is necessary, because the workflows that need the key are gone.🤖 Generated with Claude Code