On my GitHub account, I have public and private repositories and push rights to one or two external repositories. Is there a sensible way to get all my activities in chronological order? It should not only cover commits but also things like issues, comments, pushes, etc.
I know that basically, the GitHub API would provide such information but I'm not sure if it is possible to get all things at once and maybe there is already a tool for it.
Can someone give me a hint?
Related
If you are in an organisation, there may be GitHub repositories that are private (i.e. you don't have access to them), but it would be useful to know that they exist, and then you could arrange access where appropriate.
In other words we are trying to enable discoverability, in a way that can lead to access. This could be done with sharing readme's (noting that people need to have some discipline to write sensible readme's).
This blog post Solving the innersource discoverability problem looks like a potential solution, but may require that the user has access to see all the repos in the portal? I'd like for the user to be able to view readme's for all repos - if they don't have access, the can contact whoever is listed on the readme.
I see another option for making a file public from a private repo (using gitexporter to create a public repo with only the readme, example here. This makes it public, not my first preference, and would require every repo to do some work, far from ideal. While it doesn't give a neat portal, it should allow GitHub search functionality to find it by topic or keyword?
A related, perhaps simpler option is proposed here, where a student shares a readme from a private repo as a public GitHub page. Again, requires a little work from every repo, no neat portal, but can be found with GitHub search? While public Github pages can be made private, then would only be visible to those with repo access?
So, if I'm summarising basic requirements:
All org repos (public, private or team) have a readme that can be accessed by search by someone in the org (preferably not requiring each individual to modify their repo).
Additional nice to have features:
All readmes can be viewed in a portal with search
Bonus for being able to make super private (only collaborators can see readme - flag in readme?), org private (only people in the org - default) and public (flag in readme?).
Simple to implement!
Suggestions?
I think you have already provided a suitable solution for it here already within your question. Alternatively, you can use APIs (GET repos, GET README of a repo) to get each repositories README and save it to a database/JSON based on a cron scheduler and create a web interface based on that data.
But, I'm gonna elaborate on a few areas of improvement. The problem I see with this is the nature of the search. We aren't always looking for keywords, sometimes we are trying to find a potential fuzzy match for our problem, especially in the case of a larger organization with more than a couple of thousand repositories. In those cases, a search engine implementation will provide much better results. In my opinion, we should collect the README and FAQs and put them into Elastic search, expose search API for queries. The collection of README and FAQs should be part of the CI/CD pipeline, and while pushing new versions to artifactory it must publish metadata as well.
This looks like a use case for internal repositories to me. You can find more about internal repositories here.
Whether you can use internal repositories or not highly depends on your company's policies.
Another thing to consider is that this will expose your whole repositories, not just the README.
GitHub documentation states:
After a pull request is opened, anyone with read access can review and comment on the changes it proposes.
In public GitHub repositories, what is the point of allowing people other than the repository owner or collaborators (that is, people who don't have write access) reviewing pull requests?
I suppose hypothetically it could be a learning opportunity, but it seems far more likely to be a waste of time. The people with write access get to decide what goes in and what changes need to be made in the code for that to happen. It's highly unlikely that a random read-access-only developer will know exactly what the owner wants.
Also, what would be the proper etiquette in this situation for the pull requester and the owner?
Sometimes a non-collaborator is a former contributor or other subject matter expert who has knowledge about the code or algorithm and can be invaluable as a reviewer. In an open source project, this could be an emeritus member of the core team, or for a company, it could be a colleague who has moved to another team and no longer has write permission on the repo. I've actually requested such reviews from former core team members before.
I agree that in many cases it's possible for a rando to pop up to an open source project and give a useless review, and I see those myself. I usually just ignore them, or if a particular party is providing lots of unhelpful reviews, I usually deal with it like I deal with any other unhelpful behavior and ask them nicely to stop.
We have several Repositories in Azure DevOps, some in the same project others in different projects.
I'm trying to find out how pull requests could be linked in some fashion.
I know we could actually put urls in the description, for different pull requests, which I'm guess might be our only option.
However, it would useful to be able to see some status across pull requests in different repositories.
I'm picturing a project which has meant changes in different repos, at the end of the project, we'd want to merge all these pull requests at the same time. So having some means of making it obvious across all pull requests, which pull requests are also required. Obviously I'm not expecting one merge / complete all button.
But there would need to be some obvious link.
Maybe there's an extension which might help, or something obvious I've missed.
I am a student who works with github account with edu suffix. There are some repository I would like to work with my current account assigned by school. All I know is that my school account is kind of github enterprise account.Basically, I would like to always works in only one account rather than switch beteen two accounts. Is the demand weird? Cause I didn't see any similar demand before.
So what I want to know is it possible. Also I feel like misunderstanding some fundamental principle of github which I couldn't tell.
Wish some guys could point it out. Thanks.
So the problem I can read out of your question is that you want to access public repositories on GitHub. The answer to this question is you can handle this with your student account. With the Enterprise license you should even have more features like public repositories etc.
For your second part some information about GitHub which might help you to understand the first answer.
You can always access public repositories, clone them on your machine and modify them and use all the features of git locally. The only thing that is not possible is pushing to the public repository if you don't have write access to this repository.
If you want to push some modifications to this repository you can do a fork of this. Then you will have this fork under your name and you also have write access. Now you are able to push your changes to this repository.
If you want to have your modifications also in the original repository you can do a pull request with your pushed commits of your own repository. The owner of the original repository now can decide to accept the pull request. Accepting the request will merge your changes in the original repository.
I hope this was the information you were looking for.
I am finally moving to GitHub for source control. We can only use a public repo for a project were doing, but how public is public? Is it safe to assume that if I do not publicize the project at all, no one will really find it among the 3 mil repos they already have?
I cannot really have people seeing the source code as of right now, but 7/mo is a little steep for needing just 1 private repo.
No. That's not a safe assumption. GitHub has a search engine for public repos, and people use it (including myself). So, there's always a decent possibility that someone will see your source-code. If you want a free private repo, I suggest using BitBucket instead, or another service that offers free private repos. Note that BitBucket is only free if you have 5 or fewer users working in your repo.
When asking yourself such questions, you should consider that a lot of website visitors are other computers, not humans. The google bot is indexing every page it can find, ohloh.net creates statistics over open source projects on github, ... and so on and so forth. So if something is on the Internet, people will find it. :)