JavaScriptでGitHub Secretsを追加する方法


  1. GitHub REST APIを使用する方法 GitHub REST APIを使用して、JavaScriptコード内からGitHub Secretsを追加できます。以下のコード例を参考にしてください。
const fetch = require('node-fetch');
async function addSecretToRepo(token, owner, repo, secretName, secretValue) {
  const url = `https://api.github.com/repos/${owner}/${repo}/actions/secrets/${secretName}`;
  const response = await fetch(url, {
    method: 'PUT',
    headers: {
      Authorization: `Bearer ${token}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      encrypted_value: Buffer.from(secretValue).toString('base64'),
    }),
  });
  if (response.ok) {
    console.log(`Successfully added secret ${secretName} to repository.`);
  } else {
    const errorData = await response.json();
    console.error('Failed to add secret:', errorData.message);
  }
}
// 使用例
const accessToken = 'YOUR_GITHUB_ACCESS_TOKEN';
const repositoryOwner = 'YOUR_REPO_OWNER';
const repositoryName = 'YOUR_REPO_NAME';
const secretName = 'YOUR_SECRET_NAME';
const secretValue = 'YOUR_SECRET_VALUE';
addSecretToRepo(accessToken, repositoryOwner, repositoryName, secretName, secretValue);

上記のコードでは、addSecretToRepo関数を使用してGitHub Secretsを追加しています。tokenには、GitHubのアクセストークンを設定し、ownerrepoにはリポジトリの所有者と名前を指定します。secretNamesecretValueには、追加するシークレットの名前と値を指定します。

  1. Octokitを使用する方法 Octokitは、GitHubのREST APIを簡単に使用するためのJavaScriptのライブラリです。以下のコード例を参考にして、Octokitを使用してGitHub Secretsを追加する方法を学ぶことができます。
const { Octokit } = require('@octokit/core');
async function addSecretToRepo(token, owner, repo, secretName, secretValue) {
  const octokit = new Octokit({ auth: token });
  const response = await octokit.request(
    'PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}',
    {
      owner,
      repo,
      secret_name: secretName,
      encrypted_value: Buffer.from(secretValue).toString('base64'),
    }
  );
  if (response.status === 204) {
    console.log(`Successfully added secret ${secretName} to repository.`);
  } else {
    console.error('Failed to add secret:', response.data.message);
  }
}
// 使用例
const accessToken = 'YOUR_GITHUB_ACCESS_TOKEN';
const repositoryOwner = 'YOUR_REPO_OWNER';
const repositoryName = 'YOUR_REPO_NAME';
const secretName = 'YOUR_SECRET_NAME';
const secretValue = 'YOUR_SECRET_VALUE';
addSecretToRepo(accessToken, repositoryOwner, repositoryName, secretName, secretValue);

上記のコードでは、addSecretToRepo関数を使用してOctokitを介してGitHub Secretsを追加しています。使用方法はREST APIの場合とほぼ同じですが、Octokitをインポートして使用することでより簡潔になります。