Skip to content

[WIP] HH-313553: sync with upstream mattermost-plugin-github#9

Open
SCREEN88 wants to merge 29 commits into
masterfrom
HH-313553
Open

[WIP] HH-313553: sync with upstream mattermost-plugin-github#9
SCREEN88 wants to merge 29 commits into
masterfrom
HH-313553

Conversation

@SCREEN88
Copy link
Copy Markdown

@SCREEN88 SCREEN88 commented Jun 4, 2026

Синхронизация форка с upstream/master (mattermost-plugin-github, до 0970596, апр 2025) без поломки forgejo-адаптации.

⚠️ Как мёрджить этот PR

Только «Create a merge commit». НЕ squash и НЕ rebase — иначе теряется родительская связь с upstream-коммитом, merge-base не сдвинется, и следующий sync снова разгребает те же 25 коммитов. Внутри PR — настоящий merge-commit с двумя родителями (47ce525 + upstream 0970596).

НЕ портировано (нужна отдельная forgejo-доработка)

mattermost#797 include-only-org-members, mattermost#806 default-repo, mattermost#856 requested reviewers, mattermost#830 clickable username. Github-специфичные юнит-тесты апстрима тоже не портированы.

Тестирование

Локальный стенд (MM team 11.7 + Forgejo 10 в docker), браузерный прогон до/после merge.
Регрессия (исправлена): частичная утечка mattermost#806 сломала репо-селектор create-issue (ждал yourRepos.repos, сервер отдаёт массив → «No options»); откатил data-shape до массива.
Проверено идентичное baseline: OAuth, subscriptions, вебхуки (PR/push/issue_comment/review), LHS/RHS, create-issue modal + селекторы.

Известные ограничения (предсуществующие, НЕ регрессии PR): issues-вебхук на Forgejo 10 → 400 (github-парсер, payload несовместим); submit модалки create-issue и пункты меню поста create/attach не работают на MM 11.7 (deprecated webapp-API — отдельная задача модернизации webapp).

Kshitij-Katiyar and others added 28 commits January 9, 2025 17:18
…o TS (mattermost#851)

* [MM-944]: Typescript migration and converting github_label_selector to TS

* [MM-944]

* [MM-944]: removed the use of any

* [MM-944]: fixed lint
…h revoked/invalid token (mattermost#832)

* [MM-809]: fix the issue of getting errors when using github api with revoked/invalid token

* [MM-809]: Added proper error log in using github client

* [MM-809]: Fixed lint

* Update server/plugin/plugin.go

* Update server/plugin/plugin.go

* [MM-809]: review fixes

---------

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
…tion (mattermost#859)

* [MM-856]: Added the requested reviewers in the pulls_created notification

* Update server/plugin/template.go

Co-authored-by: Raghav Aggarwal <raghav.aggarwal@brightscout.com>

---------

Co-authored-by: Raghav Aggarwal <raghav.aggarwal@brightscout.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.27.0 to 0.33.0.
- [Commits](golang/net@v0.27.0...v0.33.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Apply and enforce file-level license headers

Use `mattermost-govet` and `eslint`'s `header/header` to ensure each
file begins with the appropriate header, then fix all instances.

```
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
```

Note that this renames `LICENSE` to `LICENSE.txt` purely to align on the
copyright messaging across repos.

* align plugin-ci with go.mod version

* switch to 2018

* bundle LICENSE.txt and NOTICE.txt if they exist

* updated NOTICE.txt and configuration
…channel (mattermost#806)

* [MM-611]: Added the feature to select the default repository for the channel per User

* [MM-611]: Updated the help text

* [MM-611]: review fixes

* [MM-611]: review fixes

* [MM-611]: review fixes

* [MM-611]: Fixed the lint issue

* [MM-611]: resolved map accessing empty array error

* [MM-611]: review fixes

* updated json for repo data
* [MM-408]: Made username clickable in RHS PRs/Issues

* made link openeing in new tab
* Template PR for server unit test cases

* Fixed lint errors

* added testcase for some functions in server/api.go

* Fixed lint issue

* added testcase for server/api.go UpdateSetting function

* Added testcase for CheckPluginRequest middleware function

* merge master into branch
* Template PR for server unit test cases

* Fixed lint errors

* added testcase for some functions in server/api.go

* addede testcase for some functions in server/command.go

* Fixed lint issue

* added testcase for server/api.go UpdateSetting function

* Updated the getMutedUser function to return proper response

* added logs to the new error check

* Added testcase for CheckPluginRequest middleware function

* fixed grammar of error msgs in command.go

* merge master into branch

* review fixes

* updated muted list testcases
* Template PR for server unit test cases

* Fixed lint errors

* added testcase for some functions in server/api.go

* addede testcase for some functions in server/command.go

* Fixed lint issue

* added testcase for server/api.go UpdateSetting function

* Added testcase for more functions in api/command.go

* review fixes

* fixed lint

* added license to new file
* [MM-770]: Added webapp testcase for create issue modal

* [MM-770]: removed extra comments

* [MM-770]: fixed lint issues

* [MM-770]: review fixes
Snyk has created this PR to upgrade pg from 8.10.0 to 8.13.1.

See this package in npm:
pg

See this project in Snyk:
https://app.snyk.io/org/mattermost-core/project/ba8e6130-260b-4063-b7c5-2e03cc658662?utm_source=github-enterprise&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
* Add license header to setup.tsx

* updated snapshot, resolved imports in webapp testcases  and added react-dom

---------

Co-authored-by: kshitij katiyar <kshitij.katiyar@brightscout.com>
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.6.0 to 6.6.1.
- [Commits](indutny/elliptic@v6.6.0...v6.6.1)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…al lock (mattermost#892)

* fix attach comment to issue feature

* fixed lint

* updated snapshot

* Update server/plugin/utils.go

* Update server/plugin/utils.go

* Review fix

* Remove package-lock changes

* Code refactoring

* Fix lint error

* Fix lint error

* Fix lint

---------

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: raghavaggarwal2308 <raghav.aggarwal@brightscout.com>
…attermost#891)

* add events to be selected in webhook

* added header to webapp file

* fixed testcase

* add updated snapshot

* Revert package-lock changes

---------

Co-authored-by: raghavaggarwal2308 <raghav.aggarwal@brightscout.com>
* Fix issue with getting same msg for different discussion events

* Fix comment events

* Handle discussion edited event
… among valid org list (mattermost#902)

* Fix issue of invalid repo not listing with orgs

* fixed attach to issue modal
Bumps [image-size](https://github.com/image-size/image-size) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/image-size/image-size/releases)
- [Commits](image-size/image-size@v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: image-size
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…bscriptions (mattermost#797)

* Add --include-only-org-members flag for channel subscriptions

* Refactor method's name includeOnlyConfigOrgMembers => shouldDenyEventDueToNotOrgMember (mattermost#797)

* Refactor return state for readability (mattermost#797)

* fixed lint

* fixed lint

* fixed issue of filter not working

* fixed lint

* fixed misspelling

* fixed lint

---------

Co-authored-by: kshitij katiyar <kshitij.katiyar@brightscout.com>
…#847)

* Template PR for server unit test cases

* Fixed lint errors

* added testcase for some functions in server/api.go

* addede testcase for some functions in server/command.go

* Fixed lint issue

* added testcase for server/api.go UpdateSetting function

* Added testcase for more functions in api/command.go

* [MM-918]: Added testcase for more functions in command.go

* [MM-946]: Added testcases for some functions in command.go (mattermost#854)

* [MM-946]: Added testcases for some functions in command.go

* [MM-946]: reduced permissions to test os

* review fixes

* Added license header
Sync with upstream/master (up to 0970596, 2025-04-09). Resolved conflicts
keeping the forgejo adaptation while taking upstream's orthogonal changes
(license headers, NOTICE, build tooling, dependency bumps).

Conflict resolutions:
- graphql/* and mm_34646_token_refresh.go: kept deleted (forgejo has no
  GraphQL API; upstream only touched license headers there).
- Search-query helpers (utils.go) / GetToDo / HasUnreads / api search:
  kept forgejo REST implementation; dropped upstream github-client paths.
- isUserOrganizationMember / webhook org-member deny: kept 3-arg forgejo
  version.
- label_selector: accepted upstream's TypeScript migration, renamed to
  forgejo_label_selector.tsx + index.ts (consistent with issue_attribute
  _selector.tsx which upstream also migrated).
- create_issue / attach_comment modals: kept forgejo selectors, switched
  imports to the new @/ path alias upstream introduced.
- Test files (api/command/webhook/subscriptions _test.go): kept forgejo
  versions; updated create_issue jest snapshot to forgejo strings.

Upstream features intentionally NOT ported (need separate forgejo work):
- mattermost#797 --include-only-org-members (forgejo org-membership API differs)
- mattermost#806 default-repo per channel
- mattermost#856 requested reviewers in pulls_created notification
- mattermost#830 clickable username (github URL)
New upstream unit tests for github-specific command/api strings were not
ported; forgejo equivalents exist or are TODO.

Gate: go build/vet/test green; webapp lint/check-types/jest green.
golangci-lint shows 14 findings, all pre-existing in master (this merge
introduces none); fixed in a follow-up commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make the lint gate green after the upstream merge. These 14 findings were
all pre-existing in master (the merge introduced none) but are quick wins:

- bodyclose: close response body in makeForgejoRequest / getRequestResponse
  (also fixes a latent nil-deref on request error by returning early).
- unused: remove dead fetchReviews() and its commented-out caller block;
  remove unused pushEventRepository test var.
- stylecheck: createRequestUrl -> createRequestURL (+ baseUrl param).
- ineffassign: check the error from getOauthConfig in getOAuthConfig.
- gosec G101: annotate the test-fixture token with //nolint.
- gocritic/whitespace/goimports: comment spacing, import order, blank lines.

go build/vet/test and golangci-lint are clean; webapp lint/check-types/jest
already green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Post-merge smoke caught a regression: the create-issue repository dropdown
showed "No options". Upstream's mattermost#806 (default-repo per channel) reshaped
yourRepos from a flat array to {repos, defaultRepo} on the webapp side, and
that change merged cleanly into forgejo_repo_selector / reducer / types --
but the forgejo server endpoint (kept as-is) still returns a flat array, so
`yourRepos.repos` was undefined.

Since mattermost#806 is intentionally not adopted in this sync, revert the data shape
to a flat array (server contract): forgejo_repo_selector reads yourRepos
directly, drops the defaultRepo auto-select; reducer + YourReposData type
back to an array. Repo/label/assignee/milestone selectors render again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@SCREEN88 SCREEN88 changed the title HH-313553: sync with upstream mattermost-plugin-github [WIP] HH-313553: sync with upstream mattermost-plugin-github Jun 5, 2026
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.

6 participants