We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback
00:00

Formal Metadata

Title
git-issue
Subtitle
Git-based decentralized issue management with GitHub/GitLab integration
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Git-issue is a minimalist decentralized issue management system based on Git, offering (optional) biderectional integration with GitHub and GitLab issue management. It has the following advantages over other systems. No backend, no dependencies: You can install and use git issue with a single shell script. There's no need for a server or a database back-end, and the corresponding problems and requirements for their administration. Decentralized asynchronous management: Anyone can add, comment, and edit issues without requiring online access to a centralized server. There's no need for online connectivity; you can pull and push issues when you're online. Transparent text file format: Issues are stored as simple text files, which you can view, edit, share, and backup with any tool you like. There's no risk of losing access to your issues because a server has failed. Git-based: Issues are changed and shared through Git. This provides git issue with a robust, efficient, portable, and widely available infrastructure. It allows you to reuse your Git credentials and infrastructure, allows the efficient merging of work, and also provides a solid audit trail regarding any changes. You can even use Git and command-line tools directly to make sophisticated changes to your issue database.
Data managementDisintegrationGoodness of fitComputer animation
Physical systemRepository (publishing)DatabaseData managementServer (computing)TrailJSONXMLComputer animation
Installation artRepository (publishing)Computer animation
Connected spaceInternetworkingMathematicsPlanningComputer animation
Data structureRepository (publishing)Computer fileFilter <Stochastik>Text editorComputer animation
Link (knot theory)Execution unitHydraulic jumpServer (computing)Interface (computing)Front and back endsSource code
Computer fileOrder (biology)Computer animation
AdditionDatabasePhysical systemMereologyOrder (biology)File formatCodeGoogolHeat transfer
Installation artCompilation albumCloningText editor10 (number)TrailScalable Coherent InterfaceMIDICivil engineeringSign (mathematics)CountingNormed vector spaceNo free lunch in search and optimizationInformationExecution unitRepository (publishing)Demo (music)Directory serviceMathematicsLatent heatOrder (biology)Coefficient of determinationGodGame theoryTraffic reportingLine (geometry)Physical systemTorusTrailMultiplication signDatabaseRoutingData storage deviceRootCodeSubsetWeightUniform resource locatorText editorComputer fileComputer animationSource code
Complete metric spaceComplete metric spaceChainGoodness of fitMathematicsOrder (biology)XML
Order (biology)File formatMathematicsSelf-organizationElectronic mailing listProjective planeSource codeOnline helpUML
Online helpProper mapWeb pageSource codeElectronic mailing listProjective planeComputer animation
Commitment schemeGoogolConfiguration spaceTemplate (C++)CodeDescriptive statisticsHash functionDirectory serviceGraphical user interfaceFreewarePresentation of a groupSynchronizationComputer animation
Process (computing)MereologyLogic gatePhysical systemWindowRight angleDivisorAbstractionRevision controlMultitier architectureSource codeGoodness of fitMathematicsNumberMessage passingPairwise comparisonMultiplication signEvent horizonPoint (geometry)Execution unitTrailFreewareComputer fileLine (geometry)Correspondence (mathematics)Electronic mailing listSoftware bugRepository (publishing)System callData structurePlug-in (computing)Latent heatInterface (computing)Gastropod shellDisk read-and-write headHookingCodeCommitment schemeScripting languageMechanism designComputer animation
Point cloudOpen sourceFacebook
Transcript: English(auto-generated)
So now we've got the next talk on Git issue from Diamidis Spinelli's Thank you. Hi, good morning Why are we here? Why would we want to run Git issue? I'll give you six reasons why it issues the best things since sliced bread
First of all, it's an issue management System so a back tracker that doesn't need any sophisticated infrastructure any system running behind it You don't need a database a server that needs to be specially configured anything like that It's very easy to install as I will show you just clone the repository and you run make
Install and there you have it It's decentralized so anybody anywhere in the planet can create an issue can comment on it can change its status at the milestone at the assign it to somebody and things get Merged together in the central repository How does this happen? Of course, it uses it as its
backend and as an advantage because it's decentralized is that you can use it anywhere even if you don't have internet connectivity So on the plane, I read somebody complaining a few days ago that they train they were on didn't have Wi-Fi You can still get use the Git issue and then you push the changes or you pull the changes that have been made
It's also transparent so the files that it uses the structure is Documented and it's available so you can use your favorite tools. You can grab through issues You can find and select them. You can apply filters to it You can even use your editor if you are brave enough to change things on the fly in the repository
That's absolutely allowed and then you can push the issues back in As you will appreciate it uses a git as a backend So all the goodies we have with git still work here the credentials that you have the server that you are using The commands that you know, the many years you invested to learn it's arcane interface. Everything is there to be used
Also, it uses the Unix command-line tools philosophy if you don't not sure why this is good There is a MOOC that I'll be starting on in March go there in order to find out But the truth is that you can use all the tools that you know on top of the files that it has
As an addition as part of the Google Summer of Code last year We're on the roses did amazing work and integrated into git issue The ability to pull issues from github and gitlab and also put push issues back there to the issue Database of these two systems so you can also use git issue in order to transfer
Issues from one system to the other or ensure that your issues are in a transparent format that you can use and control on your own Let Me give you a brief demo of how it works So to install it you just clone the repository and then you run install or as a
Root user in order to copy the file to the system directors or if you don't have root access you set the prefix to your home directory in order to Install them in your home directory With git issue in it you create a new
Repository, let's create a new issue can do the command line But by specifying the subject line or you can use git issue new and net door will pop up Now you see you have two issues here can use git issue comment to add the comment on the specific issue again with my editor
Or I can tag it with a specific tag and it tells me that it has tagged it I can tag another tag here if I now remove a Tag I can use the minus R option. I can assign it to somebody using again the issue
Code as a to identify it Add another watcher here Here I list the specific issue and now here is the magic I can add a remote origin to this issue database and now I can use a
Push in order to move my changes all upstream assume now somebody else is using git issue they can clone this repository and Then if they list the issues the issues are back at the host that they were using
They can create another issue there and create. I'm specifying the subject line here and Push the changes back up to that the repository that is shared between these two people There is a show command in order to see what an issue contains Or a specific issue here a longer one. I can again pull issues from a remote at
Least and I will see a new issue appearing here in the other host
Now, let's try the another example. I will now get issues from github issues So I initialize a new issue tracker with git issue in it and now specify that I want to import issues from github Using this URL and to the imports existing github issue. So issues that github is tracking I can see them here. I
can see a specific issue who has been assigned tags and so on all the things that github issues support I Can change things again, so add the milestone for example or Change the due date for github
There are some things that github supports and some things that github supports we have the superset of the two. I Can close an issue and then I can export the issues back into github issues or github I will need to have the credentials especially if I want to pull more than a few issues
So this is how the system appears in practice You also get some goodies so subcommand auto-completion or sha auto-completion More goodies you can use the git commands that you love and know so for example rebase in order to directly change things
Everything change you made is recorded as a git commit You can dump an issue in JSON format to process it in another way and there's a log of the issues that are there For help there is of course a List of all the commands available Automatically generated from the source code so that it's always complete and something I consider important
We should all try in our projects a nine page manual proper Unix manual page How does it work internally? I will finish with that. So internally what you see is a dot issues Directory and inside it there are templates for the description and comment
you can modify it and commit them and all your colleagues will share them and use their own and issues directory and for every issue You have the sha hash which is created through the hash of the git commit that creates the issue So, you know, it's almost impossible to have a duplication here and for every issue you have the description the tags the milestone the comments and
Other things that are associated with that issue comments is a director And again, each comment is associated with the sha hash of the commit commit that created that issue The configuration folder and details about the import so that you can stay in sync and
Push and pull the things that are exactly needed from github or gitlab We will hopefully be running google summer of code again next year so if you have any cool ideas you want to add or if you want to work on perhaps a graphical user interface if you Feel to don't feel sure about always using the command line. Feel free to look for it up and apply
This brings me to the end of this presentation. Thank you very much Is there any get parts get specific part in it
It's written in shell as a shell script full of git commands
So you have to go and replace every git command with the corresponding other version control system Understand the question is if there are git specific parts in it, right? Yes, so it's a heavily get Dependent you would have to add an abstraction layer to interface between different systems but there are text files and they get specific things that are done are
Push pull commit so there are few the rest are things that are Available in every system you think you commit files in the structure that I showed Yes
Okay, what happens with the conflicts in general? The idea is that they the same thing that happens with the with the when you pull data from a Depository you get the conflict and you have to resolve it now if you go upstreams
And you push things up things might get modified with the truth source of truth that you have because a GitHub doesn't have a way to do this atomically So a proper process would be to pull things from to import the issues again
Resolve any conflicts you can do that commit them and then push and hopefully nobody has done that in that small window Yes
Right. The question is whether we can have the numbers of a github issues I think this is something that can be easily done should be three lines of code It's a very good idea if you put it up in an issue
Hack it in the afternoon. I think you had the two questions, right? Yes, how could we automate the github
Process so that when things change on github automatically mirrored here. I would build on top on it on top of it So at some end point that would and listen for those events and then invoke the command
It's not there, but I don't think it should be difficult to do Yes, have a look with that in the kitchen. No, not yet Yes, I wanted to ask if you
Will try to push it upstream. I mean to get source Directly like be part of git So the question is if I have tried to push it upstream be part of git if I've communed of git or git hub Yeah, I mean git like be part of the git not just additional thing but just part of the git
The question is if I've tried to push it upstream to git No, I haven't because the plug-in interface of git is beautiful And maybe I should it's an interesting idea. Yeah, so please try to push it upstream Okay. Thank you for the suggestion if anyone wants to share experience of how to do that. Please talk to me
Hi, how does it compare to bugs everywhere? How does it compare to bugs everywhere I have a list of at the end of the readme file
I have a list of bugs everywhere is another system that works in the same way I found another five systems around the same idea at the end of the readme file I have short one-liners that have the comparisons I don't remember exactly for each system how it compares off the top of my head Yes
Is there a way to close an issue by a commit message or would add a commit hook again? In git issue to issue another git command That would close the issue So it's a hook plus issuing the two commands that would close the issue when it grabs for the issue number
So you don't have precrafted hook to put it. It's not precrafted now It means that we'll have to have to create a plug-in mechanism for git issue but it's an interesting idea and very I'm very encouraged with all these ideas and things that can be built on top of it That's the beauty of Unix tools and the Unix philosophy
Any other questions? Thank you very much again