René's URL Explorer Experiment


Title: Make actions/unpinned-tag lockfile- and $/-aware by nodeselector · Pull Request #22155 · github/codeql · GitHub

Open Graph Title: Make actions/unpinned-tag lockfile- and $/-aware by nodeselector · Pull Request #22155 · github/codeql

X Title: Make actions/unpinned-tag lockfile- and $/-aware by nodeselector · Pull Request #22155 · github/codeql

Description: Overview Makes the actions/unpinned-tag query (CWE-829) aware of two cases where a mutable uses: tag is actually safe, so it stops reporting them: $/ self repository references — uses: $/path/to/action targets an action in the same repository at the running commit, so it is inherently pinned (like ./ self-workspace references). Lockfile-pinned references — a uses: recorded as pinned by the repository's Actions lockfile (.github/workflows/actions.lock) resolves to an immutable commit at runtime, so the mutable tag written in the workflow is not a real risk. How lockfile-awareness works The query gains a single seam predicate: pinnedByLockfile(uses, nwo, version) :- pinnedByLockfileDataModel(uses.getLocation().getFile().getRelativePath(), nwo, version) pinnedByLockfileDataModel(workflow_path, nwo, ref) is a new extensible predicate, defaulting to empty (ext/config/pinned_by_lockfile.yml ships data: []), so behaviour is unchanged unless something populates it. The extractor generates a database-local model pack .github/workflows/actions.lock records the resolved ref for each uses: (e.g. v1.2.0), but workflows usually write a shorter mutable tag (@v1). The query matches the ref as written, so a naïve resolved == written comparison would never match. This PR adds a small Go generator (actions/extractor/tools/lockfile-extension-generator/) that: parses the minimal, stable core of the lockfile format directly — it depends only on gopkg.in/yaml.v3 and builds anywhere the Go toolchain is available (no external/private dependency), normalizes each resolved ref into its variants — v1.2.0 also emits v1.2 and v1 — so a workflow pinned via @v1 is matched, renders a pinnedByLockfileDataModel data-extension YAML. The Actions extractor's autobuild.sh runs the generator during database create and atomically writes a self-contained model pack (codeql/actions-lockfile-pins) into /lockfile-extension/. Generation is staged in a temp dir and published with a single rename only on success (EXIT-trap cleanup otherwise), so a failed build never leaves a half-written pack. Repositories without a lockfile are a clean no-op, and a missing Go toolchain / build failure degrades gracefully without aborting extraction. The generator ships as packaged extractor source via the existing codeql_pkg_files(exes = glob(["tools/**"])) rule — no bazel go_binary target is needed. Applying it at analysis time CodeQL has no mechanism to auto-apply extensions carried inside a database (confirmed: extensions load only from --model-packs, --additional-packs, or as a static query-pack dependency). Because the data is per-repository and generated at extraction time, it cannot be a static dependency, so suppression takes effect only when the generated pack is supplied to analysis: codeql database analyze \ --additional-packs /lockfile-extension \ --model-packs codeql/actions-lockfile-pins \ actions/ql/src/Security/CWE-829/UnpinnedActionsTag.ql This mirrors the established codeql/immutable-actions-list pattern in this repo: a separate model pack applied via --model-packs by GitHub's internal analysis harness, not wired into the query pack. Adding the two flags above to that harness (out of this repo, same boundary immutable-actions-list already lives at) is the final step to make suppression apply during real code scanning. A native dbscheme relation was considered and rejected — it would require touching the shared JavaScript dbscheme and diverges from the model-pack pattern GitHub deliberately uses for this class of data. Testing Query tests (actions/ql/test/query-tests/Security/CWE-829, all 8 pass locally, CodeQL 2.26.0): self_ref_dollar.yml — both $/ forms produce no findings. lockfile_pinned.yml + pinned_by_lockfile.model.yml — some-owner/pinned-action@v1 is suppressed via a test data-extension; confirms the dataExtensions glob in test/qlpack.yml loads the .model.yml. UntrustedCheckoutCritical.expected gains one benign step-adjacency edge from the new two-uses: fixture (not a security finding). Generator has golden + unit tests (generator_test.go, lockfile_test.go) covering pin parsing, semver normalization, lockfile parsing, and byte-exact rendered output. Real end-to-end via the actual Actions extractor (codeql database create on a synthetic repo whose workflow writes some-owner/pinned-action@v1 while the lockfile resolves v1.2.0), with the generator built on demand by a stock Go toolchain: baseline analysis (no pack) reports both some-owner/pinned-action@v1 and an unlocked other-owner/unpinned@v2; analysis with the extractor-generated pack reports only other-owner/unpinned@v2 — the lockfile-pinned ref is suppressed through the full @v1 → v1.2.0 normalization path. Atomic generation verified across three cases: lockfile present (atomic publish), absent (clean no-op), no Go toolchain (graceful skip, no partial pack). Limitations Composite actions: the lockfile keys pins transitively under the workflow path, so a uses: appearing only inside a composite action.yml is not emitted against that file's path and won't be suppressed. This is a completeness gap only — a row is emitted solely for (path, nwo, ref) the lockfile actually pins, so it can never wrongly suppress a reference. Lockfile format coupling: the generator parses a minimal core of the lockfile format (lockfile.go) mirroring the canonical github.com/github/actions-lockfile semantics; if that format evolves, update lockfile.go and the golden fixture together. Files actions/ql/src/Security/CWE-829/UnpinnedActionsTag.ql — not isSelfRepository(...) + not pinnedByLockfile(...). actions/ql/lib/codeql/actions/config/{Config,ConfigExtensions}.qll — declare/re-export pinnedByLockfileDataModel. actions/ql/lib/ext/config/pinned_by_lockfile.yml — empty default extension. actions/extractor/tools/lockfile-extension-generator/** — dependency-free Go generator + tests + fixtures + README. actions/extractor/tools/generate-lockfile-extension.sh, autobuild.sh — extractor integration (atomic). Change notes under actions/ql/lib/change-notes/ and actions/ql/src/change-notes/.

Open Graph Description: Overview Makes the actions/unpinned-tag query (CWE-829) aware of two cases where a mutable uses: tag is actually safe, so it stops reporting them: $/ self repository references — uses: $/path/to/a...

X Description: Overview Makes the actions/unpinned-tag query (CWE-829) aware of two cases where a mutable uses: tag is actually safe, so it stops reporting them: $/ self repository references — uses: $/path/to/a...

Opengraph URL: https://github.com/github/codeql/pull/22155

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:d0b25b4b-9c42-8434-c276-83157b5d6086
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id892C:E10D4:C32B53:10B5F64:6A63BF79
html-safe-nonce13795a25006fd2f55a20b9b749b6c51704eb51141fa07bbeaefe790663e520ab
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4OTJDOkUxMEQ0OkMzMkI1MzoxMEI1RjY0OjZBNjNCRjc5IiwidmlzaXRvcl9pZCI6Ijg4Mjc5MTA2OTE0Nzc1MDM4NjQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac109f6446907e06a62c9006828e84f57734480f213aee7384f34c810ea24d7088
hovercard-subject-tagpull_request:4025878949
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/github/codeql/pull/22155/files
twitter:imagehttps://avatars.githubusercontent.com/u/29457092?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/29457092?s=400&v=4
og:image:altOverview Makes the actions/unpinned-tag query (CWE-829) aware of two cases where a mutable uses: tag is actually safe, so it stops reporting them: $/ self repository references — uses: $/path/to/a...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None4c1c4f1792dfc705b5a5073fed6c61988f59766cec1277f24f55d4b876f9881c
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/github/codeql git https://github.com/github/codeql.git
octolytics-dimension-user_id9919
octolytics-dimension-user_logingithub
octolytics-dimension-repository_id143040428
octolytics-dimension-repository_nwogithub/codeql
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id143040428
octolytics-dimension-repository_network_root_nwogithub/codeql
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasefefaad6f0be5c33f57f42bb65ed668f74c872364
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/github/codeql/pull/22155/changes#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgithub%2Fcodeql%2Fpull%2F22155%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgithub%2Fcodeql%2Fpull%2F22155%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=github%2Fcodeql
Reloadhttps://github.com/github/codeql/pull/22155/changes
Reloadhttps://github.com/github/codeql/pull/22155/changes
Reloadhttps://github.com/github/codeql/pull/22155/changes
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
github https://github.com/github
codeqlhttps://github.com/github/codeql
Notifications https://github.com/login?return_to=%2Fgithub%2Fcodeql
Fork 2k https://github.com/login?return_to=%2Fgithub%2Fcodeql
Star 9.9k https://github.com/login?return_to=%2Fgithub%2Fcodeql
Code https://github.com/github/codeql
Issues 996 https://github.com/github/codeql/issues
Pull requests 439 https://github.com/github/codeql/pulls
Discussions https://github.com/github/codeql/discussions
Actions https://github.com/github/codeql/actions
Projects https://github.com/github/codeql/projects
Models https://github.com/github/codeql/models
Security and quality 0 https://github.com/github/codeql/security
Insights https://github.com/github/codeql/pulse
Code https://github.com/github/codeql
Issues https://github.com/github/codeql/issues
Pull requests https://github.com/github/codeql/pulls
Discussions https://github.com/github/codeql/discussions
Actions https://github.com/github/codeql/actions
Projects https://github.com/github/codeql/projects
Models https://github.com/github/codeql/models
Security and quality https://github.com/github/codeql/security
Insights https://github.com/github/codeql/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fgithub%2Fcodeql%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fgithub%2Fcodeql%2Fissues%2Fnew%2Fchoose
nodeselectorhttps://github.com/nodeselector
github:mainhttps://github.com/github/codeql/tree/main
nodeselector:nodeselector-actions-lockfile-aware-pinninghttps://github.com/nodeselector/codeql/tree/nodeselector-actions-lockfile-aware-pinning
Conversation 1 https://github.com/github/codeql/pull/22155
Findings https://github.com/github/codeql/pull/22155/findings
Commits 14 https://github.com/github/codeql/pull/22155/commits
Checks 11 https://github.com/github/codeql/pull/22155/checks
Files changed https://github.com/github/codeql/pull/22155/files
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
Make actions/unpinned-tag lockfile- and $/-aware https://github.com/github/codeql/pull/22155/changes#top
Show all changes 14 commits https://github.com/github/codeql/pull/22155/files
dc76ee9 actions: stop unpinned-tag flagging $/ self-references nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/dc76ee9284f65752e1ed1531106743afbdefa642
5088f9f actions: scaffold lockfile-aware pinning for unpinned-tag nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/5088f9f3ad164c7812aed8920f706ff4477cc80f
88c36ab actions: regenerate unpinned-tag test expected output nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/88c36ab6cfab1ae865c9cd7ef284b628d8fef23b
75734f7 actions: add lockfile-to-data-extension generator for unpinned-tag nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/75734f779843a2c66357f5d24210fa66c5f62045
f0cfed0 actions: generate lockfile-pinned data extension during extraction nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/f0cfed0244fde086488558d2d3bad416cf44a40d
5085314 actions: drop machine-specific replace, document lockfile generator l… nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/5085314d752069c215ad6382822ef075e55b36a4
75dc432 actions: keep lockfile generator go.mod free of local replace nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/75dc4324f6bd52f4bc9fa358a9010851fe21e70c
b1165b5 actions: rename self-reference to self repository in unpinned-tag nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/b1165b5fe32aa6c69fd8dfb4579139066e0bb199
7879f40 actions: make lockfile-extension generation atomic nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/7879f406b5b574849c8575dfa29609a821fed01f
f64f112 actions: drop private actions-lockfile dependency from generator nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/f64f1124d71f2cae0cb03e95144fc161b7d87600
fbe00de actions: emit empty data list for zero-row lockfile extension nodeselector Jul 10, 2026 https://github.com/github/codeql/pull/22155/commits/fbe00dea732f48846fb0d48236eab2808ab9eac7
5ae6d72 actions/unpinned-tag: match lockfile pins case-insensitively on owner… nodeselector Jul 13, 2026 https://github.com/github/codeql/pull/22155/commits/5ae6d72506e3f20271e58b9ddb5eb429117b097c
9a0eef7 actions: use US spelling in lockfile-aware pinning comments nodeselector Jul 13, 2026 https://github.com/github/codeql/pull/22155/commits/9a0eef78e36e755b7acc319e4c7d03d5fea4bc97
8c89f0e actions: drop lockfile-extension generator from unpinned-tag PR nodeselector Jul 23, 2026 https://github.com/github/codeql/pull/22155/commits/8c89f0e72368f850ccd25e38e98e8935a8754eb5
Clear filters https://github.com/github/codeql/pull/22155/files
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
2026-07-09-pinned-by-lockfile.md https://github.com/github/codeql/pull/22155/changes#diff-58ebf0cc8aa67660ccd79f828634451fc911357c36545a9103d30754ec40f937
Config.qll https://github.com/github/codeql/pull/22155/changes#diff-f8c80841de2226f950d4bf6708177610bec530d5fb0eff8ab5b420e00363828a
ConfigExtensions.qll https://github.com/github/codeql/pull/22155/changes#diff-4353e987f672dd9c1747c98299f02796e62a4354fd88bc3bd7659ffb01e51df7
pinned_by_lockfile.yml https://github.com/github/codeql/pull/22155/changes#diff-21b241f812867a40474af8e0068c171628b00648b1dc72463f7b21b0062300cb
UnpinnedActionsTag.ql https://github.com/github/codeql/pull/22155/changes#diff-59264c078a4c1e80472e55e7642bddf48395c4775ede6d0dfcfe36c157bf7690
2026-07-09-unpinned-tag-lockfile-aware.md https://github.com/github/codeql/pull/22155/changes#diff-ca0e3a868548b06c19425e846646be36fdf0524f8cf7fbe2bb95f1ad7acccacc
2026-07-09-unpinned-tag-self-repository.md https://github.com/github/codeql/pull/22155/changes#diff-63614366e938370f8f16d387c19b2583d76fe0125370d0cac1256e97dbb15d91
qlpack.yml https://github.com/github/codeql/pull/22155/changes#diff-786d21f058e0393d1f4f03ed4cc1a0b551d4aa4c713021905dfa9208c6faf04c
lockfile_pinned.yml https://github.com/github/codeql/pull/22155/changes#diff-1adee69b10d4e472c6025ba2a12209ad32fdd3f4a0667f4929e4d419e76103de
self_ref_dollar.yml https://github.com/github/codeql/pull/22155/changes#diff-7dcd1a52c3589c9a198e207186c9e3e114cf441decf9e4605de04829b96c131e
UnpinnedActionsTag.expected https://github.com/github/codeql/pull/22155/changes#diff-bb33e6b1b02a48d7de46640fa167b39fa77e68397891af6043b887151f7e764a
UntrustedCheckoutCritical.expected https://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
pinned_by_lockfile.model.yml https://github.com/github/codeql/pull/22155/changes#diff-73c65b911416b0e5eaf0b953523dfeae5aa1fe89fb58bb453923769595c6ecc9
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/lib/change-notes/2026-07-09-pinned-by-lockfile.mdhttps://github.com/github/codeql/pull/22155/changes#diff-58ebf0cc8aa67660ccd79f828634451fc911357c36545a9103d30754ec40f937
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/lib/change-notes/2026-07-09-pinned-by-lockfile.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/lib/codeql/actions/config/Config.qllhttps://github.com/github/codeql/pull/22155/changes#diff-f8c80841de2226f950d4bf6708177610bec530d5fb0eff8ab5b420e00363828a
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/lib/codeql/actions/config/Config.qll
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-f8c80841de2226f950d4bf6708177610bec530d5fb0eff8ab5b420e00363828a
https://github.com/github/codeql/pull/22155/changes#diff-f8c80841de2226f950d4bf6708177610bec530d5fb0eff8ab5b420e00363828a
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/lib/codeql/actions/config/ConfigExtensions.qllhttps://github.com/github/codeql/pull/22155/changes#diff-4353e987f672dd9c1747c98299f02796e62a4354fd88bc3bd7659ffb01e51df7
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/lib/codeql/actions/config/ConfigExtensions.qll
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-4353e987f672dd9c1747c98299f02796e62a4354fd88bc3bd7659ffb01e51df7
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
https://github.com/github/codeql/pull/22155/changes#diff-4353e987f672dd9c1747c98299f02796e62a4354fd88bc3bd7659ffb01e51df7
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/lib/ext/config/pinned_by_lockfile.ymlhttps://github.com/github/codeql/pull/22155/changes#diff-21b241f812867a40474af8e0068c171628b00648b1dc72463f7b21b0062300cb
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/lib/ext/config/pinned_by_lockfile.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/src/Security/CWE-829/UnpinnedActionsTag.qlhttps://github.com/github/codeql/pull/22155/changes#diff-59264c078a4c1e80472e55e7642bddf48395c4775ede6d0dfcfe36c157bf7690
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.ql
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-59264c078a4c1e80472e55e7642bddf48395c4775ede6d0dfcfe36c157bf7690
https://github.com/github/codeql/pull/22155/changes#diff-59264c078a4c1e80472e55e7642bddf48395c4775ede6d0dfcfe36c157bf7690
https://github.com/github/codeql/pull/22155/changes#diff-59264c078a4c1e80472e55e7642bddf48395c4775ede6d0dfcfe36c157bf7690
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/src/change-notes/2026-07-09-unpinned-tag-lockfile-aware.mdhttps://github.com/github/codeql/pull/22155/changes#diff-ca0e3a868548b06c19425e846646be36fdf0524f8cf7fbe2bb95f1ad7acccacc
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/src/change-notes/2026-07-09-unpinned-tag-lockfile-aware.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/src/change-notes/2026-07-09-unpinned-tag-self-repository.mdhttps://github.com/github/codeql/pull/22155/changes#diff-63614366e938370f8f16d387c19b2583d76fe0125370d0cac1256e97dbb15d91
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/src/change-notes/2026-07-09-unpinned-tag-self-repository.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/qlpack.ymlhttps://github.com/github/codeql/pull/22155/changes#diff-786d21f058e0393d1f4f03ed4cc1a0b551d4aa4c713021905dfa9208c6faf04c
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/qlpack.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-786d21f058e0393d1f4f03ed4cc1a0b551d4aa4c713021905dfa9208c6faf04c
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/query-tests/Security/CWE-829/.github/workflows/lockfile_pinned.ymlhttps://github.com/github/codeql/pull/22155/changes#diff-1adee69b10d4e472c6025ba2a12209ad32fdd3f4a0667f4929e4d419e76103de
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/lockfile_pinned.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/query-tests/Security/CWE-829/.github/workflows/self_ref_dollar.ymlhttps://github.com/github/codeql/pull/22155/changes#diff-7dcd1a52c3589c9a198e207186c9e3e114cf441decf9e4605de04829b96c131e
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/self_ref_dollar.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/query-tests/Security/CWE-829/UnpinnedActionsTag.expectedhttps://github.com/github/codeql/pull/22155/changes#diff-bb33e6b1b02a48d7de46640fa167b39fa77e68397891af6043b887151f7e764a
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/query-tests/Security/CWE-829/UnpinnedActionsTag.expected
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-bb33e6b1b02a48d7de46640fa167b39fa77e68397891af6043b887151f7e764a
https://github.com/github/codeql/pull/22155/changes#diff-bb33e6b1b02a48d7de46640fa167b39fa77e68397891af6043b887151f7e764a
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expectedhttps://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expected
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
https://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
https://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
https://github.com/github/codeql/pull/22155/changes#diff-253b33145e730c3c1af380349304c70cead4890c6a79976f6c09ef8fca8438d6
https://github.com/github/codeql/blob/main/CODEOWNERS#L5
actions/ql/test/query-tests/Security/CWE-829/pinned_by_lockfile.model.ymlhttps://github.com/github/codeql/pull/22155/changes#diff-73c65b911416b0e5eaf0b953523dfeae5aa1fe89fb58bb453923769595c6ecc9
View file https://github.com/github/codeql/blob/8c89f0e72368f850ccd25e38e98e8935a8754eb5/actions/ql/test/query-tests/Security/CWE-829/pinned_by_lockfile.model.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22155/{{ revealButtonHref }}
Please reload this pagehttps://github.com/github/codeql/pull/22155/changes
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.