Commit graph

14 commits

Author SHA1 Message Date
William Martin
9bd8f09774 Use safepaths for run download 2024-12-04 22:12:58 +01:00
William Martin
a47b4c9f1d Use consistent slice ordering in run download tests 2024-12-04 13:02:25 +01:00
Andy Feller
cdfc12caf5 Expand logic and tests to handle edge cases
This commit expands filepathDescendsFrom(string, string) to handle edge cases such as mixing absolute and relative paths or artifact name edge cases.

Additionally, tests for filepathDescendsFrom() and downloadrun() have been expanded to verify additional use cases.
2024-11-22 15:26:11 -05:00
Andy Feller
e7c5706336 Refactor download testing, simpler file descends
This incorporates the work done by @williammartin to improve reasoning about `gh run download` behavior through testing while verifying a simpler solution to checking if a path is contained within a directory.
2024-11-21 17:07:27 -05:00
Tyler McGoffin
83cf411556 Improve test names so there is no repetition 2024-11-19 16:08:31 -08:00
Andy Feller
8da27d2c8a Second attempt to address exploit
This builds off suggestion to reuse logic used already within `gh run download` for detecting path traversals.

This largely works but runs into an issue where detection logic doesn't handle non-separated traversal.
2024-11-19 17:55:18 -05:00
vilmibm
5597139df3 switch to []int return for multiselect 2023-05-23 00:12:44 -07:00
nate smith
c536114de0 use new prompter in run download 2023-04-10 17:38:30 -07:00
ffalor
3fb8579419
Add --pattern field to run download (#5539) 2022-05-23 08:57:57 +00:00
Håvard Anda Estensen
58cb773e09
Replace ioutil with io and os (#5498) 2022-04-26 13:07:44 +02:00
Mislav Marohnić
11fbb60ae7 Rename the module to "github.com/cli/cli/v2" 2021-08-25 12:41:30 +02:00
Mislav Marohnić
6ce12c07f6 Move Artifact to the "shared" package 2021-04-07 20:26:12 +02:00
Mislav Marohnić
0e94de1ce6 Address run download feedback
- With no arguments in TTY mode, prompt which artifacts to download
- Change `--pattern` argument to be just `--name` and only do exact
  matching
- For multi-archive downloads, prefix the destination path with the name
  of the artifact
- Add tests exercising HTTP functionality
- Avoid "zipslip" path injection when extracting ZIP files
- Add tests for ZIP extraction
2021-04-07 19:56:28 +02:00
Mislav Marohnić
c54e3c9ca8 Add run download command for downloading workflow artifacts 2021-04-02 20:42:18 +02:00