Я использую библиотеку passportjs для аутентификации пользователей в приложении. Маркер доступа обычно генерируется, когда пользователи успешно проходят аутентификацию с помощью passportjs. Я пытаюсь создать ветку с помощью github API с этим токеном доступа, но без особого успеха, как с помощью оболочки octokit, так и с помощью супер-агента.
Сначала я попытался аутентифицировать октокит, указав ему имя пользователя и пароль, таким образом.
let octokit=new Octokit({
auth:{
username:username,
password:password
}
});
Тогда я смог создать ref / ветку без особых проблем. Тем не менее, когда я сделал то же самое, но с accesstokens, сгенерированными github SSO, как это
passport.use(new GitHubStrategy({
clientID: keys.clientId,
clientSecret: keys.clientSecret,
callbackURL: "/auth/github/callback"
},
async (accessToken, refreshToken, profile, done) => {
let octokit = new Octokit(auth: `token ${accessToken}`);
const branchName = 'refs/heads/vue' + Math.random();
let masterHash = '123x123x1231232';
octokit.git.createRef({
owner: owner,
repo: 'gitDemo',
ref: branchName,
sha: masterHash
}).then((data) => {
console.log('data ', data);
});
}
Я получаю сообщение об ошибке HttpError: Not found. Другой метод, который я попробовал - это отправить напрямую в конечную точку с помощью superagent, поместив код доступа в заголовок авторизации.
const data={
ref:'refs/heads/FooBranch',
sha:masterHash
};
const res2=await request.post('https://api.github.com/repos/SomeOwner/SomeRepo/git/refs')
.set('Authorization','token '+accessToken)
.send(data);
Однако, я все еще получаю HttpError: не найдена проблема. Я совершенно сбит с толку относительно того, что я, возможно, сделал неправильно. Спасибо и любая помощь будет принята с благодарностью!