diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a6bd0340172e6d3..3497a05a8eeeb7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,614 +4,615 @@ on: push: branches: - main - - pull_request: - types: - - opened - - synchronize - - reopened - - ready_for_review - - merge_group: - - workflow_dispatch: - inputs: - dryRun: - description: 'Dry-Run' - default: 'true' - required: false - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.event.number || github.ref }} - cancel-in-progress: ${{ github.ref_name != 'main' }} - -env: - DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} - NODE_VERSION: 18 - DRY_RUN: true - TEST_LEGACY_DECRYPTION: true - SPARSE_CHECKOUT: |- - .github/actions/ - data/ - tools/ - package.json - pnpm-lock.yaml + - gitlab-forked-from-project + + # pull_request: + # types: + # - opened + # - synchronize + # - reopened + # - ready_for_review + + # merge_group: + + # workflow_dispatch: + # inputs: + # dryRun: + # description: 'Dry-Run' + # default: 'true' + # required: false + + # permissions: + # contents: read + + # concurrency: + # group: ${{ github.workflow }}-${{ github.event.number || github.ref }} + # cancel-in-progress: ${{ github.ref_name != 'main' }} + + # env: + # DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} + # NODE_VERSION: 18 + # DRY_RUN: true + # TEST_LEGACY_DECRYPTION: true + # SPARSE_CHECKOUT: |- + # .github/actions/ + # data/ + # tools/ + # package.json + # pnpm-lock.yaml jobs: - setup: - runs-on: ubuntu-latest - - outputs: - os-matrix: ${{ steps.os-matrix.outputs.os-matrix }} - os-matrix-is-full: ${{ steps.os-matrix-is-full.outputs.os-matrix-is-full }} - os-matrix-prefetch: ${{ steps.os-matrix-prefetch.outputs.matrix }} - test-shard-matrix: ${{ steps.schedule-test-shards.outputs.test-shard-matrix }} - test-matrix-empty: ${{ steps.schedule-test-shards.outputs.test-matrix-empty }} - - steps: - - name: Calculate `os-matrix-is-full` output - id: os-matrix-is-full - env: - IS_FULL: >- - ${{ - ( - github.event_name != 'pull_request' || - contains(github.event.pull_request.labels.*.name, 'ci:fulltest') - ) && 'true' || '' - }} - run: | - echo 'OS_MATRIX_IS_FULL=${{ env.IS_FULL }}' >> "$GITHUB_ENV" - echo 'os-matrix-is-full=${{ env.IS_FULL }}' >> "$GITHUB_OUTPUT" - - - name: Calculate `os-matrix` output - id: os-matrix - env: - OS_ALL: '["ubuntu-latest", "macos-latest", "windows-latest"]' - OS_LINUX_ONLY: '["ubuntu-latest"]' - run: | - echo 'os-matrix=${{ - env.OS_MATRIX_IS_FULL && env.OS_ALL || env.OS_LINUX_ONLY - }}' >> "$GITHUB_OUTPUT" - - - name: Detect changed files - if: ${{ github.event_name == 'pull_request' }} - id: changed-files - env: - GH_TOKEN: ${{ github.token }} - GH_REPO: ${{ github.event.repository.full_name }} - PR_URL: >- - https://api.github.com/repos/{owner}/{repo}/compare/${{ - github.event.pull_request.base.sha - }}...${{ - github.event.pull_request.head.sha - }} - JQ_FILTER: >- - "changed-files=" + ([.files[].filename] | tostring) - run: gh api ${{ env.PR_URL }} | jq -rc '${{ env.JQ_FILTER }}' >> "$GITHUB_OUTPUT" - - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - filter: blob:none # we don't need all blobs - sparse-checkout: ${{ env.SPARSE_CHECKOUT }} - show-progress: false - - - name: Calculate matrix for `node_modules` prefetch - uses: ./.github/actions/calculate-prefetch-matrix - id: os-matrix-prefetch - with: - repo: ${{ github.event.repository.full_name }} - token: ${{ github.token }} - node-version: ${{ env.NODE_VERSION }} - - - name: Prefetch modules for `ubuntu-latest` - id: setup-node - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - save-cache: true - - - name: Schedule test shards - id: schedule-test-shards - env: - ALL_PLATFORMS: ${{ env.OS_MATRIX_IS_FULL }} - FILTER_SHARDS: ${{ github.event.pull_request.draft && 'true' || '' }} - CHANGED_FILES: ${{ steps.changed-files.outputs.changed-files }} - run: | - echo "$(pnpm -s schedule-test-shards)" >> "$GITHUB_OUTPUT" - - prefetch: - needs: [setup] - - # We can't check `needs.setup.outputs.os-matrix-is-full` here, - # as it will lead to further complications that aren't solvable - # with current GitHub Actions feature set. - # - # Although this job sometimes may act as short-lived `no-op`, - # it's actually the best option available. - # - # However, in draft mode we can skip this step. - if: | - !(github.event.pull_request.draft == true && - needs.setup.outputs.test-matrix-empty == 'true') - - strategy: - matrix: - os: ${{ fromJSON(needs.setup.outputs.os-matrix-prefetch) }} - node-version: [18] - - runs-on: ${{ matrix.os }} - - timeout-minutes: 10 - - steps: - - name: Checkout code - if: needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux' - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - filter: blob:none # we don't need all blobs - sparse-checkout: ${{ env.SPARSE_CHECKOUT }} - show-progress: false - - - name: Setup Node.js - if: needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux' - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - save-cache: true - - lint-eslint: - needs: [setup] - runs-on: ubuntu-latest - timeout-minutes: 15 - - permissions: - actions: write - - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Restore eslint cache - uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 - with: - path: .cache/eslint - key: eslint-main-cache - - - name: Lint - run: pnpm eslint-ci - - - name: Remove cache - if: github.event_name == 'push' - env: - GH_TOKEN: ${{ github.token }} - GH_REPO: ${{ github.event.repository.full_name }} - run: | - gh api --method DELETE /repos/{owner}/{repo}/actions/caches?key=eslint-main-cache || - echo "Cache not found" - - - name: Save eslint cache - if: github.event_name == 'push' - uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 - with: - path: .cache/eslint - key: eslint-main-cache - - lint-prettier: - needs: [setup] - runs-on: ubuntu-latest - timeout-minutes: 7 - - permissions: - actions: write - - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Restore prettier cache - uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 - with: - path: .cache/prettier - key: prettier-main-cache - - - name: Lint - run: pnpm prettier --cache-location .cache/prettier - - - name: Remove cache - if: github.event_name == 'push' - env: - GH_TOKEN: ${{ github.token }} - GH_REPO: ${{ github.event.repository.full_name }} - run: | - gh api --method DELETE /repos/{owner}/{repo}/actions/caches?key=prettier-main-cache || - echo "Cache not found" - - - name: Save prettier cache - if: github.event_name == 'push' - uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 - with: - path: .cache/prettier - key: prettier-main-cache - - lint-docs: - needs: [setup] - runs-on: ubuntu-latest - timeout-minutes: 7 - - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Lint markdown - uses: DavidAnson/markdownlint-cli2-action@b4c9feab76d8025d1e83c653fa3990936df0e6c8 # v16.0.0 - - - name: Lint fenced code blocks - run: pnpm doc-fence-check - - - name: Lint documentation - run: pnpm lint-documentation - - - name: Markdown lint - run: pnpm markdown-lint - - lint-other: - needs: [setup] - runs-on: ubuntu-latest - timeout-minutes: 7 - - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Type check - run: pnpm type-check - - - name: Lint project file structure - run: pnpm ls-lint - - - name: Check git version - run: pnpm git-check - - - name: Test schema - run: pnpm test-schema - - test: - needs: [setup, prefetch] - - if: | - !(github.event.pull_request.draft == true && - needs.setup.outputs.test-matrix-empty == 'true') - - name: ${{ matrix.name }} - - runs-on: ${{ matrix.os }} - timeout-minutes: ${{ matrix.runner-timeout-minutes }} - - strategy: - matrix: - include: ${{ fromJSON(needs.setup.outputs.test-shard-matrix) }} - - steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Cache jest - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 - with: - path: .cache/jest - key: | - jest-cache-${{ - runner.os - }}-${{ - env.NODE_VERSION - }}-${{ - hashFiles('pnpm-lock.yaml') - }}-${{ - matrix.cache-key - }} - - - name: Unit tests - shell: bash - run: | - for shard in ${{ matrix.shards }}; - do - TEST_SHARD="$shard" pnpm jest \ - --ci \ - --test-timeout ${{ matrix.test-timeout-milliseconds }} \ - --coverage ${{ matrix.coverage }} - done - - - name: Move coverage files - if: (success() || failure()) && github.event.pull_request.draft != true && matrix.coverage - run: | - mkdir -p ./coverage/lcov - mkdir -p ./coverage/json - for shard in ${{ matrix.shards }}; - do - mv ./coverage/shard/$shard/lcov.info ./coverage/lcov/$shard.lcov - mv ./coverage/shard/$shard/coverage-final.json ./coverage/json/$shard.json - done - - - name: Save coverage artifacts - if: (success() || failure()) && github.event.pull_request.draft != true && matrix.coverage - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 - with: - name: ${{ matrix.upload-artifact-name }} - path: | - ./coverage/lcov - ./coverage/json - - codecov: - needs: [test] - runs-on: ubuntu-latest - timeout-minutes: 3 - if: (success() || failure()) && github.event_name != 'merge_group' && github.event.pull_request.draft != true - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - filter: blob:none # we don't need all blobs - show-progress: false - - - name: Download coverage reports - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 - with: - pattern: coverage-* - path: coverage - merge-multiple: true - - - name: Codecov - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 - with: - token: ${{ secrets.CODECOV_TOKEN }} - directory: coverage/lcov - fail_ci_if_error: github.event_name != 'pull_request' - verbose: true - - coverage-threshold: - needs: - - test - runs-on: ubuntu-latest - timeout-minutes: 3 - if: (success() || failure()) && github.event.pull_request.draft != true - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - filter: blob:none # we don't need all blobs - sparse-checkout: ${{ env.SPARSE_CHECKOUT }} - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Download coverage reports - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 - with: - pattern: coverage-* - path: coverage - merge-multiple: true - - - name: Merge coverage reports - run: pnpm nyc merge ./coverage/json ./coverage/nyc/coverage.json - - - name: Report coverage - run: pnpm nyc report -t ./coverage/nyc --skip-full -r text -r text-summary - - - name: Check coverage threshold - run: | - pnpm nyc check-coverage -t ./coverage/nyc \ - --branches 100 \ - --functions 100 \ - --lines 100 \ - --statements 100 - - # Catch-all required check for test matrix and coverage - test-success: - needs: - - setup - - test - - codecov - - coverage-threshold - runs-on: ubuntu-latest - timeout-minutes: 1 - if: always() - steps: - - name: Fail for failed or cancelled tests - if: | - needs.test.result == 'failure' || - needs.test.result == 'cancelled' - run: exit 1 - - - name: Fail for skipped tests when PR is ready for review - if: | - github.event_name == 'pull_request' && - github.event.pull_request.draft != true && - needs.test.result == 'skipped' - run: exit 1 - - - name: Fail for failed or cancelled codecov - if: | - needs.codecov.result == 'failure' || - needs.codecov.result == 'cancelled' - run: exit 1 - - - name: Fail for skipped codecov when PR is ready for review - if: | - github.event_name == 'pull_request' && - github.event.pull_request.draft != true && - needs.codecov.result == 'skipped' - run: exit 1 - - - name: Fail for failed or cancelled coverage-threshold - if: | - needs.coverage-threshold.result == 'failure' || - needs.coverage-threshold.result == 'cancelled' - run: exit 1 - - - name: Fail for skipped coverage-threshold when PR is ready for review - if: | - github.event_name == 'pull_request' && - github.event.pull_request.draft != true && - needs.coverage-threshold.result == 'skipped' - run: exit 1 - - build: - needs: setup - runs-on: ubuntu-latest - timeout-minutes: 5 - if: github.event.pull_request.draft != true - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Build - run: pnpm build - - - name: Build docker - run: pnpm build:docker build --tries=3 - env: - LOG_LEVEL: debug - - - name: Pack - run: pnpm test-e2e:pack - - - name: Upload - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 - with: - name: renovate-package - path: renovate-0.0.0-semantic-release.tgz - - build-docs: - needs: [lint-docs] - runs-on: ubuntu-latest - timeout-minutes: 5 - if: github.event.pull_request.draft != true - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup Node.js - uses: ./.github/actions/setup-node - with: - node-version: ${{ env.NODE_VERSION }} - os: ${{ runner.os }} - - - name: Build - run: pnpm build:docs - - - name: Upload - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 - with: - name: docs - path: tmp/docs/ - - test-e2e: - needs: [build] - runs-on: 'ubuntu-latest' - timeout-minutes: 7 - - if: github.event.pull_request.draft != true - - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - show-progress: false - - - name: Setup pnpm - uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # v3.0.0 - with: - standalone: true - - - name: Setup Node.js - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Download package - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 - with: - name: renovate-package - - - name: Install dependencies - run: pnpm test-e2e:install - - - name: E2E Test - run: pnpm test-e2e:run + # setup: + # runs-on: ubuntu-latest + + # outputs: + # os-matrix: ${{ steps.os-matrix.outputs.os-matrix }} + # os-matrix-is-full: ${{ steps.os-matrix-is-full.outputs.os-matrix-is-full }} + # os-matrix-prefetch: ${{ steps.os-matrix-prefetch.outputs.matrix }} + # test-shard-matrix: ${{ steps.schedule-test-shards.outputs.test-shard-matrix }} + # test-matrix-empty: ${{ steps.schedule-test-shards.outputs.test-matrix-empty }} + + # steps: + # - name: Calculate `os-matrix-is-full` output + # id: os-matrix-is-full + # env: + # IS_FULL: >- + # ${{ + # ( + # github.event_name != 'pull_request' || + # contains(github.event.pull_request.labels.*.name, 'ci:fulltest') + # ) && 'true' || '' + # }} + # run: | + # echo 'OS_MATRIX_IS_FULL=${{ env.IS_FULL }}' >> "$GITHUB_ENV" + # echo 'os-matrix-is-full=${{ env.IS_FULL }}' >> "$GITHUB_OUTPUT" + + # - name: Calculate `os-matrix` output + # id: os-matrix + # env: + # OS_ALL: '["ubuntu-latest", "macos-latest", "windows-latest"]' + # OS_LINUX_ONLY: '["ubuntu-latest"]' + # run: | + # echo 'os-matrix=${{ + # env.OS_MATRIX_IS_FULL && env.OS_ALL || env.OS_LINUX_ONLY + # }}' >> "$GITHUB_OUTPUT" + + # - name: Detect changed files + # if: ${{ github.event_name == 'pull_request' }} + # id: changed-files + # env: + # GH_TOKEN: ${{ github.token }} + # GH_REPO: ${{ github.event.repository.full_name }} + # PR_URL: >- + # https://api.github.com/repos/{owner}/{repo}/compare/${{ + # github.event.pull_request.base.sha + # }}...${{ + # github.event.pull_request.head.sha + # }} + # JQ_FILTER: >- + # "changed-files=" + ([.files[].filename] | tostring) + # run: gh api ${{ env.PR_URL }} | jq -rc '${{ env.JQ_FILTER }}' >> "$GITHUB_OUTPUT" + + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # filter: blob:none # we don't need all blobs + # sparse-checkout: ${{ env.SPARSE_CHECKOUT }} + # show-progress: false + + # - name: Calculate matrix for `node_modules` prefetch + # uses: ./.github/actions/calculate-prefetch-matrix + # id: os-matrix-prefetch + # with: + # repo: ${{ github.event.repository.full_name }} + # token: ${{ github.token }} + # node-version: ${{ env.NODE_VERSION }} + + # - name: Prefetch modules for `ubuntu-latest` + # id: setup-node + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + # save-cache: true + + # - name: Schedule test shards + # id: schedule-test-shards + # env: + # ALL_PLATFORMS: ${{ env.OS_MATRIX_IS_FULL }} + # FILTER_SHARDS: ${{ github.event.pull_request.draft && 'true' || '' }} + # CHANGED_FILES: ${{ steps.changed-files.outputs.changed-files }} + # run: | + # echo "$(pnpm -s schedule-test-shards)" >> "$GITHUB_OUTPUT" + + # prefetch: + # needs: [setup] + + # # We can't check `needs.setup.outputs.os-matrix-is-full` here, + # # as it will lead to further complications that aren't solvable + # # with current GitHub Actions feature set. + # # + # # Although this job sometimes may act as short-lived `no-op`, + # # it's actually the best option available. + # # + # # However, in draft mode we can skip this step. + # if: | + # !(github.event.pull_request.draft == true && + # needs.setup.outputs.test-matrix-empty == 'true') + + # strategy: + # matrix: + # os: ${{ fromJSON(needs.setup.outputs.os-matrix-prefetch) }} + # node-version: [18] + + # runs-on: ${{ matrix.os }} + + # timeout-minutes: 10 + + # steps: + # - name: Checkout code + # if: needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux' + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # filter: blob:none # we don't need all blobs + # sparse-checkout: ${{ env.SPARSE_CHECKOUT }} + # show-progress: false + + # - name: Setup Node.js + # if: needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux' + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + # save-cache: true + + # lint-eslint: + # needs: [setup] + # runs-on: ubuntu-latest + # timeout-minutes: 15 + + # permissions: + # actions: write + + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Restore eslint cache + # uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + # with: + # path: .cache/eslint + # key: eslint-main-cache + + # - name: Lint + # run: pnpm eslint-ci + + # - name: Remove cache + # if: github.event_name == 'push' + # env: + # GH_TOKEN: ${{ github.token }} + # GH_REPO: ${{ github.event.repository.full_name }} + # run: | + # gh api --method DELETE /repos/{owner}/{repo}/actions/caches?key=eslint-main-cache || + # echo "Cache not found" + + # - name: Save eslint cache + # if: github.event_name == 'push' + # uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + # with: + # path: .cache/eslint + # key: eslint-main-cache + + # lint-prettier: + # needs: [setup] + # runs-on: ubuntu-latest + # timeout-minutes: 7 + + # permissions: + # actions: write + + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Restore prettier cache + # uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + # with: + # path: .cache/prettier + # key: prettier-main-cache + + # - name: Lint + # run: pnpm prettier --cache-location .cache/prettier + + # - name: Remove cache + # if: github.event_name == 'push' + # env: + # GH_TOKEN: ${{ github.token }} + # GH_REPO: ${{ github.event.repository.full_name }} + # run: | + # gh api --method DELETE /repos/{owner}/{repo}/actions/caches?key=prettier-main-cache || + # echo "Cache not found" + + # - name: Save prettier cache + # if: github.event_name == 'push' + # uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + # with: + # path: .cache/prettier + # key: prettier-main-cache + + # lint-docs: + # needs: [setup] + # runs-on: ubuntu-latest + # timeout-minutes: 7 + + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Lint markdown + # uses: DavidAnson/markdownlint-cli2-action@b4c9feab76d8025d1e83c653fa3990936df0e6c8 # v16.0.0 + + # - name: Lint fenced code blocks + # run: pnpm doc-fence-check + + # - name: Lint documentation + # run: pnpm lint-documentation + + # - name: Markdown lint + # run: pnpm markdown-lint + + # lint-other: + # needs: [setup] + # runs-on: ubuntu-latest + # timeout-minutes: 7 + + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Type check + # run: pnpm type-check + + # - name: Lint project file structure + # run: pnpm ls-lint + + # - name: Check git version + # run: pnpm git-check + + # - name: Test schema + # run: pnpm test-schema + + # test: + # needs: [setup, prefetch] + + # if: | + # !(github.event.pull_request.draft == true && + # needs.setup.outputs.test-matrix-empty == 'true') + + # name: ${{ matrix.name }} + + # runs-on: ${{ matrix.os }} + # timeout-minutes: ${{ matrix.runner-timeout-minutes }} + + # strategy: + # matrix: + # include: ${{ fromJSON(needs.setup.outputs.test-shard-matrix) }} + + # steps: + # - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Cache jest + # uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + # with: + # path: .cache/jest + # key: | + # jest-cache-${{ + # runner.os + # }}-${{ + # env.NODE_VERSION + # }}-${{ + # hashFiles('pnpm-lock.yaml') + # }}-${{ + # matrix.cache-key + # }} + + # - name: Unit tests + # shell: bash + # run: | + # for shard in ${{ matrix.shards }}; + # do + # TEST_SHARD="$shard" pnpm jest \ + # --ci \ + # --test-timeout ${{ matrix.test-timeout-milliseconds }} \ + # --coverage ${{ matrix.coverage }} + # done + + # - name: Move coverage files + # if: (success() || failure()) && github.event.pull_request.draft != true && matrix.coverage + # run: | + # mkdir -p ./coverage/lcov + # mkdir -p ./coverage/json + # for shard in ${{ matrix.shards }}; + # do + # mv ./coverage/shard/$shard/lcov.info ./coverage/lcov/$shard.lcov + # mv ./coverage/shard/$shard/coverage-final.json ./coverage/json/$shard.json + # done + + # - name: Save coverage artifacts + # if: (success() || failure()) && github.event.pull_request.draft != true && matrix.coverage + # uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 + # with: + # name: ${{ matrix.upload-artifact-name }} + # path: | + # ./coverage/lcov + # ./coverage/json + + # codecov: + # needs: [test] + # runs-on: ubuntu-latest + # timeout-minutes: 3 + # if: (success() || failure()) && github.event_name != 'merge_group' && github.event.pull_request.draft != true + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # filter: blob:none # we don't need all blobs + # show-progress: false + + # - name: Download coverage reports + # uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + # with: + # pattern: coverage-* + # path: coverage + # merge-multiple: true + + # - name: Codecov + # uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} + # directory: coverage/lcov + # fail_ci_if_error: github.event_name != 'pull_request' + # verbose: true + + # coverage-threshold: + # needs: + # - test + # runs-on: ubuntu-latest + # timeout-minutes: 3 + # if: (success() || failure()) && github.event.pull_request.draft != true + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # filter: blob:none # we don't need all blobs + # sparse-checkout: ${{ env.SPARSE_CHECKOUT }} + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Download coverage reports + # uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + # with: + # pattern: coverage-* + # path: coverage + # merge-multiple: true + + # - name: Merge coverage reports + # run: pnpm nyc merge ./coverage/json ./coverage/nyc/coverage.json + + # - name: Report coverage + # run: pnpm nyc report -t ./coverage/nyc --skip-full -r text -r text-summary + + # - name: Check coverage threshold + # run: | + # pnpm nyc check-coverage -t ./coverage/nyc \ + # --branches 100 \ + # --functions 100 \ + # --lines 100 \ + # --statements 100 + + # # Catch-all required check for test matrix and coverage + # test-success: + # needs: + # - setup + # - test + # - codecov + # - coverage-threshold + # runs-on: ubuntu-latest + # timeout-minutes: 1 + # if: always() + # steps: + # - name: Fail for failed or cancelled tests + # if: | + # needs.test.result == 'failure' || + # needs.test.result == 'cancelled' + # run: exit 1 + + # - name: Fail for skipped tests when PR is ready for review + # if: | + # github.event_name == 'pull_request' && + # github.event.pull_request.draft != true && + # needs.test.result == 'skipped' + # run: exit 1 + + # - name: Fail for failed or cancelled codecov + # if: | + # needs.codecov.result == 'failure' || + # needs.codecov.result == 'cancelled' + # run: exit 1 + + # - name: Fail for skipped codecov when PR is ready for review + # if: | + # github.event_name == 'pull_request' && + # github.event.pull_request.draft != true && + # needs.codecov.result == 'skipped' + # run: exit 1 + + # - name: Fail for failed or cancelled coverage-threshold + # if: | + # needs.coverage-threshold.result == 'failure' || + # needs.coverage-threshold.result == 'cancelled' + # run: exit 1 + + # - name: Fail for skipped coverage-threshold when PR is ready for review + # if: | + # github.event_name == 'pull_request' && + # github.event.pull_request.draft != true && + # needs.coverage-threshold.result == 'skipped' + # run: exit 1 + + # build: + # needs: setup + # runs-on: ubuntu-latest + # timeout-minutes: 5 + # if: github.event.pull_request.draft != true + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Build + # run: pnpm build + + # - name: Build docker + # run: pnpm build:docker build --tries=3 + # env: + # LOG_LEVEL: debug + + # - name: Pack + # run: pnpm test-e2e:pack + + # - name: Upload + # uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 + # with: + # name: renovate-package + # path: renovate-0.0.0-semantic-release.tgz + + # build-docs: + # needs: [lint-docs] + # runs-on: ubuntu-latest + # timeout-minutes: 5 + # if: github.event.pull_request.draft != true + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup Node.js + # uses: ./.github/actions/setup-node + # with: + # node-version: ${{ env.NODE_VERSION }} + # os: ${{ runner.os }} + + # - name: Build + # run: pnpm build:docs + + # - name: Upload + # uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 + # with: + # name: docs + # path: tmp/docs/ + + # test-e2e: + # needs: [build] + # runs-on: 'ubuntu-latest' + # timeout-minutes: 7 + + # if: github.event.pull_request.draft != true + + # steps: + # - name: Checkout code + # uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + # with: + # show-progress: false + + # - name: Setup pnpm + # uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # v3.0.0 + # with: + # standalone: true + + # - name: Setup Node.js + # uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + # with: + # node-version: ${{ env.NODE_VERSION }} + + # - name: Download package + # uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + # with: + # name: renovate-package + + # - name: Install dependencies + # run: pnpm test-e2e:install + + # - name: E2E Test + # run: pnpm test-e2e:run release: - needs: - - setup - - lint-eslint - - lint-prettier - - lint-docs - - lint-other - - test-e2e - - test-success - - build-docs - - codecov - - coverage-threshold - - if: github.repository == 'renovatebot/renovate' && github.event_name != 'pull_request' + # needs: + # - setup + # - lint-eslint + # - lint-prettier + # - lint-docs + # - lint-other + # - test-e2e + # - test-success + # - build-docs + # - codecov + # - coverage-threshold + + # if: github.repository == 'renovatebot/renovate' && github.event_name != 'pull_request' runs-on: ubuntu-latest timeout-minutes: 60 permissions: @@ -643,7 +644,7 @@ jobs: - name: Docker registry login run: | - echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin + # echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin - name: Check dry run @@ -658,8 +659,8 @@ jobs: - name: semantic-release run: | - pnpm semantic-release --dry-run ${{env.DRY_RUN}} + pnpm semantic-release --dry-run true env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # TODO: use action token? - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # TODO: use action token? + # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} LOG_LEVEL: debug diff --git a/.releaserc.json b/.releaserc.json index a9dcb3f1bbf251d..728fd816bab9d46 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,7 +1,6 @@ { "plugins": [ "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", [ "@semantic-release/github", { @@ -14,7 +13,6 @@ ] } ], - "@semantic-release/npm", [ "@semantic-release/exec", { @@ -91,8 +89,7 @@ }, "tagFormat": "${version}", "branches": [ - { - "name": "main" - } + { "name": "main" }, + { "name": "gitlab-forked-from-project" } ] } diff --git a/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap b/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap index a0082574098a516..1606ceab4e474e4 100644 --- a/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap +++ b/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap @@ -232,6 +232,7 @@ exports[`modules/platform/gitlab/index initRepo should fall back respecting when "defaultBranch": "master", "ignorePrAuthor": undefined, "mergeMethod": "merge", + "mergeRequestRepository": "some%2Frepo%2Fproject", "repository": "some%2Frepo%2Fproject", "url": "http://oauth2:123test@mycompany.com/gitlab/some/repo/project.git", }, @@ -247,6 +248,7 @@ exports[`modules/platform/gitlab/index initRepo should use ssh_url_to_repo if gi "defaultBranch": "master", "ignorePrAuthor": undefined, "mergeMethod": "merge", + "mergeRequestRepository": "some%2Frepo%2Fproject", "repository": "some%2Frepo%2Fproject", "url": "ssh://git@gitlab.com/some%2Frepo%2Fproject.git", }, diff --git a/lib/modules/platform/gitlab/index.ts b/lib/modules/platform/gitlab/index.ts index e5b1e89368c945d..c350402bfbfa611 100644 --- a/lib/modules/platform/gitlab/index.ts +++ b/lib/modules/platform/gitlab/index.ts @@ -83,6 +83,7 @@ let config: { cloneSubmodules: boolean | undefined; ignorePrAuthor: boolean | undefined; squash: boolean; + mergeRequestRepository: string; } = {} as any; const defaults = { @@ -323,7 +324,6 @@ export async function initRepo({ ); throw new Error(REPOSITORY_ARCHIVED); } - if (res.body.mirror && includeMirrors !== true) { logger.debug( 'Repository is a mirror - throwing error to abort renovation', @@ -359,6 +359,8 @@ export async function initRepo({ } logger.debug(`${repository} default branch = ${config.defaultBranch}`); delete config.prList; + config.mergeRequestRepository = + res.body.forked_from_project?.id ?? config.repository; logger.debug('Enabling Git FS'); const url = getRepoUrl(repository, gitUrl, res); await git.initRepo({ @@ -555,7 +557,7 @@ async function fetchPrList(): Promise { searchParams.scope = 'created_by_me'; } const query = getQueryString(searchParams); - const urlString = `projects/${config.repository}/merge_requests?${query}`; + const urlString = `projects/${config.mergeRequestRepository}/merge_requests?${query}`; try { const res = await gitlabApi.getJson< { @@ -593,7 +595,7 @@ export async function getPrList(): Promise { async function ignoreApprovals(pr: number): Promise { try { - const url = `projects/${config.repository}/merge_requests/${pr}/approval_rules`; + const url = `projects/${config.mergeRequestRepository}/merge_requests/${pr}/approval_rules`; const { body: rules } = await gitlabApi.getJson< { name: string; @@ -684,7 +686,7 @@ async function tryPrAutomerge( pipeline: { status: string; }; - }>(`projects/${config.repository}/merge_requests/${pr}`, { + }>(`projects/${config.mergeRequestRepository}/merge_requests/${pr}`, { memCache: false, }); // detailed_merge_status is available with Gitlab >=15.6.0 @@ -713,7 +715,7 @@ async function tryPrAutomerge( for (let attempt = 1; attempt <= retryTimes; attempt += 1) { try { await gitlabApi.putJson( - `projects/${config.repository}/merge_requests/${pr}/merge`, + `projects/${config.mergeRequestRepository}/merge_requests/${pr}/merge`, { body: { should_remove_source_branch: true, @@ -739,7 +741,7 @@ async function tryPrAutomerge( async function approvePr(pr: number): Promise { try { await gitlabApi.postJson( - `projects/${config.repository}/merge_requests/${pr}/approve`, + `projects/${config.mergeRequestRepository}/merge_requests/${pr}/approve`, ); } catch (err) { logger.warn({ err }, 'GitLab: Error approving merge request'); @@ -761,6 +763,9 @@ export async function createPr({ } const description = sanitize(rawDescription); logger.debug(`Creating Merge Request: ${title}`); + // the creation is always against the repository with the branch + // but if the target_project_id is forked_from_project, then the Merge + // Request will end up in that repository const res = await gitlabApi.postJson( `projects/${config.repository}/merge_requests`, { @@ -772,6 +777,7 @@ export async function createPr({ description, labels: (labels ?? []).join(','), squash: config.squash, + target_project_id: config.mergeRequestRepository, }, }, ); @@ -794,7 +800,7 @@ export async function createPr({ export async function getPr(iid: number): Promise { logger.debug(`getPr(${iid})`); - const mr = await getMR(config.repository, iid); + const mr = await getMR(config.mergeRequestRepository, iid); // Harmonize fields with GitHub const pr: GitlabPr = { @@ -852,7 +858,7 @@ export async function updatePr({ } await gitlabApi.putJson( - `projects/${config.repository}/merge_requests/${iid}`, + `projects/${config.mergeRequestRepository}/merge_requests/${iid}`, { body }, ); @@ -873,7 +879,7 @@ export async function reattemptPlatformAutomerge({ export async function mergePr({ id }: MergePRConfig): Promise { try { await gitlabApi.putJson( - `projects/${config.repository}/merge_requests/${id}/merge`, + `projects/${config.mergeRequestRepository}/merge_requests/${id}/merge`, { body: { should_remove_source_branch: true, @@ -1010,11 +1016,12 @@ export async function setBranchStatus({ state: renovateState, url: targetUrl, }: BranchStatusConfig): Promise { + const branchSourceProject = config.repository; // First, get the branch commit SHA const branchSha = git.getBranchCommit(branchName); // Now, check the statuses for that commit // TODO: types (#22198) - const url = `projects/${config.repository}/statuses/${branchSha!}`; + const url = `projects/${branchSourceProject}/statuses/${branchSha!}`; let state = 'success'; if (renovateState === 'yellow') { state = 'pending'; @@ -1076,7 +1083,7 @@ export async function getIssueList(): Promise { }); const res = await gitlabApi.getJson< { iid: number; title: string; labels: string[] }[] - >(`projects/${config.repository}/issues?${query}`, { + >(`projects/${config.mergeRequestRepository}/issues?${query}`, { memCache: false, paginate: true, }); @@ -1101,7 +1108,7 @@ export async function getIssue( try { const issueBody = ( await gitlabApi.getJson<{ description: string }>( - `projects/${config.repository}/issues/${number}`, + `projects/${config.mergeRequestRepository}/issues/${number}`, { memCache: useCache }, ) ).body.description; @@ -1148,13 +1155,13 @@ export async function ensureIssue({ if (issue) { const existingDescription = ( await gitlabApi.getJson<{ description: string }>( - `projects/${config.repository}/issues/${issue.iid}`, + `projects/${config.mergeRequestRepository}/issues/${issue.iid}`, ) ).body.description; if (issue.title !== title || existingDescription !== description) { logger.debug('Updating issue'); await gitlabApi.putJson( - `projects/${config.repository}/issues/${issue.iid}`, + `projects/${config.mergeRequestRepository}/issues/${issue.iid}`, { body: { title, @@ -1167,14 +1174,17 @@ export async function ensureIssue({ return 'updated'; } } else { - await gitlabApi.postJson(`projects/${config.repository}/issues`, { - body: { - title, - description, - labels: (labels ?? []).join(','), - confidential: confidential ?? false, + await gitlabApi.postJson( + `projects/${config.mergeRequestRepository}/issues`, + { + body: { + title, + description, + labels: (labels ?? []).join(','), + confidential: confidential ?? false, + }, }, - }); + ); logger.info('Issue created'); // delete issueList so that it will be refetched as necessary delete config.issueList; @@ -1197,7 +1207,7 @@ export async function ensureIssueClosing(title: string): Promise { if (issue.title === title) { logger.debug({ issue }, 'Closing issue'); await gitlabApi.putJson( - `projects/${config.repository}/issues/${issue.iid}`, + `projects/${config.mergeRequestRepository}/issues/${issue.iid}`, { body: { state_event: 'close' }, }, @@ -1282,7 +1292,7 @@ export async function addReviewers( newReviewerIDs = [...new Set(newReviewerIDs)]; try { - await updateMR(config.repository, iid, { + await updateMR(config.mergeRequestRepository, iid, { reviewer_ids: [...existingReviewerIDs, ...newReviewerIDs], }); } catch (err) { @@ -1301,7 +1311,7 @@ export async function deleteLabel( .filter((l: string) => l !== label) .join(','); await gitlabApi.putJson( - `projects/${config.repository}/merge_requests/${issueNo}`, + `projects/${config.mergeRequestRepository}/merge_requests/${issueNo}`, { body: { labels }, }, @@ -1314,7 +1324,7 @@ export async function deleteLabel( async function getComments(issueNo: number): Promise { // GET projects/:owner/:repo/merge_requests/:number/notes logger.debug(`Getting comments for #${issueNo}`); - const url = `projects/${config.repository}/merge_requests/${issueNo}/notes`; + const url = `projects/${config.mergeRequestRepository}/merge_requests/${issueNo}/notes`; const comments = ( await gitlabApi.getJson(url, { paginate: true }) ).body; @@ -1325,7 +1335,7 @@ async function getComments(issueNo: number): Promise { async function addComment(issueNo: number, body: string): Promise { // POST projects/:owner/:repo/merge_requests/:number/notes await gitlabApi.postJson( - `projects/${config.repository}/merge_requests/${issueNo}/notes`, + `projects/${config.mergeRequestRepository}/merge_requests/${issueNo}/notes`, { body: { body }, }, @@ -1339,7 +1349,7 @@ async function editComment( ): Promise { // PUT projects/:owner/:repo/merge_requests/:number/notes/:id await gitlabApi.putJson( - `projects/${config.repository}/merge_requests/${issueNo}/notes/${commentId}`, + `projects/${config.mergeRequestRepository}/merge_requests/${issueNo}/notes/${commentId}`, { body: { body }, }, @@ -1352,7 +1362,7 @@ async function deleteComment( ): Promise { // DELETE projects/:owner/:repo/merge_requests/:number/notes/:id await gitlabApi.deleteJson( - `projects/${config.repository}/merge_requests/${issueNo}/notes/${commentId}`, + `projects/${config.mergeRequestRepository}/merge_requests/${issueNo}/notes/${commentId}`, ); } diff --git a/lib/modules/platform/gitlab/types.ts b/lib/modules/platform/gitlab/types.ts index 897d25175783b45..d33db1956b0bc02 100644 --- a/lib/modules/platform/gitlab/types.ts +++ b/lib/modules/platform/gitlab/types.ts @@ -60,12 +60,14 @@ export interface RepoResponse { empty_repo: boolean; ssh_url_to_repo: string; http_url_to_repo: string; - forked_from_project: boolean; repository_access_level: 'disabled' | 'private' | 'enabled'; merge_requests_access_level: 'disabled' | 'private' | 'enabled'; merge_method: MergeMethod; path_with_namespace: string; squash_option?: 'never' | 'always' | 'default_on' | 'default_off'; + forked_from_project?: { + id: string; + }; } // See https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/graphql/types/user_status_type.rb diff --git a/package.json b/package.json index abdea127ec831d1..9d90bfeca55faec 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/renovatebot/renovate.git" + "url": "https://github.com/appian/renovate.git" }, "keywords": [ "automated", diff --git a/tools/docker/bake.hcl b/tools/docker/bake.hcl index 8a93f1924e94a49..46e507f0f2f99a7 100644 --- a/tools/docker/bake.hcl +++ b/tools/docker/bake.hcl @@ -1,5 +1,5 @@ variable "OWNER" { - default = "renovatebot" + default = "appian" } variable "FILE" { default = "renovate" diff --git a/tools/publish-release.ts b/tools/publish-release.ts index 590ef44aab16255..50b700a20a6be08 100644 --- a/tools/publish-release.ts +++ b/tools/publish-release.ts @@ -26,11 +26,11 @@ void (async () => { if (meta?.['push-slim']?.['containerimage.digest']) { sign( - `ghcr.io/renovatebot/renovate@${meta['push-slim']['containerimage.digest']}`, + `ghcr.io/appian/renovate@${meta['push-slim']['containerimage.digest']}`, opts, ); sign( - `renovate/renovate@${meta['push-slim']['containerimage.digest']}`, + `appian/renovate@${meta['push-slim']['containerimage.digest']}`, opts, ); } else { @@ -39,11 +39,11 @@ void (async () => { if (meta?.['push-full']?.['containerimage.digest']) { sign( - `ghcr.io/renovatebot/renovate@${meta['push-full']['containerimage.digest']}`, + `ghcr.io/appian/renovate@${meta['push-full']['containerimage.digest']}`, opts, ); sign( - `renovate/renovate@${meta['push-full']['containerimage.digest']}`, + `appian/renovate@${meta['push-full']['containerimage.digest']}`, opts, ); } else {