Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Which Jira product are we supporting? #295

Closed
andygrunwald opened this issue May 3, 2020 · 11 comments
Closed

Which Jira product are we supporting? #295

andygrunwald opened this issue May 3, 2020 · 11 comments

Comments

@andygrunwald
Copy link
Owner

andygrunwald commented May 3, 2020

Is your feature request related to a problem?

Jira is available in two different product versions:

This project was initially started + used with an on-premise Jira installation (Jira server).
Over time more and more Jira cloud API endpoints landed in this library. See

// JIRA API docs: https://docs.atlassian.com/jira/REST/cloud/#api/2/user

Right now we have the case that we mix the endpoints in this library.
Personally, I don't know

  • If the APIs of Jira cloud and Jira server are different / how much they overlap
  • how much of the cloud/server endpoints work in the different product version

However, reality is: I am not aware of any issue about the overlapping problem described.

Describe the solution you'd like

The big question to answer:

Which product are we officially supporting/aim to support?

  • One? Which one?
  • Both? If yes, how? Explicit split? A wild mix like we have now?

Additional question for the cloud product:

  • API version 2?
  • or/and API version 3? (still in beta)

Additional context

@andygrunwald
Copy link
Owner Author

@rbriski @ghostsquad @suhaibmujahid Any opinions here?

@ghostsquad
Copy link
Contributor

I think we should support them all, but like other projects, stop supporting old versions. Though in general, this is a bit hard to do properly, since we would likely need a variety of API versions to test against, both cloud and server. @andygrunwald have you reached out to Atlassian about this? Maybe they would sponsor this project and provide us with testing endpoints.

@suhaibmujahid
Copy link
Contributor

In my case, my application interacts with both of the Jira Server and Jira Cloud. To my knowledge, both have almost the same API (see here). They differ mainly in the authentication, which is out of the scope of this package.

Form a usability point of view, a wild mix could be a better option. In this way, the user can interact with both Jira Could and Jira Server without the need to have an extra wrapper layer.

I think it is better to support API version 2 (at least for now) since it is kind of compatible with both Jira Could and Jira Server. If we face inconsistency (if any) we could handle it one by one and document it if needed.

I think it is the user's responsibility to know the expected behavior of Jira itself. On the client-side, it is good if we manage to correctly handle the API calls and having a general enough structs to include all the exposed fields/options.

@mansilladev
Copy link

If you're truly looking to support both cloud and server, I suggest making the separation/choice explicit. They're diverging in more ways than just auth. For example, Jira expressions (https://developer.atlassian.com/cloud/jira/platform/jira-expressions/) on the cloud side.. amongst other nuances that could get conflated and confusing as they may continue to diverge.

@ghostsquad
Copy link
Contributor

I agree. This may come at the cost of duplicating some code. Even their documentation is split depending on cloud vs server.

https://developer.atlassian.com/server/jira/platform/rest-apis/

https://developer.atlassian.com/cloud/jira/platform/rest/v3/

In v2 we probably should have cloud/server packages, that potentially call to common code elsewhere, just so that we can support both, but also allow us to make explicit decisions for cloud vs server endpoints/calls.

@ghostsquad
Copy link
Contributor

I'm concerned at our ability to test either though. We don't have a public server that we can run end2end tests against

@andygrunwald
Copy link
Owner Author

@ghostsquad
I have reached out to Atlassian about getting an instance sponsored. Seems that this is not possible at the moment. @mansilladev Can you confirm this? Do you see an opportunity to help us here?
This would make the development + testing easier.

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity in the last 60 days. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

@ChillOrb
Copy link

Hello @andygrunwald , I am not able to setup auth and use get user fucntion. Do we have seperate sever package ?

@andygrunwald
Copy link
Owner Author

@rishu2403 Can you please create a new issue, provide example code and details on the setup (Jira version, cloud, or on-premise) you are using?

@andygrunwald andygrunwald added needs triage Ticket that needs triage (a proper look for classification) v2 and removed needs triage Ticket that needs triage (a proper look for classification) labels Aug 20, 2022
@andygrunwald andygrunwald added this to the Road to v2 milestone Aug 20, 2022
andygrunwald added a commit that referenced this issue Aug 21, 2022
andygrunwald added a commit that referenced this issue Aug 21, 2022
…documentation" (#492)

* README: Add chapter "State of this library"

Related #474

* README: Add chapter "Supported Go versions"

Related #290

* Go: Raise supported version to v1.18

Related #290

* README: Add chapter "Supported Jira versions" and "Official Jira API documentation"

Related: #295

* Fix "package io/ioutil is deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details.  (SA1019)"

* go fmt
@andygrunwald
Copy link
Owner Author

Fixed in #492

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

No branches or pull requests

5 participants