如何修复octokit.authenticate()已过时

时间:2019-01-30 08:29:11

标签: node.js

我正在启动ginit模块,但收到这样的错误:

  

=> octokit.authenticate()已弃用。使用“身份验证”构造函数   选项。

我该如何解决? 我的代码

module.exports = {

    getInstance: () => {
      return octokit;
    },

    setGithubCredentials : async () => {
      const credentials = await inquirer.askGithubCredentials();
      octokit.authenticate(
        _.extend(
          {
            type: 'basic',
          },
          credentials
        )
      );
    },

}

2 个答案:

答案 0 :(得分:0)

尝试类似的东西:

const Octokit = require('@octokit/rest');

module.export = {
  getInstance({username, password}) {
    return Octokit({
      auth: {
        username,
        password,
      },
    });
  }
}

PR introducing the auth property显示了其他一些指定凭据的示例。

答案 1 :(得分:0)

也许您是根据本文的代码编写的:https://www.sitepoint.com/javascript-command-line-interface-cli-node-js/

我的解决方案在下面

const Octokit = require("@octokit/rest");
const Configstore = require("configstore");
const pkg = require("../package.json");
const _ = require("lodash");
const CLI = require("clui");
const Spinner = CLI.Spinner;
const chalk = require("chalk");

const inquirer = require("./inquirer");

const conf = new Configstore(pkg.name);


module.exports = {

  getInstance: () => {
    return global.octokit;
  },

  getStoredGithubToken: () => {
    return conf.get("github.token");
  },

  setGithubCredentials: async () => {
    const credentials = await inquirer.askGithubCredentials();
    const result = _.extend(
      {
        type: "basic"
      },
      credentials
    );

    global.octokit = Octokit({
      auth: result
    });

  },

  registerNewToken: async () => {
    const status = new Spinner("Authenticating you, please wait...");
    status.start();
    try {    
      const response = await global.octokit.oauthAuthorizations.createAuthorization({
          scopes: ["user", "public_repo", "repo", "repo:status"],
          note: "ginits, the command-line tool for initalizing Git repos"
      });

      const token = response.data.token;
      if (token) {
        conf.set("github.token", token);
        return token;
      } else {
        throw new Error(
          "Missing Token",
          "GitHub token was not found in the response"
        );
      }
    } catch (err) {
      throw err;
    } finally {
      status.stop();
    }
  }
};