Github Commit hooks for server integration into cloud9 - version-control

I work for a small agency that works mainly with php, and we were searching for a simple form of version control. I came across cloud9, and it seemed perfect, but I found no way to integrate it with our servers.
However, cloud9 does integrate seamlessly with github, which made me think is there a way to integrate github with my server. Now I'm under the impression that you can use a 'post_commit' hook in svn to ftp a file to a server when a commit is made. Is there a feature similar to these that I can use with a github repository to automatically send a file to a server when a commit is made? Or is there any software I can install on my server to listen for any changes in a github repository to update itself when any changed are made?

GitHub offers post receive hooks, which can be used to do what you want. Whenever you push to GitHub a POST request to a pre configured URL is sent. The body of the POST message contains a JSON structure with all the information about the push and the commits involved.

Related

Confused first/only time github user - do I need local copy/ies to conduct the following (msg body details)

I am not a programmer/software/dev to need to get too many git[hub] tools installed, or use anything locally, if someone could please answer for me a very simple question.
Background: the only way I could ask for some modifications for an environment I need to work on, non-software-dev related, is via what it is being described to me as a request I need to produce as described below:
go to this GitHub URL (I have a login for that)
create a branch
modify files X, Y and Z (apparently some orchestration configs) you need, as described in other instructions
commit
push
create a PR, and someone will check, approve and trigger the orchestration tool with the configs you modified, and get you what you need
Is all of the above possible using the web interface to GitHub, via my browser, without the [almost all instructions I found, so far, online, pointing to] installation of git (desktop or CLI) on my laptop, creation of a local copy of the main/master repository, then branching locally, then ... ?!?
Yes, you can do all of those things you listed out via the browser as long as you follow the steps correctly.
If you open the file in the browser you can click edit and edit the file. After you are done editing, you can type a commit message and create a pull request on a new branch.
Here you can click on create a new branch and start a pull request. It will do those things automatically.
If you have no write access of the repository it will actually directly create a fork on your account with the changes and start a pull request...

Create git pre-receive hook to link git commits with jira id

I am trying to create a pre-receive hook in github enterprise. I want to put a check on commit message, that it should contain a jira id (say 'RP-123') along with some text. And that commit shoould be visible in jira as a link to github.
Can someone please help me with this.
Thanks!
I have integrated jira with github by adding it to OAuth Apps under developer settings.
I tried to add an executable script under /git/hooks folder to verify commit message, but this is going to do only client side verification since .git folder is not version controlled in github.
Can you please let me know how to add server side verification for commit message and how jira will be linked to those specific commits
If I’m not too late, you can do this using pre-receive hook. An example of pre-receive hook using regex is here: https://github.com/github/platform-samples/blob/master/pre-receive-hooks/require-jira-issue.sh

Using GitHub for issue tracking for a local Git repository

My company has a Git repository hosted on our servers. We use TortoiseGit. I would like to integrate it with GitHub Issues.
Is this possible? Note that we do not host our repository on GitHub.
I have tried using the bugtraq settings on TortoiseGit but it doesn't interact with the repository I've set up on GitHub.
I would like to integrate it with GitHub Issues. Is this possible?
Integrate in this context is a very open concept. Which integrations are you looking for? If you're not hosting the code on the repository itself, any kind of integration will be hard, but it really depends on your specific goal with GitHub Issues and which kind of triggers and links you want from your code to your issues.
From experience if I assume that by integration you mean linking Git commits in your local repository to GitHub Issues the clear answer is no.
So if you really want to use GitHub Issues without pushing the Git code upstream, have you considered creating an empty project to just use GitHub Issues and GitHub Projects. You won't be able to reference issues from the commit message, i.e., Fixed issue found in #4 but you can use it as a standalone project management tool.
Trello offers a free tier for project management that you might also want to check out.

Synchronize github with godaddy account

I develop front-end and back-end of many websites hosted on godaddy. I was looking for a way to synchronize the godaddy file manager with my local repository so as to prevent me from uploading the edited files each time. I push my code to github directly, but is there a way to push the code directly to godaddy account without using its file manager?
Also sometimes, with other systems, I edit the code directly on the server if I get some problems with the code, which becomes then difficult to get it on my local system.
It would be of great help to directly push it without using the file manager each time.
It would be best to:
install Git on Godaddy (as in this blog post)
setup a bare repo on the upstream side (ie, the GoDady side, the one where you would push your code)
add a post-receive hook on that upstream repo in order for a non-bare repo to update itself: see links in the "Is --bare option equal to core.bare config in Git?" answer.

deploy website with mercurial

I am working on setting up a development/deploy cycle for one of our latest projects. Here is what I am trying to do,
Commit the latest code to local "mercurial" clone.
Push it to central repo hosted at "bitbucket"
Open some web based management console (this is the part I need help with) on my server, which is already configured to use the bitbucket repo automatically fetches the latest commits and shows a list.
Choose one of the revisions and perform an update which will effectively update the website.
If there are some issues with the latest revision, go back to previous version using the same web console.
I am using "SourceTree" for step1 and step2 and I want to keep the whole cycle GUI based. Can anyone suggest any tool which I can use for the server side management (step 3,4,5) ?
This is more simple than you'd think:
Clone the website on your server using bitbucket as the source
Write a small web app which calls hg pull -u in the root folder of your website. Mercurial remembers where to pull from, so you won't need anything here.
The second feature can be implemented using hg id -i (see this answer) to get the current revision. Write that to file.
Now you need a web page which lists all the revisions in that file and runs hg up -r <revision> when you click on one of them.
But maybe a better approach would be to push directly to the web server using hg push from your local repo (see here). You can then use a hook to update the files and save the last revision to a file.
Now you'll only need a web service to revert to a former revision.
Team City is a web app which can do that for you.
It is a continuous integration server but can be configured to only publish when you use the application.
There are many continuous integration servers and I imagine that most/all can do what you want so search around if that one doesn't quite fit your needs.