From 918b7884be676e35ecc4d7224c3e296666620d1b Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 11:48:39 +0300 Subject: [PATCH 01/15] feat(dependabot): enhance configuration and remove stale actions - Updated Dependabot configuration to include public NuGet registry and improved scheduling for package updates to daily frequency. - Removed stale configuration file and replaced with a new GitHub Actions workflow to manage stale issues and pull requests. - Renamed pipeline workflow to main for clarity and consistency. This refactor aims to streamline dependency management and improve issue tracking. --- .github/dependabot.yml | 42 ++- .github/stale.yml | 60 ---- .github/workflows/dependabot.auto.yaml | 35 ++ .../workflows/{pipeline.yaml => main.yaml} | 324 +++++++++--------- .github/workflows/stale.yaml | 43 +++ 5 files changed, 268 insertions(+), 236 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/dependabot.auto.yaml rename .github/workflows/{pipeline.yaml => main.yaml} (97%) create mode 100644 .github/workflows/stale.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 887f9fa..0ddd010 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,16 +1,30 @@ version: 2 +registries: + public-nuget: + type: nuget-feed + url: https://api.nuget.org/v3/index.json updates: -- package-ecosystem: nuget - directory: "/" - schedule: - interval: weekly - open-pull-requests-limit: 10 - -- package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly - groups: - actions: - patterns: - - "*" + - package-ecosystem: nuget + directory: "/" + registries: + - public-nuget + schedule: + interval: daily + open-pull-requests-limit: 15 + labels: + - "area-dependencies" + groups: + all-dependencies: + patterns: + - "*" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 5 + labels: + - "area-dependencies" + groups: + all-dependencies: + patterns: + - "*" \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index f650b5a..0000000 --- a/.github/stale.yml +++ /dev/null @@ -1,60 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 14 - -# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: 14 - -# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) -onlyLabels: [] - -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - pinned - - security - - "[Status] Maybe Later" - -# Set to true to ignore issues in a project (defaults to false) -exemptProjects: false - -# Set to true to ignore issues in a milestone (defaults to false) -exemptMilestones: false - -# Set to true to ignore issues with an assignee (defaults to false) -exemptAssignees: false - -# Label to use when marking as stale -staleLabel: stale - -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - Automatically marked as stale due to no recent activity. - It will be closed if no further activity occurs. Thank you for your contributions. - -# Comment to post when removing the stale label. -unmarkComment: > - Removed stale label. - -# Comment to post when closing a stale Issue or Pull Request. -closeComment: > - Automatically closed stale item. - -# Limit the number of actions per hour, from 1-30. Default is 30 -limitPerRun: 30 - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': -# pulls: -# daysUntilStale: 30 -# markComment: > -# This pull request has been automatically marked as stale because it has not had -# recent activity. It will be closed if no further activity occurs. Thank you -# for your contributions. - -# issues: -# exemptLabels: -# - confirmed \ No newline at end of file diff --git a/.github/workflows/dependabot.auto.yaml b/.github/workflows/dependabot.auto.yaml new file mode 100644 index 0000000..fef0919 --- /dev/null +++ b/.github/workflows/dependabot.auto.yaml @@ -0,0 +1,35 @@ +name: Dependabot auto-approve-and-merge + +on: + pull_request: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: github.event.pull_request.user.login == 'dependabot[bot]' + steps: + - name: Fetch Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v2 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + skip-commit-verification: true + skip-verification: true + + - name: Enable auto-merge + run: gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ secrets.ES_GITHUB_PAT }} + + - name: Approve the PR + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ secrets.ES_GITHUB_PAT }} diff --git a/.github/workflows/pipeline.yaml b/.github/workflows/main.yaml similarity index 97% rename from .github/workflows/pipeline.yaml rename to .github/workflows/main.yaml index 09a252a..2eb8614 100644 --- a/.github/workflows/pipeline.yaml +++ b/.github/workflows/main.yaml @@ -1,162 +1,162 @@ -name: Pipeline - -on: - push: - paths: - - "src/**" - - ".github/workflows/**" - pull_request: - paths: - - "src/**" - - ".github/workflows/**" - -env: - version: 9.0.${{github.run_number}} - imageRepository: "emberstack/kubernetes-reflector" - DOCKER_CLI_EXPERIMENTAL: "enabled" - -jobs: - ci: - name: CI - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: artifacts - prepare directories - run: | - mkdir -p .artifacts/helm - mkdir -p .artifacts/kubectl - - - name: helm - import README - run: cp README.md src/helm/reflector/README.md - - - name: helm - package chart - run: helm package --destination .artifacts/helm --version ${{env.version}} --app-version ${{env.version}} src/helm/reflector - - - name: helm - template chart - run: helm template --namespace kube-system reflector .artifacts/helm/reflector-${{env.version}}.tgz > .artifacts/kubectl/reflector-${{env.version}}.yaml - - - name: "artifacts - upload - helm chart" - uses: actions/upload-artifact@v4 - with: - name: helm - path: .artifacts/helm - - - name: "artifacts - upload - kubectl manifests" - uses: actions/upload-artifact@v4 - with: - name: kubectl - path: .artifacts/kubectl - - - name: "docker - build PR" - if: github.event_name == 'pull_request' - run: | - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker buildx create --name builder --driver docker-container --use - docker buildx inspect --bootstrap - docker buildx build --platform linux/amd64 -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - docker buildx build --platform linux/arm -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - docker buildx build --platform linux/arm64 -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - - - name: tools - docker - login - if: github.event_name == 'push' && github.actor != 'dependabot[bot]' - uses: docker/login-action@v3 - with: - username: ${{ secrets.ES_DOCKERHUB_USERNAME }} - password: ${{ secrets.ES_DOCKERHUB_PAT }} - - - name: "docker - build and publish" - if: github.event_name == 'push' && github.actor != 'dependabot[bot]' - run: | - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker buildx create --name builder --driver docker-container --use - docker buildx inspect --bootstrap - docker buildx build --push --platform linux/amd64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - docker buildx build --push --platform linux/arm --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - docker buildx build --push --platform linux/arm64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/ - docker pull --platform linux/amd64 ${{env.imageRepository}}:build-${{env.version}}-amd64 - docker pull --platform linux/arm/v7 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 - docker pull --platform linux/arm64 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 - docker manifest create ${{env.imageRepository}}:build-${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 - docker manifest inspect ${{env.imageRepository}}:build-${{env.version}} - docker manifest push ${{env.imageRepository}}:build-${{env.version}} - - cd: - name: CD - needs: ci - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - steps: - - name: tools - docker - login - uses: docker/login-action@v3 - with: - username: ${{ secrets.ES_DOCKERHUB_USERNAME }} - password: ${{ secrets.ES_DOCKERHUB_PAT }} - - - name: artifacts - download - helm chart - uses: actions/download-artifact@v4 - with: - name: helm - path: .artifacts/helm - - - name: artifacts - download - kubectl manifests - uses: actions/download-artifact@v4 - with: - name: kubectl - path: .artifacts/kubectl - - - name: "docker - tag and push" - run: | - docker pull ${{env.imageRepository}}:build-${{env.version}}-amd64 - docker pull ${{env.imageRepository}}:build-${{env.version}}-arm32v7 - docker pull ${{env.imageRepository}}:build-${{env.version}}-arm64v8 - docker manifest create ${{env.imageRepository}}:${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 - docker manifest create ${{env.imageRepository}}:latest ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 - docker manifest push ${{env.imageRepository}}:${{env.version}} - docker manifest push ${{env.imageRepository}}:latest - docker manifest push ${{env.imageRepository}}:${{env.version}} - docker manifest push ${{env.imageRepository}}:latest - docker tag ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:${{env.version}}-amd64 - docker tag ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:${{env.version}}-arm32v7 - docker tag ${{env.imageRepository}}:build-${{env.version}}-arm64v8 ${{env.imageRepository}}:${{env.version}}-arm64v8 - docker push ${{env.imageRepository}}:${{env.version}}-amd64 - docker push ${{env.imageRepository}}:${{env.version}}-arm32v7 - docker push ${{env.imageRepository}}:${{env.version}}-arm64v8 - - - name: github - checkout - helm-charts - uses: actions/checkout@v4 - with: - repository: emberstack/helm-charts - token: ${{ secrets.ES_GITHUB_PAT }} - path: helm-charts - ref: main - - - name: github - publish - chart - run: | - mkdir -p helm-charts/repository/reflector - cp .artifacts/helm/reflector-${{env.version}}.tgz helm-charts/repository/reflector - - cd helm-charts - - git config user.name "Romeo Dumitrescu" - git config user.email "5931333+winromulus@users.noreply.github.com" - git add . - git status - git commit -m "Added reflector-${{env.version}}.tgz" - git push - - - name: github - release - set manifest name - run: | - mkdir -p github - cp .artifacts/kubectl/reflector-${{env.version}}.yaml github/reflector.yaml - - - name: github - create release - uses: softprops/action-gh-release@v2 - with: - repository: emberstack/kubernetes-reflector - tag_name: v${{env.version}} - body: The release process is automated. - generate_release_notes: true - token: ${{ secrets.ES_GITHUB_PAT }} - files: | - github/reflector.yaml +name: Main Workflow + +on: + push: + paths: + - "src/**" + - ".github/workflows/**" + pull_request: + paths: + - "src/**" + - ".github/workflows/**" + +env: + version: 9.0.${{github.run_number}} + imageRepository: "emberstack/kubernetes-reflector" + DOCKER_CLI_EXPERIMENTAL: "enabled" + +jobs: + ci: + name: CI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: artifacts - prepare directories + run: | + mkdir -p .artifacts/helm + mkdir -p .artifacts/kubectl + + - name: helm - import README + run: cp README.md src/helm/reflector/README.md + + - name: helm - package chart + run: helm package --destination .artifacts/helm --version ${{env.version}} --app-version ${{env.version}} src/helm/reflector + + - name: helm - template chart + run: helm template --namespace kube-system reflector .artifacts/helm/reflector-${{env.version}}.tgz > .artifacts/kubectl/reflector-${{env.version}}.yaml + + - name: "artifacts - upload - helm chart" + uses: actions/upload-artifact@v4 + with: + name: helm + path: .artifacts/helm + + - name: "artifacts - upload - kubectl manifests" + uses: actions/upload-artifact@v4 + with: + name: kubectl + path: .artifacts/kubectl + + - name: "docker - build PR" + if: github.event_name == 'pull_request' + run: | + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx create --name builder --driver docker-container --use + docker buildx inspect --bootstrap + docker buildx build --platform linux/amd64 -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + docker buildx build --platform linux/arm -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + docker buildx build --platform linux/arm64 -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + + - name: tools - docker - login + if: github.event_name == 'push' && github.actor != 'dependabot[bot]' + uses: docker/login-action@v3 + with: + username: ${{ secrets.ES_DOCKERHUB_USERNAME }} + password: ${{ secrets.ES_DOCKERHUB_PAT }} + + - name: "docker - build and publish" + if: github.event_name == 'push' && github.actor != 'dependabot[bot]' + run: | + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx create --name builder --driver docker-container --use + docker buildx inspect --bootstrap + docker buildx build --push --platform linux/amd64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + docker buildx build --push --platform linux/arm --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + docker buildx build --push --platform linux/arm64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/ + docker pull --platform linux/amd64 ${{env.imageRepository}}:build-${{env.version}}-amd64 + docker pull --platform linux/arm/v7 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 + docker pull --platform linux/arm64 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 + docker manifest create ${{env.imageRepository}}:build-${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 + docker manifest inspect ${{env.imageRepository}}:build-${{env.version}} + docker manifest push ${{env.imageRepository}}:build-${{env.version}} + + cd: + name: CD + needs: ci + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + steps: + - name: tools - docker - login + uses: docker/login-action@v3 + with: + username: ${{ secrets.ES_DOCKERHUB_USERNAME }} + password: ${{ secrets.ES_DOCKERHUB_PAT }} + + - name: artifacts - download - helm chart + uses: actions/download-artifact@v4 + with: + name: helm + path: .artifacts/helm + + - name: artifacts - download - kubectl manifests + uses: actions/download-artifact@v4 + with: + name: kubectl + path: .artifacts/kubectl + + - name: "docker - tag and push" + run: | + docker pull ${{env.imageRepository}}:build-${{env.version}}-amd64 + docker pull ${{env.imageRepository}}:build-${{env.version}}-arm32v7 + docker pull ${{env.imageRepository}}:build-${{env.version}}-arm64v8 + docker manifest create ${{env.imageRepository}}:${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 + docker manifest create ${{env.imageRepository}}:latest ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8 + docker manifest push ${{env.imageRepository}}:${{env.version}} + docker manifest push ${{env.imageRepository}}:latest + docker manifest push ${{env.imageRepository}}:${{env.version}} + docker manifest push ${{env.imageRepository}}:latest + docker tag ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:${{env.version}}-amd64 + docker tag ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:${{env.version}}-arm32v7 + docker tag ${{env.imageRepository}}:build-${{env.version}}-arm64v8 ${{env.imageRepository}}:${{env.version}}-arm64v8 + docker push ${{env.imageRepository}}:${{env.version}}-amd64 + docker push ${{env.imageRepository}}:${{env.version}}-arm32v7 + docker push ${{env.imageRepository}}:${{env.version}}-arm64v8 + + - name: github - checkout - helm-charts + uses: actions/checkout@v4 + with: + repository: emberstack/helm-charts + token: ${{ secrets.ES_GITHUB_PAT }} + path: helm-charts + ref: main + + - name: github - publish - chart + run: | + mkdir -p helm-charts/repository/reflector + cp .artifacts/helm/reflector-${{env.version}}.tgz helm-charts/repository/reflector + + cd helm-charts + + git config user.name "Romeo Dumitrescu" + git config user.email "5931333+winromulus@users.noreply.github.com" + git add . + git status + git commit -m "Added reflector-${{env.version}}.tgz" + git push + + - name: github - release - set manifest name + run: | + mkdir -p github + cp .artifacts/kubectl/reflector-${{env.version}}.yaml github/reflector.yaml + + - name: github - create release + uses: softprops/action-gh-release@v2 + with: + repository: emberstack/kubernetes-reflector + tag_name: v${{env.version}} + body: The release process is automated. + generate_release_notes: true + token: ${{ secrets.ES_GITHUB_PAT }} + files: | + github/reflector.yaml diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000..6e51f38 --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,43 @@ +name: Stale + +on: + schedule: + - cron: '0 0 * * *' # Runs daily at midnight UTC + workflow_dispatch: # Allows manual triggering + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + # General behavior + stale-issue-message: > + Automatically marked as stale due to no recent activity. + It will be closed if no further activity occurs. Thank you for your contributions. + close-issue-message: > + Automatically closed stale item. + stale-pr-message: > + Automatically marked as stale due to no recent activity. + It will be closed if no further activity occurs. Thank you for your contributions. + close-pr-message: > + Automatically closed stale item. + + days-before-stale: 14 + days-before-close: 14 + + # Labels + stale-issue-label: 'stale' + stale-pr-label: 'stale' + + exempt-issue-labels: 'pinned,security,[Status] Maybe Later' + exempt-pr-labels: 'pinned,security,[Status] Maybe Later' + + # Limits + operations-per-run: 30 \ No newline at end of file From f9caf090c5c687f2cd6c7611ed0a913ffe2514c9 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 11:56:01 +0300 Subject: [PATCH 02/15] chore(dependabot): update NuGet directory for package updates - Changes the directory in the Dependabot configuration to `/src` to correctly target the source folder for NuGet package updates. - Ensures that dependency updates are focused on the appropriate application code path. --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0ddd010..b98d632 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,7 @@ registries: url: https://api.nuget.org/v3/index.json updates: - package-ecosystem: nuget - directory: "/" + directory: "/src" registries: - public-nuget schedule: From 9538547e721ab5a9f7cf870aaf2cab1183e34ab1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 12:03:18 +0300 Subject: [PATCH 03/15] chore(deps): bump the all-dependencies group in /src with 6 updates (#494) Bumps the all-dependencies group in /src with 6 updates: | Package | From | To | | --- | --- | --- | | [ES.FX.Additions.KubernetesClient](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | | [ES.FX.Additions.Newtonsoft.Json](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | | [ES.FX.Ignite](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | | [ES.FX.Ignite.KubernetesClient](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | | [ES.FX.Ignite.OpenTelemetry.Exporter.Seq](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | | [ES.FX.Ignite.Serilog](https://github.com/emberstack/ES.FX) | `9.1.2` | `9.1.3` | Updates `ES.FX.Additions.KubernetesClient` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Additions.Newtonsoft.Json` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Ignite` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Additions.KubernetesClient` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Ignite.KubernetesClient` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Ignite.OpenTelemetry.Exporter.Seq` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) Updates `ES.FX.Ignite.Serilog` from 9.1.2 to 9.1.3 - [Release notes](https://github.com/emberstack/ES.FX/releases) - [Commits](https://github.com/emberstack/ES.FX/compare/version/v9.1.2...version/v9.1.3) --- updated-dependencies: - dependency-name: ES.FX.Additions.KubernetesClient dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Additions.Newtonsoft.Json dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Ignite dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Additions.KubernetesClient dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Ignite.KubernetesClient dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Ignite.OpenTelemetry.Exporter.Seq dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: ES.FX.Ignite.Serilog dependency-version: 9.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/Directory.Packages.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c4c1341..d80f222 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,12 +4,12 @@ false - - - - - - + + + + + + From 8197519231776a1b629e5f7f9bfad86b4391ebcc Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 12:33:58 +0300 Subject: [PATCH 04/15] ci(renovate): add workflow and configuration for dependency updates - Introduces a Renovate GitHub Action to automate dependency updates. - Configures daily runs at 5 AM UTC and allows manual execution. - Defines settings for managing NuGet and GitHub Actions dependencies, including auto-merge capabilities and a dependency dashboard. - Establishes group rules for grouping dependencies and setting management limits. --- .github/workflows/renovate.yaml | 18 ++++++++++++++++++ renovate.json | 26 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/renovate.yaml create mode 100644 renovate.json diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml new file mode 100644 index 0000000..8f75c6c --- /dev/null +++ b/.github/workflows/renovate.yaml @@ -0,0 +1,18 @@ +name: Renovate + +on: + schedule: + - cron: '0 5 * * *' # daily at 5am UTC + workflow_dispatch: + +jobs: + renovate: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Run Renovate + uses: renovatebot/github-action@v40.1.12 + with: + token: ${{ secrets.ES_GITHUB_PAT }} diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..b11e27a --- /dev/null +++ b/renovate.json @@ -0,0 +1,26 @@ +{ + "extends": ["config:recommended"], + "dependencyDashboard": true, + "labels": ["area-dependencies"], + "enabledManagers": ["nuget", "github-actions"], + "packageRules": [ + { + "matchManagers": ["nuget"], + "matchPaths": ["src/**"], + "groupName": "all-dependencies", + "automerge": true, + "labels": ["area-dependencies"] + }, + { + "matchManagers": ["github-actions"], + "matchPaths": [".github/workflows/**"], + "groupName": "all-dependencies", + "automerge": true, + "labels": ["area-dependencies"] + } + ], + "automergeType": "pr", + "prHourlyLimit": 15, + "prConcurrentLimit": 15 + } + \ No newline at end of file From cf18dfa4a791a07206c08ac51fcba568a17d5ab1 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 12:39:10 +0300 Subject: [PATCH 05/15] ci(renovate): add specific repository to Renovate configuration - Configures the Renovate GitHub action to target the `emberstack/kubernetes-reflector` repository. - Improves dependency management automation for better project maintainability. --- .github/workflows/renovate.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 8f75c6c..827f0d6 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -16,3 +16,4 @@ jobs: uses: renovatebot/github-action@v40.1.12 with: token: ${{ secrets.ES_GITHUB_PAT }} + RENOVATE_REPOSITORIES: emberstack/kubernetes-reflector From 417ce1bcc95bbe22d20bb272e1106d89f9fc151f Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 13:33:57 +0300 Subject: [PATCH 06/15] ci(renovate): update Renovate action to latest version - Upgrades the Renovate GitHub Action from v40.1.12 to v41.0.22. - Modifies the environment variable configuration to utilize the GitHub repository context for Renovate repositories. --- .github/workflows/renovate.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 827f0d6..375ac52 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -13,7 +13,8 @@ jobs: uses: actions/checkout@v4 - name: Run Renovate - uses: renovatebot/github-action@v40.1.12 + uses: renovatebot/github-action@v41.0.22 with: token: ${{ secrets.ES_GITHUB_PAT }} - RENOVATE_REPOSITORIES: emberstack/kubernetes-reflector + env: + RENOVATE_REPOSITORIES: ${{ github.repository }} From 653d0c9bc1bcba02732cf4c9be4cf7d512ad71a3 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 13:36:37 +0300 Subject: [PATCH 07/15] ci(workflows): limit workflow triggers to main.yaml only - Restricts push and pull request triggers to changes in main.yaml. - Reduces unnecessary workflow runs for modifications outside of this file. --- .github/workflows/main.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 2eb8614..8d11d62 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -4,11 +4,11 @@ on: push: paths: - "src/**" - - ".github/workflows/**" + - ".github/workflows/main.yaml" pull_request: paths: - "src/**" - - ".github/workflows/**" + - ".github/workflows/main.yaml" env: version: 9.0.${{github.run_number}} From 4e58ac8566e51543d316616eeecc4fa9e01c76e3 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 13:42:00 +0300 Subject: [PATCH 08/15] chore(config): migrate config renovate.json (#496) Co-authored-by: Renovate Bot --- renovate.json | 68 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 25 deletions(-) diff --git a/renovate.json b/renovate.json index b11e27a..c289e8d 100644 --- a/renovate.json +++ b/renovate.json @@ -1,26 +1,44 @@ { - "extends": ["config:recommended"], - "dependencyDashboard": true, - "labels": ["area-dependencies"], - "enabledManagers": ["nuget", "github-actions"], - "packageRules": [ - { - "matchManagers": ["nuget"], - "matchPaths": ["src/**"], - "groupName": "all-dependencies", - "automerge": true, - "labels": ["area-dependencies"] - }, - { - "matchManagers": ["github-actions"], - "matchPaths": [".github/workflows/**"], - "groupName": "all-dependencies", - "automerge": true, - "labels": ["area-dependencies"] - } - ], - "automergeType": "pr", - "prHourlyLimit": 15, - "prConcurrentLimit": 15 - } - \ No newline at end of file + "extends": [ + "config:recommended" + ], + "dependencyDashboard": true, + "labels": [ + "area-dependencies" + ], + "enabledManagers": [ + "nuget", + "github-actions" + ], + "packageRules": [ + { + "matchManagers": [ + "nuget" + ], + "matchFileNames": [ + "src/**" + ], + "groupName": "all-dependencies", + "automerge": true, + "labels": [ + "area-dependencies" + ] + }, + { + "matchManagers": [ + "github-actions" + ], + "matchFileNames": [ + ".github/workflows/**" + ], + "groupName": "all-dependencies", + "automerge": true, + "labels": [ + "area-dependencies" + ] + } + ], + "automergeType": "pr", + "prHourlyLimit": 15, + "prConcurrentLimit": 15 +} From 39c1819499aba8427e93ca090dec33f6a437c5c1 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 13:49:41 +0300 Subject: [PATCH 09/15] chore(github): remove Dependabot configuration files - Deletes outdated Dependabot configuration to streamline dependency management. - Moves renovate.json to better organize configuration files. --- .github/dependabot.yml | 30 ---------------------- renovate.json => .github/renovate.json | 0 .github/workflows/dependabot.auto.yaml | 35 -------------------------- 3 files changed, 65 deletions(-) delete mode 100644 .github/dependabot.yml rename renovate.json => .github/renovate.json (100%) delete mode 100644 .github/workflows/dependabot.auto.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index b98d632..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 2 -registries: - public-nuget: - type: nuget-feed - url: https://api.nuget.org/v3/index.json -updates: - - package-ecosystem: nuget - directory: "/src" - registries: - - public-nuget - schedule: - interval: daily - open-pull-requests-limit: 15 - labels: - - "area-dependencies" - groups: - all-dependencies: - patterns: - - "*" - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 5 - labels: - - "area-dependencies" - groups: - all-dependencies: - patterns: - - "*" \ No newline at end of file diff --git a/renovate.json b/.github/renovate.json similarity index 100% rename from renovate.json rename to .github/renovate.json diff --git a/.github/workflows/dependabot.auto.yaml b/.github/workflows/dependabot.auto.yaml deleted file mode 100644 index fef0919..0000000 --- a/.github/workflows/dependabot.auto.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: Dependabot auto-approve-and-merge - -on: - pull_request: - branches: - - main - -permissions: - contents: write - pull-requests: write - -jobs: - dependabot: - runs-on: ubuntu-latest - if: github.event.pull_request.user.login == 'dependabot[bot]' - steps: - - name: Fetch Dependabot metadata - id: metadata - uses: dependabot/fetch-metadata@v2 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - skip-commit-verification: true - skip-verification: true - - - name: Enable auto-merge - run: gh pr merge --auto --squash "$PR_URL" - env: - PR_URL: ${{ github.event.pull_request.html_url }} - GH_TOKEN: ${{ secrets.ES_GITHUB_PAT }} - - - name: Approve the PR - run: gh pr review --approve "$PR_URL" - env: - PR_URL: ${{ github.event.pull_request.html_url }} - GH_TOKEN: ${{ secrets.ES_GITHUB_PAT }} From 821fc3b1f47961c2b34b4228dbe7b102678555a3 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 14:03:00 +0300 Subject: [PATCH 10/15] chore(dependencies): update dependency versions and dashboard settings - Changes the version of several ES.FX dependencies from 9.1.3 to 9.1.2 for compatibility reasons. - Disables the dependency dashboard feature for streamline dependency management. --- .github/renovate.json | 2 +- src/Directory.Packages.props | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index c289e8d..3a30059 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -2,7 +2,7 @@ "extends": [ "config:recommended" ], - "dependencyDashboard": true, + "dependencyDashboard": false, "labels": [ "area-dependencies" ], diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index d80f222..c4c1341 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,12 +4,12 @@ false - - - - - - + + + + + + From 55084a315cb37cd5a51cb9a1786f29f83e058031 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 14:10:08 +0300 Subject: [PATCH 11/15] ci(renovate): add pull request trigger and merge group setting - Introduces a pull_request trigger to the Renovate workflow, enabling automated updates when pull requests are created. - Adds merge_group to optimize dependency updates in a grouped manner. --- .github/workflows/renovate.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 375ac52..929fb0b 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -3,6 +3,8 @@ name: Renovate on: schedule: - cron: '0 5 * * *' # daily at 5am UTC + pull_request: + merge_group: workflow_dispatch: jobs: From eac8453f1d575eaf9b2512f8c703a90649baeefd Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 14:15:46 +0300 Subject: [PATCH 12/15] chore(deps): update all-dependencies to 9.1.3 (#497) Co-authored-by: Renovate Bot --- src/Directory.Packages.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c4c1341..d80f222 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,12 +4,12 @@ false - - - - - - + + + + + + From 2fd125eb62a1e7b7e2152decd588a5b7ae004d1c Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 14:32:42 +0300 Subject: [PATCH 13/15] ci(renovate): set Git author for Renovate Git commits - Configures the Git author information for commits made by Renovate. - Ensures consistent attribution for automated dependencies management. --- .github/workflows/renovate.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 929fb0b..c0a2938 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -20,3 +20,4 @@ jobs: token: ${{ secrets.ES_GITHUB_PAT }} env: RENOVATE_REPOSITORIES: ${{ github.repository }} + RENOVATE_GIT_AUTHOR: "Emberstack Renovate " From 6ca1ac821475ca74eeee6d445ffee2356dea2815 Mon Sep 17 00:00:00 2001 From: Romeo Dumitrescu Date: Thu, 1 May 2025 14:34:19 +0300 Subject: [PATCH 14/15] fix(packages): update package versions to 9.1.2 - Downgrades various `ES.FX` packages from version 9.1.3 to 9.1.2. - Ensures compatibility with dependencies that may require the earlier version. --- src/Directory.Packages.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index d80f222..c4c1341 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,12 +4,12 @@ false - - - - - - + + + + + + From 8373b229adf456d97842974168f40525d85afdbc Mon Sep 17 00:00:00 2001 From: Emberstack Renovate Date: Thu, 1 May 2025 11:35:35 +0000 Subject: [PATCH 15/15] chore(deps): update all-dependencies to 9.1.3 --- src/Directory.Packages.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c4c1341..d80f222 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,12 +4,12 @@ false - - - - - - + + + + + +