Skip to content

Commit e6d1c6b

Browse files
committed
Log a warning if the API version is not supported.
1 parent 46110c3 commit e6d1c6b

34 files changed

+367
-61
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Update Supported Enterprise Server Versions
2+
3+
on:
4+
schedule:
5+
- cron: "0 0 * * *"
6+
7+
jobs:
8+
multi-language-repo_test-autodetect-languages:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Setup Python
13+
uses: actions/setup-python@v2
14+
with:
15+
python-version: "3.7"
16+
- name: Checkout CodeQL Action
17+
uses: actions/checkout@v2
18+
- name: Checkout Enterprise Releases
19+
uses: actions/checkout@v2
20+
with:
21+
repository: github/enterprise-releases
22+
ssh-key: ${{ secrets.ENTERPRISE_RELEASES_SSH_KEY }}
23+
path: ${{ github.workspace }}/enterprise-releases/
24+
- name: Update Supported Enterprise Server Versions
25+
run: |
26+
cd ./.github/workflows/update-supported-enterprise-server-versions/
27+
python3 -m pip install pipenv
28+
pipenv install
29+
pipenv run ./update.py
30+
rm --recursive "$ENTERPRISE_RELEASES_PATH"
31+
npm run build
32+
env:
33+
ENTERPRISE_RELEASES_PATH: ${{ github.workspace }}/enterprise-releases/
34+
- name: Commit and Push Changes
35+
uses: EndBug/add-and-commit@b5dec7ea7647ed6edf307ec828d3aeb6bca69f63 # v5.1.0
36+
with:
37+
message: "Update supported GitHub Enterprise Server versions."
38+
author_name: GitHub Actions
39+
author_email: [email protected]
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[[source]]
2+
name = "pypi"
3+
url = "https://pypi.org/simple"
4+
verify_ssl = true
5+
6+
[dev-packages]
7+
8+
[packages]
9+
semver = "*"

.github/workflows/update-supported-enterprise-server-versions/Pipfile.lock

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python3
2+
import datetime
3+
import json
4+
import os
5+
import pathlib
6+
7+
import semver
8+
9+
_API_COMPATIBILITY_PATH = pathlib.Path(__file__).absolute().parents[3] / "src" / "api-compatibility.json"
10+
_ENTERPRISE_RELEASES_PATH = pathlib.Path(os.environ["ENTERPRISE_RELEASES_PATH"])
11+
_RELEASE_FILE_PATH = _ENTERPRISE_RELEASES_PATH / "releases.json"
12+
_FIRST_SUPPORTED_RELEASE = semver.VersionInfo.parse("2.22.0") # Versions older than this did not include Code Scanning.
13+
14+
def main():
15+
releases = json.loads(_RELEASE_FILE_PATH.read_text())
16+
oldest_supported_release = None
17+
newest_supported_release = None
18+
19+
for release_version_string, release_data in releases.items():
20+
release_version = semver.VersionInfo.parse(release_version_string + ".0")
21+
if release_version < _FIRST_SUPPORTED_RELEASE:
22+
continue
23+
24+
if newest_supported_release is None or release_version > newest_supported_release:
25+
feature_freeze_date = datetime.date.fromisoformat(release_data["feature_freeze"])
26+
if feature_freeze_date < datetime.date.today() + datetime.timedelta(weeks=2):
27+
newest_supported_release = release_version
28+
29+
if oldest_supported_release is None or release_version < oldest_supported_release:
30+
end_of_life_date = datetime.date.fromisoformat(release_data["end"])
31+
if end_of_life_date > datetime.date.today():
32+
oldest_supported_release = release_version
33+
34+
api_compatibility_data = {
35+
"minimumVersion": f"{oldest_supported_release.major}.{oldest_supported_release.minor}",
36+
"maximumVersion": f"{newest_supported_release.major}.{newest_supported_release.minor}",
37+
}
38+
_API_COMPATIBILITY_PATH.write_text(json.dumps(api_compatibility_data, sort_keys=True) + "\n")
39+
40+
if __name__ == "__main__":
41+
main()

lib/api-client.js

Lines changed: 45 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/api-client.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/api-client.test.js

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/api-client.test.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/api-compatibility.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "maximumVersion": "3.0", "minimumVersion": "2.22" }

lib/codeql.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)