aboutsummaryrefslogtreecommitdiffstats
path: root/Cargo.toml
AgeCommit message (Collapse)Author
2020-08-06Increase version v0.0.1 -> v0.1.0v0.1.0Teddy Wing
2020-08-02git-sugpatch: Print error and exit on `Config::get` errorTeddy Wing
Add `exitcode` to exit with an appropriate code. Add the `gseprintln` macro to wrap `eprintln!()`, prefixing the output with "error: ".
2020-08-02git-sugpatch: Accept multiple suggestion args; Accept suggestion ID argsTeddy Wing
Add the ability to pass multiple suggestions to the binary. The diffs will appear in the output one after another. Also allow suggestions to be specified by their comment ID instead of their full URL. This uses the Git repo's remote to determine the owner-repo pair. When a URL argument is given, the owner-repo pair is extracted from the URL. It's now possible to call the binary like this: $ git-sugpatch 459692838 \ > https://github.com/teddywing/suggestion-test/pull/1#discussion_r459691747
2020-08-01Get configTeddy Wing
We need the following values in order to build a `Client`: * GitHub token * Repo owner * Repo name Get the token from a command-line argument, or else the Git config, or else an environment variable. Get the repo identifiers from the repo's remote URL. Use the remote specified as a command-line argument, otherwise get it from the Git config, or else default to "origin". TODO: Only try to get the owner-name pair from the remote if a comment ID was given, not if a URL argument was passed.
2020-08-01Move `github-suggestion-cli` to the root crateTeddy Wing
This will be used by the binaries.
2020-08-01Move library to a separate crateTeddy Wing
Keep the binaries in the root crate, and add a new crate for the `github-suggestion` library. I want to add some library code to the CLI programs to extract common functionality between the different binaries.
2020-08-01Move `github-suggestion-config` to `github-suggestion-cli`Teddy Wing
Going to use this for more cli-oriented code, so that the binaries can share more logic.
2020-08-01Add a function to get an owner-repo pair from the Git repo remoteTeddy Wing
This will allow us to accept suggestion IDs alone, without a full URL, like the following: $ git sugapply 459691747 # or $ git sugapply --remote upstream 459691747 # or $ git config github-suggestion.remote upstream $ git sugapply 459691747 We do this by extracting the pair from the remote URL.
2020-07-31Cargo.toml: Remove 'unidiff' dependencyTeddy Wing
Ended up not using this. Instead used 'git2' to generate the diff.
2020-07-29Rename crate to 'github-suggestion'Teddy Wing
Didn't like the old name. Wanted to make the GitHub reference more explicit. I remember it as "suggestion", since that's the name of the GitHub feature, so "suggested" was confusing. The final "patch" seemed redundant or unnecessary.
2020-07-25Add git-sugapply binTeddy Wing
An executable to apply a suggested change to the appropriate file in the repo. Add a new `SuggestionUrl` type that allows us to extract the necessary data to fetch a suggestion comment from the GitHub API using a GitHub pull request comment URL.
2020-07-25Suggestion: Try applying a change to the file (WIP)Teddy Wing
Not working yet, but the idea is to get the file referenced by the suggestion and apply the suggested change directly to it. Here, we read the original file, and write its contents to the new file, replacing the lines modified by the suggestion with the suggested change. Currently doesn't work because you can't pass file instances to `fs::rename`, only paths. I'd like to try a slightly different system so I can keep the original file's creation date. With the current system, it would be overwritten by the new temporary file created to store the change.
2020-07-24Read a blob from a repositoryTeddy Wing
Work out the code required to get a file blob's contents from a Git repository using the 'git2' crate. We'll be using this to get the original file for patching.
2020-07-22Try modifying diff hunk with 'unidiff'Teddy Wing
Testing out 'unidiff' to build the patch. Trying to see if it will adjust the line numbers automatically when the patch is modified. Doesn't look like it. Seems like it has a nice interface, though. Still having trouble applying the patch due to complaints of patch format errors.
2020-07-21Suggesstion: Implement `patch` to generate a patch for the suggestionTeddy Wing
Still working on it, but have an initial draft working. There's no file name in the diff hunk, so I'm assuming I'm going to have to add one later. Build a patch from the diff hunk and suggestion comment. 1. Remove `-` lines 2. Change `+` lines to ` ` 3. Change last line to `-` 4. Append suggestion to the diff with a `+` prefix
2020-07-19Extract diff hunk and comment body from GitHub responseTeddy Wing
Split the `Suggestion` struct into a new `Client` struct for the GitHub request, and `Suggestion` for the required response data.
2020-07-19Fetch a GitHub PR suggestion commentTeddy Wing
Add a `Suggestion` struct to represent a GitHub PR suggestion comment. Use the 'github-rs' library to fetch a given comment from the site by its ID. Converted the 'github-rs' error into a string because its `github_rs::client::Error` type is private, so I can't define an error variant source with that type.
2020-07-13Initialise a new Rust v1.44.1 projectTeddy Wing
Initialised with: $ cargo init --bin