gabrielcsapo / gabrielcsapo/node-git-server

If the tag contains `00`, it will break there

Ouverte
#113 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
TypeScript
Étoiles
262
Forks
81
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I tried to push the following tag: `v72.94001.10`
However, the tag passed to the `tag` event was the following value:

```js
const { Git } = require('node-git-server');

const repos = new Git('path/to/tmp', {
autoCreate: true,
});

repos.on('tag', (tag) => {
// tag.version === 'v72.94' // What!?
});

repos.listen(49152, { type: 'http' }, () => {
// ...
});
repos.server.on('error', err => { throw err });
```

Apparently, tag names are cut off when `00` is encountered.
I have looked into the reason for this and found the following regular expression to be the cause.

https://github.com/gabrielcsapo/node-git-server/blob/2ab22a4d3f1a9c77314236c401e176f994f2f758/src/service.ts#L13

[This pattern is defined so that tag names after spaces, null characters, or `00` are not retrieved](https://regexper.com/#%28%5B0-9a-fA-F%5D%2B%29%20%28%5B0-9a-fA-F%5D%2B%29%20refs%5C%2F%28heads%7Ctags%29%5C%2F%28.*%3F%29%28%20%7C00%7C%5Cu0000%29%7C%5E%280000%29%24).
_Why?_ Tag names (and branch names) can contain `00`. What is the reason for excluding anything after `00`?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Reproduisez le problème avec le tag v72.94001.10 mentionné dans le rapport, puis inspectez l’expression régulière de la ligne 13 de src/service.ts ainsi que l’analyse des événements de tag environnante. Confirmez que les noms de tags et de branches contenant 00 sont conservés, tandis que le comportement existant de l’analyse de ref reste intact.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
git, node.js, typescript
Domaine
backend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.