Faits :
A.
A._, titulaire d'un diplôme d'électro-mécanicien, a travaillé en qualité de machiniste jusqu'en novembre 2012. Le 19 mars 2014, il s'est annoncé à l'assurance-invalidité, invoquant une arthrose dégénérative, une hernie discale, une infection profonde au pied gauche, ainsi que des problèmes aux poumons.
Le docteur B._, médecin au SMR, a admis que l'assuré conservait une capacité de travail entière dans une activité strictement adaptée aux limitations fonctionnelles de protection du dos et du pied gauche (pas de marche prolongée, pas d'utilisation de chaussure de sécurité). Son avis médical du 21 août 2014 reposait sur l'examen de rapports émanant du docteur C._, pneumologue (du 26 mars 2014), de la doctoresse E._, spécialiste en endocrinologie, diabétologie et médecine interne (du 4 mai 2014 et du docteur D._, spécialiste en médecine interne (du 29 avril 2014).
Se fondant sur l'appréciation du médecin du SMR, l'Office de l'assurance-invalidité du canton de Genève (ci-après: l'office AI) a rejeté la demande par décision du 29 octobre 2014.
B.
A._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, en concluant à son réexamen. La juridiction cantonale l'a débouté par jugement du 23 mars 2015.
C.
A._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation en concluant principalement au versement d'une rente entière d'invalidité, subsidiairement au renvoi de la cause aux premiers juges. Il sollicite le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le litige porte sur le taux d'invalidité du recourant et son droit à une rente d'invalidité.
2.
Les premiers juges ont exposé correctement les règles applicables à la solution du litige. Il suffit de renvoyer au jugement attaqué.
3.
Les juges cantonaux ont constaté que le recourant n'était plus en mesure de travailler dans son activité antérieure, sur un chantier, mais qu'il disposait d'une capacité de travail totale dans une activité adaptée à ses limitations fonctionnelles. Leurs constats se fondent sur les avis du docteur B._ (des 21 août 2014 et 26 janvier 2015) ainsi que sur les rapports des docteurs D._ (des 29 avril, 7 novembre et 18 décembre 2014) et F._, neurologue (du 6 juin 2014). En ce qui concerne la doctoresse E._ (rapport du 4 mai 2014) et le docteur C._ (rapport du 26 mars 2014), les juges ont constaté que ces médecins ne s'étaient pas prononcés précisément sur la capacité de travail du recourant. Quant au docteur G._, psychiatre et psychothérapeute (rapport du 18 décembre 2014), les premiers juges ont constaté qu'il avait attesté une limitation de la capacité de travail de son patient, mais que ce dernier avait fait une décompensation dépressive en novembre 2014, soit postérieurement à la décision administrative du 29 octobre 2014.
4.
Le recourant se prévaut d'une constatation arbitraire des faits et d'une violation du droit. Il soutient que le jugement attaqué est arbitraire dans sa motivation, alléguant qu'il se fonde à tort sur des avis médicaux qui n'auraient pas de valeur probante. Tel serait le cas du rapport du docteur B._, dans la mesure où son auteur n'a pas procédé à des examens complets mais a uniquement donné son appréciation sur la lecture d'autres rapports médicaux, dont il aurait fait de surcroît une mauvaise interprétation. Quant au rapport du docteur F._, le recourant soutient qu'il est également dépourvu de force probante, puisque ce médecin se contente de poser un diagnostic, sans expliquer les raisons pour lesquelles il atteste qu'une activité sédentaire serait possible.
A l'inverse, le recourant soutient que l'avis du docteur G._, lequel atteste que son état de santé physique et psychique entrave ses capacités de reprise d'une activité à 100 %, a été écarté de façon arbitraire et contraire au droit, au motif que les faits établis dans cet acte médical seraient postérieurs à la décision administrative du 29 octobre 2014, alors que l'anamnèse réalisée par ce médecin tiendrait pourtant compte de faits antérieurs à ladite décision. Par ailleurs, le recourant fait grief aux premiers juges de n'avoir pas tenu compte de contradictions qu'il voit entre les avis des docteurs E._ et G._ qui attestent une incapacité de travail, B._ et F._ qui reconnaissent une pleine capacité de travail, et finalement D._ qui préconise une expertise. Selon le recourant, la juridiction cantonale aurait à tout le moins dû approfondir l'analyse de ces divergences, au besoin par une expertise, au lieu de se contenter d'une appréciation très sommaire des certificats produits.
Le recourant en déduit que le jugement est arbitraire dans son résultat, dans la mesure où une capacité de travail est admise dans une activité adaptée. Ce constat, qu'il juge manifestement erroné, résulterait du fait que le tribunal cantonal a écarté ou ignoré tout certificat médical susceptible de ne pas abonder dans le sens de ses conclusions.
5.
D'après l'<ref-law>, le recours ne peut critiquer les constatations de fait que si les faits ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'art. 95, et si la correction du vice est susceptible d'influer sur le sort de la cause.
Le Tribunal fédéral n'examine le résultat de l'appréciation des preuves à laquelle a procédé l'autorité cantonale de recours que sous l'angle restreint de l'arbitraire. L'appréciation des preuves est arbitraire lorsque l'autorité ne prend pas en compte, sans raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (<ref-ruling> consid. 2.3 p. 266 et les arrêts cités).
Par ailleurs, compte tenu de son pouvoir d'examen restreint, il n'appartient pas au Tribunal fédéral de procéder une nouvelle fois à l'appréciation des preuves administrées, mais à la partie recourante d'établir en quoi celle opérée par l'autorité cantonale serait manifestement inexacte ou incomplète, ou en quoi les faits constatés auraient été établis au mépris de règles essentielles de procédure.
6.
6.1. En raison des affections au dos et au pied gauche (lombalgies chroniques et rachialgies diffuses, terrain arthrosique et hernie discale lombaire, mal perforant plantaire du gros orteil gauche dans le contexte d'une polyneuropathie sévère), le recourant n'est plus en mesure d'exercer une activité de contre-maître ou d'ouvrier de chantier (voir le rapport du docteur D._, du 29 avril 2014). Les constats des premiers juges, complétés en ce qui concerne les atteintes à la santé présentées par le recourant (<ref-law>), ne sont à cet égard pas remis en cause.
6.2. A l'examen des avis médicaux mentionnés par le recourant, on ne saurait faire grief aux premiers juges d'avoir admis qu'il disposait d'une capacité totale de travail dans une activité adaptée. En effet, dans son rapport du 6 juin 2014, le docteur F._ a clairement mentionné qu'une activité professionnelle sédentaire n'était pas contre-indiquée par la polyneuropathie, les explications de ce spécialiste en neurologie étant convaincantes pour ce volet du dossier médical. Pour sa part, sur le plan pulmonaire, le docteur C._ a exposé dans son rapport du 26 mars 2014 qu'il n'avait pas prescrit d'incapacité de travail. Quant à la doctoresse E._, elle n'a pas fixé d'incapacité de travail pour une activité sédentaire dans son rapport du 4 mai 2014. Bien que le docteur B._ n'ait pas examiné personnellement le recourant, les premiers juges étaient néanmoins fondés à fixer l'étendue de la capacité de travail exigible en suivant ses avis médicaux des 21 août 2014 et 26 janvier 2015, car les conditions auxquelles la jurisprudence accorde valeur probante à un rapport du SMR qui ne repose pas sur l'examen de l'assuré (cf. arrêt 9C_25/2015 du 1 er mai 2015 consid. 4.1 et les références) sont réalisées, quoi qu'en dise le recourant.
Par ailleurs, les constatations des premiers juges n'apparaissent pas davantage insoutenables à la lumière des rapports du docteur D._ des 29 avril, 7 novembre et 18 décembre 2014. En effet, ce médecin avait uniquement demandé à l'office intimé de réévaluer le cas ou à tout le moins d'envisager une expertise indépendante pour statuer, en mettant en exergue une péjoration de la situation psychiatrique (cf. rapport du 7 novembre 2014). Dans ses rapports, le docteur D._ avait répété que l'assuré ne présentait pas de contre-indication médicale formelle à la reprise d'une activité professionnelle pour autant mesurée et pleinement adaptée à ses capacités actuelles.
De même, sous l'angle psychiatrique, les constatations de fait de l'autorité précédente ne sauraient être qualifiées de manifestement inexactes, au sens de l'<ref-law>. En effet, sur la base du rapport du docteur G._ du 18 décembre 2014, la juridiction cantonale n'a constaté la survenance d'une décompensation dépressive qu'à partir de novembre 2014, soit à une date postérieure à la décision administrative du 29 octobre 2014, laquelle marque la limite temporelle du pouvoir d'examen du juge des assurances (cf. <ref-ruling> consid. 2.1 p. 243 et les références). Le psychiatre fait état d'une aggravation de la symptomatologie anxio-dépressive de son patient après le refus de l'administration, sans qu'on puisse déduire de son rapport l'existence d'un trouble psychique invalidant avant le mois de novembre 2014.
Il s'ensuit que les juges cantonaux pouvaient trancher le litige en l'absence de complément d'instruction et singulièrement d'expertise médicale, sans que cela ne constituât une violation de l'art. 61 let. c LPGA.
6.3. Quant aux revenus que les premiers juges ont pris en considération pour évaluer le taux d'invalidité, ils ne sont pas contestés en tant que tels.
6.4. En conséquence de ce qui précède, le recours est mal fondé.
7.
Les frais afférents à la présente procédure seront supportés par le recourant qui succombe (<ref-law>). Il a cependant déposé une demande d'assistance judiciaire visant à la dispense des frais judiciaires et à la désignation d'un avocat d'office. Dès lors que les conditions d'octroi sont réalisées (art. 64 al. 1 et 2 LTF), l'assistance judiciaire lui est accordée. Le recourant est toutefois rendu attentif au fait qu'il devra rembourser la Caisse du Tribunal fédéral, s'il retrouve ultérieurement une situation financière lui permettant de le faire (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
L'assistance judiciaire est admise pour la procédure devant le Tribunal fédéral et Maître Pierre Gabus est désigné comme avocat d'office du recourant.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant. Ils sont toutefois supportés provisoirement par la Caisse du Tribunal fédéral.
4.
Une indemnité de 2'800 fr. est allouée à l'avocat du recourant à titre d'honoraires à payer par la Caisse du Tribunal fédéral.
5.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 15 janvier 2016
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Glanzmann
Le Greffier : Berthoud