Skip to content

Conversation

@eegseth
Copy link

@eegseth eegseth commented Oct 8, 2025

Adds Azure DevOps support as an SCM provider, with both PAT and Azure Workload Identity authentication methods.

Fixes #303

Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
@codecov-commenter
Copy link

codecov-commenter commented Oct 9, 2025

Codecov Report

❌ Patch coverage is 19.00826% with 490 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.06%. Comparing base (cc4a08d) to head (c6a606e).

Files with missing lines Patch % Lines
internal/scms/azuredevops/pullrequest.go 3.05% 286 Missing ⚠️
internal/scms/azuredevops/git_operations.go 41.77% 89 Missing and 3 partials ⚠️
internal/scms/azuredevops/commit_status.go 5.55% 85 Missing ⚠️
internal/utils/utils.go 10.00% 8 Missing and 1 partial ⚠️
internal/controller/commitstatus_controller.go 0.00% 7 Missing ⚠️
...ternal/controller/argocdcommitstatus_controller.go 0.00% 3 Missing ⚠️
...rnal/controller/changetransferpolicy_controller.go 0.00% 3 Missing ⚠️
internal/scms/azuredevops/token_manager.go 91.89% 2 Missing and 1 partial ⚠️
internal/controller/pullrequest_controller.go 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #557      +/-   ##
==========================================
- Coverage   50.90%   47.06%   -3.85%     
==========================================
  Files          35       39       +4     
  Lines        4186     4791     +605     
==========================================
+ Hits         2131     2255     +124     
- Misses       1801     2280     +479     
- Partials      254      256       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@crenshaw-dev crenshaw-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did a quick first pass, it's looking good!

@eegseth eegseth requested a review from crenshaw-dev October 10, 2025 12:41
eegseth and others added 8 commits October 10, 2025 15:39
…erConfiguration API (argoproj-labs#549)

* Add dynamic controller configuration with WorkQueue settings

- Implement dual-client approach for reading configuration during setup
- Add Direct methods to read from API server bypassing cache
- Support generic rate limiter types for different request types
- Update all controllers to use configurable WorkQueue settings
- Add comprehensive ControllerConfiguration.yaml documentation

Signed-off-by: Zach Aller <[email protected]>

* fix default config

Signed-off-by: Zach Aller <[email protected]>

* fix validation

Signed-off-by: Zach Aller <[email protected]>

* fix test

Signed-off-by: Zach Aller <[email protected]>

* use correct configuration

Signed-off-by: Zach Aller <[email protected]>

* review

Signed-off-by: Zach Aller <[email protected]>

* switch

Signed-off-by: Zach Aller <[email protected]>

* lint

Signed-off-by: Zach Aller <[email protected]>

* test depend on 7

Signed-off-by: Zach Aller <[email protected]>

* if required remove omitempty

Signed-off-by: Zach Aller <[email protected]>

* set reconcile routines to 1

Signed-off-by: Zach Aller <[email protected]>

* set reconcile routines to 1 for CTP

Signed-off-by: Zach Aller <[email protected]>

* remove lock logger

Signed-off-by: Zach Aller <[email protected]>

* cleanup

Signed-off-by: Zach Aller <[email protected]>

---------

Signed-off-by: Zach Aller <[email protected]>
…abs#559)

Bumps [golang.org/x/time](https://github.com/golang/time) from 0.12.0 to 0.14.0.
- [Commits](golang/time@v0.12.0...v0.14.0)

---
updated-dependencies:
- dependency-name: golang.org/x/time
  dependency-version: 0.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… 0.154.0 (argoproj-labs#558)

chore(deps): bump gitlab.com/gitlab-org/api/client-go

Bumps [gitlab.com/gitlab-org/api/client-go](https://gitlab.com/gitlab-org/api/client-go) from 0.152.0 to 0.154.0.
- [Release notes](https://gitlab.com/gitlab-org/api/client-go/tags)
- [Changelog](https://gitlab.com/gitlab-org/api/client-go/blob/main/CHANGELOG.md)
- [Commits](https://gitlab.com/gitlab-org/api/client-go/compare/v0.152.0...v0.154.0)

---
updated-dependencies:
- dependency-name: gitlab.com/gitlab-org/api/client-go
  dependency-version: 0.154.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… cluster (argoproj-labs#560)

* save point

Signed-off-by: Zach Aller <[email protected]>

* ginkgo tests

Signed-off-by: Zach Aller <[email protected]>

* clean up crd check

Signed-off-by: Zach Aller <[email protected]>

* clean up

Signed-off-by: Zach Aller <[email protected]>

* save point

Signed-off-by: Zach Aller <[email protected]>

* remove test

Signed-off-by: Zach Aller <[email protected]>

* rename

Signed-off-by: Zach Aller <[email protected]>

* cleanup

Signed-off-by: Zach Aller <[email protected]>

* cleanup

Signed-off-by: Zach Aller <[email protected]>

* required

Signed-off-by: Zach Aller <[email protected]>

* add config

Signed-off-by: Zach Aller <[email protected]>

* formate

Signed-off-by: Zach Aller <[email protected]>

---------

Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
Signed-off-by: Endre Egseth <[email protected]>
@eegseth eegseth requested a review from crenshaw-dev October 15, 2025 07:03
@crenshaw-dev
Copy link
Contributor

crenshaw-dev commented Nov 6, 2025

Apologies for the delayed review. There was something bothering me that I couldn't quite figure out, and I think I finally made sense of it.

All of the existing providers is accessible via one of two modes:

  1. ClusterScmProvider: created by an admin along with creds, accessible to tenants in any namespace
  2. ScmProvider: created by tenants in their own namespaces who must also provide their own credentials

This new provider breaks that binary. If I as a namespaced tenant can create an ScmProvider, I can take advantage of the creds (the workload identity) of the controller in the admin-controlled namespace.

I think that, for this PR, we should make Azure DevOps workload identity available only in ClusterScmProviders. In a follow up PR we can add workload identity support to ScmProviders in a way that requires the tenant to provide their own credentials.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Azure DevOps Repos

4 participants