gabrielcsapo / gabrielcsapo/node-git-server
If the tag contains `00`, it will break there
- 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