Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
6a4e35f
Add support for SHA-256 Git object IDs
henrymercer May 12, 2026
de3e561
Improve regex clarity
henrymercer May 12, 2026
d122da3
Bump minimum CodeQL CLI version to 2.19.4
henrymercer May 12, 2026
97fb30d
Remove `ForceOverwrite` tools feature
henrymercer May 12, 2026
a333d64
Remove `DatabaseInterpretResultsSupportsSarifRunProperty` tools feature
henrymercer May 12, 2026
b986640
Add note about `CODEQL_VERSION_ZSTD_BUNDLE`
henrymercer May 12, 2026
a66f7bb
Merge branch 'main' into henrymercer/sha256
henrymercer May 13, 2026
9c3aedb
Update PR check testing matrix
henrymercer May 13, 2026
4235601
Log error for non-default `analysis-kinds` input outside of managed w…
mbg May 13, 2026
93d215d
Merge branch 'main' into henrymercer/sha256
henrymercer May 13, 2026
3c8c0ae
Remove unnecessary sinon `restore` calls
henrymercer May 13, 2026
d4eab00
Bump sinon from 21.1.2 to 22.0.0
dependabot[bot] May 14, 2026
e8d3fa2
Merge branch 'main' into henrymercer/sha256
henrymercer May 14, 2026
fcdf5dd
Add PR checks shortcut to `package.json`
henrymercer May 14, 2026
aa005fa
PR checks: Run slowest macOS checks on larger runners
henrymercer May 14, 2026
a32db48
Move checks back to default runners
henrymercer May 14, 2026
1b65777
Address review comments
henrymercer May 14, 2026
931147e
Improve OS types and docs
henrymercer May 15, 2026
db84cb5
Remove outdated comments for `analyze-action` tests
mbg May 15, 2026
9e1f914
Merge `analyze-action-input` test into `analyze-action-env` file
mbg May 15, 2026
4695921
Rename `analyze-action-env.test.ts` to `analyze-action.test.ts`
mbg May 15, 2026
2320f9d
"action" to "Action" in `build.mjs`
mbg May 15, 2026
ab5047b
Add missing semicolons
mbg May 15, 2026
064674d
Fix typo
mbg May 15, 2026
b43bb7b
Merge branch 'main' into henrymercer/sha256
henrymercer May 15, 2026
06c7e6f
Update changelog and version after v4.35.5
github-actions[bot] May 15, 2026
f1ce9f4
Rebuild
github-actions[bot] May 15, 2026
7187b6e
Merge pull request #3906 from github/mergeback/v4.35.5-to-main-9e0d7b8d
mbg May 15, 2026
bbef5ff
Merge pull request #3904 from github/mbg/esbuild/split-follow-up
mbg May 15, 2026
67f4038
Merge pull request #3903 from github/henrymercer/macos-larger-runners
henrymercer May 15, 2026
2a02de1
Read token from stdin in `sync-checks.ts`
henrymercer May 15, 2026
93c8a9e
Update `update-release-branch.py` to take token from stdin
henrymercer May 15, 2026
5b815f2
Merge branch 'main' into henrymercer/sha256
henrymercer May 15, 2026
b30a935
Merge branch 'main' into dependabot/npm_and_yarn/sinon-22.0.0
mbg May 15, 2026
cf51dca
Merge pull request #3893 from github/henrymercer/sha256
henrymercer May 15, 2026
2365a46
Merge pull request #3908 from github/henrymercer/token-stdin
henrymercer May 15, 2026
b71f5ae
Merge pull request #3898 from github/dependabot/npm_and_yarn/sinon-22…
mbg May 15, 2026
05e8f28
Merge branch 'main' into henrymercer/require-codeql-2.19.4
henrymercer May 15, 2026
e94195c
Move changelog note to right place
henrymercer May 18, 2026
c8a3492
Merge pull request #3894 from github/henrymercer/require-codeql-2.19.4
henrymercer May 18, 2026
4fc0f3e
Add a PR check that comments on significant repo size changes
henrymercer May 18, 2026
6f8805e
Default setup env vars: Restrict results to `src`
henrymercer May 18, 2026
fcc1e31
Action size: Reduce duplication between `upload-lib` and `entry-points`
henrymercer May 18, 2026
bcffb2b
Unify checks into a single job
henrymercer May 18, 2026
5a80681
Address review comments
henrymercer May 18, 2026
9665bc2
Downgrade ava to version 6.4.1
henrymercer May 18, 2026
b5b50d6
Merge branch 'main' into henrymercer/repo-size-diff-check
henrymercer May 18, 2026
9b6438e
Tweak workflow
henrymercer May 18, 2026
26a1e57
Merge pull request #3913 from github/henrymercer/downgrade-ava
henrymercer May 18, 2026
8442bc0
Release process: Automatically rebuild PRs
henrymercer May 18, 2026
5e9ae56
Add specific instruction about "Rebuild" commit
henrymercer May 18, 2026
b8baf41
Remove comments about npm cache
henrymercer May 18, 2026
eb9a790
Apply suggestion from @henrymercer
henrymercer May 18, 2026
15a712b
Address review comments
henrymercer May 18, 2026
2c8faa5
Pass comment body file directly
henrymercer May 18, 2026
b79a976
Merge remote-tracking branch 'origin/main' into mbg/analysis-kinds/wa…
mbg May 19, 2026
0a7280a
Assert that nothing is logged
mbg May 19, 2026
3b0e64c
Merge pull request #3914 from github/henrymercer/auto-rebuild-release…
henrymercer May 19, 2026
2a73406
Address review comments
henrymercer May 19, 2026
f62fbc9
Merge pull request #3895 from github/mbg/analysis-kinds/warn-on-non-c…
henrymercer May 19, 2026
f4d0a7a
Merge pull request #3912 from github/henrymercer/smaller-upload-lib
henrymercer May 19, 2026
a134948
Bump `brace-expansion`
henrymercer May 20, 2026
164c32a
Merge pull request #3918 from github/henrymercer/upgrade-brace-expansion
henrymercer May 20, 2026
a14f75e
Address review comments
henrymercer May 20, 2026
f3f52bf
Revert `getErrorMessage` import
henrymercer May 20, 2026
8ffeae7
CI: Automatically cancel non-generated workflows
henrymercer May 20, 2026
c5297a2
Merge pull request #3919 from github/henrymercer/workflow-concurrency
henrymercer May 20, 2026
72ac23c
Update excluded required check list
henrymercer May 21, 2026
8449852
Merge pull request #3910 from github/henrymercer/repo-size-diff-check
henrymercer May 21, 2026
2dc40ce
Update default bundle to codeql-bundle-v2.25.5
github-actions[bot] May 22, 2026
d1f74b7
Add changelog note
github-actions[bot] May 22, 2026
ebc2d9e
Merge pull request #3926 from github/update-bundle/codeql-bundle-v2.25.5
oscarsj May 22, 2026
7740f2f
Update changelog for v4.36.0
github-actions[bot] May 22, 2026
7211b7c
Merge pull request #3927 from github/update-v4.36.0-ebc2d9e2b
oscarsj May 22, 2026
c45c87a
Revert "Update version and changelog for v3.35.5"
github-actions[bot] May 22, 2026
9b64c8b
Revert "Rebuild"
github-actions[bot] May 22, 2026
2be5c61
Merge remote-tracking branch 'origin/releases/v4' into backport-v3.36…
github-actions[bot] May 22, 2026
a9739a6
Update version and changelog for v3.36.0
github-actions[bot] May 22, 2026
bc887ca
Rebuild
github-actions[bot] May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 32 additions & 4 deletions .github/actions/prepare-mergeback-branch/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,38 @@ runs:
git add .
git commit -m "Update changelog and version after ${VERSION}"

git push origin "${NEW_BRANCH}"
# Update the build artifacts with the new version number
- name: Rebuild the Action
shell: bash
run: |
set -exu
npm ci
npm run build

- name: Check for rebuild changes
id: rebuild_changes
shell: bash
run: |
set -exu
git add --all
if git diff --cached --quiet; then
echo "has_changes=false" >> "${GITHUB_OUTPUT}"
else
echo "has_changes=true" >> "${GITHUB_OUTPUT}"
fi

- name: Commit rebuild
if: steps.rebuild_changes.outputs.has_changes == 'true'
shell: bash
run: |
set -exu
git commit -m "Rebuild"

- name: Push mergeback branch
shell: bash
env:
NEW_BRANCH: "${{ inputs.branch }}"
run: git push origin "${NEW_BRANCH}"

- name: Create PR
shell: bash
Expand All @@ -60,8 +91,6 @@ runs:

Please do the following:

- [ ] Remove and re-add the "Rebuild" label to the PR to trigger just this workflow.
- [ ] Wait for the "Rebuild" workflow to push a commit updating the distribution files.
- [ ] Mark the PR as ready for review to trigger the full set of PR checks.
- [ ] Approve and merge the PR. When merging the PR, make sure "Create a merge commit" is
selected rather than "Squash and merge" or "Rebase and merge".
Expand All @@ -74,7 +103,6 @@ runs:
--head "${NEW_BRANCH}" \
--base "${BASE_BRANCH}" \
--title "${pr_title}" \
--label "Rebuild" \
--body "${pr_body}" \
--assignee "${GITHUB_ACTOR}" \
--draft
2 changes: 1 addition & 1 deletion .github/actions/release-initialise/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24
cache: 'npm'

- name: Set up Python
Expand Down
76 changes: 56 additions & 20 deletions .github/update-release-branch.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,27 @@
"""

# NB: This exact commit message is used to find commits for reverting during backports.
# Changing it requires a transition period where both old and new versions are supported.
# Changing it requires a transition period where both old and new versions are supported.
BACKPORT_COMMIT_MESSAGE = 'Update version and changelog for v'

# Commit message used for rebuild commits, both those produced by this script and those produced
# by the `Rebuild Action` workflow (`.github/workflows/rebuild.yml`).
REBUILD_COMMIT_MESSAGE = 'Rebuild'

# Name of the remote
ORIGIN = 'origin'

# Environment variables to check for a GitHub API token.
TOKEN_ENVIRONMENT_VARIABLES = ('GH_TOKEN', 'GITHUB_TOKEN')

# Gets a GitHub API token from one of the supported environment variables.
def get_github_token():
for variable_name in TOKEN_ENVIRONMENT_VARIABLES:
token = os.environ.get(variable_name, '').strip()
if token:
return token
raise Exception('Missing GitHub token. Set GITHUB_TOKEN or GH_TOKEN.')

# Runs git with the given args and returns the stdout.
# Raises an error if git does not exit successfully (unless passed
# allow_non_zero_exit_code=True).
Expand All @@ -32,6 +47,28 @@ def run_git(*args, allow_non_zero_exit_code=False):
raise Exception(f'Call to {" ".join(cmd)} exited with code {p.returncode} stderr: {p.stderr.decode("ascii")}.')
return p.stdout.decode('ascii')

# Runs the given command, streaming output to the console.
# Raises an error if the command does not exit successfully.
def run_command(*args):
cmd = list(args)
print(f'Running `{" ".join(cmd)}`.')
subprocess.run(cmd, check=True)

# Rebuilds the action and commits any changes.
def rebuild_action():
# For backports, the only source-level change vs the source branch is the new version number,
# so we just need to refresh the version embedded in `lib/`.
run_command('npm', 'ci')
run_command('npm', 'run', 'build')

run_git('add', '--all')
# `git diff --cached --quiet` exits 0 if there are no staged changes, 1 if there are.
if subprocess.run(['git', 'diff', '--cached', '--quiet']).returncode == 0:
print('Rebuild produced no changes; skipping Rebuild commit.')
else:
run_git('commit', '-m', REBUILD_COMMIT_MESSAGE)
print('Created Rebuild commit.')

# Returns true if the given branch exists on the origin remote
def branch_exists_on_remote(branch_name):
return run_git('ls-remote', '--heads', ORIGIN, branch_name).strip() != ''
Expand Down Expand Up @@ -87,20 +124,18 @@ def open_pr(
body.append('Please do the following:')
if len(conflicted_files) > 0:
body.append(' - [ ] Ensure `package.json` file contains the correct version.')
body.append(' - [ ] Add commits to this branch to resolve the merge conflicts ' +
body.append(' - [ ] Add a commit to this branch to resolve the merge conflicts ' +
'in the following files:')
body.extend([f' - [ ] `{file}`' for file in conflicted_files])
body.extend([f' - `{file}`' for file in conflicted_files])
body.append(' - [ ] Rebuild the Action locally (`npm run build`) and push any changes to the ' +
f'built output in `lib` as a separate commit named exactly `{REBUILD_COMMIT_MESSAGE}`.')
body.append(' - [ ] Ensure another maintainer has reviewed the additional commits you added to this ' +
'branch to resolve the merge conflicts.')
body.append(' - [ ] Ensure the CHANGELOG displays the correct version and date.')
body.append(' - [ ] Ensure the CHANGELOG includes all relevant, user-facing changes since the last release.')
body.append(f' - [ ] Check that there are not any unexpected commits being merged into the `{target_branch}` branch.')
body.append(' - [ ] Ensure the docs team is aware of any documentation changes that need to be released.')

if not is_primary_release:
body.append(' - [ ] Remove and re-add the "Rebuild" label to the PR to trigger just this workflow.')
body.append(' - [ ] Wait for the "Rebuild" workflow to push a commit updating the distribution files.')

body.append(' - [ ] Mark the PR as ready for review to trigger the full set of PR checks.')
body.append(' - [ ] Approve and merge this PR. Make sure `Create a merge commit` is selected rather than `Squash and merge` or `Rebase and merge`.')

Expand All @@ -109,13 +144,11 @@ def open_pr(
body.append(' - [ ] Merge all backport PRs to older release branches, that will automatically be created once this PR is merged.')

title = f'Merge {source_branch} into {target_branch}'
labels = ['Rebuild'] if not is_primary_release else []

# Create the pull request
# PR checks won't be triggered on PRs created by Actions. Therefore mark the PR as draft so that
# a maintainer can take the PR out of draft, thereby triggering the PR checks.
pr = repo.create_pull(title=title, body='\n'.join(body), head=new_branch_name, base=target_branch, draft=True)
pr.add_to_labels(*labels)
print(f'Created PR #{str(pr.number)}')

# Assign the conductor
Expand Down Expand Up @@ -270,12 +303,6 @@ def update_changelog(version):
def main():
parser = argparse.ArgumentParser('update-release-branch.py')

parser.add_argument(
'--github-token',
type=str,
required=True,
help='GitHub token, typically from GitHub Actions.'
)
parser.add_argument(
'--repository-nwo',
type=str,
Expand Down Expand Up @@ -313,7 +340,7 @@ def main():
target_branch = args.target_branch
is_primary_release = args.is_primary_release

repo = Github(args.github_token).get_repo(args.repository_nwo)
repo = Github(get_github_token()).get_repo(args.repository_nwo)

# the target branch will be of the form releases/vN, where N is the major version number
target_branch_major_version = target_branch.strip('releases/v')
Expand Down Expand Up @@ -380,8 +407,9 @@ def main():
# releases.
run_git('revert', vOlder_update_commits[0], '--no-edit')

# Also revert the "Rebuild" commit created by Actions.
rebuild_commit = run_git('log', '--grep', '^Rebuild$', '--format=%H').split()[0]
# Also revert the "Rebuild" commit, whether created by this script or by the
# `Rebuild Action` workflow.
rebuild_commit = run_git('log', '--grep', f'^{REBUILD_COMMIT_MESSAGE}$', '--format=%H').split()[0]
print(f' Reverting {rebuild_commit}')
run_git('revert', rebuild_commit, '--no-edit')

Expand All @@ -396,9 +424,10 @@ def main():
run_git('add', '.')
run_git('commit', '--no-edit')

# Migrate the package version number from a vLatest version number to a vOlder version number
# Migrate the package version number from a vLatest version number to a vOlder version number.
# `package-lock.json` is updated as part of the subsequent rebuild step (see `rebuild_action`).
print(f'Setting version number to {version} in package.json')
replace_version_package_json(get_current_version(), version) # We rely on the `Rebuild` workflow to update package-lock.json
replace_version_package_json(get_current_version(), version)
run_git('add', 'package.json')

# Migrate the changelog notes from vLatest version numbers to vOlder version numbers
Expand All @@ -421,6 +450,13 @@ def main():
run_git('add', 'CHANGELOG.md')
run_git('commit', '-m', f'Update changelog for v{version}')

if not is_primary_release:
if len(conflicted_files) == 0:
print('Rebuilding the Action.')
rebuild_action()
else:
print(f'Skipping automatic rebuild because the merge produced conflicts in {conflicted_files}.')

run_git('push', ORIGIN, new_branch_name)

# Open a PR to update the branch
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/__go-tracing-autobuilder.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions .github/workflows/__go-tracing-custom-build-steps.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions .github/workflows/__go-tracing-legacy-workflow.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 15 additions & 15 deletions .github/workflows/__multi-language-autodetect.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/workflows/__rust.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/workflows/__swift-autobuild.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .github/workflows/check-expected-release-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ on:
# by other workflows.
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
cancel-in-progress: ${{ github.event_name == 'pull_request' || false }}
group: ${{ github.workflow }}-${{ github.ref }}

defaults:
run:
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04,ubuntu-24.04,windows-2022,windows-2025,macos-14,macos-15]
os: [ubuntu-22.04,ubuntu-24.04,windows-2022,windows-2025,macos-14-xlarge,macos-15-xlarge]
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
runs-on: ${{ matrix.os }}

Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/codescanning-config-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ on:
- cron: '0 5 * * *'
workflow_dispatch:

concurrency:
cancel-in-progress: ${{ github.event_name == 'pull_request' || false }}
group: ${{ github.workflow }}-${{ github.ref }}

defaults:
run:
shell: bash
Expand Down
Loading
Loading