第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 go-vcr 與 githubv4 一起使用?- 獲取 httpClient 傳輸

如何將 go-vcr 與 githubv4 一起使用?- 獲取 httpClient 傳輸

Go
www說(shuō) 2022-11-15 09:52:48
查看 go-vcr 的設(shè)置// Start our recorder    r, err := recorder.New("fixtures/etcd")    if err != nil {        log.Fatal(err)    }    defer r.Stop() // Make sure recorder is stopped once done with it    // Create an etcd configuration using our transport    cfg := client.Config{        Endpoints:               []string{"http://127.0.0.1:2379"},        HeaderTimeoutPerRequest: time.Second,        Transport:               r, // Inject as transport!    }嘗試使用 githubv4 庫(kù)來(lái)使用這個(gè)庫(kù)似乎需要一種方法來(lái)處理 Oauthimport "golang.org/x/oauth2"func main() {    src := oauth2.StaticTokenSource(        &oauth2.Token{AccessToken: os.Getenv("GITHUB_TOKEN")},    )    httpClient := oauth2.NewClient(context.Background(), src)    client := githubv4.NewClient(httpClient)    // Use client...}我不確定如何將記錄器“r”放入 oauth2 客戶端。如果可能的話。有人成功過(guò)嗎?我試過(guò)使用“r”記錄器傳遞一個(gè) httpClient,但它最終顯示為 401 - 看起來(lái)這個(gè)默認(rèn)客戶端無(wú)法執(zhí)行 Oauth 舞蹈。我想使用 GraphQL API,但如果更容易的話可以回退到 REST API,但我只是想確保這真的不可能。還有其他人成功了嗎?
查看完整描述

1 回答

?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

這個(gè)問(wèn)題為我解決了這個(gè)問(wèn)題。 https://github.com/dnaeon/go-vcr/issues/59


下面的例子


package example_test


import (

    "context"

    "github.com/dnaeon/go-vcr/cassette"

    "github.com/dnaeon/go-vcr/recorder"

    "github.com/google/go-github/v33/github"

    "github.com/stretchr/testify/require"

    "golang.org/x/oauth2"

    "net/http"

    "path"

    "testing"

)


func TestGithub(t *testing.T) {

    //custom http.Transport, since github uses oauth2 authentication

    ts := oauth2.StaticTokenSource(

        &oauth2.Token{AccessToken: "YOUR_GITHUB_TOKEN"},

    )


    tr := &oauth2.Transport{

        Base:  http.DefaultTransport,

        Source: oauth2.ReuseTokenSource(nil, ts),

    }


    // Start our recorder

    vcrRecorder, err := recorder.NewAsMode(path.Join("testdata", "fixtures", t.Name()), recorder.ModeRecording, tr)

    require.NoError(t, err)

        defer vcrRecorder.Stop() // NEWLY ADDED CODE HERE



    // Filter out dynamic & sensitive data/headers

    // Your test code will continue to see the real access token and

    // it is redacted before the recorded interactions are saved

        // =====> commenting out this section has no impact on missing recording

    vcrRecorder.AddSaveFilter(func(i *cassette.Interaction) error {

        delete(i.Request.Headers, "Authorization")

        delete(i.Request.Headers, "User-Agent")

        i.Request.Headers["Authorization"] = []string{"Basic UExBQ0VIT0xERVI6UExBQ0VIT0xERVI="} //PLACEHOLDER:PLACEHOLDER


        return nil

    })


        // custom http.client

    httpClient := &http.Client{

        Transport: vcrRecorder,

    }


    ghClient := github.NewClient(httpClient)


    // =====> actual test, should create cassettes, but does not.

    _, _, err = ghClient.Users.Get(context.Background(), "")


    require.NoError(t, err)

}


查看完整回答
反對(duì) 回復(fù) 2022-11-15
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)