githubenvironment-variablescirclecisemantic-release

EINVALIDGHTOKEN Invalid GitHub token


config.yml

version: 2.1
orbs:
  node: circleci/node@1.1.6
jobs:
  test-build-and-publish:
    executor:
      name: node/default
    steps:
      - checkout
      - node/with-cache:
          steps:
            - run:
                name: Install nvm
                command: |
                  cd ..
                  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
                  echo 'export NVM_DIR=$HOME/.nvm' >> $BASH_ENV
                  echo 'source $NVM_DIR/nvm.sh' >> $BASH_ENV
            - run:
                name: Set node to version required by application for future circleci steps
                command: |
                  cd ..
                  nvm install 16.17.1
                  NODE_VERSION=$(node -v)
                  nvm alias default ${NODE_VERSION//v}
            - run: yarn install            #  Install dependencies
            - run: yarn semantic-release   #  Release to npm
workflows:
  test-build-and-publish:
    jobs:
      - test-build-and-publish

release.config.js

{
    "branches": [
        {name: 'main'},
      ],
    "plugins": [
      "@semantic-release/commit-analyzer",
      "@semantic-release/release-notes-generator",
      ["@semantic-release/github", {
        "assets": ["dist/**"]
        }],
      ["@semantic-release/exec", {
        "prepareCmd": "./update-version.sh ${nextRelease.version}",
       }],
      "@semantic-release/git"
    ],
    "preset": "react"
  }

package.json

{ ...
"release": {
    "branches": [
      "main",
      "next"
    ],
    "tagFormat": "v${version}",
    "verifyConditions": [
      "@semantic-release/changelog",
      "@semantic-release/github",
      "@semantic-release/npm"
    ],
    "prepare": [
      "@semantic-release/changelog",
      "@semantic-release/npm"
    ],
    "publish": [
      "@semantic-release/github",
      "@semantic-release/npm"
    ],
    "fail": [
      "@semantic-release/github"
    ],
    "githubUrl": "https://github.ibm.com",
    "githubApiPathPrefix": "/api/v3"
  }
 }

Here is the error which I am getting

yarn run v1.22.15
$ semantic-release
[8:46:42 AM] [semantic-release] › ℹ  Running semantic-release version 19.0.5
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/changelog"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/npm"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/changelog"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/npm"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/npm"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/npm"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[8:46:42 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[8:46:43 AM] [semantic-release] › ✔  Run automated release from branch main on repository https://github.com/dhaval1624/dp-react.git
[8:46:43 AM] [semantic-release] › ✔  Allowed to push to the Git repository
[8:46:43 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/changelog"
[8:46:43 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/changelog"
[8:46:43 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/github"
[8:46:43 AM] [semantic-release] [@semantic-release/github] › ℹ  Verify GitHub authentication (https://github.ibm.com/api/v3)
[8:46:43 AM] [semantic-release] › ✖  Failed step "verifyConditions" of plugin "@semantic-release/github"
[8:46:43 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/npm"
[8:46:43 AM] [semantic-release] [@semantic-release/npm] › ℹ  Verify authentication for registry https://registry.npmjs.org/
[8:46:43 AM] [semantic-release] [@semantic-release/npm] › ℹ  Reading npm config from /home/circleci/project/.npmrc
[8:46:43 AM] [semantic-release] [@semantic-release/npm] › ℹ  Wrote NPM_TOKEN to /tmp/c6eeec1742267b199ff3674c478e84bb/.npmrc
dhaval164
[8:46:44 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/npm"
[8:46:44 AM] [semantic-release] › ℹ  Start step "fail" of plugin "@semantic-release/github"
[8:46:44 AM] [semantic-release] [@semantic-release/github] › ℹ  Verify GitHub authentication (https://github.ibm.com/api/v3)
[8:46:44 AM] [semantic-release] › ✖  Failed step "fail" of plugin "@semantic-release/github"
[8:46:44 AM] [semantic-release] › ✖  EINVALIDGHTOKEN Invalid GitHub token.
The GitHub token (https://github.com/semantic-release/github/blob/master/README.md#github-authentication) configured in the GH_TOKEN or GITHUB_TOKEN environment variable must be a valid personal token (https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) allowing to push to the repository dhaval1624/dp-react.

Please make sure to set the GH_TOKEN or GITHUB_TOKEN environment variable in your CI with the exact value of the GitHub personal token.

[8:46:44 AM] [semantic-release] › ✖  EINVALIDGHTOKEN Invalid GitHub token.
The GitHub token (https://github.com/semantic-release/github/blob/master/README.md#github-authentication) configured in the GH_TOKEN or GITHUB_TOKEN environment variable must be a valid personal token (https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) allowing to push to the repository dhaval1624/dp-react.

Please make sure to set the GH_TOKEN or GITHUB_TOKEN environment variable in your CI with the exact value of the GitHub personal token.

AggregateError: 
    SemanticReleaseError: Invalid GitHub token.
        at module.exports (/home/circleci/project/node_modules/@semantic-release/github/lib/get-error.js:6:10)
        at module.exports (/home/circleci/project/node_modules/@semantic-release/github/lib/verify.js:87:21)
        at async verifyConditions (/home/circleci/project/node_modules/@semantic-release/github/index.js:27:3)
        at async validator (/home/circleci/project/node_modules/semantic-release/lib/plugins/normalize.js:34:24)
        at async /home/circleci/project/node_modules/semantic-release/lib/plugins/pipeline.js:37:34
        at async Promise.all (index 0)
        at async next (/home/circleci/project/node_modules/p-reduce/index.js:16:18)
    at /home/circleci/project/node_modules/semantic-release/lib/plugins/pipeline.js:54:11
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Object.pluginsConf.<computed> [as verifyConditions] (/home/circleci/project/node_modules/semantic-release/lib/plugins/index.js:80:11)
    at async run (/home/circleci/project/node_modules/semantic-release/index.js:103:3)
    at async module.exports (/home/circleci/project/node_modules/semantic-release/index.js:269:22)
    at async module.exports (/home/circleci/project/node_modules/semantic-release/cli.js:55:5)error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Exited with code exit status 1

I have generated personal token from github and added in circle ci environment variable and also added npm environment variable.

After setting env variable still I am getting above error for github token and for npm token look like its setted well. so, github token is causing issue.


Solution

  • Got the issue. In package.json Previously in publishConfig access is restricted

    "publishConfig": {
        "access": "restricted"
      }
    

    updated it to access to public .

    "publishConfig": {
        "access": "public"
      }