Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f7aa050
feat(scm): add Bitbucket types for SCM provider support
ushiradineth Nov 16, 2025
9745341
chore(deps): add go-bitbucket client
ushiradineth Nov 16, 2025
0604138
feat(scm): implement pull request and git operations providers
ushiradineth Nov 16, 2025
7e5edee
feat(scm): implement commit status provider
ushiradineth Nov 16, 2025
a5c27bd
feat(scm): wire Bitbucket provider to controllers
ushiradineth Nov 16, 2025
e3e8cbc
chore(api): generate Kubernetes manifests for Bitbucket types
ushiradineth Nov 16, 2025
72da69d
feat(scm): add Bitbucket support to ArgoCD commit status controller
ushiradineth Nov 17, 2025
ba1f410
docs(scm): add Bitbucket configuration guide
ushiradineth Nov 17, 2025
bbd499b
chore(dist): update install manifest with Bitbucket CRD schemas
ushiradineth Nov 17, 2025
ddb91e7
fix(scm): address golangci-lint issues in Bitbucket provider
ushiradineth Nov 17, 2025
578dfe6
feat(scm): add bitbucket webhook support
ushiradineth Nov 18, 2025
4c2c7d4
style: lint fix
ushiradineth Nov 18, 2025
43345d1
Merge branch 'main' into feat/bitbucket-scm
ushiradineth Nov 18, 2025
8dcded3
refactor: rename bitbucket to bitbucket_cloud
ushiradineth Nov 18, 2025
fd488fd
docs: change Bitbucket to Bitbucket Cloud
ushiradineth Nov 21, 2025
394cabc
fix: add BitbucketRepo validation
ushiradineth Nov 21, 2025
d8e478a
refactor: abstract error handling
ushiradineth Nov 21, 2025
352b2bb
refactor: rename bitbucket references to bitbucket cloud
ushiradineth Nov 21, 2025
5436704
fix: check cast status on resultMap
ushiradineth Nov 21, 2025
c0f92db
fix: use UUID as commit status ID
ushiradineth Nov 21, 2025
fc95a70
fix: use strconv.Quote to prevent injection
ushiradineth Nov 24, 2025
7bde9d9
fix: regen install.yaml
ushiradineth Nov 24, 2025
09465ab
Merge branch 'main' into feat/bitbucket-scm
ushiradineth Dec 2, 2025
8dfecf3
fix missing bitbucket for create and update PR
emirot Dec 11, 2025
61c183c
Merge pull request #2 from emirot/fix/missing_bitbucket
ushiradineth Dec 11, 2025
4f2c224
chore: improve bitbucket client logging
emirot Dec 11, 2025
7765700
fix: commitStatus key length
emirot Dec 11, 2025
07c3672
Merge pull request #3 from emirot/bitbucket-scm/error_handling
ushiradineth Dec 11, 2025
48210f0
Merge branch 'main' into feat/bitbucket-scm
ushiradineth Dec 11, 2025
9817f4a
Merge pull request #4 from emirot/bitbucket-scm-fix-commit-statuses
ushiradineth Dec 11, 2025
225db33
chore(dep): go mod tidy
ushiradineth Dec 11, 2025
27e2397
style: fmt
ushiradineth Dec 11, 2025
153fe0a
fix: replace truncateString func with already available util
ushiradineth Dec 11, 2025
fddad9a
fix commitUrl is required
emirot Dec 12, 2025
801cd04
fix commitUrl is required
emirot Dec 12, 2025
0669bbc
fix commitUrl is required
emirot Dec 12, 2025
ccb8c04
fix commitUrl is required
emirot Dec 12, 2025
bf8a117
fix commitUrl is required
emirot Dec 12, 2025
402366b
fix commitUrl is required
emirot Dec 12, 2025
e2172fc
Merge pull request #5 from emirot/create-better-url
ushiradineth Dec 12, 2025
f353bc8
Merge branch 'main' into feat/bitbucket-scm
ushiradineth Dec 12, 2025
24d0e35
chore: lint
ushiradineth Dec 12, 2025
166433a
fix: rename workspace to owner
ushiradineth Dec 12, 2025
b98f956
fix: improve validation
ushiradineth Dec 12, 2025
5d697da
fix: improve validation
ushiradineth Dec 12, 2025
29065bd
chore: update crds
ushiradineth Dec 12, 2025
71e4fb4
chore: add bitbucket cloud examples to testdata
ushiradineth Dec 12, 2025
8aa68e8
fix: rename repository to name
ushiradineth Dec 12, 2025
d1546d7
Update api/v1alpha1/common_types.go
crenshaw-dev Dec 12, 2025
6b447bd
fix codegen, go.mod bump
crenshaw-dev Dec 12, 2025
7f6342d
life is pain
crenshaw-dev Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/v1alpha1/commitstatus_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ type CommitStatusSpec struct {
Phase CommitStatusPhase `json:"phase"` // pending, success, failure
// (Github: error, failure, pending, success)
// (Gitlab: pending, running, success, failed, canceled)
// (Bitbucket: INPROGRESS, STOPPED, SUCCESSFUL, FAILED)
// (Bitbucket Cloud: INPROGRESS, STOPPED, SUCCESSFUL, FAILED)

// Url is a URL that the user can follow to see more details about the status
// +kubebuilder:validation:Optional
Expand Down
15 changes: 15 additions & 0 deletions api/v1alpha1/common_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ type GitLab struct {
Domain string `json:"domain,omitempty"`
}

// BitbucketCloud is a Bitbucket Cloud SCM provider configuration. It is used to configure the Bitbucket Cloud settings.
type BitbucketCloud struct{}

// Forgejo is a Forgejo SCM provider configuration. It is used to configure the Forgejo settings.
type Forgejo struct {
// Domain is the Forgejo domain, such as "codeberg.org" or "forgejo.mycompany.com".
Expand Down Expand Up @@ -91,6 +94,18 @@ type ForgejoRepo struct {
Name string `json:"name"`
}

// BitbucketCloudRepo is a repository in Bitbucket Cloud, identified by its workspace and repository.
type BitbucketCloudRepo struct {
// Workspace is the workspace of the repository.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Workspace string `json:"workspace"`
// Repository is the repository of the repository.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Repository string `json:"repository"`
}

// FakeRepo is a placeholder for a repository in the fake SCM provider, used for testing purposes.
type FakeRepo struct {
// Owner is the owner of the repository.
Expand Down
11 changes: 6 additions & 5 deletions api/v1alpha1/gitrepository_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,13 @@ import (
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.

// GitRepositorySpec defines the desired state of GitRepository
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;bitbucketCloud;fake
type GitRepositorySpec struct {
GitHub *GitHubRepo `json:"github,omitempty"`
GitLab *GitLabRepo `json:"gitlab,omitempty"`
Forgejo *ForgejoRepo `json:"forgejo,omitempty"`
Fake *FakeRepo `json:"fake,omitempty"`
GitHub *GitHubRepo `json:"github,omitempty"`
GitLab *GitLabRepo `json:"gitlab,omitempty"`
Forgejo *ForgejoRepo `json:"forgejo,omitempty"`
BitbucketCloud *BitbucketCloudRepo `json:"bitbucketCloud,omitempty"`
Fake *FakeRepo `json:"fake,omitempty"`
// +kubebuilder:validation:Required
ScmProviderRef ScmProviderObjectReference `json:"scmProviderRef"`
}
Expand Down
5 changes: 4 additions & 1 deletion api/v1alpha1/scmprovider_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
var ScmProviderKind = reflect.TypeOf(ScmProvider{}).Name()

// ScmProviderSpec defines the desired state of ScmProvider
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;bitbucketCloud;fake
type ScmProviderSpec struct {
// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
// Important: Run "make" to regenerate code after modifying this file
Expand All @@ -48,6 +48,9 @@ type ScmProviderSpec struct {
// Forgejo required configuration for Forgejo as the SCM provider
Forgejo *Forgejo `json:"forgejo,omitempty"`

// BitbucketCloud required configuration for Bitbucket Cloud as the SCM provider
BitbucketCloud *BitbucketCloud `json:"bitbucketCloud,omitempty"`

// Fake required configuration for Fake as the SCM provider
Fake *Fake `json:"fake,omitempty"`
}
Expand Down
40 changes: 40 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions config/crd/bases/promoter.argoproj.io_clusterscmproviders.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 19 additions & 3 deletions config/crd/bases/promoter.argoproj.io_gitrepositories.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions config/crd/bases/promoter.argoproj.io_scmproviders.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 33 additions & 9 deletions dist/install.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading