Skip to content

Conversation

@lukemassa
Copy link
Contributor

what

Add code and documentation to track which features are available on which VCSs.

why

Right now, we often implement new features, whether or not gated by a flag, for some VCSs and not others (typically github, sometimes gitlab). We have no canonical way of tracking which features are present for which VCSs, which means it's hard to tell which VCSs are feature complete. This documentation will help us demonstrate where the gaps are.

In addition, this moves us towards resolving #5574, so that configuration is always general per VCS, and we just document which support it and which don't.

The impact on the code itself is currently minimal; we log a warning if you specify a flag associated with a feature unsupported on a VCS you have configured. Additionally, we hard fail if you specify a flag that is unusable on all VCSs you've configured. We could consider loosening that to just logging an error

tests

atlantis % go run main.go server --bitbucket-user=foo --bitbucket-token=bar --repo-allowlist='hi' --emoji-reaction='hi'       
Error: initializing server: no configured VCS supports feature CommentEmojiReaction, cannot specify field "emoji-reaction"
exit status 1

atlantis % go run main.go server --bitbucket-user=foo --bitbucket-token=bar --repo-allowlist='hi' --gh-user='foo' --gh-token=bar --emoji-reaction='hi'
...
{"level":"warn","ts":"2025-11-21T15:23:34.776-0500","caller":"server/server.go:347","msg":"Specified field \"emoji-reaction\" for feature CommentEmojiReaction, which is not supported on BitbucketCloud","json":...

references

Partially addresses: #5574

Signed-off-by: Luke Massa <[email protected]>
Copy link
Contributor

@jamengual jamengual left a comment

Choose a reason for hiding this comment

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

cool idea! LGTM

Signed-off-by: Luke Massa <[email protected]>
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.

2 participants