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

[pull] development from desktop:development #455

Open
wants to merge 4,771 commits into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4771 commits
Select commit Hold shift + click to select a range
9c528ec
Merge pull request #19560 from desktop/editing-the-editing-experience
niik Nov 18, 2024
7592ea3
Bump cross-spawn from 7.0.3 to 7.0.6
dependabot[bot] Nov 18, 2024
c8e4da6
Add external label to external Prs
tidy-dev Nov 19, 2024
30319b0
Add putting triage back onto more-info-needed
tidy-dev Nov 19, 2024
ea5c2d8
Merge branch 'development' into file-size-limits
niik Nov 20, 2024
206dc7c
Create unable-to-reproduce-comment.yml
tidy-dev Nov 20, 2024
1280dc5
Formatting
tidy-dev Nov 20, 2024
826b169
Merge branch 'development' into this-is-how-you-have-a-bad-time
niik Nov 20, 2024
d26cd9c
Create remove-triage-label.yml
tidy-dev Nov 20, 2024
e4ee869
Merge pull request #19583 from desktop/this-is-how-you-have-a-bad-time
niik Nov 21, 2024
2e9169c
Only check untracked files when we need them
niik Nov 21, 2024
f708362
Add log recommendation
tidy-dev Nov 21, 2024
720dfc4
Merge pull request #19581 from desktop/file-size-limits
niik Nov 21, 2024
1401b48
Use rev-list to determine if merge commits exist
niik Nov 21, 2024
472b678
:book:
niik Nov 21, 2024
a19fe26
Merge pull request #19589 from desktop/skip-untracked
niik Nov 21, 2024
c321dea
Make sure there's no room for ambiguity
niik Nov 21, 2024
799f1de
Don't include commit message when loading diff
niik Nov 21, 2024
fe2ab4c
Whoops, got greedy there
niik Nov 21, 2024
99d8156
Update diff.ts
niik Nov 21, 2024
e3d54f9
Remove triage if any label other than triage is added. :)
tidy-dev Nov 21, 2024
f367e72
Update rev-list.ts
niik Nov 21, 2024
72a3fd4
Update README.md
tidy-dev Nov 21, 2024
d18b476
Merge pull request #19579 from desktop/triaging-automation
tidy-dev Nov 21, 2024
5020e4a
Merge pull request #19582 from desktop/unable-to-reproduce
tidy-dev Nov 21, 2024
6d31c0e
Merge pull request #19591 from desktop/optimize-checking-for-merge-co…
niik Nov 21, 2024
dd6b9b5
Merge pull request #19592 from desktop/less-is-more
niik Nov 21, 2024
3bb552a
Get rid of author info on Branch
niik Nov 21, 2024
e527f27
Use memoizeOne instead of old createState
niik Nov 21, 2024
0f738d1
Load commit dates on demand
niik Nov 21, 2024
a356974
QuickLRU falls apart if there's more than 1k branches
niik Nov 21, 2024
b725844
Update aria label when we compute author date
niik Nov 21, 2024
decb6f1
:art: cleanup
niik Nov 21, 2024
252487b
:book:
niik Nov 21, 2024
80c7277
:book:
niik Nov 21, 2024
47ebbdb
Split like string.split
niik Nov 21, 2024
16a2b65
Teach createLogParser to handle buffers
niik Nov 21, 2024
9a23d84
Load log as a buffer, only load first 100kb of summary and body
niik Nov 21, 2024
c953492
So yeah.. it will always be defined now..
tidy-dev Nov 25, 2024
ed1cf46
list-box doesn't exist...
tidy-dev Nov 25, 2024
5e0cc6d
Create feature-request-comment.yml
tidy-dev Nov 25, 2024
b8f7f6a
Merge pull request #19574 from desktop/dependabot/npm_and_yarn/cross-…
tidy-dev Nov 25, 2024
2e325f0
Create stale-issues.ym
tidy-dev Nov 25, 2024
ca576c9
word
tidy-dev Nov 25, 2024
a2c59d0
log pls
niik Nov 25, 2024
f93bb35
Merge pull request #19594 from desktop/crashapalooza
niik Nov 25, 2024
0ef44b4
Merge pull request #19607 from desktop/add-comment-to-feature-requests
tidy-dev Nov 26, 2024
283cad8
Merge branch 'development' into skip-loading-commit-on-status
niik Nov 26, 2024
8eadad2
Merge pull request #19605 from desktop/fix-commit-list-numbering-regr…
tidy-dev Nov 26, 2024
1d859ee
Merge pull request #19608 from desktop/add-workflow-to-mark-issues-as…
tidy-dev Nov 26, 2024
7f94de3
Merge pull request #19593 from desktop/skip-loading-commit-on-status
niik Nov 26, 2024
2bf6c25
Release 3.4.10-beta2
tidy-dev Nov 26, 2024
4d744a8
Merge branch 'development' into pr/19433
tidy-dev Nov 26, 2024
e120b3c
Empty- trigger ci?
tidy-dev Nov 26, 2024
3979a82
Merge pull request #19611 from desktop/releases/3.4.10-beta2
tidy-dev Nov 26, 2024
14d8870
Fix for indents of clear button in text box
artbutko Nov 26, 2024
f5d57a9
Merge branch 'development' into pr/19260
tidy-dev Nov 26, 2024
84da2a9
Merge pull request #19433 from SuperLlama88888/patch-1
tidy-dev Nov 26, 2024
16a0044
Run prettier
Psychpsyo Nov 26, 2024
bdb5825
Merge pull request #19260 from Psychpsyo/imageDiffSwipe
tidy-dev Nov 26, 2024
bf8f6d1
Fix staged file renamed with changes showing no diff
ssigwart Sep 30, 2023
015759f
Review updates
ssigwart Nov 27, 2024
60ab35e
Lint auto-fixes
ssigwart Nov 27, 2024
7cb3523
Merge pull request #19615 from artbutko/fix-clear-button-indents
tidy-dev Nov 27, 2024
ef3dca8
Allow starting a merge if there's conflicts
niik Nov 27, 2024
c07dc37
We don't have to run the regex if we've already found a conflict mark…
niik Nov 27, 2024
5302d2c
Add new --write-tree version of determineMergeability
niik Nov 27, 2024
c86792a
Cache merge status operations
niik Nov 27, 2024
367e070
Recompute when branch tip changes
niik Nov 27, 2024
1393902
One day I will learn how to count
niik Nov 27, 2024
e34de03
Handle unrelated histories
niik Nov 27, 2024
c15f8da
Use p-mem to simplify things a bit
niik Nov 27, 2024
9d3eb66
Let's do it live
niik Nov 27, 2024
09037ec
I like it better without async
niik Nov 27, 2024
fb15151
Remove unused parseMergeResult
niik Nov 27, 2024
308ba10
Unit test updates
ssigwart Nov 28, 2024
e53d1ba
Remove duplicate avatar users
niik Nov 29, 2024
3cd39a6
docs: add RustRover for Windows
ankddev Nov 30, 2024
fd51c91
docs: add Neovide for Linux
ankddev Nov 30, 2024
19f55f1
docs: add Android Studio for Linux
ankddev Nov 30, 2024
4f0061e
docs: add Kate for Linux
ankddev Nov 30, 2024
d96572f
docs: add GNOME Builder for Linux
ankddev Nov 30, 2024
a075bed
docs: add Notepadqq for Linux
ankddev Nov 30, 2024
c3758e6
docs: add Mousepad for Linux
ankddev Nov 30, 2024
6db367b
docs: add JetBrains IDEs for Linux
ankddev Nov 30, 2024
89c836c
docs: add Zed for macOS
ankddev Nov 30, 2024
ee7f26d
docs: add RustRover for macOS
ankddev Nov 30, 2024
139b20e
fix: names for Linux editors
ankddev Dec 1, 2024
5366869
Merge pull request #19638 from ankddev/patch-1
sergiou87 Dec 2, 2024
73189b9
Merge pull request #19635 from ankddev/docs-editor-integration
sergiou87 Dec 2, 2024
1044e0c
Use label attribute for remote url box
tidy-dev Dec 2, 2024
79a3813
Merge pull request #19633 from desktop/remove-duplicate-avatar-users
niik Dec 2, 2024
f8d36b3
Add aria alive to resizable to announce resize action
tidy-dev Dec 2, 2024
015a3f3
Tidying
tidy-dev Dec 2, 2024
8eddefe
Include user agent when fetching changelog
niik Dec 3, 2024
5d2a15c
Include user agent when posting stats
niik Dec 3, 2024
923eff2
Expose priority update status
niik Dec 3, 2024
ae93744
Add nondismissable mode for update banner
niik Dec 3, 2024
f92fd9f
Add testing menu item for showing priority update banner
niik Dec 3, 2024
977981f
Allow for info url
niik Dec 3, 2024
de6455e
Some basic styling
niik Dec 3, 2024
b29e6d5
Don't add a "read more" link
niik Dec 3, 2024
fda8fc0
Use alert icon to convey urgency
niik Dec 3, 2024
c699459
Fix typo in start-date
tidy-dev Dec 4, 2024
a439908
chore: rename Windows Terminal in shell integration code
ankddev Dec 4, 2024
fdcf13f
docs: rename Windows Terminal entry in shell integration docs
ankddev Dec 4, 2024
e1ea97c
Automated lint fixes
ssigwart Dec 5, 2024
6808762
Merge pull request #19663 from ankddev/rename-windows-terminal
niik Dec 5, 2024
465eb57
Merge pull request #19660 from desktop/update-start-date
niik Dec 5, 2024
4a92672
a11y contrast requirements
niik Dec 5, 2024
53eafae
Merge pull request #19649 from desktop/announce-panel-resize-events
tidy-dev Dec 5, 2024
454178e
Merge pull request #19647 from desktop/fix-remote-a11y-label
tidy-dev Dec 5, 2024
afd1754
Color contrast take one thousand
niik Dec 5, 2024
e02fb6d
Merge pull request #19655 from desktop/priority-updates
niik Dec 5, 2024
9d14ae6
Merge pull request #17467 from ssigwart/renameChanged2
tidy-dev Dec 5, 2024
c6d71b3
Merge pull request #19626 from desktop/merge-tree-perf
niik Dec 9, 2024
cce6eb8
Release 3.4.10-beta3
tidy-dev Dec 9, 2024
35c3edf
Add aria label and aria described to text area components
tidy-dev Dec 9, 2024
59bbb21
Add aria label and description to ignored files
tidy-dev Dec 9, 2024
38061e3
Bulk up the stand alone links in the about dialog.
tidy-dev Dec 9, 2024
0f7661d
Darken yellow in checks header to achieve 3.1 contrast
tidy-dev Dec 9, 2024
8975e3b
Prohibit absolute paths in filepath
niik Dec 10, 2024
ca3c3ad
Incorrect metric, this is selecting an existing, not adding an existing
niik Dec 10, 2024
2cfff35
Find repo without executing rev-parse
niik Dec 10, 2024
8564890
log
niik Dec 10, 2024
05235d8
Merge pull request #19683 from desktop/releases/3.4.10-beta3
sergiou87 Dec 10, 2024
cbf95e3
Bump nanoid from 3.3.7 to 3.3.8
dependabot[bot] Dec 10, 2024
64ba216
First take on a simplified CLI, invoking the desktop executable directly
niik Dec 10, 2024
560d453
Feature flag and substitute modified impactful components
tidy-dev Dec 10, 2024
cab947f
Should be a sectioned filtered list
tidy-dev Dec 10, 2024
2c60d69
Should be a sectioned filtered list
tidy-dev Dec 10, 2024
bd51ca9
Swap to using filtered list component (List broken till switching dat…
tidy-dev Dec 10, 2024
77dc7f1
Add id back onto list
tidy-dev Dec 10, 2024
3e90590
Create IChangesListItem
tidy-dev Dec 10, 2024
9727d83
Update renderRow => renderChangedFile to use ChangesListItem instead …
tidy-dev Dec 10, 2024
3a2bea2
Create groups on state
tidy-dev Dec 10, 2024
9aec3ad
Create grouped items (Can see list items again!)
tidy-dev Dec 10, 2024
e2b77a7
Add filter text to state (filter works!)
tidy-dev Dec 10, 2024
4707212
Wire up checking/unchecking with spacebar
tidy-dev Dec 10, 2024
85a09d7
Set selectedItem from selected Ids
tidy-dev Dec 10, 2024
b4405b6
Wire up selection change again! (single for now..)
tidy-dev Dec 10, 2024
178cf48
Merge branch 'filter-changes-feature-flag' into switch-to-filtered-list
tidy-dev Dec 10, 2024
0bb1c45
Add on double click back
tidy-dev Dec 10, 2024
16fb102
Finish on context menu wire up
tidy-dev Dec 10, 2024
14f242d
Add row keyboard function callback
tidy-dev Dec 10, 2024
0b199ea
Wire up on blur
tidy-dev Dec 10, 2024
9df0590
Wire up on key down on item
tidy-dev Dec 10, 2024
8010751
Add scroll callbacks
tidy-dev Dec 11, 2024
4ba30c6
Wire up ariaLabel
tidy-dev Dec 11, 2024
4193a0c
Handle CLI actions separately from url actions
niik Dec 11, 2024
effb8cd
Get rid of CLI dynamic commands lookup
niik Dec 11, 2024
3baa284
Use process.platform over compile time vars
niik Dec 11, 2024
9cbcc1b
Get rid of handlePossibleProtocolLauncherArgs
niik Dec 11, 2024
9bc426d
Let handleAppUrl take care of parsing problems
niik Dec 11, 2024
0201be7
Remove import
niik Dec 11, 2024
855a576
Always create a new instance or else open will just focus the app
niik Dec 11, 2024
0654277
First take on Windows CLI support
niik Dec 11, 2024
4409533
Merge pull request #19687 from desktop/some-checks-not-complete-contrast
tidy-dev Dec 11, 2024
cf2cff2
Merge pull request #19685 from desktop/about-links-size
tidy-dev Dec 11, 2024
1a8a45f
Merge pull request #19684 from desktop/ignore-text-area-aria-labelling
tidy-dev Dec 11, 2024
e0beb13
Close diff options on mouse down outside of popover
niik Dec 11, 2024
5d3446e
Get windows CLI working
niik Dec 11, 2024
35be3f7
Formatting
niik Dec 11, 2024
b33cbb4
Don't need this
niik Dec 11, 2024
c75546c
Release 3.4.10
tidy-dev Dec 11, 2024
b115199
Merge pull request #19694 from desktop/defer-validation
niik Dec 11, 2024
462e28b
:art: cleanup
niik Dec 11, 2024
07e3f67
Update changelog.json
tidy-dev Dec 11, 2024
16d644b
Track selectedRows..ish
tidy-dev Dec 11, 2024
8b2f514
Pass in and handle selected Items
tidy-dev Dec 11, 2024
42a20e4
Error handling
niik Dec 12, 2024
b28fc49
typo
niik Dec 12, 2024
0410d1f
Don't need this any more
niik Dec 12, 2024
eaeea3a
Merge pull request #19709 from desktop/close-diff-options-on-mousedown
niik Dec 12, 2024
7d89349
Merge pull request #19706 from desktop/releases/3.4.10
sergiou87 Dec 13, 2024
cda6daf
Cap output from git at string max length
niik Dec 16, 2024
af4cd4c
Merge pull request #19724 from desktop/string-theory
niik Dec 16, 2024
2e6f93a
Cap output from git at string max length
niik Dec 16, 2024
afc147e
Bump version
niik Dec 16, 2024
6f3fe37
Face, meet palm
niik Dec 16, 2024
bd65aa8
Merge pull request #19726 from desktop/palmface
niik Dec 16, 2024
9b7d2ed
Merge pull request #19692 from desktop/dependabot/npm_and_yarn/nanoid…
niik Dec 16, 2024
9db0c06
Face, meet palm
niik Dec 16, 2024
c6ea196
Added check to make sure a pull request exists
DylanDevelops Dec 16, 2024
26f068f
Merge pull request #19695 from desktop/filter-changes-feature-flag
tidy-dev Dec 17, 2024
a0e2cd5
Skip caching for now, worry about cache invalidation later
niik Dec 17, 2024
8c7782a
Merge pull request #19725 from desktop/releases/3.4.11
niik Dec 17, 2024
0c9aa8c
Merge pull request #19730 from desktop/cache-less
niik Dec 17, 2024
43d9031
Skip caching for now, worry about cache invalidation later
niik Dec 17, 2024
6d57135
Bump version
niik Dec 17, 2024
8e0ac16
Release 3.4.12-beta1
tidy-dev Dec 17, 2024
108dbfb
Update globals.d.ts
niik Dec 17, 2024
d5562bf
Remove unnecessary content wrapping
tidy-dev Dec 17, 2024
9e89be6
Remove status tooltip
tidy-dev Dec 17, 2024
229095e
Merge pull request #19731 from desktop/releases/3.4.12-beta1
tidy-dev Dec 17, 2024
361392f
Remove support for Atom
niik Dec 17, 2024
6b353c4
Launch VSCode and VSCodium via their .exe
niik Dec 17, 2024
980aef7
Enumerate JetBrains toolbox uninstall entries
niik Dec 17, 2024
b225cd2
Don't need this
niik Dec 17, 2024
3e60207
Don't need theese
niik Dec 17, 2024
edeb480
Whooops
niik Dec 17, 2024
0341e45
Remove usesShell property
niik Dec 17, 2024
f6b9116
Don't need these now that we've removed the use of shell
niik Dec 17, 2024
8aaddbb
Merge pull request #19728 from DylanDevelops/dylandev/context-menu-fix
niik Dec 18, 2024
c543b3d
Merge branch 'development' into releases/3.4.12
niik Dec 18, 2024
ed12264
Merge pull request #19734 from desktop/announce-thank-you-banner
tidy-dev Dec 18, 2024
86a419a
Go look in wow64 uninstall subkey as well
niik Dec 18, 2024
bb93261
Attempt to explain why we can't publish
niik Dec 18, 2024
6f3586c
Bubble up the filtered items
tidy-dev Dec 18, 2024
efc5fea
Add check for if all files to be committed are visible
tidy-dev Dec 18, 2024
f86de3d
Merge pull request #19744 from desktop/command-less
niik Dec 18, 2024
14223ba
Create confirm-commit-filtered-changes-dialog.tsx
tidy-dev Dec 18, 2024
c1f6433
Create prompt setting for committing filtered changes
tidy-dev Dec 18, 2024
0893f63
Add confirm filter changes popup model
tidy-dev Dec 18, 2024
0db1c85
Bubble create commit action on confirm
tidy-dev Dec 18, 2024
730c0b9
Dispatch popup
tidy-dev Dec 18, 2024
0685293
Merge pull request #19745 from desktop/to-publish-or-not-to-publish-t…
niik Dec 18, 2024
3abfaea
Finish wiring up askForConfirmationOnCommitFilteredChanges
tidy-dev Dec 18, 2024
62dd1bf
Clearer title
tidy-dev Dec 18, 2024
ad5db30
Clearer variable name
tidy-dev Dec 18, 2024
5b0a201
Remove flex row so clear filter link works
tidy-dev Dec 18, 2024
cefd0b0
Update confirm-commit-filtered-changes-dialog.tsx
tidy-dev Dec 18, 2024
34f3e5c
Update commit-message.tsx
tidy-dev Dec 18, 2024
38f215e
Put clear filter in the cancel button
tidy-dev Dec 18, 2024
c96a47b
Clear filter after commit
tidy-dev Dec 18, 2024
7817143
Use findFileIndexByID
tidy-dev Dec 19, 2024
56cb479
Bump cross-spawn from 6.0.5 to 6.0.6 in /app
dependabot[bot] Dec 19, 2024
f981711
Merge pull request #19698 from desktop/switch-to-filtered-list
tidy-dev Dec 19, 2024
2d5e47a
Merge pull request #19751 from desktop/dependabot/npm_and_yarn/app/cr…
niik Dec 19, 2024
6c1d9b0
Merge branch 'development' into Add-mutli-select-to-filtered-list
tidy-dev Dec 19, 2024
1c8c160
Merge pull request #19700 from desktop/add-missing-list-callbacks-to-…
tidy-dev Dec 19, 2024
6b2fd02
Doc xor
tidy-dev Dec 19, 2024
ded5c11
Use more efficient findFileIndexByID
tidy-dev Dec 19, 2024
af0ccc1
Merge branch 'development' into Add-mutli-select-to-filtered-list
tidy-dev Dec 19, 2024
bf33d02
Merge branch 'Add-mutli-select-to-filtered-list' into bubble-up-filte…
tidy-dev Dec 19, 2024
5a90c67
Better has same ids documentation
tidy-dev Dec 19, 2024
9c03051
Merge pull request #19708 from desktop/Add-mutli-select-to-filtered-list
tidy-dev Dec 19, 2024
987e811
Merge pull request #19732 from desktop/releases/3.4.12
niik Dec 19, 2024
247954b
Merge branch 'development' into bubble-up-filtered-rows
tidy-dev Dec 19, 2024
54d6de7
Change filtered items to a set for faster comparison to selected items
tidy-dev Dec 19, 2024
1262dae
Merge branch 'bubble-up-filtered-rows' into confirm-users-knows-about…
tidy-dev Dec 19, 2024
31b4d58
Merge pull request #19733 from desktop/cli-direct-invoke
niik Dec 19, 2024
b8bc5b8
Merge pull request #19747 from desktop/bubble-up-filtered-rows
tidy-dev Dec 19, 2024
1ef8592
Memomize isCommittingFileHiddenByFilter
tidy-dev Dec 19, 2024
47666e1
Merge pull request #19735 from desktop/remove-pr-badge-status-tooltip
tidy-dev Dec 19, 2024
d461538
Release 3.4.13-beta1
tidy-dev Dec 19, 2024
a8e12b6
Merge pull request #19748 from desktop/confirm-users-knows-about-all-…
tidy-dev Dec 19, 2024
2000827
Merge pull request #19752 from desktop/releases/3.4.13-beta1
tidy-dev Dec 19, 2024
a254da5
Fix formatting in setup.md
monteiro-renato Dec 22, 2024
b68e7da
Merge pull request #19761 from monteiro-renato/patch-1
tidy-dev Dec 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 24 additions & 1 deletion .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ extends:
- prettier/react
- plugin:@typescript-eslint/recommended
- prettier/@typescript-eslint
- plugin:github/react

rules:
##########
Expand All @@ -29,6 +30,7 @@ rules:
###########
# PLUGINS #
###########

# TYPESCRIPT
'@typescript-eslint/naming-convention':
- error
Expand Down Expand Up @@ -111,6 +113,7 @@ rules:
react/jsx-uses-vars: error
react/jsx-uses-react: error
react/no-unused-state: error
# niik 2023-12-05: turning this off to not muddy up the TS5 upgrade.
react/no-unused-prop-types: error
react/prop-types:
- error
Expand All @@ -121,7 +124,10 @@ rules:
jsdoc/check-tag-names: error
jsdoc/check-types: error
jsdoc/implements-on-classes: error
jsdoc/newline-after-description: error
jsdoc/tag-lines:
- error
- any
- startLines: 1
jsdoc/no-undefined-types: error
jsdoc/valid-types: error

Expand Down Expand Up @@ -184,6 +190,20 @@ rules:
- selector: ExportDefaultDeclaration
message: Use of default exports is forbidden

###########
# jsx-a11y #
###########

# autofocus is fine when it is being used to set focus to something in a way
# that doesn't skip any context or inputs. For example, in a named dialog, if you had
# a close button, a heading reflecting the name, and a labelled text input,
# focusing the text input wouldn't disadvantage a user because they're not
# missing anything of importance before it. The problem is when it is used on
# larger web pages, e.g. to focus a form field in the main content, entirely
# skipping the header and often much else besides.
jsx-a11y/no-autofocus:
- off

overrides:
- files: '*.d.ts'
rules:
Expand All @@ -196,6 +216,9 @@ overrides:
- files: 'script/**/*'
rules:
'@typescript-eslint/no-non-null-assertion': off
- files: 'app/src/ui/octicons/octicons.generated.ts'
rules:
'@typescript-eslint/naming-convention': off

parserOptions:
sourceType: module
Expand Down
6 changes: 3 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ comment to the existing issue if there is extra information you can contribute.

Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/).

Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues/new?template=bug_report.md)
Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues/new?template=bug_report.yaml)
and fill out the provided issue template.

The information we are interested in includes:
Expand All @@ -87,7 +87,7 @@ community understand your suggestion :pencil: and find related suggestions
Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion)
as you might find out that you don't need to create one. When you are creating
an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion).
Fill in [the template](ISSUE_TEMPLATE/problem-to-raise.md), including the steps
Fill in [the template](ISSUE_TEMPLATE/feature_request.yaml), including the steps
that you imagine you would take if the feature you're requesting existed.

#### Before Submitting An Enhancement Suggestion
Expand All @@ -101,7 +101,7 @@ information you would like to add.

Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/).

Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues/new?template=feature_request.md)
Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues/new?template=feature_request.yaml)
and fill out the provided issue template.

Some additional advice:
Expand Down
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
# Disable version updates and keep only security updates
open-pull-requests-limit: 0
3 changes: 2 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<!--
What GitHub Desktop issue does this PR address? (for example, #1234)
What GitHub Desktop issue does this PR address (for example, #1234)?
If you have not created an issue for your PR, please search the issue tracker to see if there is an existing issue that aligns with your PR, or open a new issue for discussion.
-->

Closes #[issue number]
Expand Down
149 changes: 101 additions & 48 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,68 +4,102 @@ on:
push:
branches:
- development
- __release-*
pull_request:
workflow_call:
inputs:
repository:
default: desktop/desktop
required: false
type: string
ref:
required: true
type: string
upload-artifacts:
default: false
required: false
type: boolean
environment:
type: string
required: true
sign:
type: boolean
default: true
required: false
secrets:
AZURE_CODE_SIGNING_TENANT_ID:
AZURE_CODE_SIGNING_CLIENT_ID:
AZURE_CODE_SIGNING_CLIENT_SECRET:
DESKTOP_OAUTH_CLIENT_ID:
DESKTOP_OAUTH_CLIENT_SECRET:
APPLE_ID:
APPLE_ID_PASSWORD:
APPLE_TEAM_ID:
APPLE_APPLICATION_CERT:
APPLE_APPLICATION_CERT_PASSWORD:

env:
NODE_VERSION: 20.17.0

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
env:
RELEASE_CHANNEL: ${{ inputs.environment }}
steps:
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repository || github.repository }}
ref: ${{ inputs.ref }}
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- run: yarn
- run: yarn validate-electron-version
- run: yarn lint
- run: yarn validate-changelog
- name: Ensure a clean working directory
run: git diff --name-status --exit-code
build:
name: ${{ matrix.friendlyName }} ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
permissions: read-all
permissions:
contents: read
strategy:
fail-fast: false
matrix:
node: [16.13.0]
os: [macos-10.15, windows-2019]
os: [macos-13-xl-arm64, windows-2019]
arch: [x64, arm64]
include:
- os: macos-10.15
- os: macos-13-xl-arm64
friendlyName: macOS
- os: windows-2019
friendlyName: Windows
timeout-minutes: 60
environment: ${{ inputs.environment }}
env:
# Needed for macOS arm64 until hosted macos-11.0 runners become available
SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk
RELEASE_CHANNEL: ${{ inputs.environment }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repository || github.repository }}
ref: ${{ inputs.ref }}
submodules: recursive
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v1
- uses: actions/setup-python@v5
with:
node-version: ${{ matrix.node }}

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
python-version: '3.11'
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v4
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
${{ runner.os }}-yarn-

# This step can be removed as soon as official Windows arm64 builds are published:
# https://github.com/nodejs/build/issues/2450#issuecomment-705853342
- name: Get NodeJS node-gyp lib for Windows arm64
if: ${{ matrix.os == 'windows-2019' && matrix.arch == 'arm64' }}
run: .\script\download-nodejs-win-arm64.ps1 ${{ matrix.node }}

node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Install and build dependencies
run: yarn
env:
npm_config_arch: ${{ matrix.arch }}
TARGET_ARCH: ${{ matrix.arch }}
- name: Lint
run: yarn lint
- name: Validate changelog
run: yarn validate-changelog
- name: Ensure a clean working directory
run: git diff --name-status --exit-code
- name: Build production app
run: yarn build:prod
env:
Expand All @@ -74,28 +108,47 @@ jobs:
${{ secrets.DESKTOP_OAUTH_CLIENT_SECRET }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
DESKTOPBOT_TOKEN: ${{ secrets.DESKTOPBOT_TOKEN }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_APPLICATION_CERT: ${{ secrets.APPLE_APPLICATION_CERT }}
KEY_PASSWORD: ${{ secrets.APPLE_APPLICATION_CERT_PASSWORD }}
npm_config_arch: ${{ matrix.arch }}
TARGET_ARCH: ${{ matrix.arch }}
- name: Prepare testing environment
if: matrix.arch == 'x64'
run: yarn test:setup
env:
npm_config_arch: ${{ matrix.arch }}
- name: Run unit tests
if: matrix.arch == 'x64'
run: yarn test:unit
- name: Run script tests
if: matrix.arch == 'x64'
run: yarn test:script
- name: Publish production app
run: yarn run publish
- name: Install Azure Code Signing Client
if: ${{ runner.os == 'Windows' && inputs.sign }}
run: |
$acsZip = Join-Path $env:RUNNER_TEMP "acs.zip"
$acsDir = Join-Path $env:RUNNER_TEMP "acs"
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Trusted.Signing.Client/1.0.52 -OutFile $acsZip -Verbose
Expand-Archive $acsZip -Destination $acsDir -Force -Verbose
# Replace ancient signtool in electron-winstall with one that supports ACS
Copy-Item -Path "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\*" -Include signtool.exe,signtool.exe.manifest,Microsoft.Windows.Build.Signing.mssign32.dll.manifest,mssign32.dll,Microsoft.Windows.Build.Signing.wintrust.dll.manifest,wintrust.dll,Microsoft.Windows.Build.Appx.AppxSip.dll.manifest,AppxSip.dll,Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifest,AppxPackaging.dll,Microsoft.Windows.Build.Appx.OpcServices.dll.manifest,OpcServices.dll -Destination "node_modules\electron-winstaller\vendor" -Verbose
- name: Package production app
run: yarn package
env:
npm_config_arch: ${{ matrix.arch }}
DESKTOPBOT_TOKEN: ${{ secrets.DESKTOPBOT_TOKEN }}
WINDOWS_CERT_PASSWORD: ${{ secrets.WINDOWS_CERT_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
DEPLOYMENT_SECRET: ${{ secrets.DEPLOYMENT_SECRET }}
AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
AZURE_STORAGE_ACCESS_KEY: ${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
AZURE_BLOB_CONTAINER: ${{ secrets.AZURE_BLOB_CONTAINER }}
AZURE_STORAGE_URL: ${{ secrets.AZURE_STORAGE_URL }}
AZURE_TENANT_ID: ${{ secrets.AZURE_CODE_SIGNING_TENANT_ID }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CODE_SIGNING_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CODE_SIGNING_CLIENT_SECRET }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: ${{ inputs.upload-artifacts }}
with:
name: ${{matrix.friendlyName}}-${{matrix.arch}}
path: |
dist/GitHub Desktop-${{matrix.arch}}.zip
dist/GitHubDesktop-*.nupkg
dist/GitHubDesktopSetup-${{matrix.arch}}.exe
dist/GitHubDesktopSetup-${{matrix.arch}}.msi
dist/bundle-size.json
if-no-files-found: error
36 changes: 36 additions & 0 deletions .github/workflows/close-invalid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Close issue/PR on adding invalid label

# **What it does**: This action closes issues and PRs that are labeled as invalid in the Desktop repo.

on:
issues:
types: [labeled]
# Needed in lieu of `pull_request` so that PRs from a fork can be
# closed when marked as invalid.
pull_request_target:
types: [labeled]

permissions:
contents: read
issues: write
pull-requests: write

jobs:
close-on-adding-invalid-label:
if:
github.repository == 'desktop/desktop' && github.event.label.name ==
'invalid'
runs-on: ubuntu-latest

steps:
- name: Close issue
if: ${{ github.event_name == 'issues' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh issue close ${{ github.event.issue.html_url }}

- name: Close PR
if: ${{ github.event_name == 'pull_request_target' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr close ${{ github.event.pull_request.html_url }}
44 changes: 44 additions & 0 deletions .github/workflows/close-single-word-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Close Single-Word Issues

on:
issues:
types:
- opened

permissions:
issues: write

jobs:
close-issue:
runs-on: ubuntu-latest

steps:
- name: Close Single-Word Issue
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issueTitle = context.payload.issue.title.trim();
const isSingleWord = /^\S+$/.test(issueTitle);
if (isSingleWord) {
const issueNumber = context.payload.issue.number;
const repo = context.repo.repo;
// Close the issue and add the invalid label
github.rest.issues.update({
owner: context.repo.owner,
repo: repo,
issue_number: issueNumber,
labels: ['invalid'],
state: 'closed'
});
// Comment on the issue
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: repo,
issue_number: issueNumber,
body: `This issue may have been opened accidentally. I'm going to close it now, but feel free to open a new issue with a more descriptive title.`
});
}
Loading