Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
7f37f3a
pin actions, add dependabot config, apply zizmor suggestions
netomi Nov 10, 2025
608f46e
use consistent variable expansion style
netomi Nov 10, 2025
b0bc38c
Merge pull request #6000 from netomi/security-improvements-workflows
netomi Nov 14, 2025
2447b49
fix: sonar workflow
netomi Nov 14, 2025
4daef9f
Bump the github-actions group with 6 updates (#6073)
dependabot[bot] Nov 14, 2025
ec75f15
test 0493c710
Nov 19, 2025
66d04b8
Merge pull request #6155 from amvanbaren/test-0493c710
amvanbaren Nov 19, 2025
8fc184f
revert 0493c710
Nov 19, 2025
a8bbe13
Merge pull request #6156 from amvanbaren/revert-0493c710
amvanbaren Nov 19, 2025
5789b86
test c4f48a9a
Nov 20, 2025
997fe2d
Merge pull request #6183 from amvanbaren/test-c4f48a9a
amvanbaren Nov 20, 2025
bc58c4f
test utf-8
Nov 20, 2025
d629900
Merge pull request #6185 from amvanbaren/test-0493c710
amvanbaren Nov 20, 2025
0654d0d
Test revokeAccessTokens
Nov 20, 2025
a9c83f0
Merge pull request #6187 from amvanbaren/test-db9a98c5
amvanbaren Nov 20, 2025
b4f3c48
test publisher extension delete
Nov 20, 2025
a435305
Merge pull request #6193 from amvanbaren/test-a84764eb
amvanbaren Nov 20, 2025
33f18b1
Test v0.30.0
Nov 20, 2025
193fa19
Merge pull request #6194 from amvanbaren/test-v0.30.0
amvanbaren Nov 20, 2025
a22f097
Release v0.30.0
Nov 21, 2025
8ecf02c
Merge pull request #6201 from amvanbaren/release-v0.30.0
amvanbaren Nov 21, 2025
087ace1
Enable mirror mode to fill staging azure blob storage with production…
netomi Nov 24, 2025
87ab1b1
chore: update server image to test cdn config
netomi Nov 24, 2025
8e17f4c
chore: update to latest docker image, disable mirror again
netomi Nov 24, 2025
bbb83ef
test update to v0.29.1-migration
netomi Nov 25, 2025
46ce75e
fix version
netomi Nov 25, 2025
a909f03
push minor update to how url are generated for cdn fronting
netomi Nov 25, 2025
7aa4386
Add AWS credentials via environment (#6289)
pstankie Nov 25, 2025
1adfffb
add storage filter for cdn use
netomi Nov 25, 2025
347cea8
fix storage filter
netomi Nov 26, 2025
1e27306
update the latest version of migration branch and disable namespace l…
netomi Nov 26, 2025
f918d71
Use cdn for aws (#6351)
netomi Nov 27, 2025
3716278
use same image as on production
netomi Nov 27, 2025
f4c6c15
use production couldfront url on staging
netomi Nov 27, 2025
9cc293c
use https instead of http
netomi Nov 27, 2025
a5f57a6
add runtest workflow
netomi Nov 27, 2025
f38dfb7
remove test workflow after tests concluded
netomi Nov 27, 2025
03ebf67
Remove unused claim-namespace workflow
netomi Nov 27, 2025
27534d1
use openvsx-staging.eclipsecontent.org as CDN url for staging
netomi Nov 28, 2025
4a75ffd
chore: only checkout the head branch on push
netomi Dec 1, 2025
b4ea1c1
chore: add a security policy
netomi Dec 1, 2025
6608501
update image to test aws download couts
netomi Dec 1, 2025
4908af9
update image to test aws download counts
netomi Dec 1, 2025
f9e0981
update image to test aws download counts
netomi Dec 1, 2025
b2031ed
update image for aws download counts
netomi Dec 1, 2025
8a15dc5
update aws download count to be production ready
netomi Dec 3, 2025
1b6d270
update with improvements to aws download count service
netomi Dec 3, 2025
a00aa5d
update to improved cache eviction version
netomi Dec 3, 2025
2667632
chore: polish README, add scorecard workflow
netomi Dec 4, 2025
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
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
github-actions:
patterns:
- "*"
124 changes: 0 additions & 124 deletions .github/workflows/claim-namespace.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
run: echo ${{ github.event.number }} > PR_NUMBER.txt
- name: Archive PR number
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: PR_NUMBER
path: PR_NUMBER.txt
36 changes: 36 additions & 0 deletions .github/workflows/scorecard-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Scorecard analysis workflow
on:
push:
branches:
- main
- production
schedule:
# Weekly on Saturdays.
- cron: '30 1 * * 6'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions: read-all

jobs:
analysis:
if: github.repository_owner == 'EclipseFdn'
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
id-token: write

steps:
- name: "Checkout code"
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
with:
results_file: results.sarif
results_format: sarif
publish_results: true
18 changes: 11 additions & 7 deletions .github/workflows/smoketest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ jobs:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
path: open-vsx.org
- uses: actions/checkout@v4
persist-credentials: false
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: eclipse/openvsx
path: openvsx
- uses: actions/setup-node@v4
persist-credentials: false
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: 18.x
- name: Install dependencies
Expand All @@ -36,7 +38,7 @@ jobs:
run: sleep 10m
- name: Get running server version
id: running_version
uses: fjogeleit/http-request-action@v1
uses: fjogeleit/http-request-action@1297c6fc63a79b147d1676540a3fd9d2e37817c5 # v1.16.5
with:
url: "https://open-vsx.org/api/version"
method: GET
Expand All @@ -48,15 +50,17 @@ jobs:
if: steps.check_version.outputs.is_version == 'true'
working-directory: ./openvsx/webui
run: yarn smoke-tests
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: steps.check_version.outputs.is_version == 'true'
with:
name: playwright-report
path: openvsx/webui/playwright-report/
retention-days: 30
- name: Fail smoke test
if: steps.check_version.outputs.is_version != 'true'
uses: actions/github-script@v7
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
env:
VERSION: ${{ steps.read_version.outputs.version }}
with:
script: |
core.setFailed('Deployed version is not ${{ steps.read_version.outputs.version }}')
core.setFailed(`Deployed version is not ${process.env.VERSION}`)
28 changes: 17 additions & 11 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ jobs:
permissions:
pull-requests: read
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success'
if: github.repository == 'EclipseFdn/open-vsx.org' && github.event.workflow_run.conclusion == 'success'
steps:
- name: Create artifacts directory
run: mkdir -p ${{ runner.temp }}/artifacts
- name: Download PR number artifact
if: github.event.workflow_run.event == 'pull_request'
uses: dawidd6/action-download-artifact@v6
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
with:
workflow: Build
run_id: ${{ github.event.workflow_run.id }}
Expand All @@ -24,37 +24,43 @@ jobs:
- name: Read PR_NUMBER.txt
if: github.event.workflow_run.event == 'pull_request'
id: pr_number
uses: juliangruber/read-file-action@v1
uses: juliangruber/read-file-action@b549046febe0fe86f8cb4f93c24e284433f9ab58 # v1.1.7
with:
path: ${{ runner.temp }}/artifacts/PR_NUMBER.txt
- name: Request GitHub API for PR data
if: github.event.workflow_run.event == 'pull_request'
uses: octokit/request-action@v2.x
uses: octokit/request-action@dad4362715b7fb2ddedf9772c8670824af564f0d # v2.4.0
id: get_pr_data
with:
route: GET /repos/{full_name}/pulls/{number}
number: ${{ steps.pr_number.outputs.content }}
full_name: ${{ github.event.repository.full_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- name: Checkout head branch on push
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
if: github.event.workflow_run.event == 'push' && github.event.workflow_run.head_repository.full_name == github.event.repository.full_name
with:
repository: ${{ github.event.workflow_run.head_repository.full_name }}
ref: ${{ github.event.workflow_run.head_branch }}
fetch-depth: 0
- name: Checkout base branch
persist-credentials: false
- name: Checkout head branch on pull_request
if: github.event.workflow_run.event == 'pull_request'
env:
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
CLONE_URL: ${{ github.event.repository.clone_url }}
run: |
git remote add upstream ${{ github.event.repository.clone_url }}
BASE_REF="${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}"

git remote add upstream ${CLONE_URL}
git fetch upstream
git checkout -B ${{ fromJson(steps.get_pr_data.outputs.data).base.ref }} upstream/${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}
git checkout $HEAD_BRANCH
git checkout -B ${BASE_REF} upstream/${BASE_REF}
git checkout ${HEAD_BRANCH}
git clean -ffdx && git reset --hard HEAD
- name: SonarCloud Scan on PR
if: github.event.workflow_run.event == 'pull_request'
uses: SonarSource/sonarqube-scan-action@master
uses: SonarSource/sonarqube-scan-action@fd88b7d7ccbaefd23d8f36f73b59db7a3d246602 # v6.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Expand All @@ -66,7 +72,7 @@ jobs:
-Dsonar.pullrequest.base=${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}
- name: SonarCloud Scan on push
if: github.event.workflow_run.event == 'push' && github.event.workflow_run.head_repository.full_name == github.event.repository.full_name
uses: SonarSource/sonarqube-scan-action@master
uses: SonarSource/sonarqube-scan-action@fd88b7d7ccbaefd23d8f36f73b59db7a3d246602 # v6.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Expand Down
11 changes: 7 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ARG SERVER_VERSION=v0.29.1
ARG SERVER_VERSION=62c3ef7
ARG SERVER_VERSION_STRING=v0.29.1-post-migration

# Builder image to compile the website
FROM ubuntu AS builder
Expand All @@ -19,20 +20,22 @@ RUN apt-get update \
&& corepack prepare yarn@stable --activate

# bump to update website
ENV WEBSITE_VERSION 0.16.4
ENV WEBSITE_VERSION 0.17.0
COPY . /workdir

RUN /usr/bin/yarn --cwd website \
&& /usr/bin/yarn --cwd website compile \
&& /usr/bin/yarn --cwd website build

# Main image derived from openvsx-server
FROM ghcr.io/eclipse/openvsx-server:${SERVER_VERSION}
FROM ghcr.io/netomi/openvsx-server:${SERVER_VERSION}
ARG SERVER_VERSION
ARG SERVER_VERSION_STRING

COPY --from=builder --chown=openvsx:openvsx /workdir/website/static/ BOOT-INF/classes/static/
COPY --from=builder --chown=openvsx:openvsx /workdir/configuration/application.yml config/
COPY --from=builder --chown=openvsx:openvsx /workdir/configuration/logback-spring.xml BOOT-INF/classes/
COPY --from=builder --chown=openvsx:openvsx /workdir/mail-templates BOOT-INF/classes/mail-templates

# Replace version placeholder with arg value
RUN sed -i "s/<SERVER_VERSION>/$SERVER_VERSION/g" config/application.yml
RUN sed -i "s/<SERVER_VERSION>/${SERVER_VERSION_STRING}/g" config/application.yml
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
<h1 align="center">

<a href="https://open-vsx.org">
<img src="https://outreach.eclipse.foundation/hs-fs/hubfs/OpenVSX-logo.png?width=369&height=117&name=OpenVSX-logo.png">
</a>

</h1>

<p align="center">
<a href="https://join.slack.com/t/openvsxworkinggroup/shared_invite/zt-2y07y1ggy-ct3IfJljjGI6xWUQ9llv6A"><img alt="Slack workspace" src="https://img.shields.io/badge/Slack-Join%20workspace-4A154B?logo=slack&logoColor=white" /></a>
<a href="https://github.com/EclipseFdn/open-vsx.org/blob/main/LICENSE"><img alt="EPLv2 License" src="https://img.shields.io/github/license/EclipseFdn/open-vsx.org" /></a>
<a href="https://github.com/EclipseFdn/open-vsx.org/actions/workflows/main.yml?query=branch%3Aproduction"><img alt="Build Status @ production" src="https://github.com/EclipseFdn/open-vsx.org/actions/workflows/main.yml/badge.svg?branch:main" /></a>
<a href="https://scorecard.dev/viewer/?uri=github.com/EclipseFdn/open-vsx.org"><img alt="OpenSSF Scorecard" src="https://api.securityscorecards.dev/projects/github.com/EclipseFdn/open-vsx.org/badge" /></a>
</p>

# open-vsx.org

This repository contains the source of [open-vsx.org](https://open-vsx.org), the public instance of [Eclipse Open VSX](https://github.com/eclipse/openvsx). Most of the code is maintained in [eclipse/openvsx](https://github.com/eclipse/openvsx), while here you'll find only adaptations specific to the public instance.
Expand Down Expand Up @@ -62,4 +77,4 @@ Have a bug or a feature request? Please search for existing and closed issues. I

## Copyright and license

Copyright 2021-2022 the [Eclipse Foundation, Inc.](https://www.eclipse.org) and the [open-vsx.org authors](https://github.com/eclipsefdn/open-vsx.org/graphs/contributors). Code released under the [Eclipse Public License Version 2.0 (EPL-2.0)](https://github.com/EclipseFdn/open-vsx.org/blob/main/LICENSE).
Copyright 2021-2025 the [Eclipse Foundation, Inc.](https://www.eclipse.org) and the [open-vsx.org authors](https://github.com/eclipsefdn/open-vsx.org/graphs/contributors). Code released under the [Eclipse Public License Version 2.0 (EPL-2.0)](https://github.com/EclipseFdn/open-vsx.org/blob/main/LICENSE).
Loading