Share PR comments with team outside of organisation - github

We have a team outside of our organisation that is writing firmware for us. They have an internal source control that we do not have access to. They share code with us by sharing a zip file with a .git inside it and we recreate the repo in our internal source control.
We want to conduct an overall code review. This will likely take some back and forth, multiple comments on multiple lines and files of code.
Is there a way to comment internally in our source control, then share these comments to a zip file with this external team? Or is the only way to do this, by creating another source control that is shared between us and the external team?

Create a GitLab account
Add them to your organization as a developer
Create a repository
Have them add that repository as a "remote" to theirs, so that when they push, their commits also go to that GitLab repository.
Then, do your collaboration via GitLab. It has a decent interface for creating Pull/Merge Requests, adding comments to code, and accepting them.

Related

Does GitHub rate-limit access to public "raw" files?

Does GitHub have public access restrictions?
Example file:
https://raw.githubusercontent.com/vuejs/vue/dev/package.json
What will happen if a million users download this file?
This is from a GitHub employee in regard to "raw" file access:
I spoke with our engineering team and learnt that there's a limit of
5000 requests per hour per IP address. Additionally, due to internal
routing and caching, that 5000 figure isn't going to be exact. We may
accept more but it's sometimes possible that we'll accept less too.
As was pointed out to me, if you're at risk of hitting this limit,
then you're probably doing something wrong and there's a better way to
obtain or even store the file.
After 1+ year of waiting, they still haven't confirmed if this is accurate or updated Docs, so I'm guessing routing requests via the GitHub API and using tokens might be more reliable.
Ref: https://github.com/littlebizzy/slickstack/issues/180
Ref: https://github.com/github/docs/issues/8031
I don't think there is any limitations. i have deployed many simple static website on github which gets accessed by a lot lot of users. At times, i have seen it being slow a lil bit(during heavy traffic). But limitations, there is not any limitations.
GitHib definitions for "public" code access are very vague online so hope this helps anyone who was as confused as I was!
GitHub confuses "public" with "open source".
The first is a permission-based access designation and "git" workflow strategy on GitHub, the latter a licensing issue and a broader code access paradigm. But they mix the two together to create a new workflow on their website for how code gets shared using source control git. That confused me.
In general, GitHub "public" repositories means close to the same thing as "open source" in terms of access and use. In general it means any public GitHub repo can be viewed, downloaded, forked, etc. But anything beyond that starting with "write" access on the owners original code base requires the "owner" of the repo to add that person as a "collaborator". I interpret that to mean unlimited and unrestricted access to copy, download, and view your code by any known person, machines, process., etc.!
However, the sample open source licenses (like GNU 3.0, etc.) they recommend you create or use for your projects might legally limit some use of your code. By they are not going to help you enforce or limit that. Once your code is online there is no script or lawyer or enforcing entity that can stop any of that. That is why its called "open source". I have used the GNU "free beer" license for distribution of my personal code before and like it though Ive never seen a need to enforce it as far as limiting much. The main thing it would help with is making sure you remain copyright owner on the code in the USA and in a few other countries....AND....stop big corporate entities from taking your code and claiming copyright, limiting free use, etc.
HOW GITHUB DEFINES "public"
Note: The following applies to GiHub individuals, not organizations or enterprise accounts which have much more granular control over GitHub code projects and repositories.
When you go public on GitHub, meaning you turn your repo to "public" access, you are allowing some form of "open source" or "free" use of the code. In the "git" world this could be many different things as far as both access and use. But in the GitHub world it implies full rights for people or machines to have "read" access by default when your repo is "public". What does that really mean as far as access and use? Well it means:
Anyone or any machine can view the code (they call it "visible") or code files online for free, including manually copy the code in a web browser. That means unlimited views and use of your code.
Anyone or any machine can "download" the code via their code download link. In the GitHub world that means a zip or other compacted wrapper of all the code files into a format you can download in one file. That means unlimited downloads of your code.
Anyone or any machine can "fork" (not "clone") the code. In the GitHub world that means GitHub copies the code and sticks that copy into your GitHub online web account, if you have one. This copy is a "fork" to them, though traditionally that's not what "forked software" means. With this copy a user can then download a "clone" of the forked code to their local machine and start modifying it and push changes to the GitHub forked copy. They cannot do anything with those changes as far as changing your original code base without you setting them up as a "collaborator". But it does includes sharing that with the world as well, which increases views and downloads of your code base to even more people you cannot track! So "public" means all the public clones, mirrors, or forks can be downloaded and shared as well.
BTW...."forking" the code in the GitHub world means copying the code with all the commit and git source history to their GitHub account so later - with more permissions granted by you - they can submit your code back to the original repository code base with a pull request for changes.
This confused me at first, as I thought a "public" repository at GitHub meant anyone can "clone" the original repo to their local box only, which would allow anyone to use a local copy of the GitHub remote repo and pull code updates. In that model they could never do push or pull request updates without additional permissions, which makes sense, but also could never share copies of your code online (unless they explicitly created a new repo at GitHub from your code base).
But that is not what "public" means to them. They want people to directly fork or copy projects into the public site and modify code on their platform using forks. That is the workflow GitHub encourages on "public" projects on their site. This allows any user or machine to make a full copy of everything and do whatever they like to that copy, including sharing and distributing it to others. This is why "public access" does open up your code to lots of crazy things including copies of your code spreading quickly across GitHub with no way to know how many people have truly used it in projects or even care to contribute back to your original.
Personally, at all the companies I have worked at that use Git, I have never seen that type of model for distribution of repositories. We always cloned a master in a development environment and built branches remotely and locally from there. It feels like this was not thought through as it opens up distribution of your code into millions of versions of forks most people never asked for, cannot sync, and will forget about over time.

Show commits and description but hide code in repository [Github]

I've almost done my first big project in React+Typescript+Redux and started it on Firebase with users and some database conneted with logged users.
It was supposed to be my project to portfolio before looking for my first dev job, but it start to be very complex.
Now I have idea to use it in the future to make commercial app.
So the problem is I don't want to publish my code on github, but at the same time I want to publish all my commits and repository description on Github for recrutiers (and all my tasks from trello table). Is it possible to publish only commits and description from github repository?
No, this is not possible. If your repository is public, anyone can clone the entire repository. The only way to make your code inaccessible is to make the repository private, which means nobody can see it without having permssion.

Can I make sure no one forks my GitHub repo but still allow the work to be seen by recruiters?

I am now building portfolio to get my first tech job. I would like for any recruiters/potential employers to see my code in case they want to see how I am putting things together but I don't want anyone to be able to fork or copy my work.
How is this possible?
If I have a private GitHub repo does that mean that you can see the repo but just not the inner contents? I have looked at the GitHub documentation already.
If I have a private GitHub repo does that mean that you can see the repo but just not the inner contents?
If you can access a repository (public or private), that means you can read its content and/or clone it (and read its content locally)
You would need to setup a private repository dedicated to show your file
names, meaning a collection of files with:
dummy content
the exact names and folder structure than your actual projects.
That way, you can share to select collaborator access to that "showcase" repository, without compromising the sensitive content of your actual project repositories.

How to track all the upstream issues my fork addressed

My company wants to contribute on opensource projects and managers want an easy way to see which upstream issues were closed by forks from our organization.
Is there any way to maybe copy upstream issues to a fork or reference them in an easy way to track my organization contributions to a project?
This may be possible through GitHub Projects. Projects exist per the organization, not a particular repo. You can also link to issues and pull requests from repos of other organizations by entering user/repo#issue in the project's task description.
In the case of your scenario, suppose your team shares a GitHub organization. You can create project, then add items that reference your issues and pull requests, which exist within the open source project's repo. You can configure and organize your project's view(s) to display the information you want to show. Since this merely links to the issues/PRs from the open source repo, the original stays intact, and how they are displayed in your project stay in sync.

Make private repo contribution history public

I would like to show a client my contribution history towards a project, without making the repo public. Is there a way to do this through github (eg: not taking screenshots of everything).
Ideally they could see at least the number of contributions towards the project; it would be great if they could also see the graph features (punch card, timeline, etc.).
Is this possible?
I created a script that solves this problem:
https://github.com/ebrian/gitdummy
It will transfer all of your commit messages and dates for a given email address out of an existing repo and into a dummy repo that you can then push up to your GitHub account. It won't transfer source code, project names, or project team members' commits.
Enjoy.
EDIT
You can now show private contributions on your GitHub profile page.
https://help.github.com/articles/viewing-contributions-on-your-profile-page/
No, this is not supported through the GitHub website, unless you want to create an "organization" and give the client read-only access to the whole repo.
Clone the repo locally and use the git log command to dump the project history to a text file. You can then give the client this text file. This won't give you GitHub's visualizations, but you could make some of your own in Excel or some other program.
It's possible now!
Go to your profile page
Under "Contributions settings", open the dropdown
Choose "Public and private contributions"