3

LibGit2Sharp ライブラリを使用して、認証されたユーザーの GitHub リポジトリを複製/プッシュしますが、LibGit2Sharp はユーザーを承認するためのアクセス トークンを受け入れません。

 LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
        {
            Username = "username",
            Password = "password"
        };

そのため、Octokit.NET からアクセス トークンを取得しました。このトークンを使用して、LibGit2Sharp で承認されたユーザー リポジトリにプッシュしたいと考えています。

このトリックを行う方法はありますか?私がよく知っている場合、Octokit.NET は現時点でプッシュ リクエストを実行できませんでした。

アップデート

Carlos Martín Nieto と Ivan Zuzak が提案するように、コードを変更しました。

 LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
    {
        Username = "the-access-token",
        Password = string.Empty
    };

そして、プッシュ ロジックを使用した後:

 var pushOptions = new PushOptions() { Credentials = credentials};

 Remote remote = repo.Network.Remotes["origin"];

 LibGit2Sharp.Signature author = new LibGit2Sharp.Signature("name", "email", DateTime.Now);

 repo.Network.Push(remote,"HEAD",@"refs/heads/master",pushOptions, author, null);

このロジックは、ハードコーディングされたユーザー名とパスワードで正常に機能しますが、最終行で例外が発生し、「 LibGit2Sharp.LibGit2SharpException: Request failed with status code: 403」と表示されます。

実装から何かを逃したか、または Push() メソッドで間違いを犯しましたか?

どうもありがとうございました!

4

2 に答える 2