Answers: <p>I'm not sure what GitLab is thinking here, but the Tags API and tags UI represent tags in the web interface, but they do not disruptively remove the tags from the underlying repo. This seems like a <strong>major</strong> but which I'll file later, or update this with a link to at a later point in time.</p>
  <p>You can force the removal from the upstream repo <strong>which will also remove the tag from the UI</strong> using vanilla Git.</p>
  <pre><code>git push upstream :refs/tags/&lt;tag to delete&gt;
  </code></pre>
  <p>Like this</p>
  <pre><code>git push upstream :refs/tags/v5.2.3
  </code></pre>
  
Answers: CC BY-SA 4.0
Answers: 2022-04-21T06:42:33.887Z
Answers: 2022-04-21T06:42:33.887Z
Answers: Evan Carroll
Body: <p>When I hit the delete button in the Tags interface I can verify the tag does not show, but when semantic-release tries to run, I still <code>git tag</code> on the runner I still get</p>
  <pre><code>fatal: tag 'v5.2.3' already exists
      at makeError (/usr/local/lib/node_modules/semantic-release/node_modules/execa/lib/error.js:60:11)
      at handlePromise (/usr/local/lib/node_modules/semantic-release/node_modules/execa/index.js:118:26)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async tag (/usr/local/lib/node_modules/semantic-release/lib/git.js:224:3)
      at async run (/usr/local/lib/node_modules/semantic-release/index.js:191:5)
      at async module.exports (/usr/local/lib/node_modules/semantic-release/index.js:260:22)
      at async module.exports (/usr/local/lib/node_modules/semantic-release/cli.js:55:5) {
    shortMessage: 'Command failed with exit code 128: git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    command: 'git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    escapedCommand: 'git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    exitCode: 128,
    signal: undefined,
    signalDescription: undefined,
    stdout: '',
    stderr: &quot;fatal: tag 'v5.2.3' already exists&quot;,
    failed: true,
    timedOut: false,
    isCanceled: false,
    killed: false
  }.map                                    
  </code></pre>
  <p>What's going on here?</p>
  
Tags: <gitlab><gitlab-ci-runner>
Title: GitLab tag removal through the web interface does not actually remove the tag from Git
UserDisplayName: Evan Carroll
ThreadText: # GitLab tag removal through the web interface does not actually remove the tag from Git
  
  (Asked by: username_0 on 2022-04-21)
  
  When I hit the delete button in the Tags interface I can verify the tag does not show, but when semantic-release tries to run, I still `git tag` on the runner I still get
  
  ```
  fatal: tag 'v5.2.3' already exists
      at makeError (/usr/local/lib/node_modules/semantic-release/node_modules/execa/lib/error.js:60:11)
      at handlePromise (/usr/local/lib/node_modules/semantic-release/node_modules/execa/index.js:118:26)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async tag (/usr/local/lib/node_modules/semantic-release/lib/git.js:224:3)
      at async run (/usr/local/lib/node_modules/semantic-release/index.js:191:5)
      at async module.exports (/usr/local/lib/node_modules/semantic-release/index.js:260:22)
      at async module.exports (/usr/local/lib/node_modules/semantic-release/cli.js:55:5) {
    shortMessage: 'Command failed with exit code 128: git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    command: 'git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    escapedCommand: 'git tag v5.2.3 b49dff6c91a03a326e6afde67c32a5c788914c25',
    exitCode: 128,
    signal: undefined,
    signalDescription: undefined,
    stdout: '',
    stderr: "fatal: tag 'v5.2.3' already exists",
    failed: true,
    timedOut: false,
    isCanceled: false,
    killed: false
  }.map                                    
  
  ```
  
  What's going on here?
  
  **Tags:** gitlab, gitlab-ci-runner
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2022-04-21. Score: 0 | Accepted answer
  
  I'm not sure what GitLab is thinking here, but the Tags API and tags UI represent tags in the web interface, but they do not disruptively remove the tags from the underlying repo. This seems like a **major** but which I'll file later, or update this with a link to at a later point in time.
  
  You can force the removal from the upstream repo **which will also remove the tag from the UI** using vanilla Git.
  
  ```
  git push upstream :refs/tags/<tag to delete>
  
  ```
  
  Like this
  
  ```
  git push upstream :refs/tags/v5.2.3
  
  ```
  
  
  ---
  
  