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

JIRAv2 initial PR #36

Merged
merged 70 commits into from
Apr 25, 2019
Merged

JIRAv2 initial PR #36

merged 70 commits into from
Apr 25, 2019

Conversation

levb
Copy link
Contributor

@levb levb commented Apr 8, 2019

  • Most functionality ported from the hackathon branch
  • Atlassian-connect based user mapping flow
  • Many known functional and UX issues

Copy link
Contributor

@jasonblais jasonblais left a comment

Choose a reason for hiding this comment

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

It's fine for me as is, further work is queued in Jira V2 epic https://mattermost.atlassian.net/browse/MM-12474

Dylan is also doing some testing on ci-extensions.

@jasonblais
Copy link
Contributor

@levb Looks like the build may be failing

@levb
Copy link
Contributor Author

levb commented Apr 23, 2019

@levb Looks like the build may be failing

@jasonblais it's expected, the test target is failing for many known reasons, and the lint target doesn't even exist I think. Will fix post-merge.

Copy link
Collaborator

@hanzei hanzei left a comment

Choose a reason for hiding this comment

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

Well, this is a big PR and I surely didn't understand every part of the code.

I mostly check through the code for flaws and inconsistencies. Non of my comments is blocking, but most of them are easy fixable.

server/plugin.go Outdated
// Legacy 1.x Webhook secret
Secret string

// TODO: support mutiple instances, how? Seems like the config UI needs to be rethought
Copy link
Collaborator

Choose a reason for hiding this comment

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

Propose to create a ticket for this and remove it. 0/5

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I fixed the comment for now, this is something that does need to get resolved before we ship it (how to configure server vs cloud)

Copy link
Collaborator

@hanzei hanzei left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@@ -74,9 +74,10 @@ func (jci jiraCloudInstance) GetJIRAClient(jiraUser JIRAUser) (*jira.Client, err
return client, nil
}

client, err = jci.getJIRAClientForServer()
//TODO decide if we ever need this as the default client
Copy link
Member

Choose a reason for hiding this comment

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

I don't think we would want to fall back to using the server client. That seems dangerous as it likely has more permissions.

// for things like multiple instances.
// JiraServerURL needs to be configured to run in the JIRA Server mode
// JiraServerURL string
// TODO: support mutiple server instances, how? Seems like the config
Copy link
Member

Choose a reason for hiding this comment

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

Ya. We need to have better configuration for that. Out of scope for this PR.

@jasonblais jasonblais removed the 1: PM Review Requires review by a product manager label Apr 24, 2019
@levb levb requested a review from jfrerich April 25, 2019 14:26
Copy link
Member

@crspeller crspeller left a comment

Choose a reason for hiding this comment

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

Let's get this merged to a branch and iterate on it.

@levb levb merged commit 6ae2768 into mattermost:jira2 Apr 25, 2019
@levb levb deleted the levb-jira-connect branch April 25, 2019 20:03
@hanzei hanzei added 4: Reviews Complete All reviewers have approved the pull request and removed 2: Dev Review Requires review by a core committer labels Apr 26, 2019
crspeller pushed a commit that referenced this pull request May 21, 2019
* Refactored the JIRA plugin to support more events

* Removed Enabled config setting

* PR feedback

* PR feedback from @hanzei

* Added back webhook tests, updated for MD

* coverage

* Added back formatting as Slack attachments

* Add atlassian connect functionality

* Updated plugin.json

* merged the minimal webapp from hackathon

* Updated .gitignore

* wip Merged plugin.go from hackathon

* wip oauth failures

* wip oauth2 with a static clientid seems to work

* wip /jira connect seems to work

* wip trying JWT webhook setup

* wiop

* wip

* wip connect auth and the beginning of issue

* Added webapp from hackathon

* Create JIRA Issue is showing up

* wip create issue with semi-fakeuser mapping

* JWT verification in user-config page

* moved JWT verification into auth.go

* WIP WIP WIP in the middle of something

* wip flow works, need to add encryption

* User mapping works

* added /jira-disconnect

* Fix websocket event handling for connect and add disconnect

* WIP fixed websocket initialization

* WIP - TODO encrypt Atl account ID in config

* Secured the auth flow, passing mm_token and jwt to the final endpoint

* Restored legacy webhook support

* Process mentions in Webhooks, rearrange files

* Point Gopkg.toml at mattermost-server/master for now

* Adding comments for posts mentioning JIRA issues

* Some error logging

* Cleanup

* 5.8 compatibility: replace GetBundlePath with old-style config hacking

* go test cleanup

* Removed unused files

* Fixed MM-15004, no lnger requires admin to connect user

* wip prefixing and instances - appears to work with connect

* MM-15003 Prefix KV keys with the JIRA instance ID

- Reworked the kv store functions to use the JIRA BaseURL as a part of the
key.
- Other cleanup

* Added JIRA Server and OAuth1

- Added back OAuth1 functionality
- Added `type JIRAInstance` and moved a lot of instance-specific data
  there
- Added "cloud" and "server" instance types, for now with switches
- Added `/jira add server url` command to add JIRA Server instances

* wip style/naming

* JIRA Server auth appears to work

* Cosmetic PR feedback, fixed atlassian-connect.json

* Fixed a crash if no current JIRAInsttance exists

* GetJIRAClient refactor

* GetJIRACLient appears to work

* CreateIssue works in server and cloud

* Added (encoded) URL to Atlassian-connect.json `key` value (e.g. `"mattermost-https-e1ba36fb-ngrok-io"`), making it unique per Mattermost instance. Now can add multiple Mattermost instances to the same JIRA Cloud instance
* Removed caching of the project keys in anticipation of the new cache
* Webapp CreateIssue: use f.schema.system rather than f.key to identify field keys, this works with JIRA Server and Cloud versions.
* Webapp: CreateIssue renderFields: initialize `description` to an empty value to avoid JS errors

* PR feedback: ephf -> responsef

* Cleanup, /jira command improvements

- added `/jira help`
- added instance numbers to `/jira instance list`, ability to do
 `/jira instance select {number}`
- style: refactored command.go
- style: http naming, and using constants for all routes
- style: updated webapp to match
- style: eliminated unused oauth2.code

* Fixed 2 typos in 1 URL

* WIP prep to having a revoke button on the confirm page

- fixed a typo in `/jira instance listt` output
- removed unused routeOAuth1Connect and related code
- renamed StoreOAuth1RequestToken to StoreOneTimeSecret and such

* PR feedback (style), expire OTS

* PR feedback: Do not change original posts

- Do not change the original posts when creating issues
- require MM server 5.6 to build
- Style, error handling

* Fixed "Connect to JIRA" URL in post menu item

* PR feedback: added explicit Gopkg.toml deps

* PR feedback: style and error handling

* PR feedback: more style

* Fix tests.

* Fix linting.

* Removed notify() from webhooks for now, to pass the tests

* Uncommented the tests @cristopher took out

* Uncommented the test I missed

* Minor fixes
crspeller pushed a commit that referenced this pull request May 24, 2019
* JIRAv2 initial PR (#36)

* Refactored the JIRA plugin to support more events

* Removed Enabled config setting

* PR feedback

* PR feedback from @hanzei

* Added back webhook tests, updated for MD

* coverage

* Added back formatting as Slack attachments

* Add atlassian connect functionality

* Updated plugin.json

* merged the minimal webapp from hackathon

* Updated .gitignore

* wip Merged plugin.go from hackathon

* wip oauth failures

* wip oauth2 with a static clientid seems to work

* wip /jira connect seems to work

* wip trying JWT webhook setup

* wiop

* wip

* wip connect auth and the beginning of issue

* Added webapp from hackathon

* Create JIRA Issue is showing up

* wip create issue with semi-fakeuser mapping

* JWT verification in user-config page

* moved JWT verification into auth.go

* WIP WIP WIP in the middle of something

* wip flow works, need to add encryption

* User mapping works

* added /jira-disconnect

* Fix websocket event handling for connect and add disconnect

* WIP fixed websocket initialization

* WIP - TODO encrypt Atl account ID in config

* Secured the auth flow, passing mm_token and jwt to the final endpoint

* Restored legacy webhook support

* Process mentions in Webhooks, rearrange files

* Point Gopkg.toml at mattermost-server/master for now

* Adding comments for posts mentioning JIRA issues

* Some error logging

* Cleanup

* 5.8 compatibility: replace GetBundlePath with old-style config hacking

* go test cleanup

* Removed unused files

* Fixed MM-15004, no lnger requires admin to connect user

* wip prefixing and instances - appears to work with connect

* MM-15003 Prefix KV keys with the JIRA instance ID

- Reworked the kv store functions to use the JIRA BaseURL as a part of the
key.
- Other cleanup

* Added JIRA Server and OAuth1

- Added back OAuth1 functionality
- Added `type JIRAInstance` and moved a lot of instance-specific data
  there
- Added "cloud" and "server" instance types, for now with switches
- Added `/jira add server url` command to add JIRA Server instances

* wip style/naming

* JIRA Server auth appears to work

* Cosmetic PR feedback, fixed atlassian-connect.json

* Fixed a crash if no current JIRAInsttance exists

* GetJIRAClient refactor

* GetJIRACLient appears to work

* CreateIssue works in server and cloud

* Added (encoded) URL to Atlassian-connect.json `key` value (e.g. `"mattermost-https-e1ba36fb-ngrok-io"`), making it unique per Mattermost instance. Now can add multiple Mattermost instances to the same JIRA Cloud instance
* Removed caching of the project keys in anticipation of the new cache
* Webapp CreateIssue: use f.schema.system rather than f.key to identify field keys, this works with JIRA Server and Cloud versions.
* Webapp: CreateIssue renderFields: initialize `description` to an empty value to avoid JS errors

* PR feedback: ephf -> responsef

* Cleanup, /jira command improvements

- added `/jira help`
- added instance numbers to `/jira instance list`, ability to do
 `/jira instance select {number}`
- style: refactored command.go
- style: http naming, and using constants for all routes
- style: updated webapp to match
- style: eliminated unused oauth2.code

* Fixed 2 typos in 1 URL

* WIP prep to having a revoke button on the confirm page

- fixed a typo in `/jira instance listt` output
- removed unused routeOAuth1Connect and related code
- renamed StoreOAuth1RequestToken to StoreOneTimeSecret and such

* PR feedback (style), expire OTS

* PR feedback: Do not change original posts

- Do not change the original posts when creating issues
- require MM server 5.6 to build
- Style, error handling

* Fixed "Connect to JIRA" URL in post menu item

* PR feedback: added explicit Gopkg.toml deps

* PR feedback: style and error handling

* PR feedback: more style

* Fix tests.

* Fix linting.

* Removed notify() from webhooks for now, to pass the tests

* Uncommented the tests @cristopher took out

* Uncommented the test I missed

* Minor fixes

* Update README.md

* Revert accidental commit

* Update README.md (#38)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* quick fix of url

* correct the menu item used in Jira

* Proposed text updates for /jira slash commands (#41)

* Proposed text updates for /jira slash commands

Feedback welcome

* Address review feedback on command.go

* Some cleanup for Jira plugin (#42)

* Update instance_server.go

* JIRA -> Jira in error text

* JIRA > Jira, text update for Jira Server URL help text

* Update kv.go

* Update message_posted.go

* JIRA > Jira

* Update user_oauth1.go

* Update utils.go

* JIRA > Jira

* JIRA > Jira

* Update create_issue.jsx

* Update http.go

* JIRA > Jira

* MM-15244 Jira Cloud user connect security (#39)

* Adjusted the cloud auth flow as per spec

- changed cloud user mapping flow:
  1. serve a page that retrieves mm_token and auto-resubmits
     (`/ac/user_redirect.html`)
  2. (skipped/not implemented) a confirm page that would displat both
     usernames, and have a submit button
  3. connect the accounts, and serve a summary page with a "Disconnect"
     button (`/ac/user_connected.html`)
  4. disconnect the accounts if the above button is clicked,
     (`/ac/user_disconnected.html`)
- refactored http to use withXxxInstance
- refactored use of templates

* Added OTS to Jira Cloud user connect flow

- Added `Secret` field to `type AuthToken`
- Populate `Secret` with a random md5(256bytes) secret
- Verify and remove OTS
- Added a missing ./server/templates/ac/user_connected.html

* Added a confirm page in tthe flow

* Cleanup of Jira server connect flow

* PR feedback: style

* Careful with that lock, Eugene

* Style, govet, added a template I missed

* CAREFUL with that lock, Eugene

* resolved merge conflicts

* PR feedback: clarified respondWithTemplate

* PR feedback: md5->sha256

* PR feedback: separated Store[Current]JIRAInstance functions

* PR feedback: Like _really_ careful with that lock, Eugene

* Doc updates for roadmap and Jira Server install docs (#40)

* WIP: Doc updates for roadmap and Jira Server install docs

* Update README.md

* Update README.md

* Update based on feedback

* MM-15101 Adding /jira transition (#46)

* Adding /jira transition

* Moving transitionJiraIssue to a better home.

* MM-15253 Refactor of create-issue modal. (#44)

* Refactor of create-issue modal.

* Names feeback.

* Fixed /jira subcommand parsing consistency (#45)

* Fixed creating server/dist/templates/templates on a 2nd make (#50)

* Fixed creating server/dist/templates/templates on 2nd make

* make the cp switch portable

ref: https://unix.stackexchange.com/questions/18712/difference-between-cp-r-and-cp-r-copy-command

* small fixes to /jira instance delete (#52)

* Some improvments to cloud connect flow. (#55)

* MM-15096 UI fixes for template pages and menu item (#54)

* UI fixes for template and menu item

* Updating flexparent

* Updating templates

* Update Jira application link for Cloud (#48)

* (no ticket?) Fixed a bug in unescaping webhook secret (#53)

Also added `/jira webhook` command to see a URL custom-fit to the
current channel

* MM-15400 Added some protections to /installed link (#47)

* Added some protections to /installed link

* Forgot to reset the timeout back to 15min

* PR feedback: Installed flag

* Fixed s in URLs

* PR feedback: use  more consistently

* PR feedback: return a 403, not a 401 if already installed

* Update README.md

* Update README.md

* Add 'subject to change' for timeline in README

* Added response logging for Jira API errors (#59)

* * notifications working, added issue_created

* wip

* * new make lifecycle commands: debug, webapp-debug, reset, stop

* [MM-14773] [MM-15440] - simplify settings and setup (#57)

* [MM-14773] [MM-15440] - simplify settings and setup

* * restrict `/jira webhook` to system admins; some cleanup

* * remove public webhook instructions, remove generate webhook secret

* fixups

* Update server/command.go

Co-Authored-By: Jason Blais <13119842+jasonblais@users.noreply.github.com>

* Update server/command.go

Co-Authored-By: Jason Blais <13119842+jasonblais@users.noreply.github.com>

* PR comments

* * notification setting persisted, command line updated

* * disable notifications working

* Revert "* new make lifecycle commands: debug, webapp-debug, reset, stop"

This reverts commit 92b691d

* Fix govet

* Adding new CI

* Updating Makefile and moving to go modules

* Temporarily use jira2 as CI branch.

* fixing tests

* PR comments

* fixes needed after The Great Merge

* updated for firehose webhook (#61) now on master

* PR comments
levb pushed a commit that referenced this pull request Jul 8, 2019
* JIRAv2 initial PR (#36)

* Refactored the JIRA plugin to support more events

* Removed Enabled config setting

* PR feedback

* PR feedback from @hanzei

* Added back webhook tests, updated for MD

* coverage

* Added back formatting as Slack attachments

* Add atlassian connect functionality

* Updated plugin.json

* merged the minimal webapp from hackathon

* Updated .gitignore

* wip Merged plugin.go from hackathon

* wip oauth failures

* wip oauth2 with a static clientid seems to work

* wip /jira connect seems to work

* wip trying JWT webhook setup

* wiop

* wip

* wip connect auth and the beginning of issue

* Added webapp from hackathon

* Create JIRA Issue is showing up

* wip create issue with semi-fakeuser mapping

* JWT verification in user-config page

* moved JWT verification into auth.go

* WIP WIP WIP in the middle of something

* wip flow works, need to add encryption

* User mapping works

* added /jira-disconnect

* Fix websocket event handling for connect and add disconnect

* WIP fixed websocket initialization

* WIP - TODO encrypt Atl account ID in config

* Secured the auth flow, passing mm_token and jwt to the final endpoint

* Restored legacy webhook support

* Process mentions in Webhooks, rearrange files

* Point Gopkg.toml at mattermost-server/master for now

* Adding comments for posts mentioning JIRA issues

* Some error logging

* Cleanup

* 5.8 compatibility: replace GetBundlePath with old-style config hacking

* go test cleanup

* Removed unused files

* Fixed MM-15004, no lnger requires admin to connect user

* wip prefixing and instances - appears to work with connect

* MM-15003 Prefix KV keys with the JIRA instance ID

- Reworked the kv store functions to use the JIRA BaseURL as a part of the
key.
- Other cleanup

* Added JIRA Server and OAuth1

- Added back OAuth1 functionality
- Added `type JIRAInstance` and moved a lot of instance-specific data
  there
- Added "cloud" and "server" instance types, for now with switches
- Added `/jira add server url` command to add JIRA Server instances

* wip style/naming

* JIRA Server auth appears to work

* Cosmetic PR feedback, fixed atlassian-connect.json

* Fixed a crash if no current JIRAInsttance exists

* GetJIRAClient refactor

* GetJIRACLient appears to work

* CreateIssue works in server and cloud

* Added (encoded) URL to Atlassian-connect.json `key` value (e.g. `"mattermost-https-e1ba36fb-ngrok-io"`), making it unique per Mattermost instance. Now can add multiple Mattermost instances to the same JIRA Cloud instance
* Removed caching of the project keys in anticipation of the new cache
* Webapp CreateIssue: use f.schema.system rather than f.key to identify field keys, this works with JIRA Server and Cloud versions.
* Webapp: CreateIssue renderFields: initialize `description` to an empty value to avoid JS errors

* PR feedback: ephf -> responsef

* Cleanup, /jira command improvements

- added `/jira help`
- added instance numbers to `/jira instance list`, ability to do
 `/jira instance select {number}`
- style: refactored command.go
- style: http naming, and using constants for all routes
- style: updated webapp to match
- style: eliminated unused oauth2.code

* Fixed 2 typos in 1 URL

* WIP prep to having a revoke button on the confirm page

- fixed a typo in `/jira instance listt` output
- removed unused routeOAuth1Connect and related code
- renamed StoreOAuth1RequestToken to StoreOneTimeSecret and such

* PR feedback (style), expire OTS

* PR feedback: Do not change original posts

- Do not change the original posts when creating issues
- require MM server 5.6 to build
- Style, error handling

* Fixed "Connect to JIRA" URL in post menu item

* PR feedback: added explicit Gopkg.toml deps

* PR feedback: style and error handling

* PR feedback: more style

* Fix tests.

* Fix linting.

* Removed notify() from webhooks for now, to pass the tests

* Uncommented the tests @cristopher took out

* Uncommented the test I missed

* Minor fixes

* Update README.md

* Revert accidental commit

* Update README.md (#38)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* quick fix of url

* correct the menu item used in Jira

* Proposed text updates for /jira slash commands (#41)

* Proposed text updates for /jira slash commands

Feedback welcome

* Address review feedback on command.go

* Some cleanup for Jira plugin (#42)

* Update instance_server.go

* JIRA -> Jira in error text

* JIRA > Jira, text update for Jira Server URL help text

* Update kv.go

* Update message_posted.go

* JIRA > Jira

* Update user_oauth1.go

* Update utils.go

* JIRA > Jira

* JIRA > Jira

* Update create_issue.jsx

* Update http.go

* JIRA > Jira

* MM-15244 Jira Cloud user connect security (#39)

* Adjusted the cloud auth flow as per spec

- changed cloud user mapping flow:
  1. serve a page that retrieves mm_token and auto-resubmits
     (`/ac/user_redirect.html`)
  2. (skipped/not implemented) a confirm page that would displat both
     usernames, and have a submit button
  3. connect the accounts, and serve a summary page with a "Disconnect"
     button (`/ac/user_connected.html`)
  4. disconnect the accounts if the above button is clicked,
     (`/ac/user_disconnected.html`)
- refactored http to use withXxxInstance
- refactored use of templates

* Added OTS to Jira Cloud user connect flow

- Added `Secret` field to `type AuthToken`
- Populate `Secret` with a random md5(256bytes) secret
- Verify and remove OTS
- Added a missing ./server/templates/ac/user_connected.html

* Added a confirm page in tthe flow

* Cleanup of Jira server connect flow

* PR feedback: style

* Careful with that lock, Eugene

* Style, govet, added a template I missed

* CAREFUL with that lock, Eugene

* resolved merge conflicts

* PR feedback: clarified respondWithTemplate

* PR feedback: md5->sha256

* PR feedback: separated Store[Current]JIRAInstance functions

* PR feedback: Like _really_ careful with that lock, Eugene

* Doc updates for roadmap and Jira Server install docs (#40)

* WIP: Doc updates for roadmap and Jira Server install docs

* Update README.md

* Update README.md

* Update based on feedback

* MM-15101 Adding /jira transition (#46)

* Adding /jira transition

* Moving transitionJiraIssue to a better home.

* MM-15253 Refactor of create-issue modal. (#44)

* Refactor of create-issue modal.

* Names feeback.

* Fixed /jira subcommand parsing consistency (#45)

* Fixed creating server/dist/templates/templates on a 2nd make (#50)

* Fixed creating server/dist/templates/templates on 2nd make

* make the cp switch portable

ref: https://unix.stackexchange.com/questions/18712/difference-between-cp-r-and-cp-r-copy-command

* small fixes to /jira instance delete (#52)

* Some improvments to cloud connect flow. (#55)

* MM-15096 UI fixes for template pages and menu item (#54)

* UI fixes for template and menu item

* Updating flexparent

* Updating templates

* Update Jira application link for Cloud (#48)

* (no ticket?) Fixed a bug in unescaping webhook secret (#53)

Also added `/jira webhook` command to see a URL custom-fit to the
current channel

* MM-15400 Added some protections to /installed link (#47)

* Added some protections to /installed link

* Forgot to reset the timeout back to 15min

* PR feedback: Installed flag

* Fixed s in URLs

* PR feedback: use  more consistently

* PR feedback: return a 403, not a 401 if already installed

* Update README.md

* Update README.md

* Add 'subject to change' for timeline in README

* Added response logging for Jira API errors (#59)

* [MM-14773] [MM-15440] - simplify settings and setup (#57)

* [MM-14773] [MM-15440] - simplify settings and setup

* * restrict `/jira webhook` to system admins; some cleanup

* * remove public webhook instructions, remove generate webhook secret

* fixups

* Update server/command.go

Co-Authored-By: Jason Blais <13119842+jasonblais@users.noreply.github.com>

* Update server/command.go

Co-Authored-By: Jason Blais <13119842+jasonblais@users.noreply.github.com>

* PR comments

* Added /jira assign <issue-key> <assignee> command
Upgrade go-jira version

* Use NewDecoder in place of unmarshaling
move /jira assign help to non sys admin section
use /api/3/ in place of /api/2/
return string from assignJiraIssue and have caller wrap in responsef()

* Move defer to before NewDecoder function

* Clean up nits.
Pass jiraUsers pointer to Do function and have that function handle
decode and defer of resp.Body.Close

* Added /jira assign <issue-key> <assignee> command
Upgrade go-jira version

* Use NewDecoder in place of unmarshaling
move /jira assign help to non sys admin section
use /api/3/ in place of /api/2/
return string from assignJiraIssue and have caller wrap in responsef()

* Move defer to before NewDecoder function

* Clean up nits.
Pass jiraUsers pointer to Do function and have that function handle
decode and defer of resp.Body.Close

* Delete file.  It is not in master

* Add support for assigning issues to jira users
  - if if multiple returned users, print the display names as bullet list
  - limit number of users shown to 10

* gofmt fix

* Reword response to user
levb added a commit that referenced this pull request Aug 10, 2020
* Store user default instance, project key: backend

* wip - autocomplete mostly works

* wip fixing tests

* fixed go tests

* wip fixed subscription command and URLs

* Improved /info; added UpdateUserDefaults to AttachComment

* Update server/instances.go

Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>

* PR Feedback: UpdateUserDefault no longer returns an error

* Fixed merge issues, style

* Default project: webapp portion (#36)

* default project things

* Add InstanceType enum

* various import cleanups

Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>
Co-authored-by: Michael Kochell <6913320+mickmister@users.noreply.github.com>
avas27JTG pushed a commit that referenced this pull request Jan 18, 2024
* [MI-2738]:Added check to uninstall server if not found in KV store (#34)

* [MI-2738]:Added check to uninstall server if not found in KV store

* [MI-2738]:Fixed lint errors

* [MM-902]:Fixed review comment

* [MI-2781]:Fixed review comments for issue #902 and PR #914 on jira plugin (#36)

* [MM-902]:Reverted the changes

* [MM-902]:Reverted the disconnect users function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4: Reviews Complete All reviewers have approved the pull request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants