From f23cb99175ed6e0300e8ef2aa3b745f3ab5008e0 Mon Sep 17 00:00:00 2001 From: garame-cloudinary Date: Sun, 19 Apr 2026 13:37:58 +0300 Subject: [PATCH 1/5] Add CODEOWNERS to restrict .github changes to R&D team --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..3429ca9 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# Restrict .github directory changes to the R&D team +/.github/ @cloudinary-devs/cld-developers From fd2d3d7d548731a17ec7537da0b6b991578cabd5 Mon Sep 17 00:00:00 2001 From: garame-cloudinary Date: Sun, 19 Apr 2026 14:46:16 +0300 Subject: [PATCH 2/5] Use GitHub App token for pushing E2E Allure reports to dedicated repo --- .github/workflows/e2e_tests.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml index 31af3b7..f1b2e5d 100644 --- a/.github/workflows/e2e_tests.yml +++ b/.github/workflows/e2e_tests.yml @@ -54,3 +54,34 @@ jobs: name: allure-report-${{ github.run_number }} path: test/e2e/allure-report retention-days: 30 + + - name: Set timestamp + id: timestamp + run: echo "TIMESTAMP=$(date +%Y%m%d_%H%M%S_%3N)" >> $GITHUB_ENV + + - name: Generate GitHub App token + if: always() + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + owner: cloudinary-devs + repositories: cld-vscode-test-allure-reports + + - name: Pushes to reports repository + if: always() + uses: cpina/github-action-push-to-another-repository@main + env: + API_TOKEN_GITHUB: ${{ steps.app-token.outputs.token }} + with: + source-directory: 'test/e2e/allure-report' + destination-github-username: 'cloudinary-devs' + destination-repository-name: 'cld-vscode-test-allure-reports' + user-email: '' + target-branch: main + target-directory: 'allure-report_ts_${{ env.TIMESTAMP }}' + + - name: Write URL in summary + if: always() + run: echo "### Test results https://jubilant-broccoli-www5lem.pages.github.io/allure-report_ts_${{ env.TIMESTAMP }}" >> $GITHUB_STEP_SUMMARY \ No newline at end of file From 55fefa65992a9c9245f2115ad29c6407799f044f Mon Sep 17 00:00:00 2001 From: garame-cloudinary Date: Sun, 19 Apr 2026 14:50:35 +0300 Subject: [PATCH 3/5] Use GitHub App token for pushing E2E Allure reports to dedicated repoistory --- .github/workflows/e2e_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml index f1b2e5d..bb771e4 100644 --- a/.github/workflows/e2e_tests.yml +++ b/.github/workflows/e2e_tests.yml @@ -55,11 +55,11 @@ jobs: path: test/e2e/allure-report retention-days: 30 - - name: Set timestamp + - name: Set timestamp. id: timestamp run: echo "TIMESTAMP=$(date +%Y%m%d_%H%M%S_%3N)" >> $GITHUB_ENV - - name: Generate GitHub App token + - name: Generate GitHub App token. if: always() id: app-token uses: actions/create-github-app-token@v1 @@ -69,7 +69,7 @@ jobs: owner: cloudinary-devs repositories: cld-vscode-test-allure-reports - - name: Pushes to reports repository + - name: Pushes to reports repository. if: always() uses: cpina/github-action-push-to-another-repository@main env: @@ -82,6 +82,6 @@ jobs: target-branch: main target-directory: 'allure-report_ts_${{ env.TIMESTAMP }}' - - name: Write URL in summary + - name: Write URL in summary. if: always() run: echo "### Test results https://jubilant-broccoli-www5lem.pages.github.io/allure-report_ts_${{ env.TIMESTAMP }}" >> $GITHUB_STEP_SUMMARY \ No newline at end of file From c61dfc38655390968a63f8e1f11a0c8b893ada04 Mon Sep 17 00:00:00 2001 From: refael-m Date: Tue, 21 Apr 2026 11:19:02 +0300 Subject: [PATCH 4/5] test: e2e update e2e workflow --- .github/workflows/e2e_tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml index bb771e4..2ffce4d 100644 --- a/.github/workflows/e2e_tests.yml +++ b/.github/workflows/e2e_tests.yml @@ -69,6 +69,13 @@ jobs: owner: cloudinary-devs repositories: cld-vscode-test-allure-reports + # How to update the GitHub App token: + # 1. Create a GitHub App at https://github.com/organizations/cloudinary-devs/settings/apps + # - Name: cloudinary-devs-bot, Webhook: unchecked, Permissions: Contents (Read & write), Install: Only this account + # 2. Note the App ID, then generate a private key (Settings → Private keys → Generate). Save the .pem file. + # 3. Install the app: App settings → Install App → cloudinary-devs org → Only select repositories → cld-vscode-test-allure-reports + # 4. Add secrets to this repo (Settings → Secrets → Actions): APP_ID and APP_PRIVATE_KEY (.pem contents) + # 5. The token is generated above via actions/create-github-app-token using those secrets. - name: Pushes to reports repository. if: always() uses: cpina/github-action-push-to-another-repository@main From 5cba1ce8c60d9126fe8b29e59204d6d00a83a888 Mon Sep 17 00:00:00 2001 From: refael-m Date: Tue, 21 Apr 2026 11:51:07 +0300 Subject: [PATCH 5/5] test: e2e update e2e workflow --- .github/workflows/e2e_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml index 2ffce4d..740022c 100644 --- a/.github/workflows/e2e_tests.yml +++ b/.github/workflows/e2e_tests.yml @@ -69,7 +69,7 @@ jobs: owner: cloudinary-devs repositories: cld-vscode-test-allure-reports - # How to update the GitHub App token: + # How to update the GitHub App token (need to be updated every year): # 1. Create a GitHub App at https://github.com/organizations/cloudinary-devs/settings/apps # - Name: cloudinary-devs-bot, Webhook: unchecked, Permissions: Contents (Read & write), Install: Only this account # 2. Note the App ID, then generate a private key (Settings → Private keys → Generate). Save the .pem file.