hunk.code_window: });
   ```
   If successful this will return the internal ID generated by Novu and the topic key given by the user.
   To rename a topic, this call can be used:
   ```typescript
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit: That topic key can be used to retrieve the whole Topic entity:
   ```typescript
   import { Novu } from '@novu/node';
   const novu = new Novu(process.env.NOVU_API_KEY);
   const key = 'unique-topic-identifier';
   const result = await novu.topics.get(key);
   ```
  
hunk.file_path: docs/docs/platform/topics.md
hunk.type: add
file: const { Octokit } = require('@octokit/action');
  const { isCommunityContributor } = require('./is-community-contributor');
  
  const octokit = new Octokit();
  
  const getAuthor = (payload) => {
    return payload?.issue?.user?.login || payload?.pull_request?.user?.login || null;
  };
  
  async function start() {
    const payload = require(process.env.GITHUB_EVENT_PATH);
    if (payload?.pull_request) {
      console.log('Skipping pull request execution');
      return;
    }
  
    const username = getAuthor(payload);
    const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
    const { number } = payload?.issue || payload?.pull_request;
  
    const isCommunityUser = await isCommunityContributor(owner, repo, username);
    console.log('::set-output name=is-community::%s', isCommunityUser ? 'yes' : 'no');
  
    if (isCommunityUser) {
      await addLabel('triage', owner, repo, number);
      await addLabel('linear', owner, repo, number);
    }
  }
  
  const addLabel = async (label, owner, repo, issueNumber) => {
    await octokit.rest.issues.addLabels({
      owner,
      repo,
      issue_number: issueNumber,
      labels: [label],
    });
  };
  
  start();
  