libgit2sharp what is correct sha to supply to GitHub API merge pull-request?

GitHub API requires merge pull-request to be submitted as

PUT /repos/:owner/:repo/pulls/:number/merge

with request body json

  • git-diff: Only show changes staged for committing
  • how to sync a “shadow” git repository with a main repository “secretly”
  • How do I change the remote a git branch is tracking?
  • Is a new branch necessary before git cherry pick?
  • When and why does Git update the modification time on .keep packfiles?
  • Should git ignore the *.pch files created by XCode?
  • {
      "commit_message": "blah",
      "sha": "{SHA that pull request head must match to allow merge}",

    Following a commit, push, create PR, what libgit2sharp property supplies the correct sha ?

    For the current branch, it appears Branch.Tip.Sha is the correct value, but I’m receiving response error :

    { “message”: “Head branch was modified. Review and try the merge
    again.”, “documentation_url”:

  • How can I get/list/see all the descendants of a commit with git (or gitk)?
  • Using git hook to add license and app version to comment at top of source files
  • Why does `git submodule` require fetching from a remote repository everytime?
  • Github - can't connect via ssh from time to time
  • How to clean all commits from remote github repo
  • Cannot pull, git cannot resolve reference ORIG_HEAD
  • One Solution collect form web for “libgit2sharp what is correct sha to supply to GitHub API merge pull-request?”

    Two different commits and shas come into play when it comes to Pull Request.

    When leveraging the GitHub API to merge an opened Pull Request, the optional sha property from the json payload is expected to match the sha of the branch tip as currently known by GitHub.

    Provided your local repository is in sync with what GitHub knows about your repository, this should definitely be matching what repo.Branches["your_topic_branch"].Tip.Sha returns.

    Note: In order to ensure that the GitHub known head of the PR matches your local branch tip, using LibGit2Sharp, you can retrieve GitHub PR merge/head pointed at commits, by directly fetching a special reference namespace. The following code demonstrates this

    var remoteName = "origin"; // or whatever your remote is named
    var remote = repo.Network.Remotes[remoteName];
    var prNumber = "1123"; // or whatever your pr number is
    // Build the refspec
    string refSpec = string.Format("+refs/pull/{1}/*:refs/remotes/{0}/pull/{1}/*", 
                            remoteName, prNumber);
    // Perform the actual fetch
    repo.Network.Fetch(remote, new[] { refSpec });
    Console.WriteLine(repo.Branches[string.Format("pull/{0}/merge", prNumber)].Tip.Sha);
    Git Baby is a git and github fan, let's start git clone.